How TempoPay works
A walkthrough of what happens when you connect a wallet, bridge stablecoins in, and pay someone — written for a smart non-engineer. No hand-waving, no buzzwords, no fake numbers.
One stablecoin, one settlement layer, four entry points.
Today, your stablecoins are scattered across many blockchains: USDC on Ethereum, USDC on Base, USDC on Arbitrum, USDC on Polygon. Sending money between two people often means picking a chain, paying volatile gas in ETH, dealing with bridge UX, and praying.
TempoPay's idea: use the Tempo blockchain as a single settlement layer. You bring stablecoins from any of the four major chains, they become pathUSD on Tempo, and you can pay anyone — same chain or back out to any chain — in a single transaction that settles in under a second. The fee is a flat 20 bps (0.20%).
The arrows are real on-chain transactions. We do not custody anything in between.
Pay on Tempo
Both you and the recipient already have Tempo addresses. You hold pathUSD or USDC.e on Tempo. The recipient wants pathUSD.
- 1You sign a one-time approval (called a “permit”) that authorises the router to move exactly the amount you typed in, and nothing more.
- 2You sign the payment transaction. In a single on-chain step, the router converts your input token to pathUSD if needed, takes a 20 bps cut, and sends the rest to the recipient.
- 3Sub-second later it's confirmed. The recipient sees the funds. You see the transaction in Activity.
If anything in the flow fails — the swap can't fill at your slippage tolerance, the recipient address reverts, the network is congested — the entire transaction reverts and you keep your tokens. That's what “atomic” means.
Bridge in: turn external USDC into pathUSD
Your USDC is on Ethereum, Base, Arbitrum, or Polygon. You want to start using Tempo, or send a payment that requires pathUSD.
- 1On Tempo, you register an intent: “a payment of size X is coming from chain Y to recipient Z, with these slippage limits”. This is one cheap signature on Tempo.
- 2On the source chain (e.g. Base), you sign the bridge transaction. A third-party bridge (Relay) moves your USDC across to Tempo and delivers it directly to the router's address — not yours.
- 3Once the bridge delivery lands, anyone can call payIn(routeId) to consume the intent. The router atomically swaps the bridged USDC.e to pathUSD, takes the 20 bps fee, and pays the recipient. We will usually call this for you; you can also click “Consume” on the intent page yourself.
If the bridge fails to deliver within 24 hours, the original payer can press “Rescue” on their intent page and recover the locked tokens. The router cannot move the funds anywhere else; the only two states an intent can resolve to are consumed (paid out) or rescued (refunded).
Bridge out: pathUSD → USDC on the chain you want
You hold pathUSD on Tempo. You want USDC on Base (or any other supported chain), in your own wallet or a recipient's wallet there.
- 1One signature on Tempo. The router converts pathUSD to USDC.e, takes the 20 bps fee, and hands the result to the bridge.
- 2The bridge moves the USDC.e to USDC on the destination chain and delivers to your chosen recipient address.
- 3Done. Sub-minute typical end-to-end (Tempo finality is sub-second; the bridge adds roughly a minute depending on the destination chain).
What makes Tempo a good settlement rail
- Sub-second finality. The chain confirms transactions as soon as a super-majority of validators agree, which on Tempo happens in well under a second. That's the “feels like Venmo” latency.
- Stablecoins as gas. You pay fees in pathUSD, not in a volatile cryptocurrency. The cost of a payment is predictable.
- EVM-compatible. The contracts behind TempoPay are written in Solidity and run on the standard EVM. They're open and inspectable on-chain.
We treat Tempo as the settlement layer because those properties make it the right place to convert and route stablecoin payments. We could in principle deploy on other chains; today we don't.
One flat 20 bps. No spreads, no surprises.
For every payment, bridge-in, or bridge-out the router charges 20 basis points (0.20%) of the amount. The fee is taken in pathUSD and routed to a non-custodial Treasury contract.
- On a $100 payment the fee is $0.20. On a $1,000 payment the fee is $2.00.
- The fee is enforced inside the router contract: the router will never deliver a payment without taking the fee, and it cannot take more.
- Bridges (Relay) charge their own provider fees on top of the router fee. Their fees are quoted live in the form before you sign.
- We do not add a hidden spreadon top of the price. The number you see in the receipt preview is the number that ends up in the recipient's wallet, modulo slippage you set yourself.
Where do the fees go? Today the Treasury simply holds them — there is no payout, no buyback, no airdrop, no token. The Treasury is an immutable contract; even we cannot move funds out except through the documented mechanism. If TempoPay reaches product-market fit and we decide on a sustainable use of fees, that decision will happen in public and will not change the past.
What we built and what we did not
- Two immutable contracts (Router and Treasury) with no admin key, no upgrade, no pause.
- Deterministic state machine for intents: registered → consumed | rescued.
- A 24-hour rescue window so a bridge failure cannot lock funds forever.
- Per-payment slippage limits and minimum-out checks, set by the payer.
- Run a custody service. Your keys move every token; we cannot.
- Add an admin override. There is no “pause” or “recovery” switch.
- Audit the contracts (yet). Use accordingly. See the disclaimer.
- Build our own bridge. We integrate Relay, a third-party bridge with its own risk profile.
Every transaction shows you exactly what you sign
- The amount. The permit you sign authorises a specific amount, not an unlimited approval.
- The recipient. The receipt preview shows the address before you sign; re-check it.
- Slippage tolerance. You pick the maximum price slippage you accept; if the fill cannot meet it, the transaction reverts and you keep your tokens.
- Min received. The receipt preview shows the worst-case amount the recipient will get, after fee and slippage. The transaction enforces it on-chain.
- Disconnect. There is no session on our side. Disconnecting in your wallet ends the connection immediately.
FAQ
Do I need to know about crypto to use this?+
What happens if the bridge takes longer than 24 hours?+
Can the recipient refuse a payment?+
What if the price moves while I'm signing?+
Why is the gas paid in pathUSD and not ETH?+
Where can I read the contracts?+
Why does the disclaimer keep mentioning that you are not Tempo?+
Try it with $1
The fastest way to understand TempoPay is to bridge a couple of dollars in and pay yourself. Click below to connect, then walk through Bridge in.