From ab5fe706aa0549ab86afa51c9c0fc1915da7b6d2 Mon Sep 17 00:00:00 2001 From: Liam Horne Date: Fri, 23 Jan 2026 11:46:32 -0500 Subject: [PATCH] docs: add EIP-4337 and EIP-7702 comparison pages Add two new pages explaining how Tempo Transactions achieve the goals of EIP-4337 and EIP-7702: - EIP-4337: fee sponsorship, batching, alt signatures without bundlers/paymasters - EIP-7702: extended delegation with P256/WebAuthn support Both pages link to relevant guides for implementation details. Amp-Thread-ID: https://ampcode.com/threads/T-019beb99-148a-71d1-8343-2a04815bd2fe Co-authored-by: Amp --- src/pages/protocol/transactions/eip-4337.mdx | 62 ++++++++++++++++++++ src/pages/protocol/transactions/eip-7702.mdx | 62 ++++++++++++++++++++ vocs.config.ts | 8 +++ 3 files changed, 132 insertions(+) create mode 100644 src/pages/protocol/transactions/eip-4337.mdx create mode 100644 src/pages/protocol/transactions/eip-7702.mdx diff --git a/src/pages/protocol/transactions/eip-4337.mdx b/src/pages/protocol/transactions/eip-4337.mdx new file mode 100644 index 00000000..535955a5 --- /dev/null +++ b/src/pages/protocol/transactions/eip-4337.mdx @@ -0,0 +1,62 @@ +--- +title: EIP-4337 Comparison +description: "How Tempo Transactions achieve EIP-4337 goals without bundlers, paymasters, or EntryPoint contracts." +--- + +# EIP-4337 and Tempo Transactions + +EIP-4337 introduced account abstraction to Ethereum through a system of bundlers, paymasters, and an EntryPoint contract. Tempo Transactions achieve the same goals through protocol-native features that require no additional infrastructure. + +## EIP-4337 Design Goals + +EIP-4337 enables several key capabilities for Ethereum accounts: + +- **Fee sponsorship**: Third parties can pay gas fees on behalf of users +- **Batched operations**: Multiple calls can execute atomically in one transaction +- **Alternative signatures**: Accounts can use signature schemes beyond secp256k1 +- **Custom validation**: Accounts can define arbitrary validation logic + +## How Tempo Achieves These Goals + +Tempo Transactions provide these capabilities at the protocol level. + +### Fee Sponsorship + +EIP-4337 requires deploying a Paymaster contract, funding it with ETH, and running or paying for bundler infrastructure. The Paymaster validates sponsorship requests and the bundler aggregates UserOperations. + +Tempo Transactions include a `fee_payer_signature` field directly in the transaction. A sponsor signs the transaction to agree to pay fees. The protocol validates both signatures and deducts fees from the sponsor. No contracts or infrastructure are required. See the [fee sponsorship guide](/guide/payments/sponsor-user-fees) for implementation details. + +### Batched Operations + +EIP-4337 bundles multiple UserOperations through an external bundler service. Each UserOperation can contain one call. + +Tempo Transactions include a native `calls` array. Multiple contract calls execute atomically in a single transaction. The protocol handles execution directly without external services. + +### Alternative Signatures + +EIP-4337 requires deploying a custom validation contract for each signature scheme. The contract must implement signature verification logic. + +Tempo Transactions natively support secp256k1, P256, and WebAuthn signatures. The protocol verifies these signatures directly. Passkey authentication works without custom contracts. See the [passkey accounts guide](/guide/use-accounts/embed-passkeys) for implementation details. + +### Gas Token Flexibility + +EIP-4337 Paymasters can accept alternative tokens but must convert them to ETH internally. + +Tempo Transactions pay fees directly in any USD stablecoin that has liquidity on the Fee AMM. No conversion infrastructure is needed. See the [stablecoin fees guide](/guide/payments/pay-fees-in-any-stablecoin) for implementation details. + +## Integration Comparison + +| Aspect | EIP-4337 | Tempo Transactions | +|--------|----------|-------------------| +| Contracts to deploy | EntryPoint, Paymaster, Account | None required | +| Infrastructure to run | Bundler service | None required | +| Fee payment | ETH via Paymaster | Any USD stablecoin | +| Signature verification | Custom validation contract | Protocol-native | + +## When to Use EIP-4337 on Tempo + +Tempo has the ERC-4337 EntryPoint contract deployed for projects that require compatibility with existing 4337 tooling. Consider using native Tempo Transactions for lower gas costs and simpler integration. + +## Getting Started + +To start using Tempo Transactions, see the [Tempo Transactions guide](/guide/tempo-transaction) for SDK integration in TypeScript, Rust, Go, and Python. For the full technical specification, see the [Tempo Transaction Specification](/protocol/transactions/spec-tempo-transaction). diff --git a/src/pages/protocol/transactions/eip-7702.mdx b/src/pages/protocol/transactions/eip-7702.mdx new file mode 100644 index 00000000..c79b7a79 --- /dev/null +++ b/src/pages/protocol/transactions/eip-7702.mdx @@ -0,0 +1,62 @@ +--- +title: EIP-7702 Comparison +description: "How Tempo Transactions extend EIP-7702 delegation with additional signature schemes and native features." +--- + +# EIP-7702 and Tempo Transactions + +EIP-7702 allows EOAs to delegate to smart contract code temporarily within a transaction. Tempo Transactions build on this foundation and extend it with additional capabilities. + +## EIP-7702 Design Goals + +EIP-7702 enables EOAs to: + +- **Delegate to contract code**: An EOA can execute as if it were a smart contract +- **Batch transactions**: Through delegation to a batching contract +- **Maintain EOA properties**: The account remains an EOA after the transaction + +## How Tempo Extends EIP-7702 + +Tempo Transactions support EIP-7702 style delegation through the `aa_authorization_list` field. This field follows EIP-7702 semantics for delegation and execution. + +### Extended Signature Support + +EIP-7702 on Ethereum only supports secp256k1 signatures for the authorization. + +Tempo extends this to support all Tempo signature types. Authorizations can be signed with secp256k1, P256, or WebAuthn. This enables delegation from passkey-based accounts. + +### Native Features Beyond Delegation + +EIP-7702 provides delegation as a building block. Applications must implement higher-level features through the delegated contract. + +Tempo Transactions include these features natively: + +- **Fee sponsorship**: Built into the transaction type, not requiring delegation. See the [fee sponsorship guide](/guide/payments/sponsor-user-fees). +- **Scheduled execution**: Native `validAfter` and `validBefore` timestamp windows for time-bounded transactions. +- **Parallelizable nonces**: Multiple nonce keys for concurrent transactions. See the [parallel transactions guide](/guide/payments/send-parallel-transactions). +- **Access keys**: Delegate signing to secondary keys with configurable permissions. See the [Account Keychain specification](/protocol/transactions/AccountKeychain). + +### Combining Delegation with Native Features + +Tempo Transactions can use EIP-7702 delegation alongside native features. An application can delegate an EOA to contract code while also using fee sponsorship and batched calls from the protocol. + +## Feature Comparison + +| Feature | EIP-7702 | Tempo Transactions | +|---------|----------|-------------------| +| EOA delegation | Yes | Yes | +| Signature schemes | secp256k1 only | secp256k1, P256, WebAuthn | +| Fee sponsorship | Via delegated contract | Native | +| Batching | Via delegated contract | Native | +| Scheduled execution | Not available | Native | +| Concurrent nonces | Not available | Native | + +## Implementation + +The `aa_authorization_list` field in Tempo Transactions contains authorizations that follow EIP-7702 structure. Each authorization delegates an account to a specified implementation contract and is signed by the account authority. + +For full details on the authorization format, see the [Tempo Transaction Specification](/protocol/transactions/spec-tempo-transaction). + +## Getting Started + +To start using Tempo Transactions, see the [Tempo Transactions guide](/guide/tempo-transaction) for SDK integration in TypeScript, Rust, Go, and Python. diff --git a/vocs.config.ts b/vocs.config.ts index bad1358e..2d82f699 100644 --- a/vocs.config.ts +++ b/vocs.config.ts @@ -344,6 +344,14 @@ export default defineConfig({ text: 'Specification', link: '/protocol/transactions/spec-tempo-transaction', }, + { + text: 'EIP-4337 Comparison', + link: '/protocol/transactions/eip-4337', + }, + { + text: 'EIP-7702 Comparison', + link: '/protocol/transactions/eip-7702', + }, { text: 'Account Keychain Precompile Specification', link: '/protocol/transactions/AccountKeychain',