Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
snario
pushed a commit
that referenced
this pull request
Feb 3, 2026
* chore: update AA Tx Type spec * chore: updates * chore: update
jenpaff
added a commit
that referenced
this pull request
Feb 5, 2026
* chore: `next` branch * chore: trigger deployment to `next` * chore: trigger deployment to `next` 2 * chore: trigger deployment to `next` 3 * feat: update to include release notes * test: e2e (#49) * chore: trigger deployment to `next` 2 * chore: trigger deployment to `next` 3 * chore: sync lockfile * docs(foundry): add T1 features - 2D nonces, expiring nonces, access keys, sponsors, batching (#55) Co-authored-by: George <george@tempo.xyz> * chore: add small Rust example for expiring nonces (#56) Co-authored-by: o-az <omaraziz.dev@proton.me> * fix: prioritize `VERCEL_BRANCH_URL` * chore: use `VITE_BASE_URL` * chore: use `VITE_BASE_URL` * docs(foundry): update tempo args to use --tempo. prefix, add anvil section (#70) Co-authored-by: Amp <amp@ampcode.com> Co-authored-by: zerosnacks <95942363+zerosnacks@users.noreply.github.com> * fix: change andantino from 'removed' to 'deprecated' Amp-Thread-ID: https://ampcode.com/threads/T-019c2e2d-fdda-704c-8ebe-8ed7cda6f2d0 Co-authored-by: Amp <amp@ampcode.com> * fix: update andantino to show as deprecated testnet with version Amp-Thread-ID: https://ampcode.com/threads/T-019c2e2d-fdda-704c-8ebe-8ed7cda6f2d0 Co-authored-by: Amp <amp@ampcode.com> * docs: foundryup tempo now installs all binaries (#74) * docs: foundryup tempo now installs all binaries Amp-Thread-ID: https://ampcode.com/threads/T-019c2eb5-2219-711d-9c64-e9cf0910e66c Co-authored-by: Amp <amp@ampcode.com> * fix: patch dead links in TIPs synced from tempo repo Amp-Thread-ID: https://ampcode.com/threads/T-019c2eb5-2219-711d-9c64-e9cf0910e66c Co-authored-by: Amp <amp@ampcode.com> * Add --sig run(string) SALT to forge script commands Amp-Thread-ID: https://ampcode.com/threads/T-019c2ec9-3bba-7717-9aba-e0ba0880f5da Co-authored-by: Amp <amp@ampcode.com> --------- Co-authored-by: Amp <amp@ampcode.com> * fix: update expiring nonces to use nonceKey: 'expiring' for TypeScript Amp-Thread-ID: https://ampcode.com/threads/T-019c2e2d-fdda-704c-8ebe-8ed7cda6f2d0 Co-authored-by: Amp <amp@ampcode.com> * docs: add expiring nonces and 2D nonces cards, improve parallel transactions guide Amp-Thread-ID: https://ampcode.com/threads/T-019c2f1f-0179-7247-8a12-ccb310a303ce Co-authored-by: Amp <amp@ampcode.com> --------- Co-authored-by: tmm <tmm@tmm.dev> Co-authored-by: Georgios Konstantopoulos <me@gakonst.com> Co-authored-by: George <george@tempo.xyz> Co-authored-by: onbjerg <onbjerg@users.noreply.github.com> Co-authored-by: Amp <amp@ampcode.com> Co-authored-by: zerosnacks <95942363+zerosnacks@users.noreply.github.com> Co-authored-by: jenpaff <jenpaff0@gmail.com> Co-authored-by: jxom <7336481+jxom@users.noreply.github.com>
unbalancedparentheses
pushed a commit
to unbalancedparentheses/tempo
that referenced
this pull request
Feb 23, 2026
# Account Abstraction Tx Type Complete updated spec here: tempoxyz/docs#49 **Note:** 1. 2D nonces have been disabled at the validation level for the current PR. Because it requires some higher complexity changes to the tx pool. 2. Authorization lists have been skipped in the current TxAA type, because we require a new type of 7702 Auth item, which can take in signatures from passkeys/P256 keys. This will be added in a separate PR. ## Abstract This spec introduces native protocol support for the following account abstraction features, using a new account abstraction tx type - * WebAuthn/P256 signature validation - enables passkey accounts * Parallelizable nonces - allows higher tx throughput for each account * Gas sponsorship - allows apps to pay for their users's transactions * Call Batching - allows users to multicall cheaply. * Scheduled Txs - allow users to specify a time window in which their tx can be executed ### Transaction Type A new EIP-2718 transaction type is introduced with the following structure: ```rust pub struct TxAA { // Standard EIP-1559 fields chain_id: U64, max_priority_fee_per_gas: U256, max_fee_per_gas: U256, gas_limit: U64, calls: Vec<Call>, // Batch of calls to execute access_list: Vec<AccessListItem>, // AA-specific fields nonce_key: U64, // 64 bit sequence keys (was U192, changed to U64 for simplicity) nonce: U64, // 64 bit current value of the sequence key // Optional features fee_token: Option<Address>, // Optional fee token preference fee_payer_signature: Option<Bytes>, // Sponsored transactions (secp256k1 only) valid_before: U64, // Transaction expiration timestamp (0 means no expiry) valid_after: Option<U64> // Transaction can only be included after this timestamp } // Call structure for batching pub struct Call { to: TxKind, // Can be Address or Create value: U256, input: Bytes // Calldata for the call } ``` ### Signature Types Three signature schemes are supported, identified by length: #### secp256k1 (65 bytes) ```rust type K1Sig = { r: bytes32, s: bytes32, v: uint8 } ``` #### P256 (129 bytes) ```rust type P256Sig = { r: bytes32, s: bytes32, pubKeyX: bytes32, pubKeyY: bytes32, preHash: bool } ``` Note: Some p256 implementers like Web Crypto, require the digests to be prehashed before verification. If this bool is set to `true`, then before verification `bytes32 digest = sha256(digest)` needs to be performed. #### WebAuthn (Variable length, max 2KB) ```rust type WebAuthnSig = { verificationData: bytes, // Variable length r: bytes32, s: bytes32, pubKeyX: bytes32, pubKeyY: bytes32 } ``` ### Address Derivation #### secp256k1 ```solidity address(uint160(uint256(keccak256(abi.encode(x, y))))) ``` #### P256 and WebAuthn ```solidity function deriveAddressFromP256(bytes32 pubKeyX, bytes32 pubKeyY) public pure returns (address) { // Hash bytes32 hash = keccak256(abi.encodePacked( pubKeyX, pubKeyY )); // Take last 20 bytes as address return address(uint160(uint256(hash))); } ``` --------- Co-authored-by: Arsenii Kulikov <klkvrr@gmail.com> Co-authored-by: jxom <7336481+jxom@users.noreply.github.com> Co-authored-by: rakita <rakita@users.noreply.github.com>
Zygimantass
pushed a commit
that referenced
this pull request
Apr 16, 2026
* docs: add Zones protocol documentation Add comprehensive documentation for the Tempo Zones feature: - Overview: architecture, zone creation, token management, fees - Bridging: deposits, withdrawals, encrypted deposits, composable callbacks - Privacy Zones: execution-level and RPC-level privacy protections - Proving: batch submission, verifier interface, ancestry proofs - Upgrades: hard fork activation, verifier rotation, failure modes Also updates the privacy learn page to reference Zones and adds a Zones card to the protocol index. Prompted by: dankrad Amp-Thread-ID: https://ampcode.com/threads/T-019d2a83-5a87-708e-b2cd-8aca731e0ae6 * docs(zones): rework overview with intro from design doc Incorporate the high-level intro, system architecture diagrams, contract architecture, trust model table, and creating a zone walkthrough from the zones design document. Prompted by: dankrad Amp-Thread-ID: https://ampcode.com/threads/T-019d2a83-5a87-708e-b2cd-8aca731e0ae6 * fix: escape angle bracket in MDX to fix build Replace '<10 seconds' with 'under 10 seconds' — the bare '<' was parsed as a JSX tag by the MDX compiler. Prompted by: dankrad Amp-Thread-ID: https://ampcode.com/threads/T-019d2a83-5a87-708e-b2cd-8aca731e0ae6 * docs(zones): convert ASCII art to mermaid diagrams Replace ASCII art illustrations with native mermaid code blocks, matching the pattern used in validator-config-v1.mdx and validator-config-v2.mdx. Prompted by: dankrad Amp-Thread-ID: https://ampcode.com/threads/T-019d2a83-5a87-708e-b2cd-8aca731e0ae6 * docs(zones): add note that prover is not yet live Prompted by: dankrad Amp-Thread-ID: https://ampcode.com/threads/T-019d2a83-5a87-708e-b2cd-8aca731e0ae6 * docs(zones): clarify withdrawal queue slots contain multiple withdrawals Prompted by: dankrad Amp-Thread-ID: https://ampcode.com/threads/T-019d2a83-5a87-708e-b2cd-8aca731e0ae6 * fix(zones): fix mermaid diagram rendering - Replace \n with <br/> for multi-line node labels (mermaid requires HTML) - Reorder edge definitions before subgraphs to fix withdrawal arrow routing through ZoneFactory instead of ZonePortal - Remove redundant edge labels for cleaner system architecture diagram Prompted by: dankrad Amp-Thread-ID: https://ampcode.com/threads/T-019d2a83-5a87-708e-b2cd-8aca731e0ae6 * docs(zones): remove queue design rationale paragraph Prompted by: dankrad Amp-Thread-ID: https://ampcode.com/threads/T-019d2a83-5a87-708e-b2cd-8aca731e0ae6 * docs(zones): rewrite privacy page, split RPC into own page All zones are private by design — rewrite the privacy page to reflect this rather than treating privacy as a special variant. Move the RPC specification (auth tokens, method access control, timing side channels, event filtering, error codes) into a dedicated /protocol/zones/rpc page. Prompted by: dankrad Amp-Thread-ID: https://ampcode.com/threads/T-019d2a83-5a87-708e-b2cd-8aca731e0ae6 * docs(zones): remove incorrect contract creation rationale Prompted by: dankrad Amp-Thread-ID: https://ampcode.com/threads/T-019d2a83-5a87-708e-b2cd-8aca731e0ae6 * docs(zones): wording fix in proving page Prompted by: dankrad Amp-Thread-ID: https://ampcode.com/threads/T-019d2a83-5a87-708e-b2cd-8aca731e0ae6 * docs(zones): wording fix for ancestry proofs Prompted by: dankrad Amp-Thread-ID: https://ampcode.com/threads/T-019d2a83-5a87-708e-b2cd-8aca731e0ae6 * docs(zones): note encrypted deposits exception for quantum security Prompted by: dankrad Amp-Thread-ID: https://ampcode.com/threads/T-019d2a83-5a87-708e-b2cd-8aca731e0ae6 * Refine overview.mdx (#52) * Refine overview.mdx - consistent terminology (zone vs tempo L1, as opposed to chain, main chain etc). - minor nits/ rewording * Apply suggestion from @dankrad * Apply suggestion from @dankrad --------- Co-authored-by: dankrad <mail@dankradfeist.de> * Update privacy.md for clarity and terminology (#53) * Update privacy.md for clarity and terminology * Apply suggestion from @dankrad --------- Co-authored-by: dankrad <mail@dankradfeist.de> * minor nits in proving.mdx (#54) * Update src/pages/learn/tempo/privacy.mdx Co-authored-by: Daniel Robinson <danrobinson010@gmail.com> * Apply suggestion from @dankrad * Apply suggestion from @dankrad * Apply suggestion from @dankrad * Apply suggestion from @malleshpai Co-authored-by: malleshpai <mallesh.pai@gmail.com> * Apply suggestion from @dankrad * Apply suggestion from @danrobinson Co-authored-by: Daniel Robinson <danrobinson010@gmail.com> * Apply suggestion from @danrobinson Co-authored-by: Daniel Robinson <danrobinson010@gmail.com> * Apply suggestion from @danrobinson Co-authored-by: Daniel Robinson <danrobinson010@gmail.com> * Apply suggestion from @dankrad * Apply suggestion from @danrobinson Co-authored-by: Daniel Robinson <danrobinson010@gmail.com> * Apply suggestion from @dankrad * Apply suggestion from @dankrad * Apply suggestion from @dankrad * Restructure Tempo Zones docs: new IA, terminology fixes (#56) * Restructure Tempo Zones documentation Split the zones overview into a proper information architecture: - New overview page with key properties and spec navigation cards - Architecture page (extracted from old overview, structural content) - Accounts page (extracted from old privacy, EVM-level access control) - Execution & Gas page (consolidated from overview + privacy) - Remove standalone privacy page (content split into accounts + overview) Terminology changes across all zone pages: - 'L1'/'L2' replaced with 'Tempo Mainnet' throughout - 'Zones' replaced with 'Tempo Zones' in prose - Em dashes replaced with commas and periods - Sidebar label changed from 'Zones' to 'Tempo Zones' - Specification pages grouped under a 'Specification' sidebar header Adds 301 redirects for /protocol/zones/overview and /protocol/zones/privacy. Amp-Thread-ID: https://ampcode.com/threads/T-019d4538-30c7-74ad-b74c-efcb7249e5fe Co-authored-by: Amp <amp@ampcode.com> * Apply review suggestions from base branch - non-custodial → safe from theft - EVM level → contract level - Remove 'Both layers are required' (redundant with next sentence) - Add 'for TIP-20s' to balanceOf restriction - Remove sentence about synchronous L1 state reads from architecture intro - Sequencer management 'is centralized' → 'happens' - 'opt-in privacy' → 'privacy' - Authorization token max 30 minutes → 1 month - Update replay protection fields (remove portal address, add zone 0 wildcard) - 'Zones disable' → 'Zones currently disable' CREATE opcodes Amp-Thread-ID: https://ampcode.com/threads/T-019d492e-f36b-721a-99bd-57b64f8a6e03 Co-authored-by: Amp <amp@ampcode.com> --------- Co-authored-by: Amp <amp@ampcode.com> * docs: remove spec-only sections from zones docs Remove Deposit Queue, Withdrawal Queue, and Queue Design sections from bridging.mdx. Remove entire upgrades.mdx page and its sidebar entry. These belong in the formal specs, not user-facing docs. Co-authored-by: dankrad <6130607+dankrad@users.noreply.github.com> Amp-Thread-ID: https://ampcode.com/threads/T-019d4a8c-806c-7245-9d32-9ee4a96b2ae3 * docs: rename zones sidebar section from Specification to Reference Co-authored-by: dankrad <6130607+dankrad@users.noreply.github.com> Amp-Thread-ID: https://ampcode.com/threads/T-019d4a8c-806c-7245-9d32-9ee4a96b2ae3 * Apply suggestions from code review Co-authored-by: dankrad <mail@dankradfeist.de> * Apply suggestion from @dankrad * Apply suggestions from code review Co-authored-by: dankrad <mail@dankradfeist.de> * Apply suggestions from code review Co-authored-by: dankrad <mail@dankradfeist.de> * Apply suggestions from code review Co-authored-by: dankrad <mail@dankradfeist.de> * Apply suggestions from code review Co-authored-by: dankrad <mail@dankradfeist.de> * Apply suggestions from code review Co-authored-by: dankrad <mail@dankradfeist.de> * Apply suggestion from @dankrad * docs: remove dead link to upgrades page Prompted by: dankrad Amp-Thread-ID: https://ampcode.com/threads/T-019d63e4-5fa8-766b-bdd9-05ad92044c04 * docs: remove 'withdraw at any time' claims Prompted by: dankrad Amp-Thread-ID: https://ampcode.com/threads/T-019d63e4-5fa8-766b-bdd9-05ad92044c04 * Apply suggestions from code review Co-authored-by: dankrad <mail@dankradfeist.de> --------- Co-authored-by: malleshpai <mallesh.pai@gmail.com> Co-authored-by: dankrad <mail@dankradfeist.de> Co-authored-by: Daniel Robinson <danrobinson010@gmail.com> Co-authored-by: Liam Horne <liam@lihorne.com> Co-authored-by: Amp <amp@ampcode.com> Co-authored-by: dankrad <6130607+dankrad@users.noreply.github.com>
Zygimantass
added a commit
that referenced
this pull request
Apr 16, 2026
* docs: add Zones protocol documentation (#49) * docs: add Zones protocol documentation Add comprehensive documentation for the Tempo Zones feature: - Overview: architecture, zone creation, token management, fees - Bridging: deposits, withdrawals, encrypted deposits, composable callbacks - Privacy Zones: execution-level and RPC-level privacy protections - Proving: batch submission, verifier interface, ancestry proofs - Upgrades: hard fork activation, verifier rotation, failure modes Also updates the privacy learn page to reference Zones and adds a Zones card to the protocol index. Prompted by: dankrad Amp-Thread-ID: https://ampcode.com/threads/T-019d2a83-5a87-708e-b2cd-8aca731e0ae6 * docs(zones): rework overview with intro from design doc Incorporate the high-level intro, system architecture diagrams, contract architecture, trust model table, and creating a zone walkthrough from the zones design document. Prompted by: dankrad Amp-Thread-ID: https://ampcode.com/threads/T-019d2a83-5a87-708e-b2cd-8aca731e0ae6 * fix: escape angle bracket in MDX to fix build Replace '<10 seconds' with 'under 10 seconds' — the bare '<' was parsed as a JSX tag by the MDX compiler. Prompted by: dankrad Amp-Thread-ID: https://ampcode.com/threads/T-019d2a83-5a87-708e-b2cd-8aca731e0ae6 * docs(zones): convert ASCII art to mermaid diagrams Replace ASCII art illustrations with native mermaid code blocks, matching the pattern used in validator-config-v1.mdx and validator-config-v2.mdx. Prompted by: dankrad Amp-Thread-ID: https://ampcode.com/threads/T-019d2a83-5a87-708e-b2cd-8aca731e0ae6 * docs(zones): add note that prover is not yet live Prompted by: dankrad Amp-Thread-ID: https://ampcode.com/threads/T-019d2a83-5a87-708e-b2cd-8aca731e0ae6 * docs(zones): clarify withdrawal queue slots contain multiple withdrawals Prompted by: dankrad Amp-Thread-ID: https://ampcode.com/threads/T-019d2a83-5a87-708e-b2cd-8aca731e0ae6 * fix(zones): fix mermaid diagram rendering - Replace \n with <br/> for multi-line node labels (mermaid requires HTML) - Reorder edge definitions before subgraphs to fix withdrawal arrow routing through ZoneFactory instead of ZonePortal - Remove redundant edge labels for cleaner system architecture diagram Prompted by: dankrad Amp-Thread-ID: https://ampcode.com/threads/T-019d2a83-5a87-708e-b2cd-8aca731e0ae6 * docs(zones): remove queue design rationale paragraph Prompted by: dankrad Amp-Thread-ID: https://ampcode.com/threads/T-019d2a83-5a87-708e-b2cd-8aca731e0ae6 * docs(zones): rewrite privacy page, split RPC into own page All zones are private by design — rewrite the privacy page to reflect this rather than treating privacy as a special variant. Move the RPC specification (auth tokens, method access control, timing side channels, event filtering, error codes) into a dedicated /protocol/zones/rpc page. Prompted by: dankrad Amp-Thread-ID: https://ampcode.com/threads/T-019d2a83-5a87-708e-b2cd-8aca731e0ae6 * docs(zones): remove incorrect contract creation rationale Prompted by: dankrad Amp-Thread-ID: https://ampcode.com/threads/T-019d2a83-5a87-708e-b2cd-8aca731e0ae6 * docs(zones): wording fix in proving page Prompted by: dankrad Amp-Thread-ID: https://ampcode.com/threads/T-019d2a83-5a87-708e-b2cd-8aca731e0ae6 * docs(zones): wording fix for ancestry proofs Prompted by: dankrad Amp-Thread-ID: https://ampcode.com/threads/T-019d2a83-5a87-708e-b2cd-8aca731e0ae6 * docs(zones): note encrypted deposits exception for quantum security Prompted by: dankrad Amp-Thread-ID: https://ampcode.com/threads/T-019d2a83-5a87-708e-b2cd-8aca731e0ae6 * Refine overview.mdx (#52) * Refine overview.mdx - consistent terminology (zone vs tempo L1, as opposed to chain, main chain etc). - minor nits/ rewording * Apply suggestion from @dankrad * Apply suggestion from @dankrad --------- Co-authored-by: dankrad <mail@dankradfeist.de> * Update privacy.md for clarity and terminology (#53) * Update privacy.md for clarity and terminology * Apply suggestion from @dankrad --------- Co-authored-by: dankrad <mail@dankradfeist.de> * minor nits in proving.mdx (#54) * Update src/pages/learn/tempo/privacy.mdx Co-authored-by: Daniel Robinson <danrobinson010@gmail.com> * Apply suggestion from @dankrad * Apply suggestion from @dankrad * Apply suggestion from @dankrad * Apply suggestion from @malleshpai Co-authored-by: malleshpai <mallesh.pai@gmail.com> * Apply suggestion from @dankrad * Apply suggestion from @danrobinson Co-authored-by: Daniel Robinson <danrobinson010@gmail.com> * Apply suggestion from @danrobinson Co-authored-by: Daniel Robinson <danrobinson010@gmail.com> * Apply suggestion from @danrobinson Co-authored-by: Daniel Robinson <danrobinson010@gmail.com> * Apply suggestion from @dankrad * Apply suggestion from @danrobinson Co-authored-by: Daniel Robinson <danrobinson010@gmail.com> * Apply suggestion from @dankrad * Apply suggestion from @dankrad * Apply suggestion from @dankrad * Restructure Tempo Zones docs: new IA, terminology fixes (#56) * Restructure Tempo Zones documentation Split the zones overview into a proper information architecture: - New overview page with key properties and spec navigation cards - Architecture page (extracted from old overview, structural content) - Accounts page (extracted from old privacy, EVM-level access control) - Execution & Gas page (consolidated from overview + privacy) - Remove standalone privacy page (content split into accounts + overview) Terminology changes across all zone pages: - 'L1'/'L2' replaced with 'Tempo Mainnet' throughout - 'Zones' replaced with 'Tempo Zones' in prose - Em dashes replaced with commas and periods - Sidebar label changed from 'Zones' to 'Tempo Zones' - Specification pages grouped under a 'Specification' sidebar header Adds 301 redirects for /protocol/zones/overview and /protocol/zones/privacy. Amp-Thread-ID: https://ampcode.com/threads/T-019d4538-30c7-74ad-b74c-efcb7249e5fe Co-authored-by: Amp <amp@ampcode.com> * Apply review suggestions from base branch - non-custodial → safe from theft - EVM level → contract level - Remove 'Both layers are required' (redundant with next sentence) - Add 'for TIP-20s' to balanceOf restriction - Remove sentence about synchronous L1 state reads from architecture intro - Sequencer management 'is centralized' → 'happens' - 'opt-in privacy' → 'privacy' - Authorization token max 30 minutes → 1 month - Update replay protection fields (remove portal address, add zone 0 wildcard) - 'Zones disable' → 'Zones currently disable' CREATE opcodes Amp-Thread-ID: https://ampcode.com/threads/T-019d492e-f36b-721a-99bd-57b64f8a6e03 Co-authored-by: Amp <amp@ampcode.com> --------- Co-authored-by: Amp <amp@ampcode.com> * docs: remove spec-only sections from zones docs Remove Deposit Queue, Withdrawal Queue, and Queue Design sections from bridging.mdx. Remove entire upgrades.mdx page and its sidebar entry. These belong in the formal specs, not user-facing docs. Co-authored-by: dankrad <6130607+dankrad@users.noreply.github.com> Amp-Thread-ID: https://ampcode.com/threads/T-019d4a8c-806c-7245-9d32-9ee4a96b2ae3 * docs: rename zones sidebar section from Specification to Reference Co-authored-by: dankrad <6130607+dankrad@users.noreply.github.com> Amp-Thread-ID: https://ampcode.com/threads/T-019d4a8c-806c-7245-9d32-9ee4a96b2ae3 * Apply suggestions from code review Co-authored-by: dankrad <mail@dankradfeist.de> * Apply suggestion from @dankrad * Apply suggestions from code review Co-authored-by: dankrad <mail@dankradfeist.de> * Apply suggestions from code review Co-authored-by: dankrad <mail@dankradfeist.de> * Apply suggestions from code review Co-authored-by: dankrad <mail@dankradfeist.de> * Apply suggestions from code review Co-authored-by: dankrad <mail@dankradfeist.de> * Apply suggestions from code review Co-authored-by: dankrad <mail@dankradfeist.de> * Apply suggestion from @dankrad * docs: remove dead link to upgrades page Prompted by: dankrad Amp-Thread-ID: https://ampcode.com/threads/T-019d63e4-5fa8-766b-bdd9-05ad92044c04 * docs: remove 'withdraw at any time' claims Prompted by: dankrad Amp-Thread-ID: https://ampcode.com/threads/T-019d63e4-5fa8-766b-bdd9-05ad92044c04 * Apply suggestions from code review Co-authored-by: dankrad <mail@dankradfeist.de> --------- Co-authored-by: malleshpai <mallesh.pai@gmail.com> Co-authored-by: dankrad <mail@dankradfeist.de> Co-authored-by: Daniel Robinson <danrobinson010@gmail.com> Co-authored-by: Liam Horne <liam@lihorne.com> Co-authored-by: Amp <amp@ampcode.com> Co-authored-by: dankrad <6130607+dankrad@users.noreply.github.com> * feat: add zone demos (#59) * feat: add zone demos * feat: add private zone verification flows Amp-Thread-ID: https://ampcode.com/threads/T-019d4ec2-4960-75dd-81a1-67ebed584a50 Co-authored-by: Amp <amp@ampcode.com> * fix: polish * feat: encryption and other fixes * fix: polish * fix: make steps sticky until restart * fix: build * fix: passkeys * fix: remove stage info * fix: polish * fix: json --------- Co-authored-by: Amp <amp@ampcode.com> * fix: types * chore: add banner * fix: refactor with latest viem * feat: add send across zones * feat: reuse auth token * fix: suppress spurious zone auth error Amp-Thread-ID: https://ampcode.com/threads/T-019d70b3-ae75-70de-bfc1-cdcdc45deafb Co-authored-by: Amp <amp@ampcode.com> * fix: widen zone settlement detection Amp-Thread-ID: https://ampcode.com/threads/T-019d70b3-ae75-70de-bfc1-cdcdc45deafb Co-authored-by: Amp <amp@ampcode.com> * fix: stop linking zone receipts to explorer Amp-Thread-ID: https://ampcode.com/threads/T-019d70b3-ae75-70de-bfc1-cdcdc45deafb Co-authored-by: Amp <amp@ampcode.com> * docs: reorder zones security sections Improve the zones overview flow by grouping the theft-safety explanation after the compliance guarantees. Made-with: Cursor * docs: merge zone RPC method tables Simplify the zone RPC access control docs by combining allowed and scoped methods into a single table with explicit access types. Made-with: Cursor * docs: add zone execution flow diagram Clarify the execution and gas model by adding a Mermaid diagram that shows validation, gas selection, execution, and fee settlement. Made-with: Cursor * feat: add StaticMermaidDiagram component for consistent diagram styling (#62) * feat: add StaticMermaidDiagram component for consistent diagram styling - New StaticMermaidDiagram component that uses the mermaid library with theme colors from the existing MermaidDiagram component - Uses site's system sans-serif font instead of monospace - Compact node spacing and padding matching the docs design - Supports dark/light mode via THEMES from MermaidDiagram - Replaces raw mermaid code blocks in architecture.mdx and execution.mdx * fix: improve dark mode contrast for StaticMermaidDiagram - Lighter node backgrounds (#2e2e33) so they stand out from page bg - Stronger borders (#52525b) for both nodes and clusters - Darker cluster background (#1e1e22) for depth separation * docs: move execution flow diagram to proving Correct the zone docs by placing the execution flow diagram on the proving page and removing it from the execution page. Made-with: Cursor * feat: add connect-to-a-zone page * fix: bump viem * fix: withdraws * docs: add zone architecture diagrams with descriptive names (#61) * docs: add static zone architecture diagrams Place 7 SVG diagrams across the zones guide and protocol pages. * fix: add HB Set + Pilat fonts for SVG rendering, fix diagram placement - Add woff2 font files (HB Set v0.96 Light/Medium, Pilat Regular/Demi/Bold) to public/fonts/ with @font-face declarations in _root.css so SVG text renders correctly on Vercel (not just macOS) - Move diagram-f (Privacy Flow) from guide/private-zones/index to protocol/zones/index under "Tempo Zones are private" where it fits the surrounding copy better * docs: add diagram-h to zones overview after intro paragraph * docs: add diagram-b under deposit two-phase settlement * docs: move diagram-b above ZonePortal intro paragraph * docs: add diagram-b to withdrawals page * fix: embed fonts directly in SVGs so they render in img tags on Vercel * docs: add diagram-e to token management, diagram-f to bridging overview * Update index.mdx * refactor: replace lettered diagrams with named SVGs, remove font deps - Replace diagram-a..h with descriptive names (diagram-node, diagram-deposit, diagram-overview, diagram-privacy, diagram-swap, diagram-tip20, diagram-withdraw) - New SVGs use outlined text (no font embedding needed) - Remove @font-face imports from _root.css and woff2 files from public/fonts/ - Remove diagram-d from send-across-zones (no named equivalent) - Use diagram-withdraw on withdraw page instead of diagram-deposit * docs: add diagram-overview to Connect to Tempo Zones guide * docs: use diagram-contracts under Contract Architecture * fix: update wording --------- Co-authored-by: Zygimantas <5236121+Zygimantass@users.noreply.github.com> Co-authored-by: Derek Cofausper <256792747+decofe@users.noreply.github.com> * fix: zone renamings * feat: cleanup * fix: rebase * fix: unblock CI for custom viem build * fix: deps * fix: correctness --------- Co-authored-by: Derek Cofausper <256792747+decofe@users.noreply.github.com> Co-authored-by: malleshpai <mallesh.pai@gmail.com> Co-authored-by: dankrad <mail@dankradfeist.de> Co-authored-by: Daniel Robinson <danrobinson010@gmail.com> Co-authored-by: Liam Horne <liam@lihorne.com> Co-authored-by: Amp <amp@ampcode.com> Co-authored-by: dankrad <6130607+dankrad@users.noreply.github.com> Co-authored-by: Brendan Ryan <brendanjryan@users.noreply.github.com> Co-authored-by: achalvs <achal@achal.me>
tx-tomcat
pushed a commit
to Magnus-Foundation/magnus
that referenced
this pull request
Apr 18, 2026
# Account Abstraction Tx Type Complete updated spec here: tempoxyz/docs#49 **Note:** 1. 2D nonces have been disabled at the validation level for the current PR. Because it requires some higher complexity changes to the tx pool. 2. Authorization lists have been skipped in the current TxAA type, because we require a new type of 7702 Auth item, which can take in signatures from passkeys/P256 keys. This will be added in a separate PR. ## Abstract This spec introduces native protocol support for the following account abstraction features, using a new account abstraction tx type - * WebAuthn/P256 signature validation - enables passkey accounts * Parallelizable nonces - allows higher tx throughput for each account * Gas sponsorship - allows apps to pay for their users's transactions * Call Batching - allows users to multicall cheaply. * Scheduled Txs - allow users to specify a time window in which their tx can be executed ### Transaction Type A new EIP-2718 transaction type is introduced with the following structure: ```rust pub struct TxAA { // Standard EIP-1559 fields chain_id: U64, max_priority_fee_per_gas: U256, max_fee_per_gas: U256, gas_limit: U64, calls: Vec<Call>, // Batch of calls to execute access_list: Vec<AccessListItem>, // AA-specific fields nonce_key: U64, // 64 bit sequence keys (was U192, changed to U64 for simplicity) nonce: U64, // 64 bit current value of the sequence key // Optional features fee_token: Option<Address>, // Optional fee token preference fee_payer_signature: Option<Bytes>, // Sponsored transactions (secp256k1 only) valid_before: U64, // Transaction expiration timestamp (0 means no expiry) valid_after: Option<U64> // Transaction can only be included after this timestamp } // Call structure for batching pub struct Call { to: TxKind, // Can be Address or Create value: U256, input: Bytes // Calldata for the call } ``` ### Signature Types Three signature schemes are supported, identified by length: #### secp256k1 (65 bytes) ```rust type K1Sig = { r: bytes32, s: bytes32, v: uint8 } ``` #### P256 (129 bytes) ```rust type P256Sig = { r: bytes32, s: bytes32, pubKeyX: bytes32, pubKeyY: bytes32, preHash: bool } ``` Note: Some p256 implementers like Web Crypto, require the digests to be prehashed before verification. If this bool is set to `true`, then before verification `bytes32 digest = sha256(digest)` needs to be performed. #### WebAuthn (Variable length, max 2KB) ```rust type WebAuthnSig = { verificationData: bytes, // Variable length r: bytes32, s: bytes32, pubKeyX: bytes32, pubKeyY: bytes32 } ``` ### Address Derivation #### secp256k1 ```solidity address(uint160(uint256(keccak256(abi.encode(x, y))))) ``` #### P256 and WebAuthn ```solidity function deriveAddressFromP256(bytes32 pubKeyX, bytes32 pubKeyY) public pure returns (address) { // Hash bytes32 hash = keccak256(abi.encodePacked( pubKeyX, pubKeyY )); // Take last 20 bytes as address return address(uint160(uint256(hash))); } ``` --------- Co-authored-by: Arsenii Kulikov <klkvrr@gmail.com> Co-authored-by: jxom <7336481+jxom@users.noreply.github.com> Co-authored-by: rakita <rakita@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds e2e test setup