Search projects, tokens and protocols by name or address
Confidential amounts for ERC-20 tokens on Ethereum: wrappers that encrypt balances and transfer amounts with FHE, decrypted by a committee of KMS operators.
Confidential amounts for ERC-20 tokens on Ethereum: wrappers that encrypt balances and transfer amounts with FHE, decrypted by a committee of KMS operators.
Zama Confidential Tokens let users hold and send tokens on Ethereum with hidden balances and transfer amounts. A user wraps a token into its confidential version, such as USDC into cUSDC, swaps, lends, pays others with it and unwraps it back. Who pays whom and every wrap and unwrap amount stay public.
Users trust the 13 operators of the key management service (KMS), who share the decryption key. They also trust 5 coprocessor operators, Zama for the relayer and app, and Zama’s governance multisigs. Any 5 KMS operators together can decrypt every amount, and the multisigs can upgrade every contract instantly. Unwraps need 7 KMS signatures, so funds leave only while the KMS and the coprocessors run.

The tokens follow ERC-7984 and use fully homomorphic encryptionA type of encryption that allows computations to be performed on encrypted data without decrypting it, making it useful for privacy-preserving computation. (FHE), which lets contracts compute on encrypted amounts. One FHE key pair protects every balance and amount. Wallets encrypt with its public key, and the coprocessors compute on the ciphertexts without decrypting them. The KMS operators hold the secret key in shares and decrypt on request.
Before every write, the app checks the address with Zama’s screening service, which refuses fresh addresses. A clientSometimes labelled interchangeably as a “node”, they are tasked with processing transactions and managing the blockchains's state. They run the computations for each transaction according to the rollup's virtual machine and protocol rules. If comparing to Ethereum clients, these would be execution clients such as Geth, as opposed to consensus clients. built on Zama’s open SDK needs a Zama API key or a self-run relayer. The vault deposit form shares the user’s vault balance with Merkl for extra rewards, on by default, opt-out available.
Vault deposits are batched. You join the open batch with an encrypted amount. After about 24 hours the batch total is unwrapped publicly, deposited into the Morpho vault and the shares wrapped back. Each depositor claims an encrypted share. The app also joins other vaults’ batches with encrypted zero amounts as decoys to hide which vault the user actually joined.
A swap is a sealed-bid auction on ConfidentialSwap. It locks the user’s tokens in the swap contract’s escrow until it settles or is reclaimed. Approved market makers quote every order, including decoys. The winner is public, sees the real order and has to settle it within a time window.
The KMS operators are Zama, Dfns, Figment, Fireblocks, InfStones, Unit410, LayerZero, Ledger, Omakase, Stake Capital, OpenZeppelin, Etherscan and Conduit. Each holds a share of the FHE secret key and a key that signs results for Ethereum. They decrypt an amount only for accounts that the ACL, an onchain access list, allows. Zama states that they run in AWS Nitro enclaves, but Ethereum checks only their signatures. Removing an 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. onchain leaves its key share intact.
Artifact, Blockscape, Luganodes, P2P and Zama run the coprocessors, which compute on ciphertexts and check every encrypted input. Ethereum accepts an input signed by 3 of 5 of them, so they are trusted for validity. Zama stores all ciphertexts in a public bucket. The Zama Gateway, an L3Intuitively, L3s are projects that follow a similar structure to the L2 <> L1 structure but with an L2 underneath. It's not entirely defined yet if this implies that the token escrow must be on the L2, or the proof system. Also, certain cases like projects using aggregation layers make the distinction between L2 and L3 fuzzy as certain components start to look less like a traditional blockchain. How to properly define what is a layer in the first place is still an open question. on Arbitrum, relays decryption requests and publishes who reads which balance and when.
Each token’s owner, controlled by the multisigs, can blockAn 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. users and check them against the underlying token’s denylist, as cUSDC does with USDC’s blacklist. It can also appoint a pauser that halts the token, and observers that decrypt all of its balances and amounts. Today no token has a pauser or an observer. ConfidentialSwap has its own compliance address, set at deployment. Issuers of underlying tokens like USDC can freeze a token’s whole escrow.
Users pay Ethereum 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.. The Gateway charges 1 ZAMA per encrypted input and 0.1 ZAMA per decryption, paid by the relayer.
What the protocol promises: Hides balances and transfer amounts. Senders, recipients and every wrap and unwrap amount are public.
The ratings assume this app, since 2026-10-09 · Closed source, build dpl_HkkjtLU1mXu9VT5nadJciMGnnY1t, checked 2026-10-30
Decrypts the user's confidential balances on Zerion's servers, so Zerion sees every amount the user reveals.
Fix: Decrypt balances on the device under a key only the device holds. · Source
Ties the wallet to the user's name and email in a Bron account, which its store listing says Bron shares with other companies.
Fix: Let users create and use a wallet without giving a name or email. · Source (checked 2026-10-27)
Reads the user's address through Alchemy and PublicNode straight from the browser, so both see it with the user's IP.
Fix: Read the chain through the app's own server, as the Zama app does. · Source (checked 2026-10-27)

