On-chain proof
Every capability below is exercised by the live app on Tempo mainnet (chain 4217); where a transaction exists, the link opens in the public block explorer and needs no account. Settlement tokens: pathUSD and USDC.e.
| Capability | What it does | Evidence |
|---|---|---|
| Tempo transaction (type 0x76) | Transfers are submitted as native Tempo transactions, not legacy EVM transactions. | Tx 0x4f5751ec…34803765 (block 31214680) |
| Fee sponsorship | The sender holds no gas token. A dedicated fee payer covers gas; gasUsed on this receipt was 849110 and the sender's balance moved only by the transferred amount. | Same receipt — feePayer set, sender paid 0.01 pathUSD only |
| Access keys (no ERC-4337) | A passkey authorizes a spend-capped, expiring access key so deferred flows — scheduled payments and recurring subscriptions — can execute later without a new biometric prompt. Interactive sends always take the passkey path. | First access-key transfer — includes key-authorization state creation |
| TIP-20 transfer memo | Payments carry a 32-byte memo end to end; the receipt page decodes it back to text. | transferWithMemo path — see any /tx/[hash] receipt |
| Atomic batch | Split payments and .pay name registration (approve + register) are submitted as one atomic batch, so a partial charge is impossible. | forceAtomic batch — hash shown in-app after each send |
| Expiring nonce (TIP-1009) | POS QR codes carry nonceKey + validBefore; a scan after the deadline is rejected by the chain rather than by the UI. | Deadline written into every POS QR |
| Own contract on mainnet | FluxusNameService (.pay names) is deployed and owned by a dedicated cold key. | 0xE970a7705875620A47aF747492078e31cF00CCb5 |
| HTTP 402 machine payments (MPP) | Paid agent endpoints answer with a payment challenge, settle in pathUSD, and return a signed receipt. Replayed credentials get a fresh 402, never a 200. | Runnable request/response examples in the developer docs |
How to verify
Open any link above in https://explore.tempo.xyz, or reproduce the machine-payment flow yourself with the copy-paste requests in the developer docs. The application source is not public; these transactions and the deployed contract are.