Search

Search projects, tokens and protocols by name or address

Privacy

About

A shielded ledger on Aztec Network for DAI payments and sUSDS savings, with funds escrowed on Ethereum.


  • Total Value Locked
    N/A
  • TVL
    N/A
  • Assets tracked
    1
  • Buckets tracked
    1
  • Deposits 7D
    2600.00%
  • Deposits 30D
    260
  • Deposits Total
    266
  • Active Relayers 30D
    3

  • Privacy
    Link privacy
  • Trusted setup
  • Exit window
  • Reproducibility

  • Tracked on
    Ethereum logo
  • Attributes
    ZKTEETransfersAny amount
  • Reference app
    zk.money Desktop v0.8.0most private of 2 checked
  • Public observerChain analystNetwork observerPrivileged insiderFuture adversary

    About

    A shielded ledger on Aztec Network for DAI payments and sUSDS savings, with funds escrowed on Ethereum.

    zk.money lets users send DAI privately on Aztec and move it into sUSDS savings. Funds are escrowed on Ethereum. Names, deposits and withdrawals are public.

    Every withdrawal and refund needs a zk proof and a signature from a live AWS Nitro enclave (TEE). The enclave decrypts and reads the operations it handles, and its approved image is unpublished. Aztec Labs controls names, the code of future deposit addresses and the contract lists the released wallets use.

    Architecture

    The portal releases funds only after Aztec proves the withdrawal message and one registered enclave signer co-signs it. Stealing escrowed funds requires both layers to fail, while a failure of either breaks privacy.

    Flow

    1. Deposit. You fund an L1Layer 1 (L1) is a blockchain that is self-reliant on its validator set for its security and consensus properties. Ethereum is an example of a layer 1. Blockchains started receiving the moniker of layer 1 once layer 2 became a meaningful area of development. deposit address called a SIPA, and anyone can sweep it into the portal. USDC and USDT are swapped to DAI through Curve. After fees, an Inbox message credits private notes on Aztec. Reusing a SIPA links its deposits.
    2. Pay. You add a name as a contact, and the wallet reads its Aztec address from the onchain registry and sends a private transfer.
    3. Withdraw. Aztec proves the withdrawal message, an enclave co-signs it and the portal pays out DAI on Ethereum. A relayer submits it, or the user’s own wallet after an hour. A swap escrow can instead pay out USDC, USDT or ETH, and give a fresh recipient ETH for gasA virtual fuel used to execute smart contracts on a rollup. The EVM (or other VM within the rollup) uses an accounting mechanism to correspond the consumption of gas to the consumption of computing resources, and to limit the consumption of computing resources..

    Keys

    Accounts sign with a passkey. The released wallet creates it only in Apple’s, Google’s or 1Password’s synced passkey manager, or on a security key.

    App

    The ratings cover DAI payments and sUSDS savings in Desktop, which runs local code. Its endpoint settings replace the Aztec nodeA software client that participates in the network., the frozen v5 networkA constellation of nodes (peers) that communicate via a peer-to-peer protocol, for example, in propagating transactions and blocks to other nodes.’s node, the Ethereum endpoint and the enclave. Aztec Labs always serves the two unsigned contract lists, and replacing them can redirect future deposits and payments. Its account service receives each account’s name and L1 account on every launch.

    The hosted wallet reloads code on every visit. Its owner can read viewing keys and request harmful passkey signatures through misleading prompts.

    Savings

    Savings hold sUSDS in a second portal with its own L2Layer 2 (L2) is a category of technical solutions aimed to scale the base layer in a trust minimized way. This category includes solutions like rollups as well as state channels and plasma. Other solutions are able to scale further, but with the introduction of additional trust assumptions, which are therefore not trust minimized. Sometimes the term Layer 2 is used to refer to include these solutions too, like validiums and optimiums, but to distinguish between trust minimized and non trust minimized solutions they are often referred to as "light" L2s, opposed to "strong" L2s like rollups. token and the same enclaves. A move in withdraws DAI to a deterministic SkyEscrow, which converts it through USDS into sUSDS shares and deposits them into the sUSDS portal. A move out reverses both legs into the DAI portal. Each move publishes its DAI and share amounts, tied by the escrow. Moving a whole position out republishes the share amount it went in with. The wallet moves sUSDS only to and from the user’s own DAI balance.

    Names

    Tags such as l2beat.zk.money publish Aztec addresses and keys on Ethereum.

    • L1 deposits: ENS-compatible wallets resolve a tag to a deposit address through the recipient’s chosen resolver operatorAn operator is the entity charged with managing a rollup and progressing its state. A rollup operator can be a centralized sequencer, proposer, prover, challenger, pauser of admin that is able to perform upgrades.. The default is a centralized resolver who can link deposits to their tag.
    • L2 transfers: wallets read the registered Aztec address when a tag is added as a contact.

    Name claims need the domain owner’s signature. XMTP, an encrypted offchain messaging network, powers QR-code or link contacts and carries payment requests.

    Resolver

    For ENS lookups, the resolver operator derives each deposit address from a secret shared with the recipient and announces it to them on L2. The assessed wallet derives its own deposit addresses privately. The onchain Resolver checks a zk proof on every lookup, which stops the operator from redirecting payments. Users can choose a custom operator for name payments.

    Migration from v5

    Balances of the frozen v5 deployment move here through refunds. The wallet refunds v5 notes to a migration contract, which deposits them into the v6 portal for the same account. Users can instead withdraw v5 balances to Ethereum.

    Exits

    Refund. If Aztec Network governance changes its canonical rollupA blockchain that inherits consensus and data availability from another blockchain called L1. Rollups enable trust minimized bridges with the base layer via proof systems, either optimistic or zero-knowledge. A rollup without a bridge, or without considering the bridge, is called a sovereign rollup., anyone can freeze the portals, see upgrades and governance. Refunds then publish note or deposit amounts on Ethereum and use proofs without zero knowledge.

    Compliance

    The assessed wallet screens withdrawal recipients through Predicate, via zk.money, and stops when screening fails. The relayer screens token movements against OFAC and optionally Predicate, and self-submitted sweeps and withdrawals skip it.

    The name resolver screens deposit addresses and funders against OFAC before notifying the recipient on L2. A blocked payment leaves funds at an address unknown to the wallet. Recovery requires the recipient’s own tooling to re-derive it and authorization from their L1 account. Screening happens only in these offchain services.

    Fees and limits

    A DAI sweep pays 0.4 DAI, or 0.5 DAI when claiming a name, and an sUSDS sweep 0.25 sUSDS. A name costs 5 DAI. Each ordinary withdrawal pays 0.1 DAI toward Aztec fees.

    Gas sponsorship needs a registered name or a voucher from a registered account. An empty fee-paying contract, or fees above its allowance, stall the assessed wallet. Modified code can pay with the account’s own Fee Juice.

    DAI deposits share 100,000 DAI of capacity, refilling over 1 day. sUSDS deposits share 100,000 sUSDS, refilling over 1 day.

    DAI deposits, payments and withdrawals are capped at 5,166 DAI each. sUSDS deposits and withdrawals are capped at 5,166 sUSDS each.

    Anonymity setIn privacy protocols, anonymity set denotes all users, to which a particular withdrawal could be plausibly attributed. Anonymity set depends on a particular withdrawal, the size of the anonymity set is a metric for level of user's privacy.

    The chart counts depositors traced through deposit addresses. Each migration counts as one depositor, since its v5 refund names no funder. Moves out of savings count no depositor, since the mover already holds funds in zk.money.

    Source verification

    The token verification steps compare a fresh source build with the DAI and sUSDS L2 contracts pinned by their Ethereum portals. The verifier steps regenerate the keys and Solidity verifiers of the refund and resolver circuits.

    What the protocol promises: Hides senders, amounts and the link between deposits and withdrawals inside the ledger. Names, deposits and withdrawals are public.

    • zk.money Desktopv0.8.0Reference

      The ratings assume this app, since 2026-10-28 · Source 8fd1984

    • zk.money web walletLeaks more

      Runs whatever code Aztec Labs' server sends on each visit, so a changed build could read the user's viewing keys.

      Fix: Serve each build under an onchain pin, such as an ENS contenthash, so every code change shows onchain. · Source (checked 2026-10-28)

    Ethereum is public by default. Each protocol is rated on its main privacy promise, like hiding who paid, who received, how much, or which deposit became which withdrawal. Against each adversary, the colour says whether it holds for a careful user with the app's own settings: green yes, yellow only with significant extra work, red no. Fields marked at risk stay private only under the condition in their note.

    Public observerChain analystNetwork observerPrivileged insiderFuture adversary
    Public observer
    Private

    Private payments publish encrypted notes. Claiming a name ties it, its Aztec address and its registration deposit address to the wallet that funds the claim. The first payment to a new contact reveals the recipient through a handshake. L2Layer 2 (L2) is a category of technical solutions aimed to scale the base layer in a trust minimized way. This category includes solutions like rollups as well as state channels and plasma. Other solutions are able to scale further, but with the introduction of additional trust assumptions, which are therefore not trust minimized. Sometimes the term Layer 2 is used to refer to include these solutions too, like validiums and optimiums, but to distinguish between trust minimized and non trust minimized solutions they are often referred to as "light" L2s, opposed to "strong" L2s like rollups. logs mark every transaction of the shared token contract.

    Advice: Claim the name from a wallet without a public link to the user. Fund each deposit address once and let it be swept.

    InsideSenderprivateRecipientexposedAmountprivateAssetexposedLinkprivate
    Chain analyst
    At risk

    In practice the anonymity setIn privacy protocols, anonymity set denotes all users, to which a particular withdrawal could be plausibly attributed. Anonymity set depends on a particular withdrawal, the size of the anonymity set is a metric for level of user's privacy. is zk.money’s users on Aztec, although the L2Layer 2 (L2) is a category of technical solutions aimed to scale the base layer in a trust minimized way. This category includes solutions like rollups as well as state channels and plasma. Other solutions are able to scale further, but with the introduction of additional trust assumptions, which are therefore not trust minimized. Sometimes the term Layer 2 is used to refer to include these solutions too, like validiums and optimiums, but to distinguish between trust minimized and non trust minimized solutions they are often referred to as "light" L2s, opposed to "strong" L2s like rollups. contract is permissionlessAnyone willing should be able to join and leave the network at any time, without causing significant disturbance to the network or being detrimental to the party in question. No single entity should have the power to allowlist or blocklist participants.. The first payment to a name from outside zk.money is publicly tied to that name. A migrated v5 balance arrives as one deposit of its full amount, in the same transaction as its v5 refund. A payee can tell which payments come from the same payer, since each pair shares one secret for tagging notes.

    Advice: Give outside payers a deposit address the user's wallet created. Withdraw common amounts rather than everything at once. Wait before exiting and pick a different time of day than the deposit. Exit to a fresh address every time and spend from it with a different wallet than the one that deposited.

    Compared with a public observer
    InsideAmountat riskLinkat risk
    Network observer
    At risk

    Alchemy, called under Aztec Labs’ key, sees an account’s deposit addresses and withdrawals in one session unless the user sets their own Ethereum nodeA software client that participates in the network.. Desktop has no Tor setting. Routing all of the computer’s traffic through Tor works, but Chrome’s QUIC traffic to WalletConnect bypasses Tor unless UDP is blocked.

    Advice: Set the user's own Ethereum node as the L1 endpoint. Run Desktop on a system that sends all traffic through Tor and blocks UDP, such as Whonix.

    Compared with a public observer
    InsideSenderat riskLinkat risk
    Privileged insider
    Exposed

    An AWS Nitro enclave reads payments, withdrawals and deposit claims, and the image it runs is unpublished. Wallets accept only an enclave registered for the approved image, but nobody outside Aztec Labs can obtain or rebuild that image. Aztec Labs’ default Aztec nodes, like Alchemy under its key, see an account’s deposit addresses and withdrawals in one session. The resolver operatorAn operator is the entity charged with managing a rollup and progressing its state. A rollup operator can be a centralized sequencer, proposer, prover, challenger, pauser of admin that is able to perform upgrades., Aztec Labs today, derives each deposit address paid through a name, so it knows the recipient.

    Compared with a public observer
    InsideSenderexposedAmountexposedLinkexposed
    Future adversary
    Exposed

    Whoever breaks elliptic-curve cryptography can decrypt historical notes and payment events published to Ethereum. Registered Aztec addresses identify the accounts. Deposit addresses paid through a name and enclave communication use the same class of cryptography.

    Compared with a public observer
    InsideSenderexposedRecipientexposedAmountexposedAssetexposedLinkexposed

    30 day historic anonymity set

    How many unique depositors you could have blended in with if you withdrew on a particular day after depositing during the previous 30 days. This metric is a proxy for the historic anonymity set and shows how it developed over time.

    The metric looks backwards: it counts deposits that already happened, including from addresses that have since withdrawn. Your real anonymity also depends on deposits made after yours, which cannot be known in advance.

    Estimated anonymity set by holding duration

    An estimate of how many unique depositors you blend in with, depending on how long you leave your deposit in the pool. It is based on historic data of past deposits: each point counts depositors from the preceding period, so holding for up to 30 days effectively means blending in with everyone who deposited during the last 30 days.

    Asset
    Deposits 7D
    Deposits 30D
    Deposits Total
    DAIDAI
    260
    $46.14 K
    260
    $46.14 K
    266
    $48.16 K
    Total
    260
    $46.14 K
    260
    $46.14 K
    266
    $48.16 K

    zk.money moves to Aztec v6

    26 Oct 2026

    New portals on Aztec v6 take their first deposits, and v5 balances migrate into them.

    Learn more

    Funds can be stolen if

    1. Aztec’s private execution or refund proof is unsound and the enclave layer also fails.
    2. malicious wallet code obtains a harmful signature, or substituted unsigned contract lists redirect future deposits and payments.
    3. Aztec Labs’ deployer EOA blesses malicious code for future deposit addresses or redirects future payments to names (see upgrades and governance).
    4. a malicious sUSDS token upgrade confiscates escrowed shares (see upgrades and governance).

    Funds can be lost if

    1. a user loses their passkey.
    2. all registered signers stop serving, since nobody else can obtain the approved enclave image.
    3. resolver screening blocksAn ordered list of transactions and chain-related metadata that gets bundled together and published to the L1/DA layer. Nodes execute the transactions contained within blocks to change the rollup chain’s state. Protocol rules dictate what constitutes a valid block, and invalid blocks are skipped over. an external payment and the recipient lacks the tooling to re-derive its deposit address.

    Privacy can be lost if

    1. a user pays a new contact, whose handshake reveals the recipient (see public observer).
    2. a user’s payments hide only among zk.money’s users on Aztec (see chain analyst).
    3. the unpublished enclave image keeps or leaks what it reads, or AWS Nitro is compromised (see privileged insider).
    4. the resolver operatorAn operator is the entity charged with managing a rollup and progressing its state. A rollup operator can be a centralized sequencer, proposer, prover, challenger, pauser of admin that is able to perform upgrades. links deposits paid through a name to their recipients (see privileged insider).
    5. the default endpoints, Alchemy and Aztec Labs’ Aztec nodes, see deposit addresses and withdrawals in one session (see networkA constellation of nodes (peers) that communicate via a peer-to-peer protocol, for example, in propagating transactions and blocks to other nodes. observer and privileged insider).
    6. a portal freezes, and refunds publish note or deposit amounts on Ethereum.
    7. elliptic-curve cryptography is broken, which decrypts data published to Ethereum (see future adversary).

    Aztec NetworkA constellation of nodes (peers) that communicate via a peer-to-peer protocol, for example, in propagating transactions and blocks to other nodes.’s v6 rollupA blockchain that inherits consensus and data availability from another blockchain called L1. Rollups enable trust minimized bridges with the base layer via proof systems, either optimistic or zero-knowledge. A rollup without a bridge, or without considering the bridge, is called a sovereign rollup. and zk.money’s portals, enclave registry and payout contracts are immutable.

    Enclave signers and freeze

    Anyone can register a signer with an AWS Nitro attestation of the approved image up to 1 hour old. Both portals share 2 signers. If Aztec governance makes another rollup canonical, anyone can freeze the portals for good, leaving only refunds.

    Deposit addresses and names

    One Aztec Labs EOA owns the SIPAFactory, the ForwardingTable, the NameRegistry and zk.money in ENS. It can bless new code for future deposit addresses, which can redirect them, and reassign names. The DNS holder can reclaim zk.money in ENS. A second EOA authorizes name claims.

    Savings asset

    Sky governance can upgrade sUSDS and change its savings rate.

    Aztec Ignition

    UltraHonk

    Detailed description

    Aztec Ignition is a trusted setupGeneration of a piece of data that must then be used for some cryptographic protocol to run. Generating this data requires some secret information. The "trust" comes from the fact the secret must be destroyed after the ceremony, otherwise cryptographic properties of the protocol could be broken. Once the data is generated, and the secrets are forgotten, no further participation from the creators of the ceremony is required. There are two types of trusted setups for SNARKs: (i) trusted setup per circuit where it is generated from scratch for each circuit, (ii) trusted universal setup per proving system where it can be used for several circuits. ceremony for KZG commitmentsA polynomial commitment scheme that allows a prover to compute a commitment to a polynomial, with the properties that this commitment can later be opened at any position: the prover shows that the value of the polynomial at a certain position is equal to a claimed value. KZG is widely used as it’s applicable both for univariate and k-variate polynomials, is efficient for batch proofs, and is able to generate many proofs at once relatively fast. It is also proof generation time efficient: the time for prover to commit to a polynomial is linear on the degree of the polynomial. over BN254 curve that was run by Aztec for KZG commitment over BN254 curve in 2019. It included 176 participants and was publicly open for participation.

    Ossification

    Contracts our research team classifies as critical form the project's critical perimeter. Its clock starts at the ossification genesis, and every critical change resets it (changes within 24 hours count as one). The ossification score is the share of recorded code-bug exploits whose exploited code was younger than this perimeter is today. Battle-tested exposure is the value secured, summed over that unchanged period.

    Ossification %
    29since 26 Oct 2026
    TVS & changes (1Y)
    Battle-tested exposure
    N/A
    Critical changes / year
    0across 16 contracts
    Exit window

    Discovery updates

    34changes

    Initial discovery of zk.money on Aztec v6: immutable DAI and sUSDS OxidePortals sharing one TeeRegistry with a fixed enclave image, v5-to-v6 MigrationExecutors, and deposit-address, name and resolver contracts. The deployer EOA owns the SIPAFactory, ForwardingTable and NameRegistry.

    Initial discovery

    + Status: CREATED
    contract NitroValidator (eth:0x13114c5C847a414D20755DBc2eCbe00cc98039DF) [zkmoney/NitroValidator]
    +++ description: Validates AWS Nitro enclave attestations against the certificate chain verified by the CertManager.
    + Status: CREATED
    contract NamePortal (eth:0x158161B257f9bAD34C12Dd8D52638424b216c3a2) [zkmoney/v6/NamePortal]
    +++ description: Announces a zk.money name on Aztec. Anyone can send an L1->L2 message carrying a named account's name hash and bootstrap key to an Aztec address of their choice. It accepts only accounts deployed by ACCOUNT_FACTORY.
    + Status: CREATED
    contract SIPAFactory (eth:0x186C20F0F294378E1DecA7419c667e44c73E992C) [zkmoney/v6/SIPAFactory]
    +++ description: Deploys zk.money deposit addresses (SIPAs) as deterministic clones. A clone counts as blessed when its implementation was blessed and its ForwardingTable approved. Each clone's code and table are fixed in its address. New deposit addresses, from the wallet or the Resolver, clone the current implementation for their intent.
    + Status: CREATED
    contract OxideAccountFactory (eth:0x187d19EccBf2909AD3d71B798A8704D950b9C3ee) [zkmoney/OxideAccountFactory]
    +++ description: Permissionless factory for deterministic L1 accounts. The implementation is immutable and there is no administrator.
    + Status: CREATED
    contract ResolverVerifier (eth:0x1E63715af06Bb12331f6A319b46253713e4d0206) [zkmoney/ResolverVerifier]
    +++ description: UltraHonk verifier for the zk.money resolver circuit with a hardcoded verification key. The Resolver uses it to check that a resolver operator's answer matches the user's registered keys and L2 address.
    + Status: CREATED
    contract OxidePortal_sUSDS (eth:0x2EbFEE284bABf94869FAC44BC85eDb3C34e536D8) [zkmoney/v6/OxidePortal]
    +++ description: Escrow of zk.money on the Aztec Network. A withdrawal needs both a proven Aztec L2->L1 message from L2_TOKEN and a signature from a TEE signer registered in the TEE_REGISTRY. Once the Aztec Registry's canonical rollup is no longer ROLLUP, anyone can permanently freeze the portal, stopping deposits and fixing the refund snapshot at the last proven checkpoint. A refund needs a zk proof against that snapshot and a registered signer's signature.
    + Status: CREATED
    contract ZKTranscriptLib (eth:0x428Fa81B22AAF7C9acb9c73D114894886E3F7d4d) [zkmoney/ResolverVerifierLibrary]
    +++ description: Runtime library immutably linked into the zk.money resolver verifier. It evaluates circuit constraints or derives Fiat-Shamir challenges for zero-knowledge UltraHonk proofs.
    + Status: CREATED
    contract RegistrationController (eth:0x45F626E2a4D63232677C96B163ac46e20514a915) [zkmoney/v6/RegistrationController]
    +++ description: Completes paid name registrations from blessed registration addresses: deploys the user's L1 account, claims the name, writes the user record, optionally announces the name on Aztec through the NAME_PORTAL, and installs the user's first passkey. Fees above the relayer fee go to an allowlisted beneficiary.
    + Status: CREATED
    contract UserOpSIPA (eth:0x5180f0659D021368CDF5c4499967B9A329C775A0) [zkmoney/v6/UserOpSIPA]
    +++ description: Implementation of zk.money deposit addresses that carry an operation of the user's L1 account. Sweeping a funded clone executes the account operation fixed in the clone's address through the ERC-4337 EntryPoint, with the user's signature, then pays the listed fees and deposits the rest into the portal its ForwardingTable names. The recipient's account can recover any funds from the clone.
    + Status: CREATED
    contract OperationExecutor (eth:0x5ecE3b4EBE7137b1b6f92406dE17d9816D585c1c) [zkmoney/OperationExecutor]
    +++ description: Permissionless helper that executes a call and forwards the resulting token payout to the caller. Used by finalizers to collect fees and subsidies.
    + Status: CREATED
    contract MigrationExecutor (eth:0x70E9c762B02Ec645DF4BC2456271805cba80126c) [zkmoney/v6/MigrationExecutor]
    +++ description: Payout contract that moves refunds from the frozen SOURCE_PORTAL into DESTINATION_PORTAL. Only SOURCE_PORTAL can call it. It deposits the refund, minus the relayer tip committed in the refund, into DESTINATION_PORTAL for the recipient commitment the refund names.
    + Status: CREATED
    contract PlainWithdrawalExecutor (eth:0x7C8c2147d1BB8B83e0a0501097372de170eE702a) [zkmoney/v6/PlainWithdrawalExecutor]
    +++ description: Default payout contract for withdrawals and refunds. Only the PORTAL can call it. It pays the recipient and relayer tip committed on Aztec. An ordinary withdrawal first pays FEE to BENEFICIARY, while refunds pay no fee.
    + Status: CREATED
    contract SkyEscrowFactory (eth:0x7F890e5DF3B4165D1cE4E9A42e97C44f1d7dCc09) [zkmoney/SkyEscrowFactory]
    +++ description: Deploys deterministic escrows for moving funds between the DAI and sUSDS portals. Anyone can execute a funded escrow. Its implementation and routes are immutable.
    + Status: CREATED
    contract FrozenNotesRefundVerifier (eth:0x880F3C8356A930522896A7c539157D4c87F95377) [zkmoney/v6/FrozenNotesRefundVerifier]
    +++ description: UltraHonk verifier for refunds of notes that were unspent when the zk.money portal froze. Its verification key is immutable.
    + Status: CREATED
    contract TeeRegistry (eth:0x8b705C3519169F29850D156574ec377B686bd9CD) [zkmoney/v6/TeeRegistry]
    +++ description: Registry of the TEE signers that the zk.money portals accept for withdrawals and refunds. Anyone can register a signer with an AWS Nitro attestation of the enclave image PCR0_HASH that is at most TEE_ATTESTATION_MAX_AGE seconds old. Registration also sends an L1->L2 message to L2_RECIPIENT, whose inclusion the zk.money contracts on Aztec prove to accept the signer there. Registrations are permanent, and the approved image cannot change.
    + Status: CREATED
    contract SwapEscrowFactory (eth:0x8F4105a55C457D796Adab90d5D9E649861E81625) [zkmoney/SwapEscrowFactoryV2]
    +++ description: Swap-on-withdraw: a withdrawal can pay DAI to a SwapEscrowV2 clone whose route, recipient, gas share and tip are fixed in its address. Anyone can deploy and execute a funded clone to pay USDC, USDT, ETH or DAI to the recipient.
    + Status: CREATED
    contract MigrationExecutor_sUSDS (eth:0x92270578f3A311B3ced0019a4E15701e7405b4AE) [zkmoney/v6/MigrationExecutor]
    +++ description: Payout contract that moves refunds from the frozen SOURCE_PORTAL into DESTINATION_PORTAL. Only SOURCE_PORTAL can call it. It deposits the refund, minus the relayer tip committed in the refund, into DESTINATION_PORTAL for the recipient commitment the refund names.
    + Status: CREATED
    contract RegistrationSIPA (eth:0x96A52ed47Af73423D4b8a920913e5c1ceFdC1319) [zkmoney/v6/RegistrationSIPA]
    +++ description: Implementation of zk.money registration addresses. Sweeping a funded clone registers the name through the current RegistrationController of the NameRegistry, pays the committed and listed fees and deposits the rest into the portal its ForwardingTable names. The recipient's account can recover any funds from the clone.
    + Status: CREATED
    contract FrozenDepositsRefundVerifier (eth:0xa460C3130D1701a94f76d1122362C0D127f1C6A3) [zkmoney/v6/FrozenDepositsRefundVerifier]
    +++ description: UltraHonk verifier for refunds of deposits that reached Aztec but were unspent when the zk.money portal froze. Its verification key is immutable.
    + Status: CREATED
    contract NameRegistry (eth:0xa9863B8F573D62377d987ccb9AF6e0000f99D14a) [zkmoney/NameRegistry]
    +++ description: Registry of zk.money names. It points to the RegistrationController and the AccountMetadataRegistry, which together decide where payments to a zk.money name resolve to.
    + Status: CREATED
    contract SkyEscrow (eth:0xB61D97Faf96ec8de617aAF54F4764d01cfd25b8b) [zkmoney/SkyEscrow]
    +++ description: Implementation for savings conversion escrows. Each clone fixes the route, deposit commitment, relayer tip and recovery commitment in its address. It converts DAI into sUSDS or redeposits DAI after a savings withdrawal. The recovery account can reclaim stranded tokens, including shares taken without redemption.
    + Status: CREATED
    contract DepositSIPA (eth:0xBFe3dE3C4466cbC5803A756847208c69B3BAe401) [zkmoney/v6/DepositSIPA]
    +++ description: Implementation of zk.money deposit addresses. Anyone can sweep a funded clone, which swaps USDC or USDT to DAI, pays the fees its ForwardingTable lists and deposits the rest into the portal that table names for the token, for the recipient fixed in the clone's address. The recipient's account can recover any funds from the clone.
    + Status: CREATED
    contract Resolver (eth:0xc329a74542688a3c4948B7d46F204d3d7e5Dd525) [zkmoney/Resolver]
    +++ description: ENS resolver for zk.money names. It returns a deposit address derived from a resolver operator's answer, which must come with a zk proof that it matches the user's registered keys and L2 address in the AccountMetadataRegistry.
    + Status: CREATED
    contract SwapEscrow (eth:0xc953308e66DA19881d8ddD240E6369Db8Ef72Ab9) [zkmoney/SwapEscrowV2]
    +++ description: SwapEscrowV2 implementation. A clone swaps via the Curve 3pool (and Uniswap for ETH) with a slippage bound of 100 bps for stablecoins and 200 bps against the Chainlink ETH/USD price for ETH. It can first swap a capped share of the DAI to ETH for the recipient's gas. If the swap cannot execute, only the recovery key committed in the clone's address can move the funds.
    + Status: CREATED
    contract OxidePortal (eth:0xCB99C58Fe81Ae6b2cB4835e46F7b703745879042) [zkmoney/v6/OxidePortal]
    +++ description: Escrow of zk.money on the Aztec Network. A withdrawal needs both a proven Aztec L2->L1 message from L2_TOKEN and a signature from a TEE signer registered in the TEE_REGISTRY. Once the Aztec Registry's canonical rollup is no longer ROLLUP, anyone can permanently freeze the portal, stopping deposits and fixing the refund snapshot at the last proven checkpoint. A refund needs a zk proof against that snapshot and a registered signer's signature.
    + Status: CREATED
    contract PortalFactory (eth:0xCeae64c7211a2208afFc4F396ADD1D46996Cd2A2) [zkmoney/v6/PortalFactory]
    +++ description: Deploys OxidePortals that share its TEE_REGISTRY and refund verifiers. Each portal is a separate escrow for one token and one L2 token contract, and nothing in a deployed portal refers back to the factory.
    + Status: CREATED
    contract RelationsLib (eth:0xCEBD4589238699fcD7FEA8F89f05AE35F4D7E8c4) [zkmoney/ResolverVerifierLibrary]
    +++ description: Runtime library immutably linked into the zk.money resolver verifier. It evaluates circuit constraints or derives Fiat-Shamir challenges for zero-knowledge UltraHonk proofs.
    + Status: CREATED
    contract PlainWithdrawalExecutor_sUSDS (eth:0xd0D8E5C5B128ea7e5f2d461Afd6C669BC0877dF8) [zkmoney/v6/PlainWithdrawalExecutor]
    +++ description: Default payout contract for withdrawals and refunds. Only the PORTAL can call it. It pays the recipient and relayer tip committed on Aztec. An ordinary withdrawal first pays FEE to BENEFICIARY, while refunds pay no fee.
    + Status: CREATED
    contract OxideAccount (eth:0xdA0D7cD0f49cE7b1D04bf03eE56374a8981c2844) [zkmoney/OxideAccount]
    +++ description: Immutable implementation of users' L1 accounts. The bootstrap key authorizes the first passkey. Once a passkey is installed, only the user's passkeys can authorize operations and manage keys. The last passkey cannot be removed. Deposit recovery checks signatures against this account.
    + Status: CREATED
    contract AccountMetadataRegistry (eth:0xDA79Bae4485c40291363D885Aae5B543d2D0Efa9) [zkmoney/AccountMetadataRegistry]
    +++ description: Stores user records (Aztec L2 address, keys, chosen resolver operator) and resolver operator entries. User records can be written by the user or by the RegistrationController. Anyone can register as a resolver operator.
    + Status: CREATED
    contract CertManager (eth:0xe3DDDf3D4B624F49B4CeB81807338CCa14f5dd86) [zkmoney/CertManager]
    +++ description: Verifies and caches AWS Nitro attestation certificates. The only trust anchor is the hardcoded AWS Nitro root certificate.
    + Status: CREATED
    contract UnprocessedDepositRefundVerifier (eth:0xF15780eB45c49a7cB4FB0BF178D3DaF0F1D68c8a) [zkmoney/v6/UnprocessedDepositRefundVerifier]
    +++ description: UltraHonk verifier for refunds of deposits that never reached Aztec before the zk.money portal froze. Its verification key is immutable.
    + Status: CREATED
    contract SkyWithdrawalExecutor (eth:0xFE0B2B24cca52D1680103E258985A5aCA33742d5) [zkmoney/SkyWithdrawalExecutor]
    +++ description: Payout contract for sUSDS withdrawals and refunds. Only the PORTAL can execute a payout. It normally redeems sUSDS into USDS and converts USDS to DAI before paying the committed recipient and relayer tip. The recipient can complete an ordinary withdrawal in sUSDS shares through withdrawInShares, bypassing redemption.
    + Status: CREATED
    contract ForwardingTable (eth:0xFf839a8Be7c90c804F42563f352324cEBcDfe41C) [zkmoney/v6/ForwardingTable]
    +++ description: Routing table of zk.money deposit addresses. For each listed token it names the portal that deposit addresses using this table sweep into, and per intent the fee for the beneficiary and the tip for the sweeper. Rows and intents can only be added, never changed or removed.
    A dashboard to explore contracts and permissions
    Go to Disco
    Disco UI Banner

    Ethereum

    Actors:

    • Can interact with SIPAFactory
      • bless deposit address implementations and approve ForwardingTables. A newly blessed implementation for an intent decides the code of every new deposit address for that intent. Earlier blessings are never revoked
    • Can interact with NameRegistry
      • replace the RegistrationController and the AccountMetadataRegistry, and change the domainOwner. A new RegistrationController can reassign names and rewrite any user record, and a new AccountMetadataRegistry decides where future payments to zk.money names resolve to
    • Can interact with Resolver
      • replace this Resolver as the ENS resolver of zk.money names, which decides the addresses that payments to these names resolve to
    • Can interact with ForwardingTable
      • add rows for unlisted tokens, add fees for unlisted intents, and change the beneficiary of deposit-address fees. A new row can route an unlisted token to any contract that reports that token as UNDERLYING and the table’s ROLLUP_VERSION
    • Can interact with TeeRegistry
      • co-sign withdrawals and refunds. Without a signature from a registered TEE signer, no funds can leave the portals that use this registry
    • Can interact with NameRegistry
      • authorize or refuse every name claim and sign custom registration fees
    • Can interact with PortalFactory
      • deploy new OxidePortals for any token, L2Layer 2 (L2) is a category of technical solutions aimed to scale the base layer in a trust minimized way. This category includes solutions like rollups as well as state channels and plasma. Other solutions are able to scale further, but with the introduction of additional trust assumptions, which are therefore not trust minimized. Sometimes the term Layer 2 is used to refer to include these solutions too, like validiums and optimiums, but to distinguish between trust minimized and non trust minimized solutions they are often referred to as "light" L2s, opposed to "strong" L2s like rollups. token contract and deposit and transaction caps. They share this factory’s TeeRegistry and refund verifiers
    A dashboard to explore contracts and permissions
    Go to Disco
    Disco UI Banner

    Ethereum

    NitroValidator0x1311…39DF

    Validates AWS Nitro enclave attestations against the certificate chain verified by the CertManager.

    NamePortal0x1581…c3a2

    Announces a zk.money name on Aztec. Anyone can send an L1Layer 1 (L1) is a blockchain that is self-reliant on its validator set for its security and consensus properties. Ethereum is an example of a layer 1. Blockchains started receiving the moniker of layer 1 once layer 2 became a meaningful area of development.->L2Layer 2 (L2) is a category of technical solutions aimed to scale the base layer in a trust minimized way. This category includes solutions like rollups as well as state channels and plasma. Other solutions are able to scale further, but with the introduction of additional trust assumptions, which are therefore not trust minimized. Sometimes the term Layer 2 is used to refer to include these solutions too, like validiums and optimiums, but to distinguish between trust minimized and non trust minimized solutions they are often referred to as "light" L2s, opposed to "strong" L2s like rollups. message carrying a named account’s name hashA fixed-length fingerprint of variable-size input, produced by a hash function. and bootstrap key to an Aztec address of their choice. It accepts only accounts deployed by ACCOUNT_FACTORY.

    SIPAFactory0x186C…992C

    Deploys zk.money deposit addresses (SIPAs) as deterministic clones. A clone counts as blessed when its implementation was blessed and its ForwardingTable approved. Each clone’s code and table are fixed in its address. New deposit addresses, from the wallet or the Resolver, clone the current implementation for their intent.

    • Roles:
      • owner: EOA 1
    OxideAccountFactory0x187d…C3ee

    PermissionlessAnyone willing should be able to join and leave the network at any time, without causing significant disturbance to the network or being detrimental to the party in question. No single entity should have the power to allowlist or blocklist participants. factory for deterministic L1Layer 1 (L1) is a blockchain that is self-reliant on its validator set for its security and consensus properties. Ethereum is an example of a layer 1. Blockchains started receiving the moniker of layer 1 once layer 2 became a meaningful area of development. accounts. The implementation is immutable and there is no administrator.

    ResolverVerifier0x1E63…0206

    UltraHonk verifierAn entity in a ZK-Rollup, often a smart contract, that verifies zero-knowledge proofs submitted by a prover. for the zk.money resolver circuitA program written for the purpose of being proven within a proving system. A circuit is a mathematical representation of the computation to be executed, arithmetic circuits and zkVM execution trace are examples of circuits. Circuits can be written in different languages, ranging from low-level to high-level. with a hardcoded verification key. The Resolver uses it to check that a resolver operatorAn operator is the entity charged with managing a rollup and progressing its state. A rollup operator can be a centralized sequencer, proposer, prover, challenger, pauser of admin that is able to perform upgrades.’s answer matches the user’s registered keys and L2Layer 2 (L2) is a category of technical solutions aimed to scale the base layer in a trust minimized way. This category includes solutions like rollups as well as state channels and plasma. Other solutions are able to scale further, but with the introduction of additional trust assumptions, which are therefore not trust minimized. Sometimes the term Layer 2 is used to refer to include these solutions too, like validiums and optimiums, but to distinguish between trust minimized and non trust minimized solutions they are often referred to as "light" L2s, opposed to "strong" L2s like rollups. address.

    OxidePortal_sUSDS0x2EbF…36D8

    Escrow of zk.money on the Aztec NetworkA constellation of nodes (peers) that communicate via a peer-to-peer protocol, for example, in propagating transactions and blocks to other nodes.. A withdrawal needs both a proven Aztec L2Layer 2 (L2) is a category of technical solutions aimed to scale the base layer in a trust minimized way. This category includes solutions like rollups as well as state channels and plasma. Other solutions are able to scale further, but with the introduction of additional trust assumptions, which are therefore not trust minimized. Sometimes the term Layer 2 is used to refer to include these solutions too, like validiums and optimiums, but to distinguish between trust minimized and non trust minimized solutions they are often referred to as "light" L2s, opposed to "strong" L2s like rollups.->L1Layer 1 (L1) is a blockchain that is self-reliant on its validator set for its security and consensus properties. Ethereum is an example of a layer 1. Blockchains started receiving the moniker of layer 1 once layer 2 became a meaningful area of development. message from L2_TOKEN and a signature from a TEE signer registered in the TEE_REGISTRY. Once the Aztec Registry’s canonical rollupA blockchain that inherits consensus and data availability from another blockchain called L1. Rollups enable trust minimized bridges with the base layer via proof systems, either optimistic or zero-knowledge. A rollup without a bridge, or without considering the bridge, is called a sovereign rollup. is no longer ROLLUP, anyone can permanently freeze the portal, stopping deposits and fixing the refund snapshot at the last proven checkpoint. A refund needs a zk proof against that snapshot and a registered signer’s signature.

    ZKTranscriptLib0x428F…7d4d

    Runtime library immutably linked into the zk.money resolver verifierAn entity in a ZK-Rollup, often a smart contract, that verifies zero-knowledge proofs submitted by a prover.. It evaluates circuitA program written for the purpose of being proven within a proving system. A circuit is a mathematical representation of the computation to be executed, arithmetic circuits and zkVM execution trace are examples of circuits. Circuits can be written in different languages, ranging from low-level to high-level. constraints or derives Fiat-Shamir challenges for zero-knowledgeA cryptographic technology and sub-discipline of cryptography that allows an individual to prove that a statement or computation is true without revealing any additional information. UltraHonk proofs.

    RegistrationController0x45F6…a915

    Completes paid name registrations from blessed registration addresses: deploys the user’s L1Layer 1 (L1) is a blockchain that is self-reliant on its validator set for its security and consensus properties. Ethereum is an example of a layer 1. Blockchains started receiving the moniker of layer 1 once layer 2 became a meaningful area of development. account, claims the name, writes the user record, optionally announces the name on Aztec through the NAME_PORTAL, and installs the user’s first passkey. Fees above the relayer fee go to an allowlisted beneficiary.

    UserOpSIPA0x5180…75A0

    Implementation of zk.money deposit addresses that carry an operation of the user’s L1Layer 1 (L1) is a blockchain that is self-reliant on its validator set for its security and consensus properties. Ethereum is an example of a layer 1. Blockchains started receiving the moniker of layer 1 once layer 2 became a meaningful area of development. account. Sweeping a funded clone executes the account operation fixed in the clone’s address through the ERC-4337 EntryPoint, with the user’s signature, then pays the listed fees and deposits the rest into the portal its ForwardingTable names. The recipient’s account can recover any funds from the clone.

    OperationExecutor0x5ecE…5c1c

    PermissionlessAnyone willing should be able to join and leave the network at any time, without causing significant disturbance to the network or being detrimental to the party in question. No single entity should have the power to allowlist or blocklist participants. helper that executes a call and forwards the resulting token payout to the caller. Used by finalizers to collect fees and subsidies.

    MigrationExecutor0x70E9…126c

    Payout contract that moves refunds from the frozen SOURCE_PORTAL into DESTINATION_PORTAL. Only SOURCE_PORTAL can call it. It deposits the refund, minus the relayer tip committed in the refund, into DESTINATION_PORTAL for the recipient commitment the refund names.

    PlainWithdrawalExecutor0x7C8c…702a

    Default payout contract for withdrawals and refunds. Only the PORTAL can call it. It pays the recipient and relayer tip committed on Aztec. An ordinary withdrawal first pays FEE to BENEFICIARY, while refunds pay no fee.

    SkyEscrowFactory0x7F89…Cc09

    Deploys deterministic escrows for moving funds between the DAI and sUSDS portals. Anyone can execute a funded escrow. Its implementation and routes are immutable.

    FrozenNotesRefundVerifier0x880F…5377

    UltraHonk verifierAn entity in a ZK-Rollup, often a smart contract, that verifies zero-knowledge proofs submitted by a prover. for refunds of notes that were unspent when the zk.money portal froze. Its verification key is immutable.

    TeeRegistry0x8b70…d9CD

    Registry of the TEE signers that the zk.money portals accept for withdrawals and refunds. Anyone can register a signer with an AWS Nitro attestation of the enclave image PCR0_HASH that is at most TEE_ATTESTATION_MAX_AGE seconds old. Registration also sends an L1Layer 1 (L1) is a blockchain that is self-reliant on its validator set for its security and consensus properties. Ethereum is an example of a layer 1. Blockchains started receiving the moniker of layer 1 once layer 2 became a meaningful area of development.->L2Layer 2 (L2) is a category of technical solutions aimed to scale the base layer in a trust minimized way. This category includes solutions like rollups as well as state channels and plasma. Other solutions are able to scale further, but with the introduction of additional trust assumptions, which are therefore not trust minimized. Sometimes the term Layer 2 is used to refer to include these solutions too, like validiums and optimiums, but to distinguish between trust minimized and non trust minimized solutions they are often referred to as "light" L2s, opposed to "strong" L2s like rollups. message to L2_RECIPIENT, whose inclusion the zk.money contracts on Aztec prove to accept the signer there. Registrations are permanent, and the approved image cannot change.

    • Roles:
      • teeSigners: EOA 2, EOA 4
    SwapEscrowFactory0x8F41…1625

    Swap-on-withdraw: a withdrawal can pay DAI to a SwapEscrowV2 clone whose route, recipient, gasA virtual fuel used to execute smart contracts on a rollup. The EVM (or other VM within the rollup) uses an accounting mechanism to correspond the consumption of gas to the consumption of computing resources, and to limit the consumption of computing resources. share and tip are fixed in its address. Anyone can deploy and execute a funded clone to pay USDC, USDT, ETH or DAI to the recipient.

    MigrationExecutor_sUSDS0x9227…b4AE

    Payout contract that moves refunds from the frozen SOURCE_PORTAL into DESTINATION_PORTAL. Only SOURCE_PORTAL can call it. It deposits the refund, minus the relayer tip committed in the refund, into DESTINATION_PORTAL for the recipient commitment the refund names.

    RegistrationSIPA0x96A5…1319

    Implementation of zk.money registration addresses. Sweeping a funded clone registers the name through the current RegistrationController of the NameRegistry, pays the committed and listed fees and deposits the rest into the portal its ForwardingTable names. The recipient’s account can recover any funds from the clone.

    FrozenDepositsRefundVerifier0xa460…C6A3

    UltraHonk verifierAn entity in a ZK-Rollup, often a smart contract, that verifies zero-knowledge proofs submitted by a prover. for refunds of deposits that reached Aztec but were unspent when the zk.money portal froze. Its verification key is immutable.

    NameRegistry0xa986…D14a

    Registry of zk.money names. It points to the RegistrationController and the AccountMetadataRegistry, which together decide where payments to a zk.money name resolve to.

    • Roles:
      • domainOwner: EOA 3
      • owner: EOA 1
    SkyEscrow0xB61D…5b8b

    Implementation for savings conversion escrows. Each clone fixes the route, deposit commitment, relayer tip and recovery commitment in its address. It converts DAI into sUSDS or redeposits DAI after a savings withdrawal. The recovery account can reclaim stranded tokens, including shares taken without redemption.

    DepositSIPA0xBFe3…e401

    Implementation of zk.money deposit addresses. Anyone can sweep a funded clone, which swaps USDC or USDT to DAI, pays the fees its ForwardingTable lists and deposits the rest into the portal that table names for the token, for the recipient fixed in the clone’s address. The recipient’s account can recover any funds from the clone.

    ENS resolver for zk.money names. It returns a deposit address derived from a resolver operatorAn operator is the entity charged with managing a rollup and progressing its state. A rollup operator can be a centralized sequencer, proposer, prover, challenger, pauser of admin that is able to perform upgrades.’s answer, which must come with a zk proof that it matches the user’s registered keys and L2Layer 2 (L2) is a category of technical solutions aimed to scale the base layer in a trust minimized way. This category includes solutions like rollups as well as state channels and plasma. Other solutions are able to scale further, but with the introduction of additional trust assumptions, which are therefore not trust minimized. Sometimes the term Layer 2 is used to refer to include these solutions too, like validiums and optimiums, but to distinguish between trust minimized and non trust minimized solutions they are often referred to as "light" L2s, opposed to "strong" L2s like rollups. address in the AccountMetadataRegistry.

    • Roles:
      • ensNodeOwner: EOA 1
    SwapEscrow0xc953…2Ab9

    SwapEscrowV2 implementation. A clone swaps via the Curve 3pool (and Uniswap for ETH) with a slippage bound of 100 bps for stablecoins and 200 bps against the Chainlink ETH/USD price for ETH. It can first swap a capped share of the DAI to ETH for the recipient’s gasA virtual fuel used to execute smart contracts on a rollup. The EVM (or other VM within the rollup) uses an accounting mechanism to correspond the consumption of gas to the consumption of computing resources, and to limit the consumption of computing resources.. If the swap cannot execute, only the recovery key committed in the clone’s address can move the funds.

    OxidePortal0xCB99…9042

    Escrow of zk.money on the Aztec NetworkA constellation of nodes (peers) that communicate via a peer-to-peer protocol, for example, in propagating transactions and blocks to other nodes.. A withdrawal needs both a proven Aztec L2Layer 2 (L2) is a category of technical solutions aimed to scale the base layer in a trust minimized way. This category includes solutions like rollups as well as state channels and plasma. Other solutions are able to scale further, but with the introduction of additional trust assumptions, which are therefore not trust minimized. Sometimes the term Layer 2 is used to refer to include these solutions too, like validiums and optimiums, but to distinguish between trust minimized and non trust minimized solutions they are often referred to as "light" L2s, opposed to "strong" L2s like rollups.->L1Layer 1 (L1) is a blockchain that is self-reliant on its validator set for its security and consensus properties. Ethereum is an example of a layer 1. Blockchains started receiving the moniker of layer 1 once layer 2 became a meaningful area of development. message from L2_TOKEN and a signature from a TEE signer registered in the TEE_REGISTRY. Once the Aztec Registry’s canonical rollupA blockchain that inherits consensus and data availability from another blockchain called L1. Rollups enable trust minimized bridges with the base layer via proof systems, either optimistic or zero-knowledge. A rollup without a bridge, or without considering the bridge, is called a sovereign rollup. is no longer ROLLUP, anyone can permanently freeze the portal, stopping deposits and fixing the refund snapshot at the last proven checkpoint. A refund needs a zk proof against that snapshot and a registered signer’s signature.

    PortalFactory0xCeae…d2A2

    Deploys OxidePortals that share its TEE_REGISTRY and refund verifiers. Each portal is a separate escrow for one token and one L2Layer 2 (L2) is a category of technical solutions aimed to scale the base layer in a trust minimized way. This category includes solutions like rollups as well as state channels and plasma. Other solutions are able to scale further, but with the introduction of additional trust assumptions, which are therefore not trust minimized. Sometimes the term Layer 2 is used to refer to include these solutions too, like validiums and optimiums, but to distinguish between trust minimized and non trust minimized solutions they are often referred to as "light" L2s, opposed to "strong" L2s like rollups. token contract, and nothing in a deployed portal refers back to the factory.

    • Roles:
      • owner: EOA 5
    RelationsLib0xCEBD…E8c4

    Runtime library immutably linked into the zk.money resolver verifierAn entity in a ZK-Rollup, often a smart contract, that verifies zero-knowledge proofs submitted by a prover.. It evaluates circuitA program written for the purpose of being proven within a proving system. A circuit is a mathematical representation of the computation to be executed, arithmetic circuits and zkVM execution trace are examples of circuits. Circuits can be written in different languages, ranging from low-level to high-level. constraints or derives Fiat-Shamir challenges for zero-knowledgeA cryptographic technology and sub-discipline of cryptography that allows an individual to prove that a statement or computation is true without revealing any additional information. UltraHonk proofs.

    PlainWithdrawalExecutor_sUSDS0xd0D8…7dF8

    Default payout contract for withdrawals and refunds. Only the PORTAL can call it. It pays the recipient and relayer tip committed on Aztec. An ordinary withdrawal first pays FEE to BENEFICIARY, while refunds pay no fee.

    OxideAccount0xdA0D…2844

    Immutable implementation of users’ L1Layer 1 (L1) is a blockchain that is self-reliant on its validator set for its security and consensus properties. Ethereum is an example of a layer 1. Blockchains started receiving the moniker of layer 1 once layer 2 became a meaningful area of development. accounts. The bootstrap key authorizes the first passkey. Once a passkey is installed, only the user’s passkeys can authorize operations and manage keys. The last passkey cannot be removed. Deposit recovery checks signatures against this account.

    AccountMetadataRegistry0xDA79…Efa9

    Stores user records (Aztec L2Layer 2 (L2) is a category of technical solutions aimed to scale the base layer in a trust minimized way. This category includes solutions like rollups as well as state channels and plasma. Other solutions are able to scale further, but with the introduction of additional trust assumptions, which are therefore not trust minimized. Sometimes the term Layer 2 is used to refer to include these solutions too, like validiums and optimiums, but to distinguish between trust minimized and non trust minimized solutions they are often referred to as "light" L2s, opposed to "strong" L2s like rollups. address, keys, chosen resolver operatorAn operator is the entity charged with managing a rollup and progressing its state. A rollup operator can be a centralized sequencer, proposer, prover, challenger, pauser of admin that is able to perform upgrades.) and resolver operator entries. User records can be written by the user or by the RegistrationController. Anyone can register as a resolver operator.

    CertManager0xe3DD…dd86

    Verifies and caches AWS Nitro attestation certificates. The only trust anchor is the hardcoded AWS Nitro root certificate.

    UnprocessedDepositRefundVerifier0xF157…8c8a

    UltraHonk verifierAn entity in a ZK-Rollup, often a smart contract, that verifies zero-knowledge proofs submitted by a prover. for refunds of deposits that never reached Aztec before the zk.money portal froze. Its verification key is immutable.

    SkyWithdrawalExecutor0xFE0B…42d5

    Payout contract for sUSDS withdrawals and refunds. Only the PORTAL can execute a payout. It normally redeems sUSDS into USDS and converts USDS to DAI before paying the committed recipient and relayer tip. The recipient can complete an ordinary withdrawal in sUSDS shares through withdrawInShares, bypassing redemption.

    ForwardingTable0xFf83…e41C

    Routing table of zk.money deposit addresses. For each listed token it names the portal that deposit addresses using this table sweep into, and per intent the fee for the beneficiary and the tip for the sweeper. Rows and intents can only be added, never changed or removed.

    • Roles:
      • owner: EOA 1