Needs the user's own Zama API key on mainnet, which Zama reviews and bills, so Zama ties every request to the user.
Fix: Relay requests under a key that is not tied to the user. · Source
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.
Wraps, unwraps and vault batch totals publish their amounts, while confidential transfers keep theirs encrypted. Either party to a transfer can disclose its amount onchain at any time. A vault batch with a single depositor publishes that depositor’s amount.
Advice: Pay and get paid inside the confidential token, and unwrap only what the user needs.
An account’s balance is bounded by its public wraps and unwraps, and exact if it never took part in a confidential transfer. Transfer partners and timing are public, so a wrap, a transfer and an unwrap in a row pair up by amount. Swap market makers decrypt the amounts of each order and its decoys, and the winner learns which one is real.
Advice: Transfer often, even zero amounts, and unwrap only after a while. Withdraw common amounts rather than everything at once.
No third party sees a transfer amount, since the app encrypts amounts on the device and reads balances under a key only the device holds. A swap quote sends the cleartext amount to Zama’s server, which can pass it to LI.FI.
Advice: Reject the analytics prompt, so Google Analytics and Sentry receive nothing, and skip swaps for amounts that must stay hidden.
Any 5 of the 13 KMS operators can combine their key shares and decrypt every balance and transfer ever made. The token owner can instantly appoint an observer that sees all amounts, and the swap’s compliance address decrypts every swap. Zama’s closed-source app can read amounts before encryption, sends every swap amount to Zama in cleartext and shares vault balances with Merkl by default.
Whoever breaks elliptic-curve cryptography recovers a user’s wallet key from any past transaction and can have the KMS decrypt that user’s history. A wallet signature alone authorizes decryption of past balances and transfers, and the KMS encrypts its reply to any key the request names. The ciphertexts themselves rest on lattice assumptions with no known quantum attack.
Asset | Deposits 7D | Deposits 30D | Deposits Total | Value Locked |
|---|---|---|---|---|
fcUSDT | 7 $8.20 M | 30 $52.27 M | 52 $79.30 M | $36.39 M |
roxcUSDC | 6 $3.07 M | 27 $25.25 M | 45 $48.92 M | $27.89 M |
steakcUSDC | 5 $3.01 M | 23 $8.12 M | 131 $98.51 M | $25.68 M |
ZAMA | 14 $3.89 K | 49 $485.47 K | 185 $47.41 M | $10.52 M |
bbqTGBP | 0 $0.00 | 0 $0.00 | 3 $5.07 M | $5.06 M |
USDT | 54 $12.25 M | 388 $70.77 M | 11.18 K $232.26 M | $4.76 M |
USDC | 52 $10.56 M | 291 $48.16 M | 3.34 K $194.88 M | $1.73 M |
bbqUSDC | 2 $1.72 M | 2 $1.72 M | 6 $1.72 M | $1.72 M |
steakUSDT | 1 $8.73 K | 17 $9.74 M | 30 $11.17 M | $1.62 M |
armcWBTC | 5 $696.73 K | 17 $835.19 K | 31 $1.68 M | $1.19 M |
PAPY | 0 $0.00 | 0 $0.00 | 3 $348.69 K | $348.49 K |
WBTC | 9 $695.68 K | 27 $935.76 K | 54 $1.91 M | $241.20 K |
roxUSDCy | 4 $62.42 K | 4 $62.42 K | 7 $212.64 K | $193.26 K |
pendleUSDC | 1 $0.99 | 4 $40.29 K | 14 $552.37 K | $151.94 K |
tGBP | 0 $0.00 | 1 $5.83 | 12 $5.19 M | $105.74 K |
WETH | 4 $59.38 K | 19 $75.24 K | 127 $324.57 K | $53.37 K |
PENDLE | 2 $33.82 | 6 $318.60 | 9 $53.75 K | $41.64 K |
armUSDTs | 0 $0.00 | 1 $198.53 | 5 $30.20 K | $25.14 K |
AUSD | 0 $0.00 | 5 $429.85 K | 11 $975.49 K | $15.16 K |
bbqUSDT | 0 $0.00 | 0 $0.00 | 4 $10.45 K | $10.44 K |
fAUSDe | 0 $0.00 | 2 $189.75 K | 5 $194.71 K | $5.19 K |
armUSDCs | 1 $4.88 | 2 $14.67 | 6 $227.67 | $227.58 |
XAUt | 1 $24.45 | 4 $176.64 | 16 $70.05 K | $106.41 |
armUSDTp | 0 $0.00 | 0 $0.00 | 2 $118.47 | $68.43 |
armUSDCp | 0 $0.00 | 0 $0.00 | 1 $44.31 | $44.30 |
| Total | 168 $40.36 M | 919 $219.11 M | 15.28 K $730.85 M | $117.80 M |
Inputs need 3 of 5 coprocessors
22 Oct 2026
Encrypted inputs need signatures from 3 of 5 coprocessors instead of one.
Confidential vaults and swaps launch
15 Sep 2026
Confidential deposits expand to 16 Morpho vaults, and swaps between confidential tokens go live.
ZamaGovMultisigA (9/17) and ZamaGovMultisigB (3/6) each control the protocol through ZamaGovCore, an Aragon governance contract that owns the core contracts. Either multisig can upgrade core contracts, change every compliance setting, manage KMS signer sets and trigger FHE key generation.
ZamaDeFiGovCore, a second such contract and one member of ZamaGovMultisigA, acts through its own multisig (3/6). It can upgrade ConfidentialSwap instantly, appoint its market makers and pausers, and pause or retune the vault batchers.
SafeL2 (3/5) owns the Gateway contracts and can change coprocessors and KMS settings there or disconnect Ethereum. Any of 17 pausers can pause the ACL, and any of 17 the Gateway. Either halts every token until its owner unpauses.
Encrypted inputs now need 3 of 5 coprocessor signatures on Ethereum (was 1 of 1), and the Gateway priority coprocessor is off, so its 3-of-5 majority applies. Discovery now covers ConfidentialSwap, the vault batcher router and 36 vault batchers. ZamaDeFiDAO, a second Aragon DAO contract, and its 3/6 multisig plugin own all of them. The protocol DAO is now named ZamaDAO and clarified as a contract in all refs (so that people do not assume it is decentralized).
Encrypted inputs now need 3 of 5 coprocessor signatures on Ethereum (was 1 of 1), and the Gateway priority coprocessor is off, so its 3-of-5 majority applies. Discovery now covers ConfidentialSwap, the vault batcher router and 36 vault batchers. ZamaDeFiDAO, a second Aragon DAO contract, and its 3/6 multisig plugin own all of them. The protocol DAO is now named ZamaDAO and clarified as a contract in all refs (so that people do not assume it is decentralized).
| contract InputVerifier (eth:0xCe0FC2e05CFff1B719EFF7169f7D80Af770c8EA2) [zama/ZamaInputVerifier] { | |
| +++ description: Ethereum host-chain verifier for encrypted input attestations produced by the Zama Gateway InputVerification contract. The FHEVMExecutor calls it before accepting user-provided ciphertext handles. | |
| +++ description: Coprocessor signers accepted by InputVerifier. The threshold number of these signers must sign encrypted input bundles for the Gateway InputVerification EIP-712 domain before the FHEVMExecutor accepts the resulting ciphertext handles. | |
| +++ severity: HIGH | |
| values.getCoprocessorSigners.1: | |
| + | "eth:0x679953d556e71F62673F38EE4775d6E7CCb23E64" |
| +++ description: Coprocessor signers accepted by InputVerifier. The threshold number of these signers must sign encrypted input bundles for the Gateway InputVerification EIP-712 domain before the FHEVMExecutor accepts the resulting ciphertext handles. | |
| +++ severity: HIGH | |
| values.getCoprocessorSigners.2: | |
| + | "eth:0xF6ee37de6bDaB31597E90ED70448B92073cD9634" |
| +++ description: Coprocessor signers accepted by InputVerifier. The threshold number of these signers must sign encrypted input bundles for the Gateway InputVerification EIP-712 domain before the FHEVMExecutor accepts the resulting ciphertext handles. | |
| +++ severity: HIGH | |
| values.getCoprocessorSigners.3: | |
| + | "eth:0x2e809E897AA8046Ff6e936502b6275F0B8993456" |
| +++ description: Coprocessor signers accepted by InputVerifier. The threshold number of these signers must sign encrypted input bundles for the Gateway InputVerification EIP-712 domain before the FHEVMExecutor accepts the resulting ciphertext handles. | |
| +++ severity: HIGH | |
| values.getCoprocessorSigners.4: | |
| + | "eth:0x68EDabe2F16CcC37cB2Bb05F1D1EDad3e1Eecbd7" |
| +++ description: Minimum number of configured coprocessor signer signatures required to accept an encrypted input bundle. | |
| +++ severity: HIGH | |
| values.getThreshold: | |
| - | 1 |
| + | 3 |
| } | |
| EOA (eth:0xD87298Dde09403C68fF5c1FFa2aE02704CF930fe) { | |
| +++ description: None | |
| sourceHashes: | |
| - | ["0x1f44812af62d28f019e30e8eb2af596fb36c7db9d34576972c0405e110a6ef45"] |
| proxyType: | |
| - | "EIP7702 EOA" |
| + | "EOA" |
| values: | |
| - | {"$implementation":"eth:0x63c0c19a282a1B52b07dD5a65b58948A07DAE32B","delegationManager":"eth:0xdb9B1e94B5b69Df7e401DDbedE43491141047dB3","DOMAIN_VERSION":"1","eip712Domain":{"fields":"0x0f","name":"EIP7702StatelessDeleGator","version":"1","chainId":1,"verifyingContract":"eth:0xD87298Dde09403C68fF5c1FFa2aE02704CF930fe","salt":"0x0000000000000000000000000000000000000000000000000000000000000000","extensions":[]},"entryPoint":"eth:0x0000000071727De22E5E9d8BAf0edAc6f37da032","getDeposit":0,"getDomainHash":"0x453a77b4f2a960fc023491780a7e261b19f544175efb54278e7c77c888c70542","getNonce":0,"NAME":"EIP7702StatelessDeleGator","PACKED_USER_OP_TYPEHASH":"0xbc37962d8bd1d319c95199bdfda6d3f92baa8903a61b32d5f4ec1f4b36a3bc18","VERSION":"1.3.0"} |
| } | |
| EOA (zama:0x0000000000000000000000000000000000000000) { | |
| +++ description: None | |
| receivedPermissions.0: | |
| + | {"permission":"interact","from":"zama:0xcB1bB072f38bdAF0F328CdEf1Fc6eDa1DF029287","description":"finalize encrypted input proof verification or rejection in InputVerification alone while priority mode is active.","role":".gatewayPriorityCoprocessorTxSender"} |
| receivedPermissions.1: | |
| + | {"permission":"interact","from":"zama:0xd82cF70FC102028cd01acB87D0E107780ae4F41F","description":"commit ciphertext and SNS ciphertext digests to CiphertextCommits alone while priority mode is active.","role":".gatewayPriorityCoprocessorTxSender"} |
| receivedPermissions.3: | |
| + | {"permission":"interact","from":"zama:0xDE537Be194777A56f8B19d14079E6a78249390ab","description":"finalize coprocessor consensus alone for encrypted input proofs and ciphertext material commitments while priority mode is active.","role":".getPriorityCoprocessorTxSender"} |
| } | |
| EOA (zama:0x373E36A8684A3344E177C5894179845Cbe57AE44) { | |
| +++ description: None | |
| receivedPermissions.1: | |
| - | {"permission":"interact","from":"zama:0xcB1bB072f38bdAF0F328CdEf1Fc6eDa1DF029287","description":"finalize encrypted input proof verification or rejection in InputVerification alone while priority mode is active.","role":".gatewayPriorityCoprocessorTxSender"} |
| receivedPermissions.4: | |
| - | {"permission":"interact","from":"zama:0xd82cF70FC102028cd01acB87D0E107780ae4F41F","description":"commit ciphertext and SNS ciphertext digests to CiphertextCommits alone while priority mode is active.","role":".gatewayPriorityCoprocessorTxSender"} |
| receivedPermissions.6: | |
| - | {"permission":"interact","from":"zama:0xDE537Be194777A56f8B19d14079E6a78249390ab","description":"finalize coprocessor consensus alone for encrypted input proofs and ciphertext material commitments while priority mode is active.","role":".getPriorityCoprocessorTxSender"} |
| } | |
| contract InputVerification (zama:0xcB1bB072f38bdAF0F328CdEf1Fc6eDa1DF029287) [zama/InputVerification_v0_5_0] { | |
| +++ description: Gateway contract that receives encrypted input verification requests from registered and enabled host chains, collects coprocessor responses, and emits a threshold-signed attestation once coprocessor consensus is reached. Since v0.5.0, if GatewayConfig designates a priority coprocessor, that coprocessor's single response finalizes verification or rejection and the attestation carries only its signature. Ethereum InputVerifier verifies attestations against this contract's EIP-712 domain. | |
| +++ description: Priority coprocessor transaction sender configured in GatewayConfig, or zero when disabled. While set, this single coprocessor finalizes encrypted input proof verification and rejection on its own and other coprocessor responses cannot finalize. | |
| +++ severity: HIGH | |
| values.gatewayPriorityCoprocessorTxSender: | |
| - | "zama:0x373E36A8684A3344E177C5894179845Cbe57AE44" |
| + | "zama:0x0000000000000000000000000000000000000000" |
| } | |
| contract CiphertextCommits (zama:0xd82cF70FC102028cd01acB87D0E107780ae4F41F) [zama/CiphertextCommits_v0_5_0] { | |
| +++ description: Gateway contract that stores ciphertext and SNS ciphertext digests after coprocessor consensus, allowing decryption requests to reference committed ciphertext material. Digests referencing unregistered or disabled host chains are rejected. Since v0.5.0, if GatewayConfig designates a priority coprocessor, that coprocessor's single submission commits the material on its own. | |
| +++ description: Priority coprocessor transaction sender configured in GatewayConfig, or zero when disabled. While set, this single coprocessor commits ciphertext material on its own and other coprocessor submissions cannot finalize. | |
| +++ severity: HIGH | |
| values.gatewayPriorityCoprocessorTxSender: | |
| - | "zama:0x373E36A8684A3344E177C5894179845Cbe57AE44" |
| + | "zama:0x0000000000000000000000000000000000000000" |
| } | |
| contract GatewayConfig (zama:0xDE537Be194777A56f8B19d14079E6a78249390ab) [zama/GatewayConfig_v0_7_0] { | |
| +++ description: Central configuration contract for the Zama Gateway. A KMS context snapshots node transaction senders, signers, and workflow thresholds; the owner can create new contexts, retune the thresholds of any live context, and destroy non-current contexts, which immediately invalidates them for decryption. Registered host chains can be disabled, re-enabled, or removed by the owner. Since v0.7.0 the owner can designate a priority coprocessor transaction sender whose single response finalizes coprocessor consensus in InputVerification and CiphertextCommits, making the coprocessor majority threshold inert, and coprocessor set and threshold updates are applied live without pausing InputVerification. | |
| +++ description: Priority coprocessor transaction sender, or zero when priority mode is disabled. While set, a single response from this registered coprocessor finalizes encrypted input proof verification and rejection in InputVerification and ciphertext material commitments in CiphertextCommits; the coprocessor majority threshold is inert and other coprocessors cannot finalize. The owner can set or remove it live, and updateCoprocessors cannot drop the active priority coprocessor or rotate its signer. | |
| +++ severity: HIGH | |
| values.getPriorityCoprocessorTxSender: | |
| - | "zama:0x373E36A8684A3344E177C5894179845Cbe57AE44" |
| + | "zama:0x0000000000000000000000000000000000000000" |
| } | |
| + | Status: CREATED |
| contract RoxcUSDCDepositBatcher (eth:0x084fd3a517D6DaE1f8E3E5481b65107fd7e5eEc1) [zama/VaultBatcherConfidential] | |
| +++ description: Batches confidential deposits into, or redemptions from, an ERC-4626 vault. Users join the current batch with an encrypted amount. A dispatched batch unwraps its total publicly, routes it through the vault and wraps the result, and each user claims an encrypted share of it. | |
| + | Status: CREATED |
| contract VaultBatcherConfidentialRouter (eth:0x11c6Acfd368DDFAB97d15649eB8043C0197fac4C) [zama/VaultBatcherConfidentialRouter] | |
| +++ description: Ownerless router that splits one confidential deposit or redemption across several vault batchers. It accepts only wrappers listed in the ConfidentialTokenWrappersRegistry. | |
| + | Status: CREATED |
| contract PendleUSDCDepositBatcher (eth:0x1B731EC615165094Ec4d695b0a1c8eE31366Cf84) [zama/VaultBatcherConfidential] | |
| +++ description: Batches confidential deposits into, or redemptions from, an ERC-4626 vault. Users join the current batch with an encrypted amount. A dispatched batch unwraps its total publicly, routes it through the vault and wraps the result, and each user claims an encrypted share of it. | |
| + | Status: CREATED |
| contract ArmUSDCpRedeemBatcher (eth:0x2B5eB25dA24dcd00A825487c60401F9736091006) [zama/VaultBatcherConfidential] | |
| +++ description: Batches confidential deposits into, or redemptions from, an ERC-4626 vault. Users join the current batch with an encrypted amount. A dispatched batch unwraps its total publicly, routes it through the vault and wraps the result, and each user claims an encrypted share of it. | |
| + | Status: CREATED |
| contract RoxUSDCyDepositBatcher (eth:0x2dEAFB36F3B118d434CDE4708e8350eae918724d) [zama/VaultBatcherConfidential] | |
| +++ description: Batches confidential deposits into, or redemptions from, an ERC-4626 vault. Users join the current batch with an encrypted amount. A dispatched batch unwraps its total publicly, routes it through the vault and wraps the result, and each user claims an encrypted share of it. | |
| + | Status: CREATED |
| contract BbqTGBPRedeemBatcher (eth:0x2FB51a8fe20D9cc830b9CA5251f8d845eb5BAAa7) [zama/VaultBatcherConfidential] | |
| +++ description: Batches confidential deposits into, or redemptions from, an ERC-4626 vault. Users join the current batch with an encrypted amount. A dispatched batch unwraps its total publicly, routes it through the vault and wraps the result, and each user claims an encrypted share of it. | |
| + | Status: CREATED |
| contract BbqUSDCDepositBatcher (eth:0x321C9AaB1390100f6e7fE1735a928ec0F16252f0) [zama/VaultBatcherConfidential] | |
| +++ description: Batches confidential deposits into, or redemptions from, an ERC-4626 vault. Users join the current batch with an encrypted amount. A dispatched batch unwraps its total publicly, routes it through the vault and wraps the result, and each user claims an encrypted share of it. | |
| + | Status: CREATED |
| contract SteakcUSDCDepositBatcherV1 (eth:0x324EA89FD3784036673BfE6Ffee2334A088F40Cc) [zama/VaultBatcherConfidential] | |
| +++ description: Batches confidential deposits into, or redemptions from, an ERC-4626 vault. Users join the current batch with an encrypted amount. A dispatched batch unwraps its total publicly, routes it through the vault and wraps the result, and each user claims an encrypted share of it. | |
| + | Status: CREATED |
| contract ZamaDeFiMultisig (eth:0x37c8bfa303f173350eefCB6D4a995E68FFbdF3FD) [zama/Multisig] | |
| +++ description: Aragon multisig plugin for creating proposals and collecting approvals against a configurable threshold. | |
| + | Status: CREATED |
| contract SteakcUSDCRedeemBatcher (eth:0x3a906d6509EB4171Ee9fC71D083fb1638BaF083D) [zama/VaultBatcherConfidential] | |
| +++ description: Batches confidential deposits into, or redemptions from, an ERC-4626 vault. Users join the current batch with an encrypted amount. A dispatched batch unwraps its total publicly, routes it through the vault and wraps the result, and each user claims an encrypted share of it. | |
| + | Status: CREATED |
| contract RoxcUSDCRedeemBatcher (eth:0x43e8f7B280B19637d2A7e3008657282AaF2C0E4b) [zama/VaultBatcherConfidential] | |
| +++ description: Batches confidential deposits into, or redemptions from, an ERC-4626 vault. Users join the current batch with an encrypted amount. A dispatched batch unwraps its total publicly, routes it through the vault and wraps the result, and each user claims an encrypted share of it. | |
| + | Status: CREATED |
| contract SteakcUSDCRedeemBatcherV2 (eth:0x4Ad6368aD783644F1BB780F0A0F00cD77ca06400) [zama/VaultBatcherConfidential] | |
| +++ description: Batches confidential deposits into, or redemptions from, an ERC-4626 vault. Users join the current batch with an encrypted amount. A dispatched batch unwraps its total publicly, routes it through the vault and wraps the result, and each user claims an encrypted share of it. | |
| + | Status: CREATED |
| contract ArmUSDCsRedeemBatcher (eth:0x4f555b54842E609bA62843E0Ab4Ff184A436772e) [zama/VaultBatcherConfidential] | |
| +++ description: Batches confidential deposits into, or redemptions from, an ERC-4626 vault. Users join the current batch with an encrypted amount. A dispatched batch unwraps its total publicly, routes it through the vault and wraps the result, and each user claims an encrypted share of it. | |
| + | Status: CREATED |
| contract PAPYRedeemBatcher (eth:0x52FfC3Aa2372D42d1cB413C0E36659ffF1e58EC1) [zama/VaultBatcherConfidential] | |
| +++ description: Batches confidential deposits into, or redemptions from, an ERC-4626 vault. Users join the current batch with an encrypted amount. A dispatched batch unwraps its total publicly, routes it through the vault and wraps the result, and each user claims an encrypted share of it. | |
| + | Status: CREATED |
| contract SteakcUSDCDepositBatcherV2 (eth:0x6e05F3bE50c7890Ba10B30e9492b20683d5cC707) [zama/VaultBatcherConfidential] | |
| +++ description: Batches confidential deposits into, or redemptions from, an ERC-4626 vault. Users join the current batch with an encrypted amount. A dispatched batch unwraps its total publicly, routes it through the vault and wraps the result, and each user claims an encrypted share of it. | |
| + | Status: CREATED |
| contract ArmUSDTsDepositBatcher (eth:0x7320830992a924e6D2f3D3E9A74fbd103E9A20AE) [zama/VaultBatcherConfidential] | |
| +++ description: Batches confidential deposits into, or redemptions from, an ERC-4626 vault. Users join the current batch with an encrypted amount. A dispatched batch unwraps its total publicly, routes it through the vault and wraps the result, and each user claims an encrypted share of it. | |
| + | Status: CREATED |
| contract SteakUSDTDepositBatcher (eth:0x737F4558c0cC7C29b56dd13c34B68e967C91E399) [zama/VaultBatcherConfidential] | |
| +++ description: Batches confidential deposits into, or redemptions from, an ERC-4626 vault. Users join the current batch with an encrypted amount. A dispatched batch unwraps its total publicly, routes it through the vault and wraps the result, and each user claims an encrypted share of it. | |
| + | Status: CREATED |
| contract ArmUSDTsRedeemBatcher (eth:0x79e621c35B93329bbB6F06D9635981B9a5f4a255) [zama/VaultBatcherConfidential] | |
| +++ description: Batches confidential deposits into, or redemptions from, an ERC-4626 vault. Users join the current batch with an encrypted amount. A dispatched batch unwraps its total publicly, routes it through the vault and wraps the result, and each user claims an encrypted share of it. | |
| + | Status: CREATED |
| contract SteakUSDTRedeemBatcher (eth:0x7Afb2CD6D41C379e3d8B46f206346b63A67F4d43) [zama/VaultBatcherConfidential] | |
| +++ description: Batches confidential deposits into, or redemptions from, an ERC-4626 vault. Users join the current batch with an encrypted amount. A dispatched batch unwraps its total publicly, routes it through the vault and wraps the result, and each user claims an encrypted share of it. | |
| + | Status: CREATED |
| contract BbqUSDCRedeemBatcher (eth:0x807C367dA7B9228643b06390e199E33ccA7Cc533) [zama/VaultBatcherConfidential] | |
| +++ description: Batches confidential deposits into, or redemptions from, an ERC-4626 vault. Users join the current batch with an encrypted amount. A dispatched batch unwraps its total publicly, routes it through the vault and wraps the result, and each user claims an encrypted share of it. | |
| + | Status: CREATED |
| contract ArmcWBTCRedeemBatcher (eth:0x83540Af3adFc4d3133139D57D4BAB17828902F05) [zama/VaultBatcherConfidential] | |
| +++ description: Batches confidential deposits into, or redemptions from, an ERC-4626 vault. Users join the current batch with an encrypted amount. A dispatched batch unwraps its total publicly, routes it through the vault and wraps the result, and each user claims an encrypted share of it. | |
| + | Status: CREATED |
| contract ArmUSDCsDepositBatcher (eth:0x87356ade88315aed3aC61B42caCC3a263730B1BD) [zama/VaultBatcherConfidential] | |
| +++ description: Batches confidential deposits into, or redemptions from, an ERC-4626 vault. Users join the current batch with an encrypted amount. A dispatched batch unwraps its total publicly, routes it through the vault and wraps the result, and each user claims an encrypted share of it. | |
| + | Status: CREATED |
| contract ConfidentialSwap (eth:0x8Fe22dC7e624c02b1805d41E09741490E1018C01) [zama/ConfidentialSwap] | |
| +++ description: Request-for-quote protocol for swaps between confidential tokens. A maker escrows an encrypted intent that hides the real order among candidate orders, whitelisted market makers quote every candidate in a sealed-bid auction, and the revealed winner settles within the settlement window or the maker reclaims the escrow. | |
| + | Status: CREATED |
| contract SteakcUSDCRedeemBatcherV1 (eth:0x96Cd3Faa7483783Ac2Eb715f6333361500F1eec9) [zama/VaultBatcherConfidential] | |
| +++ description: Batches confidential deposits into, or redemptions from, an ERC-4626 vault. Users join the current batch with an encrypted amount. A dispatched batch unwraps its total publicly, routes it through the vault and wraps the result, and each user claims an encrypted share of it. | |
| + | Status: CREATED |
| contract ArmUSDTpRedeemBatcher (eth:0x99384d982399a9D890873E402EC04DEE7dad8737) [zama/VaultBatcherConfidential] | |
| +++ description: Batches confidential deposits into, or redemptions from, an ERC-4626 vault. Users join the current batch with an encrypted amount. A dispatched batch unwraps its total publicly, routes it through the vault and wraps the result, and each user claims an encrypted share of it. | |
| + | Status: CREATED |
| contract SteakcUSDCDepositBatcher (eth:0xA07c00A3b955B805B3Ea76b086f95a3e793715D5) [zama/VaultBatcherConfidential] | |
| +++ description: Batches confidential deposits into, or redemptions from, an ERC-4626 vault. Users join the current batch with an encrypted amount. A dispatched batch unwraps its total publicly, routes it through the vault and wraps the result, and each user claims an encrypted share of it. | |
| + | Status: CREATED |
| contract ArmcWBTCDepositBatcher (eth:0xAC82e75FBA31122c1FEb575ebc371aA2EF78604D) [zama/VaultBatcherConfidential] | |
| +++ description: Batches confidential deposits into, or redemptions from, an ERC-4626 vault. Users join the current batch with an encrypted amount. A dispatched batch unwraps its total publicly, routes it through the vault and wraps the result, and each user claims an encrypted share of it. | |
| + | Status: CREATED |
| contract FAUSDeDepositBatcher (eth:0xae09d50C6B6E91D9FBE50D168eA6567759e930f8) [zama/VaultBatcherConfidential] | |
| +++ description: Batches confidential deposits into, or redemptions from, an ERC-4626 vault. Users join the current batch with an encrypted amount. A dispatched batch unwraps its total publicly, routes it through the vault and wraps the result, and each user claims an encrypted share of it. | |
| + | Status: CREATED |
| contract FcUSDTDepositBatcher (eth:0xbEbee65445dAD2F31628ADd14535fd0B3fC915b4) [zama/VaultBatcherConfidential] | |
| +++ description: Batches confidential deposits into, or redemptions from, an ERC-4626 vault. Users join the current batch with an encrypted amount. A dispatched batch unwraps its total publicly, routes it through the vault and wraps the result, and each user claims an encrypted share of it. | |
| + | Status: CREATED |
| contract ArmUSDCpDepositBatcher (eth:0xd26F1546e7aFD5881F132967637957416802865A) [zama/VaultBatcherConfidential] | |
| +++ description: Batches confidential deposits into, or redemptions from, an ERC-4626 vault. Users join the current batch with an encrypted amount. A dispatched batch unwraps its total publicly, routes it through the vault and wraps the result, and each user claims an encrypted share of it. | |
| + | Status: CREATED |
| contract FcUSDTRedeemBatcher (eth:0xd2f3f554F995c12e2BfE5E155397cB6272643744) [zama/VaultBatcherConfidential] | |
| +++ description: Batches confidential deposits into, or redemptions from, an ERC-4626 vault. Users join the current batch with an encrypted amount. A dispatched batch unwraps its total publicly, routes it through the vault and wraps the result, and each user claims an encrypted share of it. | |
| + | Status: CREATED |
| contract PendleUSDCRedeemBatcher (eth:0xD671b562fdecE574da12295D1680F6a7a0af2963) [zama/VaultBatcherConfidential] | |
| +++ description: Batches confidential deposits into, or redemptions from, an ERC-4626 vault. Users join the current batch with an encrypted amount. A dispatched batch unwraps its total publicly, routes it through the vault and wraps the result, and each user claims an encrypted share of it. | |
| + | Status: CREATED |
| contract BbqUSDTDepositBatcher (eth:0xe1Bc291CF6fD71173dB73D58f1b25fC371B9Aa6D) [zama/VaultBatcherConfidential] | |
| +++ description: Batches confidential deposits into, or redemptions from, an ERC-4626 vault. Users join the current batch with an encrypted amount. A dispatched batch unwraps its total publicly, routes it through the vault and wraps the result, and each user claims an encrypted share of it. | |
| + | Status: CREATED |
| contract PAPYDepositBatcher (eth:0xe396FD82a7Aa2F89C16505c1AD46e91F3bc7d3b0) [zama/VaultBatcherConfidential] | |
| +++ description: Batches confidential deposits into, or redemptions from, an ERC-4626 vault. Users join the current batch with an encrypted amount. A dispatched batch unwraps its total publicly, routes it through the vault and wraps the result, and each user claims an encrypted share of it. | |
| + | Status: CREATED |
| contract Safe (eth:0xE53e32a669357Ab0360103d8f294812B914AF9e4) [GnosisSafe] | |
| +++ description: None | |
| + | Status: CREATED |
| contract FAUSDeRedeemBatcher (eth:0xE7761e3864b077728cafE4E18e9c8C23B6F896D0) [zama/VaultBatcherConfidential] | |
| +++ description: Batches confidential deposits into, or redemptions from, an ERC-4626 vault. Users join the current batch with an encrypted amount. A dispatched batch unwraps its total publicly, routes it through the vault and wraps the result, and each user claims an encrypted share of it. | |
| + | Status: CREATED |
| contract RoxUSDCyRedeemBatcher (eth:0xf18Ad9F94a7EA994FdCbC5fD5C5Da326a341d8a8) [zama/VaultBatcherConfidential] | |
| +++ description: Batches confidential deposits into, or redemptions from, an ERC-4626 vault. Users join the current batch with an encrypted amount. A dispatched batch unwraps its total publicly, routes it through the vault and wraps the result, and each user claims an encrypted share of it. | |
| + | Status: CREATED |
| contract ArmUSDTpDepositBatcher (eth:0xFb21951F291E742f24aB4F5c0c11e7BC8864142A) [zama/VaultBatcherConfidential] | |
| +++ description: Batches confidential deposits into, or redemptions from, an ERC-4626 vault. Users join the current batch with an encrypted amount. A dispatched batch unwraps its total publicly, routes it through the vault and wraps the result, and each user claims an encrypted share of it. | |
| + | Status: CREATED |
| contract BbqUSDTRedeemBatcher (eth:0xFc659Fa98AC62970cAe2C594Be32fe4F8b844Ea3) [zama/VaultBatcherConfidential] | |
| +++ description: Batches confidential deposits into, or redemptions from, an ERC-4626 vault. Users join the current batch with an encrypted amount. A dispatched batch unwraps its total publicly, routes it through the vault and wraps the result, and each user claims an encrypted share of it. | |
| + | Status: CREATED |
| contract BbqTGBPDepositBatcher (eth:0xfD899e481C7349d107005feFb1d19F33923b481A) [zama/VaultBatcherConfidential] | |
| +++ description: Batches confidential deposits into, or redemptions from, an ERC-4626 vault. Users join the current batch with an encrypted amount. A dispatched batch unwraps its total publicly, routes it through the vault and wraps the result, and each user claims an encrypted share of it. | |
Safe 0x97E1…4e54 upgraded from Safe 1.4.1 to 1.5.0. The Aragon Multisig template now models its members, which changes no resolved permission here.
Safe 0x97E1…4e54 upgraded from Safe 1.4.1 to 1.5.0. The Aragon Multisig template now models its members, which changes no resolved permission here.
| contract Safe (eth:0x97E18544e156724E4076945F10c288ecBBC94e54) [GnosisSafe] { | |
| +++ description: None | |
| sourceHashes.1: | |
| - | "0xe23c519b7324d6dc9132c8567ac55ae72bdf168c914d22825c7614d822364b0f" |
| + | "0xb66849da6643e8cd188f73efe4edb32704a1540eda5b1aef77a2217ad2d81f78" |
| values.$implementation: | |
| - | "eth:0x41675C099F32341bf84BFc5382aF534df5C7461a" |
| + | "eth:0xFf51A5898e281Db6DfC7855790607438dF2ca44b" |
| values.getChainId: | |
| - | 1 |
| values.VERSION: | |
| - | "1.4.1" |
| + | "1.5.0" |
| implementationNames.eth:0x41675C099F32341bf84BFc5382aF534df5C7461a: | |
| - | "Safe" |
| implementationNames.eth:0xFf51A5898e281Db6DfC7855790607438dF2ca44b: | |
| + | "Safe" |
| } | |
Gateway coprocessors expanded from one to five, and their majority threshold rose to three. ACL updates now need three responses.
Gateway coprocessors expanded from one to five, and their majority threshold rose to three. ACL updates now need three responses.
| contract MultichainACL (zama:0x055d9FD50a612A9027716ec8db663E7D68562468) [zama/MultichainACL] { | |
| +++ description: Gateway-side ACL mirror that records coprocessor consensus for host-chain public decryption permissions, account handle allowances, and delegated user-decryption access. For Ethereum, it mirrors ACL events emitted by the L1 ACL contract registered in GatewayConfig. | |
| +++ description: Minimum number of matching coprocessor messages required before an ACL update reaches consensus. | |
| +++ severity: HIGH | |
| values.gatewayCoprocessorMajorityThreshold: | |
| - | 1 |
| + | 3 |
| +++ description: Coprocessor transaction-sender addresses configured in GatewayConfig. These accounts may update the gateway ACL mirror once enough coprocessors agree. | |
| +++ severity: HIGH | |
| values.gatewayCoprocessorTxSenders.1: | |
| + | "zama:0x679953d556e71F62673F38EE4775d6E7CCb23E64" |
| +++ description: Coprocessor transaction-sender addresses configured in GatewayConfig. These accounts may update the gateway ACL mirror once enough coprocessors agree. | |
| +++ severity: HIGH | |
| values.gatewayCoprocessorTxSenders.2: | |
| + | "zama:0xF6ee37de6bDaB31597E90ED70448B92073cD9634" |
| +++ description: Coprocessor transaction-sender addresses configured in GatewayConfig. These accounts may update the gateway ACL mirror once enough coprocessors agree. | |
| +++ severity: HIGH | |
| values.gatewayCoprocessorTxSenders.3: | |
| + | "zama:0x2e809E897AA8046Ff6e936502b6275F0B8993456" |
| +++ description: Coprocessor transaction-sender addresses configured in GatewayConfig. These accounts may update the gateway ACL mirror once enough coprocessors agree. | |
| +++ severity: HIGH | |
| values.gatewayCoprocessorTxSenders.4: | |
| + | "zama:0x68EDabe2F16CcC37cB2Bb05F1D1EDad3e1Eecbd7" |
| } | |
| contract InputVerification (zama:0xcB1bB072f38bdAF0F328CdEf1Fc6eDa1DF029287) [zama/InputVerification_v0_5_0] { | |
| +++ description: Gateway contract that receives encrypted input verification requests from registered and enabled host chains, collects coprocessor responses, and emits a threshold-signed attestation once coprocessor consensus is reached. Since v0.5.0, if GatewayConfig designates a priority coprocessor, that coprocessor's single response finalizes verification or rejection and the attestation carries only its signature. Ethereum InputVerifier verifies attestations against this contract's EIP-712 domain. | |
| +++ description: Minimum number of matching coprocessor responses required for an encrypted input proof to be verified or rejected. Inert while a priority coprocessor is set in GatewayConfig (see gatewayPriorityCoprocessorTxSender). | |
| +++ severity: HIGH | |
| values.gatewayCoprocessorMajorityThreshold: | |
| - | 1 |
| + | 3 |
| +++ description: Coprocessor signer addresses configured in GatewayConfig. Their EIP-712 signatures determine whether encrypted input proofs reach consensus. | |
| +++ severity: HIGH | |
| values.gatewayCoprocessorSigners.1: | |
| + | "zama:0x679953d556e71F62673F38EE4775d6E7CCb23E64" |
| +++ description: Coprocessor signer addresses configured in GatewayConfig. Their EIP-712 signatures determine whether encrypted input proofs reach consensus. | |
| +++ severity: HIGH | |
| values.gatewayCoprocessorSigners.2: | |
| + | "zama:0xF6ee37de6bDaB31597E90ED70448B92073cD9634" |
| +++ description: Coprocessor signer addresses configured in GatewayConfig. Their EIP-712 signatures determine whether encrypted input proofs reach consensus. | |
| +++ severity: HIGH | |
| values.gatewayCoprocessorSigners.3: | |
| + | "zama:0x2e809E897AA8046Ff6e936502b6275F0B8993456" |
| +++ description: Coprocessor signer addresses configured in GatewayConfig. Their EIP-712 signatures determine whether encrypted input proofs reach consensus. | |
| +++ severity: HIGH | |
| values.gatewayCoprocessorSigners.4: | |
| + | "zama:0x68EDabe2F16CcC37cB2Bb05F1D1EDad3e1Eecbd7" |
| +++ description: Coprocessor transaction-sender addresses configured in GatewayConfig. These accounts may submit signed verification responses and rejection responses. | |
| +++ severity: HIGH | |
| values.gatewayCoprocessorTxSenders.1: | |
| + | "zama:0x679953d556e71F62673F38EE4775d6E7CCb23E64" |
| +++ description: Coprocessor transaction-sender addresses configured in GatewayConfig. These accounts may submit signed verification responses and rejection responses. | |
| +++ severity: HIGH | |
| values.gatewayCoprocessorTxSenders.2: | |
| + | "zama:0xF6ee37de6bDaB31597E90ED70448B92073cD9634" |
| +++ description: Coprocessor transaction-sender addresses configured in GatewayConfig. These accounts may submit signed verification responses and rejection responses. | |
| +++ severity: HIGH | |
| values.gatewayCoprocessorTxSenders.3: | |
| + | "zama:0x2e809E897AA8046Ff6e936502b6275F0B8993456" |
| +++ description: Coprocessor transaction-sender addresses configured in GatewayConfig. These accounts may submit signed verification responses and rejection responses. | |
| +++ severity: HIGH | |
| values.gatewayCoprocessorTxSenders.4: | |
| + | "zama:0x68EDabe2F16CcC37cB2Bb05F1D1EDad3e1Eecbd7" |
| } | |
| contract CiphertextCommits (zama:0xd82cF70FC102028cd01acB87D0E107780ae4F41F) [zama/CiphertextCommits_v0_5_0] { | |
| +++ description: Gateway contract that stores ciphertext and SNS ciphertext digests after coprocessor consensus, allowing decryption requests to reference committed ciphertext material. Digests referencing unregistered or disabled host chains are rejected. Since v0.5.0, if GatewayConfig designates a priority coprocessor, that coprocessor's single submission commits the material on its own. | |
| +++ description: Minimum number of matching coprocessor submissions required before ciphertext material is committed. Inert while a priority coprocessor is set in GatewayConfig (see gatewayPriorityCoprocessorTxSender). | |
| +++ severity: HIGH | |
| values.gatewayCoprocessorMajorityThreshold: | |
| - | 1 |
| + | 3 |
| +++ description: Coprocessor transaction-sender addresses configured in GatewayConfig. These accounts may submit ciphertext material commitments. | |
| +++ severity: HIGH | |
| values.gatewayCoprocessorTxSenders.1: | |
| + | "zama:0x679953d556e71F62673F38EE4775d6E7CCb23E64" |
| +++ description: Coprocessor transaction-sender addresses configured in GatewayConfig. These accounts may submit ciphertext material commitments. | |
| +++ severity: HIGH | |
| values.gatewayCoprocessorTxSenders.2: | |
| + | "zama:0xF6ee37de6bDaB31597E90ED70448B92073cD9634" |
| +++ description: Coprocessor transaction-sender addresses configured in GatewayConfig. These accounts may submit ciphertext material commitments. | |
| +++ severity: HIGH | |
| values.gatewayCoprocessorTxSenders.3: | |
| + | "zama:0x2e809E897AA8046Ff6e936502b6275F0B8993456" |
| +++ description: Coprocessor transaction-sender addresses configured in GatewayConfig. These accounts may submit ciphertext material commitments. | |
| +++ severity: HIGH | |
| values.gatewayCoprocessorTxSenders.4: | |
| + | "zama:0x68EDabe2F16CcC37cB2Bb05F1D1EDad3e1Eecbd7" |
| } | |
| contract GatewayConfig (zama:0xDE537Be194777A56f8B19d14079E6a78249390ab) [zama/GatewayConfig_v0_7_0] { | |
| +++ description: Central configuration contract for the Zama Gateway. A KMS context snapshots node transaction senders, signers, and workflow thresholds; the owner can create new contexts, retune the thresholds of any live context, and destroy non-current contexts, which immediately invalidates them for decryption. Registered host chains can be disabled, re-enabled, or removed by the owner. Since v0.7.0 the owner can designate a priority coprocessor transaction sender whose single response finalizes coprocessor consensus in InputVerification and CiphertextCommits, making the coprocessor majority threshold inert, and coprocessor set and threshold updates are applied live without pausing InputVerification. | |
| +++ description: Minimum number of matching coprocessor messages required for gateway coprocessor consensus. Updates are applied live without pausing InputVerification. The threshold is inert while a priority coprocessor is set (see getPriorityCoprocessorTxSender). | |
| +++ severity: HIGH | |
| values.getCoprocessorMajorityThreshold: | |
| - | 1 |
| + | 3 |
| +++ description: Coprocessor signer addresses registered for this gateway. These sign encrypted input proof responses accepted by InputVerification. | |
| +++ severity: HIGH | |
| values.getCoprocessorSigners.1: | |
| + | "zama:0x679953d556e71F62673F38EE4775d6E7CCb23E64" |
| +++ description: Coprocessor signer addresses registered for this gateway. These sign encrypted input proof responses accepted by InputVerification. | |
| +++ severity: HIGH | |
| values.getCoprocessorSigners.2: | |
| + | "zama:0xF6ee37de6bDaB31597E90ED70448B92073cD9634" |
| +++ description: Coprocessor signer addresses registered for this gateway. These sign encrypted input proof responses accepted by InputVerification. | |
| +++ severity: HIGH | |
| values.getCoprocessorSigners.3: | |
| + | "zama:0x2e809E897AA8046Ff6e936502b6275F0B8993456" |
| +++ description: Coprocessor signer addresses registered for this gateway. These sign encrypted input proof responses accepted by InputVerification. | |
| +++ severity: HIGH | |
| values.getCoprocessorSigners.4: | |
| + | "zama:0x68EDabe2F16CcC37cB2Bb05F1D1EDad3e1Eecbd7" |
| +++ description: Coprocessor transaction-sender addresses registered for this gateway. These accounts submit input-verification, ACL, and ciphertext-material consensus messages. | |
| +++ severity: HIGH | |
| values.getCoprocessorTxSenders.1: | |
| + | "zama:0x679953d556e71F62673F38EE4775d6E7CCb23E64" |
| +++ description: Coprocessor transaction-sender addresses registered for this gateway. These accounts submit input-verification, ACL, and ciphertext-material consensus messages. | |
| +++ severity: HIGH | |
| values.getCoprocessorTxSenders.2: | |
| + | "zama:0xF6ee37de6bDaB31597E90ED70448B92073cD9634" |
| +++ description: Coprocessor transaction-sender addresses registered for this gateway. These accounts submit input-verification, ACL, and ciphertext-material consensus messages. | |
| +++ severity: HIGH | |
| values.getCoprocessorTxSenders.3: | |
| + | "zama:0x2e809E897AA8046Ff6e936502b6275F0B8993456" |
| +++ description: Coprocessor transaction-sender addresses registered for this gateway. These accounts submit input-verification, ACL, and ciphertext-material consensus messages. | |
| +++ severity: HIGH | |
| values.getCoprocessorTxSenders.4: | |
| + | "zama:0x68EDabe2F16CcC37cB2Bb05F1D1EDad3e1Eecbd7" |
| } | |
Upgraded: - Gateway contracts introduce a priority coprocessor mode, where a single registered coprocessor can ignore the majority threshold and finalize input-proof verification and rejection, and ciphertext commits on its own (GatewayConfig: https://disco.l2beat.com/diff/zama:0x1950aD98e834f6c07553365196d4CddeD179c536/zama:0x94209410f6CAa4A8c6Fd7ED4AB67560eD8A3002C, InputVerification: https://disco.l2beat.com/diff/zama:0xf9f0F5ef8301CF1573EBe0F45E13A4CabB621821/zama:0xa9A3eA1cdD078a79bB31c3a284a4abA80bd0E8d8, CiphertextCommits: https://disco.l2beat.com/diff/zama:0xB373Ae42736E3C266D4A5D090c00c7f0Bda06622/zama:0x81a6CBD6B1bb0296BfFd38AD8584918640F35948). This mode effectively removes coprocessor decentralization. Zama coprocessor is also set as the priority coprocessor. - FHEVMExecutor has new validity checks (https://disco.l2beat.com/diff/eth:0xf444B2B5e45cD07F1E735122F53A2d70A8c81dB5/eth:0x0675c7BFA34aF170C49e6590A2cBf845c3029d7B).
Upgraded:
| contract FHEVMExecutor (eth:0xD82385dADa1ae3E969447f20A3164F6213100e75) [zama/ZamaFHEVMExecutor_v0_5_0] { | |
| +++ description: FHEVM executor that accepts encrypted operation requests, accounts for computation usage, and stores ciphertext handles for operation results. v0.5.0 rejects plaintext scalar operands and trivial-encryption inputs that do not fit their FHE type, checks division by zero in the shared binary-operation path, and adds a checkHandleType view that asserts the type of an initialized handle. | |
| template: | |
| - | "zama/ZamaFHEVMExecutor_v0_4_0" |
| + | "zama/ZamaFHEVMExecutor_v0_5_0" |
| sourceHashes.1: | |
| - | "0x8521799e0a57218bcbd587c2f46222a266bbcbe2f27780cc0bf6ed66eb9cda1f" |
| + | "0x270ee2b9f564ae13a2f925f057cc5baca30e031fab0362ab7ce086bdd2cd1a01" |
| description: | |
| - | "FHEVM executor that accepts encrypted operation requests, accounts for computation usage, and stores ciphertext handles for operation results. v0.4.0 adds the n-ary encrypted operations fheSum and fheIsIn (encrypted set membership) over bounded ciphertext collections." |
| + | "FHEVM executor that accepts encrypted operation requests, accounts for computation usage, and stores ciphertext handles for operation results. v0.5.0 rejects plaintext scalar operands and trivial-encryption inputs that do not fit their FHE type, checks division by zero in the shared binary-operation path, and adds a checkHandleType view that asserts the type of an initialized handle." |
| values.$implementation: | |
| - | "eth:0xf444B2B5e45cD07F1E735122F53A2d70A8c81dB5" |
| + | "eth:0x0675c7BFA34aF170C49e6590A2cBf845c3029d7B" |
| values.$pastUpgrades.5: | |
| + | ["2026-10-05T16:11:11.000Z","0x63594740e6849980ffeecf14392b8b7f3e1e382c2e1ea023eb7a3df345f61328",["eth:0x0675c7BFA34aF170C49e6590A2cBf845c3029d7B"]] |
| values.$upgradeCount: | |
| - | 5 |
| + | 6 |
| values.getVersion: | |
| - | "FHEVMExecutor v0.4.0" |
| + | "FHEVMExecutor v0.5.0" |
| implementationNames.eth:0xf444B2B5e45cD07F1E735122F53A2d70A8c81dB5: | |
| - | "FHEVMExecutor" |
| implementationNames.eth:0x0675c7BFA34aF170C49e6590A2cBf845c3029d7B: | |
| + | "FHEVMExecutor" |
| } | |
| EOA (zama:0x373E36A8684A3344E177C5894179845Cbe57AE44) { | |
| +++ description: None | |
| receivedPermissions.1: | |
| + | {"permission":"interact","from":"zama:0xcB1bB072f38bdAF0F328CdEf1Fc6eDa1DF029287","description":"finalize encrypted input proof verification or rejection in InputVerification alone while priority mode is active.","role":".gatewayPriorityCoprocessorTxSender"} |
| receivedPermissions.4: | |
| + | {"permission":"interact","from":"zama:0xd82cF70FC102028cd01acB87D0E107780ae4F41F","description":"commit ciphertext and SNS ciphertext digests to CiphertextCommits alone while priority mode is active.","role":".gatewayPriorityCoprocessorTxSender"} |
| receivedPermissions.6: | |
| + | {"permission":"interact","from":"zama:0xDE537Be194777A56f8B19d14079E6a78249390ab","description":"finalize coprocessor consensus alone for encrypted input proofs and ciphertext material commitments while priority mode is active.","role":".getPriorityCoprocessorTxSender"} |
| } | |
| contract SafeL2 (zama:0x5f0F86BcEad6976711C9B131bCa5D30E767fe2bE) [GnosisSafe] { | |
| +++ description: Gateway owner Safe. Its LayerZero governance module is outside the Zama Gateway protocol surface covered here. | |
| receivedPermissions.4.description: | |
| - | "create KMS contexts that immediately become current, destroy historical KMS contexts, update thresholds of any live context, manage coprocessors, custodians and host chains, transfer ownership, and unpause gateway workflow contracts." |
| + | "create KMS contexts that immediately become current, destroy historical KMS contexts, update thresholds of any live context, manage coprocessors, custodians and host chains, set or remove the priority coprocessor that alone finalizes coprocessor consensus, transfer ownership, and unpause gateway workflow contracts." |
| } | |
| contract InputVerification (zama:0xcB1bB072f38bdAF0F328CdEf1Fc6eDa1DF029287) [zama/InputVerification_v0_5_0] { | |
| +++ description: Gateway contract that receives encrypted input verification requests from registered and enabled host chains, collects coprocessor responses, and emits a threshold-signed attestation once coprocessor consensus is reached. Since v0.5.0, if GatewayConfig designates a priority coprocessor, that coprocessor's single response finalizes verification or rejection and the attestation carries only its signature. Ethereum InputVerifier verifies attestations against this contract's EIP-712 domain. | |
| template: | |
| - | "zama/InputVerification" |
| + | "zama/InputVerification_v0_5_0" |
| sourceHashes.1: | |
| - | "0x58bb055397e294a46ebccbc53c94bb2494bf05acd7ad77f2fb7cc46b3ef1eb92" |
| + | "0x5018850c43e4cdb57f9d66bfa3b13efd5321f0c3d39a78259aab0c007663a1ef" |
| description: | |
| - | "Gateway contract that receives encrypted input verification requests from registered and enabled host chains, collects coprocessor responses, and emits a threshold-signed attestation once coprocessor consensus is reached. Ethereum InputVerifier verifies attestations against this contract's EIP-712 domain." |
| + | "Gateway contract that receives encrypted input verification requests from registered and enabled host chains, collects coprocessor responses, and emits a threshold-signed attestation once coprocessor consensus is reached. Since v0.5.0, if GatewayConfig designates a priority coprocessor, that coprocessor's single response finalizes verification or rejection and the attestation carries only its signature. Ethereum InputVerifier verifies attestations against this contract's EIP-712 domain." |
| values.$implementation: | |
| - | "zama:0xf9f0F5ef8301CF1573EBe0F45E13A4CabB621821" |
| + | "zama:0xa9A3eA1cdD078a79bB31c3a284a4abA80bd0E8d8" |
| values.$pastUpgrades.4: | |
| + | ["2026-10-08T10:05:10.000Z","0x2dc9ffacebc169a90ee746b5818b83d470bf7dbc5855c1ae05268b76caf604aa",["zama:0xa9A3eA1cdD078a79bB31c3a284a4abA80bd0E8d8"]] |
| values.$upgradeCount: | |
| - | 4 |
| + | 5 |
| values.getVersion: | |
| - | "InputVerification v0.4.0" |
| + | "InputVerification v0.5.0" |
| +++ description: Priority coprocessor transaction sender configured in GatewayConfig, or zero when disabled. While set, this single coprocessor finalizes encrypted input proof verification and rejection on its own and other coprocessor responses cannot finalize. | |
| +++ severity: HIGH | |
| values.gatewayPriorityCoprocessorTxSender: | |
| + | "zama:0x373E36A8684A3344E177C5894179845Cbe57AE44" |
| fieldMeta.gatewayCoprocessorMajorityThreshold.description: | |
| - | "Minimum number of matching coprocessor responses required for an encrypted input proof to be verified or rejected." |
| + | "Minimum number of matching coprocessor responses required for an encrypted input proof to be verified or rejected. Inert while a priority coprocessor is set in GatewayConfig (see gatewayPriorityCoprocessorTxSender)." |
| fieldMeta.gatewayPriorityCoprocessorTxSender: | |
| + | {"severity":"HIGH","description":"Priority coprocessor transaction sender configured in GatewayConfig, or zero when disabled. While set, this single coprocessor finalizes encrypted input proof verification and rejection on its own and other coprocessor responses cannot finalize.","type":"PERMISSION"} |
| implementationNames.zama:0xf9f0F5ef8301CF1573EBe0F45E13A4CabB621821: | |
| - | "InputVerification" |
| implementationNames.zama:0xa9A3eA1cdD078a79bB31c3a284a4abA80bd0E8d8: | |
| + | "InputVerification" |
| } | |
| contract CiphertextCommits (zama:0xd82cF70FC102028cd01acB87D0E107780ae4F41F) [zama/CiphertextCommits_v0_5_0] { | |
| +++ description: Gateway contract that stores ciphertext and SNS ciphertext digests after coprocessor consensus, allowing decryption requests to reference committed ciphertext material. Digests referencing unregistered or disabled host chains are rejected. Since v0.5.0, if GatewayConfig designates a priority coprocessor, that coprocessor's single submission commits the material on its own. | |
| template: | |
| - | "zama/CiphertextCommits" |
| + | "zama/CiphertextCommits_v0_5_0" |
| sourceHashes.1: | |
| - | "0xa3aa22a184258ca16a5d83ce495ae0d307d4c5ec9fda8a7622d4f95728f4af03" |
| + | "0x2b3db0e0d5ff22923e545ffb64992573f75c3b020179bd81534fb16c054dfa7c" |
| description: | |
| - | "Gateway contract that stores ciphertext and SNS ciphertext digests after coprocessor consensus, allowing decryption requests to reference committed ciphertext material. Digests referencing unregistered or disabled host chains are rejected." |
| + | "Gateway contract that stores ciphertext and SNS ciphertext digests after coprocessor consensus, allowing decryption requests to reference committed ciphertext material. Digests referencing unregistered or disabled host chains are rejected. Since v0.5.0, if GatewayConfig designates a priority coprocessor, that coprocessor's single submission commits the material on its own." |
| values.$implementation: | |
| - | "zama:0xB373Ae42736E3C266D4A5D090c00c7f0Bda06622" |
| + | "zama:0x81a6CBD6B1bb0296BfFd38AD8584918640F35948" |
| values.$pastUpgrades.4: | |
| + | ["2026-10-08T10:05:10.000Z","0x2dc9ffacebc169a90ee746b5818b83d470bf7dbc5855c1ae05268b76caf604aa",["zama:0x81a6CBD6B1bb0296BfFd38AD8584918640F35948"]] |
| values.$upgradeCount: | |
| - | 4 |
| + | 5 |
| values.getVersion: | |
| - | "CiphertextCommits v0.4.0" |
| + | "CiphertextCommits v0.5.0" |
| +++ description: Priority coprocessor transaction sender configured in GatewayConfig, or zero when disabled. While set, this single coprocessor commits ciphertext material on its own and other coprocessor submissions cannot finalize. | |
| +++ severity: HIGH | |
| values.gatewayPriorityCoprocessorTxSender: | |
| + | "zama:0x373E36A8684A3344E177C5894179845Cbe57AE44" |
| fieldMeta.gatewayCoprocessorMajorityThreshold.description: | |
| - | "Minimum number of matching coprocessor submissions required before ciphertext material is committed." |
| + | "Minimum number of matching coprocessor submissions required before ciphertext material is committed. Inert while a priority coprocessor is set in GatewayConfig (see gatewayPriorityCoprocessorTxSender)." |
| fieldMeta.gatewayPriorityCoprocessorTxSender: | |
| + | {"severity":"HIGH","description":"Priority coprocessor transaction sender configured in GatewayConfig, or zero when disabled. While set, this single coprocessor commits ciphertext material on its own and other coprocessor submissions cannot finalize.","type":"PERMISSION"} |
| implementationNames.zama:0xB373Ae42736E3C266D4A5D090c00c7f0Bda06622: | |
| - | "CiphertextCommits" |
| implementationNames.zama:0x81a6CBD6B1bb0296BfFd38AD8584918640F35948: | |
| + | "CiphertextCommits" |
| } | |
| contract GatewayConfig (zama:0xDE537Be194777A56f8B19d14079E6a78249390ab) [zama/GatewayConfig_v0_7_0] { | |
| +++ description: Central configuration contract for the Zama Gateway. A KMS context snapshots node transaction senders, signers, and workflow thresholds; the owner can create new contexts, retune the thresholds of any live context, and destroy non-current contexts, which immediately invalidates them for decryption. Registered host chains can be disabled, re-enabled, or removed by the owner. Since v0.7.0 the owner can designate a priority coprocessor transaction sender whose single response finalizes coprocessor consensus in InputVerification and CiphertextCommits, making the coprocessor majority threshold inert, and coprocessor set and threshold updates are applied live without pausing InputVerification. | |
| template: | |
| - | "zama/GatewayConfig_v0_6_0" |
| + | "zama/GatewayConfig_v0_7_0" |
| sourceHashes.1: | |
| - | "0xe903576aaecdd97c5036c6bc029149a11b44484c78d9c6b0d802a882d4744597" |
| + | "0x26ff42c37647db207e8c9fa6bbc7ff8e6a15f782d4f85480a5fe711b95f25894" |
| description: | |
| - | "Central configuration contract for the Zama Gateway. A KMS context snapshots node transaction senders, signers, and workflow thresholds; the owner can create new contexts, retune the thresholds of any live context, and destroy non-current contexts, which immediately invalidates them for decryption. Registered host chains can be disabled, re-enabled, or removed by the owner." |
| + | "Central configuration contract for the Zama Gateway. A KMS context snapshots node transaction senders, signers, and workflow thresholds; the owner can create new contexts, retune the thresholds of any live context, and destroy non-current contexts, which immediately invalidates them for decryption. Registered host chains can be disabled, re-enabled, or removed by the owner. Since v0.7.0 the owner can designate a priority coprocessor transaction sender whose single response finalizes coprocessor consensus in InputVerification and CiphertextCommits, making the coprocessor majority threshold inert, and coprocessor set and threshold updates are applied live without pausing InputVerification." |
| values.$implementation: | |
| - | "zama:0x1950aD98e834f6c07553365196d4CddeD179c536" |
| + | "zama:0x94209410f6CAa4A8c6Fd7ED4AB67560eD8A3002C" |
| values.$pastUpgrades.5: | |
| + | ["2026-10-08T10:05:10.000Z","0x2dc9ffacebc169a90ee746b5818b83d470bf7dbc5855c1ae05268b76caf604aa",["zama:0x94209410f6CAa4A8c6Fd7ED4AB67560eD8A3002C"]] |
| values.$upgradeCount: | |
| - | 5 |
| + | 6 |
| values.getVersion: | |
| - | "GatewayConfig v0.6.0" |
| + | "GatewayConfig v0.7.0" |
| +++ description: Priority coprocessor transaction sender, or zero when priority mode is disabled. While set, a single response from this registered coprocessor finalizes encrypted input proof verification and rejection in InputVerification and ciphertext material commitments in CiphertextCommits; the coprocessor majority threshold is inert and other coprocessors cannot finalize. The owner can set or remove it live, and updateCoprocessors cannot drop the active priority coprocessor or rotate its signer. | |
| +++ severity: HIGH | |
| values.getPriorityCoprocessorTxSender: | |
| + | "zama:0x373E36A8684A3344E177C5894179845Cbe57AE44" |
| fieldMeta.owner.description: | |
| - | "Owner of GatewayConfig. This account creates and destroys KMS contexts, changes the thresholds of any live context, manages coprocessors, custodians and host chains (including disabling and removing them), transfers ownership, and unpauses gateway contracts. A newly created context becomes current immediately; older contexts remain selectable by Decryption requests until destroyed." |
| + | "Owner of GatewayConfig. This account creates and destroys KMS contexts, changes the thresholds of any live context, manages coprocessors, custodians and host chains (including disabling and removing them), sets or removes the priority coprocessor, transfers ownership, and unpauses gateway contracts. A newly created context becomes current immediately; older contexts remain selectable by Decryption requests until destroyed. Coprocessor set, threshold and priority updates are applied live without pausing InputVerification." |
| fieldMeta.inputVerification.description: | |
| - | "InputVerification workflow contract paused and unpaused by GatewayConfig. Coprocessor set and threshold updates require this contract to be paused first." |
| + | "InputVerification workflow contract paused and unpaused by GatewayConfig. Since v0.7.0 coprocessor set, threshold and priority coprocessor updates are applied live without pausing this contract first." |
| fieldMeta.getCoprocessorMajorityThreshold.description: | |
| - | "Minimum number of matching coprocessor messages required for gateway coprocessor consensus. Updates require InputVerification to be paused first." |
| + | "Minimum number of matching coprocessor messages required for gateway coprocessor consensus. Updates are applied live without pausing InputVerification. The threshold is inert while a priority coprocessor is set (see getPriorityCoprocessorTxSender)." |
| fieldMeta.getPriorityCoprocessorTxSender: | |
| + | {"severity":"HIGH","description":"Priority coprocessor transaction sender, or zero when priority mode is disabled. While set, a single response from this registered coprocessor finalizes encrypted input proof verification and rejection in InputVerification and ciphertext material commitments in CiphertextCommits; the coprocessor majority threshold is inert and other coprocessors cannot finalize. The owner can set or remove it live, and updateCoprocessors cannot drop the active priority coprocessor or rotate its signer.","type":"PERMISSION"} |
| implementationNames.zama:0x1950aD98e834f6c07553365196d4CddeD179c536: | |
| - | "GatewayConfig" |
| implementationNames.zama:0x94209410f6CAa4A8c6Fd7ED4AB67560eD8A3002C: | |
| + | "GatewayConfig" |
| } | |
A Safe that is one of the signers of ZamaGovMultisigA (eth:0x69E55790880d0ABa56E48Ee1f7fc3834b0F5c223) lowered its own threshold from 3/5 to 2/5.
A Safe that is one of the signers of ZamaGovMultisigA (eth:0x69E55790880d0ABa56E48Ee1f7fc3834b0F5c223) lowered its own threshold from 3/5 to 2/5.
| contract Safe (eth:0x69E55790880d0ABa56E48Ee1f7fc3834b0F5c223) [GnosisSafe] { | |
| +++ description: None | |
| values.$threshold: | |
| - | 3 |
| + | 2 |
| values.multisigThreshold: | |
| - | "3 of 5 (60%)" |
| + | "2 of 5 (40%)" |
| } | |

A Multisig with 3/6 threshold. Aragon multisig plugin for creating proposals and collecting approvals against a configurable threshold.
A Multisig with 9/17 threshold. Aragon multisig plugin for creating proposals and collecting approvals against a configurable threshold.
A Multisig with 3/6 threshold. Aragon multisig plugin for creating proposals and collecting approvals against a configurable threshold.
Member of ZamaDeFiMultisig, ZamaGovMultisigB.
Member of ZamaDeFiMultisig, ZamaGovMultisigB.
Member of ZamaDeFiMultisig, ZamaGovMultisigB, ZamaGovMultisigA.
Member of ZamaDeFiMultisig, ZamaGovMultisigB.
A Multisig with 3/5 threshold. Gateway owner Safe. Its LayerZero governance module is outside the Zama Gateway protocol surface covered here.

Batches confidential deposits into, or redemptions from, an ERC-4626 vault. Users join the current batch with an encrypted amount. A dispatched batch unwraps its total publicly, routes it through the vault and wraps the result, and each user claims an encrypted share of it.
Ownerless router that splits one confidential deposit or redemption across several vault batchers. It accepts only wrappers listed in the ConfidentialTokenWrappersRegistry.
Batches confidential deposits into, or redemptions from, an ERC-4626 vault. Users join the current batch with an encrypted amount. A dispatched batch unwraps its total publicly, routes it through the vault and wraps the result, and each user claims an encrypted share of it.
ERC-20 wrapper that escrows an underlying token and issues confidential balances. It supports encrypted transfers, wrapping, unwrapping, local blocking, optional underlying-token denylist checks, owner-managed observers with wildcard decryption access, and pausing.
Batches confidential deposits into, or redemptions from, an ERC-4626 vault. Users join the current batch with an encrypted amount. A dispatched batch unwraps its total publicly, routes it through the vault and wraps the result, and each user claims an encrypted share of it.
Batches confidential deposits into, or redemptions from, an ERC-4626 vault. Users join the current batch with an encrypted amount. A dispatched batch unwraps its total publicly, routes it through the vault and wraps the result, and each user claims an encrypted share of it.
ERC-20 wrapper that escrows an underlying token and issues confidential balances. It supports encrypted transfers, wrapping, unwrapping, local blocking, optional underlying-token denylist checks, owner-managed observers with wildcard decryption access, and pausing.
Batches confidential deposits into, or redemptions from, an ERC-4626 vault. Users join the current batch with an encrypted amount. A dispatched batch unwraps its total publicly, routes it through the vault and wraps the result, and each user claims an encrypted share of it.
Batches confidential deposits into, or redemptions from, an ERC-4626 vault. Users join the current batch with an encrypted amount. A dispatched batch unwraps its total publicly, routes it through the vault and wraps the result, and each user claims an encrypted share of it.
Batches confidential deposits into, or redemptions from, an ERC-4626 vault. Users join the current batch with an encrypted amount. A dispatched batch unwraps its total publicly, routes it through the vault and wraps the result, and each user claims an encrypted share of it.
Batches confidential deposits into, or redemptions from, an ERC-4626 vault. Users join the current batch with an encrypted amount. A dispatched batch unwraps its total publicly, routes it through the vault and wraps the result, and each user claims an encrypted share of it.
Tracks and enforces per-transaction and per-blockAn 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. homomorphic computation unit limits for FHEVM operation requests. v0.3.0 adds pricing for the fheSum and fheIsIn operations.
Batches confidential deposits into, or redemptions from, an ERC-4626 vault. Users join the current batch with an encrypted amount. A dispatched batch unwraps its total publicly, routes it through the vault and wraps the result, and each user claims an encrypted share of it.
Batches confidential deposits into, or redemptions from, an ERC-4626 vault. Users join the current batch with an encrypted amount. A dispatched batch unwraps its total publicly, routes it through the vault and wraps the result, and each user claims an encrypted share of it.
Batches confidential deposits into, or redemptions from, an ERC-4626 vault. Users join the current batch with an encrypted amount. A dispatched batch unwraps its total publicly, routes it through the vault and wraps the result, and each user claims an encrypted share of it.
ERC-20 wrapper that escrows an underlying token and issues confidential balances. It supports encrypted transfers, wrapping, unwrapping, local blocking, optional underlying-token denylist checks, owner-managed observers with wildcard decryption access, and pausing.
ERC-20 wrapper that escrows an underlying token and issues confidential balances. It supports encrypted transfers, wrapping, unwrapping, local blocking, optional underlying-token denylist checks, owner-managed observers with wildcard decryption access, and pausing.
Batches confidential deposits into, or redemptions from, an ERC-4626 vault. Users join the current batch with an encrypted amount. A dispatched batch unwraps its total publicly, routes it through the vault and wraps the result, and each user claims an encrypted share of it.
ERC-20 wrapper that escrows an underlying token and issues confidential balances. It supports encrypted transfers, wrapping, unwrapping, local blocking, optional underlying-token denylist checks, owner-managed observers with wildcard decryption access, and pausing.
ERC-20 wrapper that escrows an underlying token and issues confidential balances. It supports encrypted transfers, wrapping, unwrapping, local blocking, optional underlying-token denylist checks, owner-managed observers with wildcard decryption access, and pausing.
Batches confidential deposits into, or redemptions from, an ERC-4626 vault. Users join the current batch with an encrypted amount. A dispatched batch unwraps its total publicly, routes it through the vault and wraps the result, and each user claims an encrypted share of it.
Batches confidential deposits into, or redemptions from, an ERC-4626 vault. Users join the current batch with an encrypted amount. A dispatched batch unwraps its total publicly, routes it through the vault and wraps the result, and each user claims an encrypted share of it.
Batches confidential deposits into, or redemptions from, an ERC-4626 vault. Users join the current batch with an encrypted amount. A dispatched batch unwraps its total publicly, routes it through the vault and wraps the result, and each user claims an encrypted share of it.
ERC-20 wrapper that escrows an underlying token and issues confidential balances. It supports encrypted transfers, wrapping, unwrapping, local blocking, optional underlying-token denylist checks, owner-managed observers with wildcard decryption access, and pausing.
ERC-20 wrapper that escrows an underlying token and issues confidential balances. It supports encrypted transfers, wrapping, unwrapping, local blocking, optional underlying-token denylist checks, owner-managed observers with wildcard decryption access, and pausing.
Ethereum host-chain verifierAn entity in a ZK-Rollup, often a smart contract, that verifies zero-knowledge proofs submitted by a prover. for public decryption results produced through the Zama Gateway Decryption contract. Since v0.3.0 it is a stateless proof checker: KMS signer sets and thresholds are read from the ProtocolConfig contract, and confidential token wrappers accept a decrypted value when it is signed by the threshold of the current or any explicitly selected non-destroyed KMS context.
ERC-20 wrapper that escrows an underlying token and issues confidential balances. It supports encrypted transfers, wrapping, unwrapping, local blocking, optional underlying-token denylist checks, owner-managed observers with wildcard decryption access, and pausing.
Batches confidential deposits into, or redemptions from, an ERC-4626 vault. Users join the current batch with an encrypted amount. A dispatched batch unwraps its total publicly, routes it through the vault and wraps the result, and each user claims an encrypted share of it.
Batches confidential deposits into, or redemptions from, an ERC-4626 vault. Users join the current batch with an encrypted amount. A dispatched batch unwraps its total publicly, routes it through the vault and wraps the result, and each user claims an encrypted share of it.
Batches confidential deposits into, or redemptions from, an ERC-4626 vault. Users join the current batch with an encrypted amount. A dispatched batch unwraps its total publicly, routes it through the vault and wraps the result, and each user claims an encrypted share of it.
ERC-20 wrapper that escrows an underlying token and issues confidential balances. It supports encrypted transfers, wrapping, unwrapping, local blocking, optional underlying-token denylist checks, owner-managed observers with wildcard decryption access, and pausing.
ERC-20 wrapper that escrows an underlying token and issues confidential balances. It supports encrypted transfers, wrapping, unwrapping, local blocking, optional underlying-token denylist checks, owner-managed observers with wildcard decryption access, and pausing.
Batches confidential deposits into, or redemptions from, an ERC-4626 vault. Users join the current batch with an encrypted amount. A dispatched batch unwraps its total publicly, routes it through the vault and wraps the result, and each user claims an encrypted share of it.
ERC-20 wrapper that escrows an underlying token and issues confidential balances. It supports encrypted transfers, wrapping, unwrapping, local blocking, optional underlying-token denylist checks, owner-managed observers with wildcard decryption access, and pausing.
Batches confidential deposits into, or redemptions from, an ERC-4626 vault. Users join the current batch with an encrypted amount. A dispatched batch unwraps its total publicly, routes it through the vault and wraps the result, and each user claims an encrypted share of it.
ERC-20 wrapper that escrows an underlying token and issues confidential balances. It supports encrypted transfers, wrapping, unwrapping, local blocking, optional underlying-token denylist checks, owner-managed observers with wildcard decryption access, and pausing.
Request-for-quote protocol for swaps between confidential tokens. A maker escrows an encrypted intent that hides the real order among candidate orders, whitelisted market makers quote every candidate in a sealed-bid auction, and the revealed winner settles within the settlementThe mechanism with which the execution of rollup blocks and the resultant state is verified and possible disputes are resolved. In the context of rollups or other modular blockchains, it often refers to the proof system used--validity (ZK) or fraud proofs, or a combination thereof. Sometimes it will refer to this mechanism along with where the mechanism's outputs are ultimately published and verified, as in Ethereum being a settlement layer by verifying the proofs and allowing for withdrawals. window or the maker reclaims the escrow.
Batches confidential deposits into, or redemptions from, an ERC-4626 vault. Users join the current batch with an encrypted amount. A dispatched batch unwraps its total publicly, routes it through the vault and wraps the result, and each user claims an encrypted share of it.
Batches confidential deposits into, or redemptions from, an ERC-4626 vault. Users join the current batch with an encrypted amount. A dispatched batch unwraps its total publicly, routes it through the vault and wraps the result, and each user claims an encrypted share of it.
ERC-20 wrapper that escrows an underlying token and issues confidential balances. It supports encrypted transfers, wrapping, unwrapping, local blocking, optional underlying-token denylist checks, owner-managed observers with wildcard decryption access, and pausing.
Batches confidential deposits into, or redemptions from, an ERC-4626 vault. Users join the current batch with an encrypted amount. A dispatched batch unwraps its total publicly, routes it through the vault and wraps the result, and each user claims an encrypted share of it.
ERC-20 wrapper that escrows an underlying token and issues confidential balances. It supports encrypted transfers, wrapping, unwrapping, local blocking, optional underlying-token denylist checks, owner-managed observers with wildcard decryption access, and pausing.
ERC-20 wrapper that escrows an underlying token and issues confidential balances. It supports encrypted transfers, wrapping, unwrapping, local blocking, optional underlying-token denylist checks, owner-managed observers with wildcard decryption access, and pausing.
Batches confidential deposits into, or redemptions from, an ERC-4626 vault. Users join the current batch with an encrypted amount. A dispatched batch unwraps its total publicly, routes it through the vault and wraps the result, and each user claims an encrypted share of it.
ERC-20 wrapper that escrows an underlying token and issues confidential balances. It supports encrypted transfers, wrapping, unwrapping, local blocking, optional underlying-token denylist checks, owner-managed observers with wildcard decryption access, and pausing.
Batches confidential deposits into, or redemptions from, an ERC-4626 vault. Users join the current batch with an encrypted amount. A dispatched batch unwraps its total publicly, routes it through the vault and wraps the result, and each user claims an encrypted share of it.
ERC-20 wrapper that escrows an underlying token and issues confidential balances. It supports encrypted transfers, wrapping, unwrapping, local blocking, optional underlying-token denylist checks, owner-managed observers with wildcard decryption access, and pausing.
ERC-20 wrapper that escrows an underlying token and issues confidential balances. It supports encrypted transfers, wrapping, unwrapping, local blocking, optional underlying-token denylist checks, owner-managed observers with wildcard decryption access, and pausing.
ERC-20 wrapper that escrows an underlying token and issues confidential balances. It supports encrypted transfers, wrapping, unwrapping, local blocking, optional underlying-token denylist checks, owner-managed observers with wildcard decryption access, and pausing.
ERC-20 wrapper that escrows an underlying token and issues confidential balances. It supports encrypted transfers, wrapping, unwrapping, local blocking, optional underlying-token denylist checks, owner-managed observers with wildcard decryption access, and pausing.
Batches confidential deposits into, or redemptions from, an ERC-4626 vault. Users join the current batch with an encrypted amount. A dispatched batch unwraps its total publicly, routes it through the vault and wraps the result, and each user claims an encrypted share of it.
Ethereum host-chain access-control registry for encrypted handles, storing handle allowances and delegation state for ciphertext references. Its public-decryption and user-delegation events are mirrored into the Gateway MultichainACL by coprocessor consensusAn agreement on the latest and correct state of a blockchain. Unlike L1 blockchains which coordinate participating nodes with consensus rules, rollups rely on L1s for reaching consensus by checking the state of the rollup smart contract deployed thereon.. Since v0.4.0 users can delegate user decryption of their handles across all app contracts at once via a wildcard delegation.
Ethereum host-chain verifierAn entity in a ZK-Rollup, often a smart contract, that verifies zero-knowledge proofs submitted by a prover. for encrypted input attestations produced by the Zama Gateway InputVerification contract. The FHEVMExecutor calls it before accepting user-provided ciphertext handles.
Batches confidential deposits into, or redemptions from, an ERC-4626 vault. Users join the current batch with an encrypted amount. A dispatched batch unwraps its total publicly, routes it through the vault and wraps the result, and each user claims an encrypted share of it.
Batches confidential deposits into, or redemptions from, an ERC-4626 vault. Users join the current batch with an encrypted amount. A dispatched batch unwraps its total publicly, routes it through the vault and wraps the result, and each user claims an encrypted share of it.
Batches confidential deposits into, or redemptions from, an ERC-4626 vault. Users join the current batch with an encrypted amount. A dispatched batch unwraps its total publicly, routes it through the vault and wraps the result, and each user claims an encrypted share of it.
Ethereum host-chain registry of KMS nodeA software client that participates in the network. sets, per-context thresholds, and context lifecycle, introduced in the v0.3.0 KMSVerifier upgrade. A KMS context snapshots node transaction senders and signers; the four per-context thresholds (public decryption, user decryption, key generation, MPC) can be retuned by the ACL owner for any live context, including the current one. A newly created context becomes current immediately; older contexts remain selectable for public decryption proofs until destroyed.
FHEVM executor that accepts encrypted operation requests, accounts for computation usage, and stores ciphertext handles for operation results. v0.5.0 rejects plaintext scalar operands and trivial-encryption inputs that do not fit their FHE type, checks division by zero in the shared binary-operation path, and adds a checkHandleType view that asserts the type of an initialized handle.
ERC-20 wrapper that escrows an underlying token and issues confidential balances. It supports encrypted transfers, wrapping, unwrapping, local blocking, optional underlying-token denylist checks, owner-managed observers with wildcard decryption access, and pausing.
ERC-20 wrapper that escrows an underlying token and issues confidential balances. It supports encrypted transfers, wrapping, unwrapping, local blocking, optional underlying-token denylist checks, owner-managed observers with wildcard decryption access, and pausing.
Batches confidential deposits into, or redemptions from, an ERC-4626 vault. Users join the current batch with an encrypted amount. A dispatched batch unwraps its total publicly, routes it through the vault and wraps the result, and each user claims an encrypted share of it.
Batches confidential deposits into, or redemptions from, an ERC-4626 vault. Users join the current batch with an encrypted amount. A dispatched batch unwraps its total publicly, routes it through the vault and wraps the result, and each user claims an encrypted share of it.
Batches confidential deposits into, or redemptions from, an ERC-4626 vault. Users join the current batch with an encrypted amount. A dispatched batch unwraps its total publicly, routes it through the vault and wraps the result, and each user claims an encrypted share of it.
ERC-20 wrapper that escrows an underlying token and issues confidential balances. It supports encrypted transfers, wrapping, unwrapping, local blocking, optional underlying-token denylist checks, owner-managed observers with wildcard decryption access, and pausing.
ERC-20 wrapper that escrows an underlying token and issues confidential balances. It supports encrypted transfers, wrapping, unwrapping, local blocking, optional underlying-token denylist checks, owner-managed observers with wildcard decryption access, and pausing.
Registry for Zama confidential token wrappers.
Orchestrates FHE key and CRS generation on the Ethereum host chain, taking over the workflows removed from the Gateway KMSGeneration in v0.5.0. The ACL owner triggers and aborts generations; KMS nodeA software client that participates in the network. transaction senders registered in ProtocolConfig submit EIP-712-signed responses that activate a key or CRS once the ProtocolConfig key-generation threshold is reached.
Batches confidential deposits into, or redemptions from, an ERC-4626 vault. Users join the current batch with an encrypted amount. A dispatched batch unwraps its total publicly, routes it through the vault and wraps the result, and each user claims an encrypted share of it.
ERC-20 wrapper that escrows an underlying token and issues confidential balances. It supports encrypted transfers, wrapping, unwrapping, local blocking, optional underlying-token denylist checks, owner-managed observers with wildcard decryption access, and pausing.
Batches confidential deposits into, or redemptions from, an ERC-4626 vault. Users join the current batch with an encrypted amount. A dispatched batch unwraps its total publicly, routes it through the vault and wraps the result, and each user claims an encrypted share of it.
Batches confidential deposits into, or redemptions from, an ERC-4626 vault. Users join the current batch with an encrypted amount. A dispatched batch unwraps its total publicly, routes it through the vault and wraps the result, and each user claims an encrypted share of it.
Batches confidential deposits into, or redemptions from, an ERC-4626 vault. Users join the current batch with an encrypted amount. A dispatched batch unwraps its total publicly, routes it through the vault and wraps the result, and each user claims an encrypted share of it.
Aragon governance contract that stores permissions and executes action batches for whoever holds its execute permission. Member of ZamaGovMultisigA.
Aragon governance contract that stores permissions and executes action batches for whoever holds its execute permission.
Maintains the pauser account set used in pause-control checks.
Staking contract that escrows ZAMA, issues non-transferable staked voting tokens, and mints protocol rewards to eligible stakers at a configurable reward rate.
Staking contract that escrows ZAMA, issues non-transferable staked voting tokens, and mints protocol rewards to eligible stakers at a configurable reward rate.
Gateway-side ACL mirror that records coprocessor consensusAn agreement on the latest and correct state of a blockchain. Unlike L1 blockchains which coordinate participating nodes with consensus rules, rollups rely on L1s for reaching consensus by checking the state of the rollup smart contract deployed thereon. for host-chain public decryption permissions, account handle allowances, and delegated user-decryption access. For Ethereum, it mirrors ACL events emitted by the 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. ACL contract registered in GatewayConfig.
Gateway contract that orchestrates public and user decryption requests and checks committed ciphertext material. Each request pins a KMS context at request time (explicitly through extraData or the then-current context) and rejects unknown or destroyed contexts; responses must reference the pinned context. Requests recorded before v0.5.0 fall back to the context declared by each response. KMS nodes enforce host-chain ACL state offchain, and Ethereum KMSVerifier verifies public results against this contract’s EIP-712 domain.
View-only gateway contract retaining historical queries for previously generated FHE keys and CRS materials. All state-changing key-generation, CRS-generation, PRSS, and key-resharing workflows were removed in v0.5.0 after their move to Ethereum.
Gateway fee contract that charges ZAMA fees for encrypted input verification, public decryption, and user decryption requests, then forwards the collected fees to the configured fee burner sender.
Gateway contract that receives encrypted input verification requests from registered and enabled host chains, collects coprocessor responses, and emits a threshold-signed attestation once coprocessor consensusAn agreement on the latest and correct state of a blockchain. Unlike L1 blockchains which coordinate participating nodes with consensus rules, rollups rely on L1s for reaching consensus by checking the state of the rollup smart contract deployed thereon. is reached. Since v0.5.0, if GatewayConfig designates a priority coprocessor, that coprocessor’s single response finalizes verification or rejection and the attestation carries only its signature. Ethereum InputVerifier verifies attestations against this contract’s EIP-712 domain.
Gateway contract that stores ciphertext and SNS ciphertext digests after coprocessor consensusAn agreement on the latest and correct state of a blockchain. Unlike L1 blockchains which coordinate participating nodes with consensus rules, rollups rely on L1s for reaching consensus by checking the state of the rollup smart contract deployed thereon., allowing decryption requests to reference committed ciphertext material. Digests referencing unregistered or disabled host chains are rejected. Since v0.5.0, if GatewayConfig designates a priority coprocessor, that coprocessor’s single submission commits the material on its own.
Central configuration contract for the Zama Gateway. A KMS context snapshots nodeA software client that participates in the network. transaction senders, signers, and workflow thresholds; the owner can create new contexts, retune the thresholds of any live context, and destroy non-current contexts, which immediately invalidates them for decryption. Registered host chains can be disabled, re-enabled, or removed by the owner. Since v0.7.0 the owner can designate a priority coprocessor transaction sender whose single response finalizes coprocessor consensusAn agreement on the latest and correct state of a blockchain. Unlike L1 blockchains which coordinate participating nodes with consensus rules, rollups rely on L1s for reaching consensus by checking the state of the rollup smart contract deployed thereon. in InputVerification and CiphertextCommits, making the coprocessor majority threshold inert, and coprocessor set and threshold updates are applied live without pausing InputVerification.
Maintains the set of accounts allowed to pause gateway contracts. The set is managed by the GatewayConfig owner.