0x76) are Tempo’s native transaction format that provides built-in smart account features without requiring proxy contracts or relayers.
Tempo Transactions eliminate the need for external account abstraction infrastructure by enshrining key features directly in the protocol.
Overview
While Tempo supports standard Ethereum transaction types for compatibility, Tempo Transactions unlock powerful payment-focused features:Batched Operations
Execute multiple calls atomically in a single transaction — perfect for payroll, settlements, and multi-party payments.
Fee Sponsorship
Apps can pay gas fees for users, enabling seamless onboarding without requiring users to hold fee tokens.
Scheduled Payments
Protocol-level time windows for recurring payments and timed disbursements with
validBefore/validAfter fields.Modern Auth
Native support for passkeys via WebAuthn/P256 — use biometrics, secure enclave, and cross-device sync instead of seed phrases.
Transaction Structure
Batched Payments
Execute multiple operations atomically — if any call fails, the entire batch reverts.Use Cases
- Payroll: Pay hundreds of employees in a single transaction
- Settlements: Batch multiple invoices or refunds atomically
- Multi-step DeFi: Swap + transfer + stake in one transaction
- Marketplace: Purchase multiple items with atomic payment
Fee Sponsorship
Apps can pay transaction fees on behalf of users by providing afee_payer_signature.
How It Works
Implementation
- User signs transaction without
fee_tokenfield - Fee payer adds
fee_tokenand signs commitment - User’s signature remains valid regardless of fee token chosen
- Fee payer pays gas; user pays for state changes
Fee sponsorship requires secp256k1 signatures for the fee payer. Users can use any supported signature type (secp256k1, P256, WebAuthn).
Sponsorship Strategies
Full Sponsorship
Full Sponsorship
App pays all gas fees. Best for onboarding flows and promotional campaigns.Rate limiting: Implement per-user quotas to prevent abuse.
Conditional Sponsorship
Conditional Sponsorship
Sponsor transactions meeting specific criteria (minimum amount, specific tokens, etc.).Business logic: Verify conditions before signing as fee payer.
Metered Sponsorship
Metered Sponsorship
Track sponsored gas and bill users later or deduct from platform credits.Accounting: Store sponsored amounts in your database for reconciliation.
Scheduled Payments
Transactions can specify validity time windows usingvalidBefore and validAfter.
Behavior
- validAfter: Transaction can only be included in blocks with
timestamp >= validAfter - validBefore: Transaction can only be included in blocks with
timestamp < validBefore - Both timestamps are Unix seconds (not milliseconds)
Use Cases
Recurring Payments
Pre-sign monthly rent or subscription payments that execute automatically.
Embargoed Transfers
Transfer funds that become available at a specific time (vesting, escrow release).
Time-Limited Offers
Create offers that expire if not accepted within a time window.
Delayed Execution
Submit transactions now that execute later (e.g., after an event).
2D Nonce System
Tempo’s 2D nonce system enables parallel transaction submission from the same account.How It Works
Nonce Keys
- Key 0 (protocol nonce): Sequential nonce like Ethereum, managed automatically by wallets
- Keys 1-N (user nonces): Independent nonce sequences you control
Example: Parallel Operations
- Submit multiple transactions without waiting for confirmation
- Separate nonce streams for different application features
- No head-of-line blocking from stuck transactions
Expiring Nonces
For non-sequential replay protection (e.g., gasless signed intents), use:Expiring nonces use the transaction hash for replay protection instead of sequential nonces. The
validBefore window must be ≤30 seconds.Passkey Support (WebAuthn/P256)
Tempo natively supports passkeys for transaction signing, enabling biometric authentication without seed phrases.Signature Types
secp256k1
Standard Ethereum signatures. 65 bytes. Compatible with all existing wallets.
P256
Hardware-backed signing (Secure Enclave, TPM). 129 bytes. Device-native security.
WebAuthn
Browser/OS passkeys with biometric auth. Variable size. Best UX, cross-device sync.
P256 Example
WebAuthn Example
Passkey addresses are deterministically derived from the public key, so the same passkey always produces the same address.
Address Derivation
EIP-7702 Authorization Lists
Tempo supports EIP-7702 delegation with Tempo signature types, enabling temporary smart account features:- Temporary contract wallet behavior (batching, hooks, etc.)
- Transaction-scoped logic without deploying a contract
- Mix standard EOA with smart account features
Transaction Lifecycle
Validation Rules
- Calls: At least one call required (empty batch rejected)
- CREATE: Only first call can be CREATE; all others must be CALL
- Nonce: Must match current nonce for the nonce_key
- Time: Current block timestamp must satisfy
validAfterandvalidBefore - Gas: Sufficient balance to cover
max_fee_per_gas × gas_limit - Signature: Valid signature from sender or authorized key
Cost Analysis
| Operation | Gas Cost | USD (0.1¢ per 50k gas) |
|---|---|---|
| TIP-20 transfer (1 call) | ~50,000 | $0.001 (0.1¢) |
| Batch transfer (10 calls) | ~350,000 | $0.007 (0.7¢) |
| First use of new account | ~300,000 | $0.006 (0.6¢) |
| Scheduled payment | ~52,000 | $0.001 (0.1¢) |
| Fee sponsored tx | ~50,000 | $0.001 (0.1¢) |
Gas efficiency: Batching 10 transfers costs ~35k gas per transfer vs 50k individually — a 30% savings.
Migration from Ethereum
Converting Legacy Transactions
Ethereum transactions can be wrapped as Tempo Transactions:Best Practices
Use Protocol Nonce (Key 0) for Simple Cases
Use Protocol Nonce (Key 0) for Simple Cases
For straightforward transfers and contract calls, stick with
nonce_key = 0 for automatic nonce management by wallets.Reserve Nonce Keys for Parallel Streams
Reserve Nonce Keys for Parallel Streams
Only use keys 1+ when you need true parallelism (e.g., separate payment streams, order book operations).
Always Handle Atomic Batch Failures
Always Handle Atomic Batch Failures
Design your application to gracefully handle batch reversion — implement retry logic or partial execution handling.
Rate Limit Fee Sponsorship
Rate Limit Fee Sponsorship
Implement per-user quotas and transaction review before sponsoring fees to prevent abuse.
SDK Support
TypeScript SDK
Full support for Tempo Transactions including batching, sponsorship, and passkeys.
Rust SDK
Type-safe Tempo transaction construction with Alloy integration.
Go SDK
Native Go bindings for Tempo transaction types.
Foundry
Smart contract testing with Tempo transaction support.