Virtual (forwarding) addresses
Virtual addresses are a protocol-level construct (TIP-1022) that lets a business register one master wallet and derive unlimited customer-specific deposit addresses offline.
Funds sent to a virtual address are resolved to the master wallet and credited directly — there are no sweep transactions and no per-address on-chain state. For a business assigning a unique deposit address to every customer, this avoids the state bloat (and the gas) that per-address accounts would incur under Tempo's TIP-1000 schedule. It is the recommended pattern for high-volume deposit flows.
MPP Sessions: the two-transaction model
MPP Sessions are the scaling mechanism of the Machine Payments Protocol. They collapse many micropayments into exactly two on-chain transactions, regardless of how many payments occur in between:
- Open — the client deposits funds into an on-chain escrow contract to open the session.
- Settle (Close) — the server submits the final signed voucher on-chain; unused funds return to the client's wallet.
Everything between those two transactions happens off-chain.
Vouchers and scale
Between open and settle, each payment is an off-chain signed voucher carrying an incrementing cumulative amount. Each new voucher supersedes the previous one, and the server verifies the cryptographic signature in microseconds — no blockchain latency and no fee for intermediate vouchers.
Tempo states that this design lets the underlying payment rails scale to 1 million TPS and beyond. It works on Tempo specifically because sub-second deterministic finality makes the open and settle transactions confirm quickly, sub-cent fees make the two on-chain transactions negligible, and Payment Lanes guarantee blockspace for session operations.