Search

Search for projects by name or address

Privacy

Zama Confidential Tokens logo
Zama Confidential Tokens

About

Confidential amounts for ERC-20 tokens on Ethereum: wrappers that encrypt balances and transfer amounts with FHE, decrypted by a committee of KMS operators.


  • Total Value Locked
    $130.03 M15.2%
    across 25 assets and 25 buckets
  • TVL
    $130.03 M15.2%
  • Assets tracked
    25
  • Buckets tracked
    25
  • Deposits 7D
    23111.1%
  • Deposits 30D
    993
  • Deposits Total
    14.78 K

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

  • Tracked on
    Ethereum logo
  • Attributes
    FHEPrivate amountsAny amountDeFi
  • Public observerChain analystNetwork observerPrivileged insiderFuture adversary

    About

    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, 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 Zama for the coprocessor, relayer and app, and two governance multisigs. Any 5 KMS operators together can decrypt every amount, and the multisigs can upgrade every contract instantly. Each unwrap needs a decryption signed by 7 of them, so funds leave only while the KMS and the coprocessor run.

    Zama Confidential Tokens architecture

    Architecture

    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 Zama’s coprocessor computes on the ciphertexts without decrypting them. The KMS operators hold the secret key in shares and decrypt on request.

    Flow

    1. Wrap. You deposit a token into its confidential wrapper, such as USDC into cUSDC. Your address and the amount are public.
    2. Transfer. Your wallet encrypts the amount, and the coprocessor updates both balances without decrypting them. Sender and recipient are public.
    3. Unwrap. The wrapper asks the KMS to decrypt the amount, and the tokens are paid out once enough operators sign it. The amount is public.

    App

    The ratings assume Zama’s app, the official interface. Its source is unpublished. Apps reach the protocol through a relayer, and Zama’s relayer requires an API key on mainnet. It receives each encrypted input and balance read together with the user’s address and IP and the token.

    KMS

    The KMS operators are Zama, Dfns, Figment, Fireblocks, InfStones, Unit410, LayerZero, Ledger, Omakase, Stake Capital, OpenZeppelin, Etherscan and Conduit. Each holds two keys: a share of the FHE secret key, which decrypts, and an ECDSA key, which signs the result for Ethereum. They decrypt an amount only for accounts that the ACL, an onchain access list, allows them to read. Zama states that they run in AWS Nitro enclaves, and Ethereum checks only their signatures. Governance multisigs manage signer sets in ProtocolConfig: they can add sets, retune their thresholds and destroy old ones. 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.

    Coprocessor

    Zama’s coprocessor runs the FHE computation offchain and checks every encrypted input. Ethereum accepts an input signed by 1 of 1 coprocessor signers, so the coprocessor is trusted for validity. The Gateway requires 3 matching responses from 5 registered coprocessor senders for ACL updates. Priority mode is on: while on, one coprocessor finalizes inputs and ciphertext commits alone, whatever the signer set. It 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. Ethereum verifies the KMS signatures itself, while inputs and unwraps depend on the Gateway running.

    Compliance

    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. Issuers of underlying tokens like USDC can freeze a token’s whole escrow.

    Fees

    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. Zama’s relayer bills apps monthly.

    What the protocol promises: Hides balances and transfer amounts. Senders, recipients and every wrap and unwrap amount are public.

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

    Public observerChain analystNetwork observerPrivileged insiderFuture adversary
    Public observer
    At risk

    Wraps and unwraps publish their amounts, while confidential transfers keep theirs encrypted. Either party to a transfer can disclose its amount onchain at any time.

    Advice: Pay and get paid inside the confidential token, and unwrap only what the user needs.

    InsideSenderexposedRecipientexposedAmountprivateAssetexposedLinkexposed
    Chain analyst
    At risk

    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. In October 2026, 95% of unwraps could be linked to a single wrap.

    Advice: Transfer often, even zero amounts, and unwrap only after a while. Withdraw common amounts rather than everything at once.

    Compared with a public observer
    InsideAmountat risk
    Network observer
    At risk

    Zama’s app is closed source, so what it sends to third parties is up to Zama and can change at any time. Through Zama’s open SDK, amounts leave the user’s device only as FHE ciphertext and return encrypted to a key held only by that device. Today the app sends the user’s address, chain reads and decryption requests to Zama’s own servers, which forward chain reads to an RPC provider Zama does not name. Analytics wait for the user’s consent.

    Advice: Use a client built on Zama's open SDK.

    Inside, the same as for a public observer.

    Privileged insider
    Exposed

    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 forever, or upgrade the token and the ACL. Zama serves its closed-source app, so it can read amounts before they are encrypted.

    Compared with a public observer
    InsideAmountexposed
    Future adversary
    Exposed

    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, permissions on past balances and transfers never expire, and the KMS encrypts its replies to whatever key the request names. The ciphertexts themselves rest on lattice assumptions with no known quantum attack, and anyone can download them today.

    Compared with a public observer
    InsideAmountexposed
    Asset
    Deposits 7D
    Deposits 30D
    Deposits Total
    Value Locked
    fcUSDTfcUSDT
    7
    $14.47 M
    32
    $46.90 M
    34
    $48.70 M
    $32.43 M
    steakcUSDCsteakcUSDC
    4
    $723.47 K
    25
    $8.04 M
    116
    $92.01 M
    $32.20 M
    roxcUSDCroxcUSDC
    7
    $7.34 M
    27
    $30.20 M
    29
    $38.14 M
    $32.05 M
    ZAMAZAMA
    5
    $1.19 K
    36
    $2.49 M
    148
    $46.93 M
    $11.18 M
    steakUSDTsteakUSDT
    7
    $6.20 M
    22
    $11.02 M
    24
    $11.03 M
    $6.89 M
    bbqTGBPbbqTGBP
    0
    $0.00
    0
    $0.00
    3
    $5.07 M
    $5.03 M
    USDTUSDT
    102
    $22.34 M
    406
    $63.54 M
    11.00 K
    $195.51 M
    $4.97 M
    USDCUSDC
    81
    $10.78 M
    352
    $45.91 M
    3.17 K
    $166.27 M
    $3.08 M
    armcWBTCarmcWBTC
    3
    $3.10 K
    18
    $858.62 K
    20
    $877.12 K
    $433.98 K
    pendleUSDCpendleUSDC
    1
    $0.10
    11
    $50.74 K
    13
    $552.37 K
    $352.41 K
    PAPYPAPY
    0
    $0.00
    1
    $38.64 K
    3
    $348.69 K
    $348.47 K
    WBTCWBTC
    4
    $18.83 K
    26
    $904.36 K
    35
    $1.11 M
    $254.01 K
    fAUSDefAUSDe
    1
    $189.51 K
    2
    $194.35 K
    4
    $194.47 K
    $194.40 K
    AUSDAUSD
    1
    $196.73 K
    2
    $235.34 K
    7
    $742.37 K
    $190.93 K
    roxUSDCyroxUSDCy
    0
    $0.00
    2
    $147.78 K
    3
    $150.21 K
    $150.20 K
    tGBPtGBP
    0
    $0.00
    0
    $0.00
    11
    $5.19 M
    $104.95 K
    WETHWETH
    7
    $3.13 K
    18
    $5.27 K
    118
    $253.00 K
    $53.67 K
    PENDLEPENDLE
    0
    $0.00
    1
    $4.87
    3
    $53.43 K
    $48.70 K
    armUSDTsarmUSDTs
    1
    $198.53
    4
    $30.18 K
    5
    $30.20 K
    $25.14 K
    bbqUSDTbbqUSDT
    0
    $0.00
    2
    $9.92 K
    4
    $10.45 K
    $10.44 K
    bbqUSDCbbqUSDC
    0
    $0.00
    2
    $3.83 K
    4
    $5.78 K
    $1.95 K
    armUSDCsarmUSDCs
    0
    $0.00
    3
    $174.66
    5
    $222.79
    $222.75
    XAUtXAUt
    0
    $0.00
    0
    $0.00
    12
    $69.87 K
    $85.27
    armUSDTparmUSDTp
    0
    $0.00
    1
    $99.55
    2
    $118.47
    $68.44
    armUSDCparmUSDCp
    0
    $0.00
    0
    $0.00
    1
    $44.31
    $44.31
    Total
    231
    $62.29 M
    993
    $210.61 M
    14.78 K
    $613.30 M
    $130.03 M

    Circle freezes the cUSDC escrow

    2026 May 30th

    A court order makes Circle blacklist the cUSDC wrapper for almost three days, blocking every unwrap.

    Learn more

    ACL paused, every token halted

    2026 Jan 6th

    A pauser halts the ACL, and with it every confidential token, for 84 minutes.

    Learn more

    Funds can be stolen if

    1. either governance multisig passes a malicious upgrade of the confidential tokens or Zama’s protocol contracts, which takes effect instantly.
    2. the current or any retained KMS signer set, which either multisig can create or retune instantly, attests an inflated unwrap amount.
    3. Zama’s coprocessor (1/1) accepts invalid encrypted inputs that bypass balance checks.

    Funds can be lost if

    1. an underlying token issuer blacklists a confidential token’s address.
    2. the token owner or an underlying denylist blocksAn ordered list of transactions and chain-related metadata that gets bundled together and published to the L1/DA layer. Nodes execute the transactions contained within blocks to change the rollup chain’s state. Protocol rules dictate what constitutes a valid block, and invalid blocks are skipped over. a user before they unwrap.
    3. an appointed pauser halts a token and the owner keeps it paused.
    4. the KMS or Zama’s coprocessor stops or loses ciphertext data, which halts every unwrap.

    Privacy can be lost if

    1. 5 of 13 KMS operators combine their key shares (see privileged insider).
    2. the token owner appoints an observer or upgrades the token (see privileged insider).
    3. Zama changes its closed-source app to leak amounts to itself or to third parties (see privileged insider and networkA constellation of nodes (peers) that communicate via a peer-to-peer protocol, for example, in propagating transactions and blocks to other nodes. observer).
    4. public wraps and unwraps bound a user’s balance (see chain analyst).
    5. elliptic-curve cryptography is broken, so anyone can impersonate a user to the KMS and decrypt that user’s history (see future adversary).

    ZamaGovMultisigA (9/17) and ZamaGovMultisigB (3/6) each control, alone and instantly, the Aragon contract that owns the confidential tokens and Zama’s protocol contracts on Ethereum. Either multisig can upgrade these contracts, change every compliance setting, manage KMS signer sets and trigger FHE key generation.

    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.

    2026 October 12, 07:14 UTC
    High severity
    28changes

    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"
    }
    2026 October 08, 11:21 UTC
    High severity
    51changes

    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).

    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"
    }
    2026 October 01, 10:42 UTC
    2changes

    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%)"
    }
    2026 September 17, 07:49 UTC
    High severity
    327changes

    Add 17 new confidential wrappers (WBTC, AUSD, PENDLE and 14 Morpho vault shares)

    contract ConfidentialSteakUSDTWrapper (eth:0x1F6A937119c0c34Db0a2c4F000386a3BfD4A9e73) [zama/ConfidentialWrapper] {
    +++ description: 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.
    type:
    - "EOA"
    + "Contract"
    proxyType:
    - "EOA"
    + "EIP1967 proxy"
    template:
    + "zama/ConfidentialWrapper"
    sourceHashes:
    + ["0x7df5501f3f5ffd35e0c61153fcd76f37533ab73a80adf20a7a19b30c246faea3","0x111b5cc66fc29cac57ed685c50a509014181cbf98122b5fd89c0449eea3fab5f"]
    description:
    + "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."
    deployerAddress:
    + "eth:0xe02e3b1cbEc07FC8D03B2eD15ddCe743403A013b"
    sinceTimestamp:
    + 1789152239
    sinceBlock:
    + 25956032
    values:
    + {"$admin":"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3","$implementation":"eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD","$pastUpgrades":[["2026-09-11T18:43:59.000Z","0xe9f33dc7a110fea67894ef7f3ef9254918eaabeb7ad01facde7cefb240395b4d",["eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD"]]],"$upgradeCount":1,"blockedUsers":[],"confidentialProtocolId":1,"confidentialTotalSupply":"0x34822f7ff3c28eeffe2100070c17282c346ff85a1dff00000000000000010500","constructorArgs":["eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD","0x6e690fe60000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000001a0000000000000000000000000beef003c68896c7d2c3c60d363e8d71a49ab2bf9000000000000000000000000b6d69d5f334d8b97b194617b53c6ab62f8681ef30000000000000000000000000000000000000000000000000000000000000280000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016436f6e666964656e7469616c20737465616b5553445400000000000000000000000000000000000000000000000000000000000000000000000000000000000a63737465616b555344540000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ab646174613a6170706c69636174696f6e2f6a736f6e3b757466382c7b226e616d65223a22436f6e666964656e7469616c20737465616b55534454222c2273796d626f6c223a2263737465616b55534454222c226465736372697074696f6e223a22436f6e666964656e7469616c2077726170706572206f6620737465616b5553445420736869656c64696e6720697420696e746f206120636f6e666964656e7469616c20746f6b656e227d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"],"contractURI":"data:application/json;utf8,{\"name\":\"Confidential steakUSDT\",\"symbol\":\"csteakUSDT\",\"description\":\"Confidential wrapper of steakUSDT shielding it into a confidential token\"}","decimals":6,"fheAcl":"eth:0xcA2E8f1F656CD25C01F05d0b243Ab1ecd4a8ffb6","fheCoprocessor":"eth:0xD82385dADa1ae3E969447f20A3164F6213100e75","fheKmsVerifier":"eth:0x77627828a55156b04Ac0DC0eb30467f1a552BB03","getUnderlyingDenyListSelector":"0x00000000","inferredTotalSupply":14680995207,"maxTotalSupply":"18446744073709551615","name":"Confidential steakUSDT","observers":[],"owner":"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3","paused":false,"pauser":"eth:0x0000000000000000000000000000000000000000","pendingOwner":"eth:0x0000000000000000000000000000000000000000","rate":1000000000000,"symbol":"csteakUSDT","underlying":"eth:0xbeef003C68896c7D2c3c60d363e8d71a49Ab2bf9","UPGRADE_INTERFACE_VERSION":"5.0.0"}
    fieldMeta:
    + {"owner":{"severity":"HIGH","description":"Current owner of the wrapper.","type":"PERMISSION"},"pendingOwner":{"severity":"HIGH","description":"Pending owner for a two-step ownership transfer.","type":"PERMISSION"},"underlying":{"description":"ERC-20 token escrowed by this wrapper."},"getUnderlyingDenyListSelector":{"severity":"HIGH","description":"Underlying-token denylist hook used by the wrapper. If enabled (non-zero), the wrapper calls this selector on the underlying token before restricted operations.","type":"RISK_PARAMETER"},"blockedUsers":{"severity":"HIGH","description":"Wrapper-local denylist reconstructed from UserBlocked and UserUnblocked events.","type":"PERMISSION"},"observers":{"severity":"HIGH","description":"Accounts holding a wildcard user-decryption delegation over all wrapper-owned encrypted handles. Observers can decrypt every confidential balance and transfer amount of this wrapper, so adding one changes its privacy guarantees.","type":"PERMISSION"},"pauser":{"description":"Address allowed to pause the wrapper (zero address means pausing is disabled). Only the owner can unpause.","type":"PERMISSION"},"paused":{"description":"Whether wrapping, unwrapping, unwrap finalization and confidential transfers are currently halted.","type":"RISK_PARAMETER"},"fheAcl":{"description":"Zama ACL contract used by the confidential token stack to check which accounts/contracts may use encrypted handles."},"fheCoprocessor":{"description":"Zama FHE coprocessor/executor contract that receives encrypted-operation requests and stores encrypted-result handles."},"fheKmsVerifier":{"description":"Zama KMS verifier contract used to verify threshold decryption/signature material returned by the offchain KMS."}}
    implementationNames:
    + {"eth:0x1F6A937119c0c34Db0a2c4F000386a3BfD4A9e73":"ERC1967Proxy","eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD":"ConfidentialWrapper"}
    category:
    + {"name":"Local Infrastructure","priority":5}
    }
    contract ConfidentialArmUSDCpWrapper (eth:0x2ebBd099f66b0ca94DD82B4c06fe3eEf6AFf853c) [zama/ConfidentialWrapper] {
    +++ description: 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.
    type:
    - "EOA"
    + "Contract"
    proxyType:
    - "EOA"
    + "EIP1967 proxy"
    template:
    + "zama/ConfidentialWrapper"
    sourceHashes:
    + ["0x7df5501f3f5ffd35e0c61153fcd76f37533ab73a80adf20a7a19b30c246faea3","0x111b5cc66fc29cac57ed685c50a509014181cbf98122b5fd89c0449eea3fab5f"]
    description:
    + "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."
    deployerAddress:
    + "eth:0xe02e3b1cbEc07FC8D03B2eD15ddCe743403A013b"
    sinceTimestamp:
    + 1789150751
    sinceBlock:
    + 25955908
    values:
    + {"$admin":"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3","$implementation":"eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD","$pastUpgrades":[["2026-09-11T18:19:11.000Z","0xd55cc3a9346ae5156efdfbbb3d628e8d93de08f419e3f0ec55ae90bde92e28c0",["eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD"]]],"$upgradeCount":1,"blockedUsers":[],"confidentialProtocolId":1,"confidentialTotalSupply":"0x644c44341fb497f2c95372332a363de4c13716dae4ff00000000000000010500","constructorArgs":["eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD","0x6e690fe60000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000001a00000000000000000000000005dc53a23adc9f2bed98de6f59f7f309a7c71ff2b000000000000000000000000b6d69d5f334d8b97b194617b53c6ab62f8681ef30000000000000000000000000000000000000000000000000000000000000280000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000015436f6e666964656e7469616c2061726d5553444370000000000000000000000000000000000000000000000000000000000000000000000000000000000000096361726d5553444370000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a8646174613a6170706c69636174696f6e2f6a736f6e3b757466382c7b226e616d65223a22436f6e666964656e7469616c2061726d5553444370222c2273796d626f6c223a226361726d5553444370222c226465736372697074696f6e223a22436f6e666964656e7469616c2077726170706572206f662061726d555344437020736869656c64696e6720697420696e746f206120636f6e666964656e7469616c20746f6b656e227d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"],"contractURI":"data:application/json;utf8,{\"name\":\"Confidential armUSDCp\",\"symbol\":\"carmUSDCp\",\"description\":\"Confidential wrapper of armUSDCp shielding it into a confidential token\"}","decimals":6,"fheAcl":"eth:0xcA2E8f1F656CD25C01F05d0b243Ab1ecd4a8ffb6","fheCoprocessor":"eth:0xD82385dADa1ae3E969447f20A3164F6213100e75","fheKmsVerifier":"eth:0x77627828a55156b04Ac0DC0eb30467f1a552BB03","getUnderlyingDenyListSelector":"0x00000000","inferredTotalSupply":44322139,"maxTotalSupply":"18446744073709551615","name":"Confidential armUSDCp","observers":[],"owner":"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3","paused":false,"pauser":"eth:0x0000000000000000000000000000000000000000","pendingOwner":"eth:0x0000000000000000000000000000000000000000","rate":1000000000000,"symbol":"carmUSDCp","underlying":"eth:0x5dc53a23AdC9f2Bed98de6F59F7F309a7c71FF2B","UPGRADE_INTERFACE_VERSION":"5.0.0"}
    fieldMeta:
    + {"owner":{"severity":"HIGH","description":"Current owner of the wrapper.","type":"PERMISSION"},"pendingOwner":{"severity":"HIGH","description":"Pending owner for a two-step ownership transfer.","type":"PERMISSION"},"underlying":{"description":"ERC-20 token escrowed by this wrapper."},"getUnderlyingDenyListSelector":{"severity":"HIGH","description":"Underlying-token denylist hook used by the wrapper. If enabled (non-zero), the wrapper calls this selector on the underlying token before restricted operations.","type":"RISK_PARAMETER"},"blockedUsers":{"severity":"HIGH","description":"Wrapper-local denylist reconstructed from UserBlocked and UserUnblocked events.","type":"PERMISSION"},"observers":{"severity":"HIGH","description":"Accounts holding a wildcard user-decryption delegation over all wrapper-owned encrypted handles. Observers can decrypt every confidential balance and transfer amount of this wrapper, so adding one changes its privacy guarantees.","type":"PERMISSION"},"pauser":{"description":"Address allowed to pause the wrapper (zero address means pausing is disabled). Only the owner can unpause.","type":"PERMISSION"},"paused":{"description":"Whether wrapping, unwrapping, unwrap finalization and confidential transfers are currently halted.","type":"RISK_PARAMETER"},"fheAcl":{"description":"Zama ACL contract used by the confidential token stack to check which accounts/contracts may use encrypted handles."},"fheCoprocessor":{"description":"Zama FHE coprocessor/executor contract that receives encrypted-operation requests and stores encrypted-result handles."},"fheKmsVerifier":{"description":"Zama KMS verifier contract used to verify threshold decryption/signature material returned by the offchain KMS."}}
    implementationNames:
    + {"eth:0x2ebBd099f66b0ca94DD82B4c06fe3eEf6AFf853c":"ERC1967Proxy","eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD":"ConfidentialWrapper"}
    category:
    + {"name":"Local Infrastructure","priority":5}
    }
    contract ConfidentialRoxUSDCyWrapper (eth:0x4FCCF8046FB7FB7AB76321BD39C27453e396B88f) [zama/ConfidentialWrapper] {
    +++ description: 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.
    type:
    - "EOA"
    + "Contract"
    proxyType:
    - "EOA"
    + "EIP1967 proxy"
    template:
    + "zama/ConfidentialWrapper"
    sourceHashes:
    + ["0x7df5501f3f5ffd35e0c61153fcd76f37533ab73a80adf20a7a19b30c246faea3","0x111b5cc66fc29cac57ed685c50a509014181cbf98122b5fd89c0449eea3fab5f"]
    description:
    + "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."
    deployerAddress:
    + "eth:0xe02e3b1cbEc07FC8D03B2eD15ddCe743403A013b"
    sinceTimestamp:
    + 1789154375
    sinceBlock:
    + 25956208
    values:
    + {"$admin":"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3","$implementation":"eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD","$pastUpgrades":[["2026-09-11T19:19:35.000Z","0x7a7eadb1e667732e52a0064b3a1f253a562fb35d34d1bc96663bbdf0f95a8f1a",["eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD"]]],"$upgradeCount":1,"blockedUsers":[],"confidentialProtocolId":1,"confidentialTotalSupply":"0x1e6c1758ea30006c2f61217e9871a6078eabde730dff00000000000000010500","constructorArgs":["eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD","0x6e690fe60000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000001a0000000000000000000000000e0181090c22579b6a217f1522cbf8c9f1f0c1965000000000000000000000000b6d69d5f334d8b97b194617b53c6ab62f8681ef30000000000000000000000000000000000000000000000000000000000000280000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000015436f6e666964656e7469616c20726f7855534443790000000000000000000000000000000000000000000000000000000000000000000000000000000000000963726f785553444379000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a8646174613a6170706c69636174696f6e2f6a736f6e3b757466382c7b226e616d65223a22436f6e666964656e7469616c20726f785553444379222c2273796d626f6c223a2263726f785553444379222c226465736372697074696f6e223a22436f6e666964656e7469616c2077726170706572206f6620726f78555344437920736869656c64696e6720697420696e746f206120636f6e666964656e7469616c20746f6b656e227d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"],"contractURI":"data:application/json;utf8,{\"name\":\"Confidential roxUSDCy\",\"symbol\":\"croxUSDCy\",\"description\":\"Confidential wrapper of roxUSDCy shielding it into a confidential token\"}","decimals":6,"fheAcl":"eth:0xcA2E8f1F656CD25C01F05d0b243Ab1ecd4a8ffb6","fheCoprocessor":"eth:0xD82385dADa1ae3E969447f20A3164F6213100e75","fheKmsVerifier":"eth:0x77627828a55156b04Ac0DC0eb30467f1a552BB03","getUnderlyingDenyListSelector":"0x00000000","inferredTotalSupply":2439415333,"maxTotalSupply":"18446744073709551615","name":"Confidential roxUSDCy","observers":[],"owner":"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3","paused":false,"pauser":"eth:0x0000000000000000000000000000000000000000","pendingOwner":"eth:0x0000000000000000000000000000000000000000","rate":1000000000000,"symbol":"croxUSDCy","underlying":"eth:0xE0181090c22579B6A217f1522cbf8c9f1F0C1965","UPGRADE_INTERFACE_VERSION":"5.0.0"}
    fieldMeta:
    + {"owner":{"severity":"HIGH","description":"Current owner of the wrapper.","type":"PERMISSION"},"pendingOwner":{"severity":"HIGH","description":"Pending owner for a two-step ownership transfer.","type":"PERMISSION"},"underlying":{"description":"ERC-20 token escrowed by this wrapper."},"getUnderlyingDenyListSelector":{"severity":"HIGH","description":"Underlying-token denylist hook used by the wrapper. If enabled (non-zero), the wrapper calls this selector on the underlying token before restricted operations.","type":"RISK_PARAMETER"},"blockedUsers":{"severity":"HIGH","description":"Wrapper-local denylist reconstructed from UserBlocked and UserUnblocked events.","type":"PERMISSION"},"observers":{"severity":"HIGH","description":"Accounts holding a wildcard user-decryption delegation over all wrapper-owned encrypted handles. Observers can decrypt every confidential balance and transfer amount of this wrapper, so adding one changes its privacy guarantees.","type":"PERMISSION"},"pauser":{"description":"Address allowed to pause the wrapper (zero address means pausing is disabled). Only the owner can unpause.","type":"PERMISSION"},"paused":{"description":"Whether wrapping, unwrapping, unwrap finalization and confidential transfers are currently halted.","type":"RISK_PARAMETER"},"fheAcl":{"description":"Zama ACL contract used by the confidential token stack to check which accounts/contracts may use encrypted handles."},"fheCoprocessor":{"description":"Zama FHE coprocessor/executor contract that receives encrypted-operation requests and stores encrypted-result handles."},"fheKmsVerifier":{"description":"Zama KMS verifier contract used to verify threshold decryption/signature material returned by the offchain KMS."}}
    implementationNames:
    + {"eth:0x4FCCF8046FB7FB7AB76321BD39C27453e396B88f":"ERC1967Proxy","eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD":"ConfidentialWrapper"}
    category:
    + {"name":"Local Infrastructure","priority":5}
    }
    contract ConfidentialBbqUSDCWrapper (eth:0x501b014f86a73A7199E00cB31C0e9565Ac51e51B) [zama/ConfidentialWrapper] {
    +++ description: 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.
    type:
    - "EOA"
    + "Contract"
    proxyType:
    - "EOA"
    + "EIP1967 proxy"
    template:
    + "zama/ConfidentialWrapper"
    sourceHashes:
    + ["0x7df5501f3f5ffd35e0c61153fcd76f37533ab73a80adf20a7a19b30c246faea3","0x111b5cc66fc29cac57ed685c50a509014181cbf98122b5fd89c0449eea3fab5f"]
    description:
    + "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."
    deployerAddress:
    + "eth:0xe02e3b1cbEc07FC8D03B2eD15ddCe743403A013b"
    sinceTimestamp:
    + 1789153067
    sinceBlock:
    + 25956100
    values:
    + {"$admin":"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3","$implementation":"eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD","$pastUpgrades":[["2026-09-11T18:57:47.000Z","0x889469791190aaf6a60a02c423bd1080bf1dd4bfb768f778521e3ca927690d59",["eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD"]]],"$upgradeCount":1,"blockedUsers":[],"confidentialProtocolId":1,"confidentialTotalSupply":"0x758c540d42b12937c09fd38fa132bee98db9dd9d0eff00000000000000010500","constructorArgs":["eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD","0x6e690fe60000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000001a0000000000000000000000000beeff2c5bf38f90e3482a8b19f12e5a6d2fca757000000000000000000000000b6d69d5f334d8b97b194617b53c6ab62f8681ef30000000000000000000000000000000000000000000000000000000000000280000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000014436f6e666964656e7469616c20626271555344430000000000000000000000000000000000000000000000000000000000000000000000000000000000000008636262715553444300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a5646174613a6170706c69636174696f6e2f6a736f6e3b757466382c7b226e616d65223a22436f6e666964656e7469616c2062627155534443222c2273796d626f6c223a226362627155534443222c226465736372697074696f6e223a22436f6e666964656e7469616c2077726170706572206f66206262715553444320736869656c64696e6720697420696e746f206120636f6e666964656e7469616c20746f6b656e227d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"],"contractURI":"data:application/json;utf8,{\"name\":\"Confidential bbqUSDC\",\"symbol\":\"cbbqUSDC\",\"description\":\"Confidential wrapper of bbqUSDC shielding it into a confidential token\"}","decimals":6,"fheAcl":"eth:0xcA2E8f1F656CD25C01F05d0b243Ab1ecd4a8ffb6","fheCoprocessor":"eth:0xD82385dADa1ae3E969447f20A3164F6213100e75","fheKmsVerifier":"eth:0x77627828a55156b04Ac0DC0eb30467f1a552BB03","getUnderlyingDenyListSelector":"0x00000000","inferredTotalSupply":1956111260,"maxTotalSupply":"18446744073709551615","name":"Confidential bbqUSDC","observers":[],"owner":"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3","paused":false,"pauser":"eth:0x0000000000000000000000000000000000000000","pendingOwner":"eth:0x0000000000000000000000000000000000000000","rate":1000000000000,"symbol":"cbbqUSDC","underlying":"eth:0xbeeff2C5bF38f90e3482a8b19F12E5a6D2FCa757","UPGRADE_INTERFACE_VERSION":"5.0.0"}
    fieldMeta:
    + {"owner":{"severity":"HIGH","description":"Current owner of the wrapper.","type":"PERMISSION"},"pendingOwner":{"severity":"HIGH","description":"Pending owner for a two-step ownership transfer.","type":"PERMISSION"},"underlying":{"description":"ERC-20 token escrowed by this wrapper."},"getUnderlyingDenyListSelector":{"severity":"HIGH","description":"Underlying-token denylist hook used by the wrapper. If enabled (non-zero), the wrapper calls this selector on the underlying token before restricted operations.","type":"RISK_PARAMETER"},"blockedUsers":{"severity":"HIGH","description":"Wrapper-local denylist reconstructed from UserBlocked and UserUnblocked events.","type":"PERMISSION"},"observers":{"severity":"HIGH","description":"Accounts holding a wildcard user-decryption delegation over all wrapper-owned encrypted handles. Observers can decrypt every confidential balance and transfer amount of this wrapper, so adding one changes its privacy guarantees.","type":"PERMISSION"},"pauser":{"description":"Address allowed to pause the wrapper (zero address means pausing is disabled). Only the owner can unpause.","type":"PERMISSION"},"paused":{"description":"Whether wrapping, unwrapping, unwrap finalization and confidential transfers are currently halted.","type":"RISK_PARAMETER"},"fheAcl":{"description":"Zama ACL contract used by the confidential token stack to check which accounts/contracts may use encrypted handles."},"fheCoprocessor":{"description":"Zama FHE coprocessor/executor contract that receives encrypted-operation requests and stores encrypted-result handles."},"fheKmsVerifier":{"description":"Zama KMS verifier contract used to verify threshold decryption/signature material returned by the offchain KMS."}}
    implementationNames:
    + {"eth:0x501b014f86a73A7199E00cB31C0e9565Ac51e51B":"ERC1967Proxy","eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD":"ConfidentialWrapper"}
    category:
    + {"name":"Local Infrastructure","priority":5}
    }
    contract ConfidentialArmUSDTpWrapper (eth:0x63a60aCC304b84eF829b263f28e7b636Bf77d45A) [zama/ConfidentialWrapper] {
    +++ description: 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.
    type:
    - "EOA"
    + "Contract"
    proxyType:
    - "EOA"
    + "EIP1967 proxy"
    template:
    + "zama/ConfidentialWrapper"
    sourceHashes:
    + ["0x7df5501f3f5ffd35e0c61153fcd76f37533ab73a80adf20a7a19b30c246faea3","0x111b5cc66fc29cac57ed685c50a509014181cbf98122b5fd89c0449eea3fab5f"]
    description:
    + "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."
    deployerAddress:
    + "eth:0xe02e3b1cbEc07FC8D03B2eD15ddCe743403A013b"
    sinceTimestamp:
    + 1789153331
    sinceBlock:
    + 25956122
    values:
    + {"$admin":"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3","$implementation":"eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD","$pastUpgrades":[["2026-09-11T19:02:11.000Z","0x46e9abc4237bb9560dc0595f6f18dd84cc984a09adfac882e44c84b37fcb23f0",["eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD"]]],"$upgradeCount":1,"blockedUsers":[],"confidentialProtocolId":1,"confidentialTotalSupply":"0x560fcb18c119c407d71736cdabda00a98dc7b5307bff00000000000000010500","constructorArgs":["eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD","0x6e690fe60000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000001a0000000000000000000000000bf29043164660c60a2a72cd15ffe2304e87b6838000000000000000000000000b6d69d5f334d8b97b194617b53c6ab62f8681ef30000000000000000000000000000000000000000000000000000000000000280000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000015436f6e666964656e7469616c2061726d5553445470000000000000000000000000000000000000000000000000000000000000000000000000000000000000096361726d5553445470000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a8646174613a6170706c69636174696f6e2f6a736f6e3b757466382c7b226e616d65223a22436f6e666964656e7469616c2061726d5553445470222c2273796d626f6c223a226361726d5553445470222c226465736372697074696f6e223a22436f6e666964656e7469616c2077726170706572206f662061726d555344547020736869656c64696e6720697420696e746f206120636f6e666964656e7469616c20746f6b656e227d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"],"contractURI":"data:application/json;utf8,{\"name\":\"Confidential armUSDTp\",\"symbol\":\"carmUSDTp\",\"description\":\"Confidential wrapper of armUSDTp shielding it into a confidential token\"}","decimals":6,"fheAcl":"eth:0xcA2E8f1F656CD25C01F05d0b243Ab1ecd4a8ffb6","fheCoprocessor":"eth:0xD82385dADa1ae3E969447f20A3164F6213100e75","fheKmsVerifier":"eth:0x77627828a55156b04Ac0DC0eb30467f1a552BB03","getUnderlyingDenyListSelector":"0x00000000","inferredTotalSupply":18928591,"maxTotalSupply":"18446744073709551615","name":"Confidential armUSDTp","observers":[],"owner":"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3","paused":false,"pauser":"eth:0x0000000000000000000000000000000000000000","pendingOwner":"eth:0x0000000000000000000000000000000000000000","rate":1000000000000,"symbol":"carmUSDTp","underlying":"eth:0xBf29043164660C60A2a72Cd15FFe2304e87B6838","UPGRADE_INTERFACE_VERSION":"5.0.0"}
    fieldMeta:
    + {"owner":{"severity":"HIGH","description":"Current owner of the wrapper.","type":"PERMISSION"},"pendingOwner":{"severity":"HIGH","description":"Pending owner for a two-step ownership transfer.","type":"PERMISSION"},"underlying":{"description":"ERC-20 token escrowed by this wrapper."},"getUnderlyingDenyListSelector":{"severity":"HIGH","description":"Underlying-token denylist hook used by the wrapper. If enabled (non-zero), the wrapper calls this selector on the underlying token before restricted operations.","type":"RISK_PARAMETER"},"blockedUsers":{"severity":"HIGH","description":"Wrapper-local denylist reconstructed from UserBlocked and UserUnblocked events.","type":"PERMISSION"},"observers":{"severity":"HIGH","description":"Accounts holding a wildcard user-decryption delegation over all wrapper-owned encrypted handles. Observers can decrypt every confidential balance and transfer amount of this wrapper, so adding one changes its privacy guarantees.","type":"PERMISSION"},"pauser":{"description":"Address allowed to pause the wrapper (zero address means pausing is disabled). Only the owner can unpause.","type":"PERMISSION"},"paused":{"description":"Whether wrapping, unwrapping, unwrap finalization and confidential transfers are currently halted.","type":"RISK_PARAMETER"},"fheAcl":{"description":"Zama ACL contract used by the confidential token stack to check which accounts/contracts may use encrypted handles."},"fheCoprocessor":{"description":"Zama FHE coprocessor/executor contract that receives encrypted-operation requests and stores encrypted-result handles."},"fheKmsVerifier":{"description":"Zama KMS verifier contract used to verify threshold decryption/signature material returned by the offchain KMS."}}
    implementationNames:
    + {"eth:0x63a60aCC304b84eF829b263f28e7b636Bf77d45A":"ERC1967Proxy","eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD":"ConfidentialWrapper"}
    category:
    + {"name":"Local Infrastructure","priority":5}
    }
    contract ConfidentialFAUSDeWrapper (eth:0x76A3f985315aAc9789Cb5BF8A5bb83BFF55FD5a6) [zama/ConfidentialWrapper] {
    +++ description: 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.
    type:
    - "EOA"
    + "Contract"
    proxyType:
    - "EOA"
    + "EIP1967 proxy"
    template:
    + "zama/ConfidentialWrapper"
    sourceHashes:
    + ["0x7df5501f3f5ffd35e0c61153fcd76f37533ab73a80adf20a7a19b30c246faea3","0x111b5cc66fc29cac57ed685c50a509014181cbf98122b5fd89c0449eea3fab5f"]
    description:
    + "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."
    deployerAddress:
    + "eth:0xe02e3b1cbEc07FC8D03B2eD15ddCe743403A013b"
    sinceTimestamp:
    + 1789148387
    sinceBlock:
    + 25955712
    values:
    + {"$admin":"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3","$implementation":"eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD","$pastUpgrades":[["2026-09-11T17:39:47.000Z","0x7eef71a0892e61b5b1db77cc9443cf2951497ef28c483823b22b69bf623c5f24",["eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD"]]],"$upgradeCount":1,"blockedUsers":[],"confidentialProtocolId":1,"confidentialTotalSupply":"0x2f395b4b3182fbeb1513ac72de45fd8382496e4788ff00000000000000010500","constructorArgs":["eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD","0x6e690fe60000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000001a000000000000000000000000032401b9fb79065bc15949de0bd43927492f02f0c000000000000000000000000b6d69d5f334d8b97b194617b53c6ab62f8681ef30000000000000000000000000000000000000000000000000000000000000280000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000013436f6e666964656e7469616c20664155534465000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007636641555344650000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a2646174613a6170706c69636174696f6e2f6a736f6e3b757466382c7b226e616d65223a22436f6e666964656e7469616c20664155534465222c2273796d626f6c223a2263664155534465222c226465736372697074696f6e223a22436f6e666964656e7469616c2077726170706572206f662066415553446520736869656c64696e6720697420696e746f206120636f6e666964656e7469616c20746f6b656e227d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"],"contractURI":"data:application/json;utf8,{\"name\":\"Confidential fAUSDe\",\"symbol\":\"cfAUSDe\",\"description\":\"Confidential wrapper of fAUSDe shielding it into a confidential token\"}","decimals":6,"fheAcl":"eth:0xcA2E8f1F656CD25C01F05d0b243Ab1ecd4a8ffb6","fheCoprocessor":"eth:0xD82385dADa1ae3E969447f20A3164F6213100e75","fheKmsVerifier":"eth:0x77627828a55156b04Ac0DC0eb30467f1a552BB03","getUnderlyingDenyListSelector":"0x00000000","inferredTotalSupply":120155535,"maxTotalSupply":"18446744073709551615","name":"Confidential fAUSDe","observers":[],"owner":"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3","paused":false,"pauser":"eth:0x0000000000000000000000000000000000000000","pendingOwner":"eth:0x0000000000000000000000000000000000000000","rate":1000000000000,"symbol":"cfAUSDe","underlying":"eth:0x32401B9fb79065Bc15949DE0BD43927492f02F0C","UPGRADE_INTERFACE_VERSION":"5.0.0"}
    fieldMeta:
    + {"owner":{"severity":"HIGH","description":"Current owner of the wrapper.","type":"PERMISSION"},"pendingOwner":{"severity":"HIGH","description":"Pending owner for a two-step ownership transfer.","type":"PERMISSION"},"underlying":{"description":"ERC-20 token escrowed by this wrapper."},"getUnderlyingDenyListSelector":{"severity":"HIGH","description":"Underlying-token denylist hook used by the wrapper. If enabled (non-zero), the wrapper calls this selector on the underlying token before restricted operations.","type":"RISK_PARAMETER"},"blockedUsers":{"severity":"HIGH","description":"Wrapper-local denylist reconstructed from UserBlocked and UserUnblocked events.","type":"PERMISSION"},"observers":{"severity":"HIGH","description":"Accounts holding a wildcard user-decryption delegation over all wrapper-owned encrypted handles. Observers can decrypt every confidential balance and transfer amount of this wrapper, so adding one changes its privacy guarantees.","type":"PERMISSION"},"pauser":{"description":"Address allowed to pause the wrapper (zero address means pausing is disabled). Only the owner can unpause.","type":"PERMISSION"},"paused":{"description":"Whether wrapping, unwrapping, unwrap finalization and confidential transfers are currently halted.","type":"RISK_PARAMETER"},"fheAcl":{"description":"Zama ACL contract used by the confidential token stack to check which accounts/contracts may use encrypted handles."},"fheCoprocessor":{"description":"Zama FHE coprocessor/executor contract that receives encrypted-operation requests and stores encrypted-result handles."},"fheKmsVerifier":{"description":"Zama KMS verifier contract used to verify threshold decryption/signature material returned by the offchain KMS."}}
    implementationNames:
    + {"eth:0x76A3f985315aAc9789Cb5BF8A5bb83BFF55FD5a6":"ERC1967Proxy","eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD":"ConfidentialWrapper"}
    category:
    + {"name":"Local Infrastructure","priority":5}
    }
    contract ConfidentialArmUSDCsWrapper (eth:0x77F8207ee451441336538bA07a2F425780dED8DB) [zama/ConfidentialWrapper] {
    +++ description: 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.
    type:
    - "EOA"
    + "Contract"
    proxyType:
    - "EOA"
    + "EIP1967 proxy"
    template:
    + "zama/ConfidentialWrapper"
    sourceHashes:
    + ["0x7df5501f3f5ffd35e0c61153fcd76f37533ab73a80adf20a7a19b30c246faea3","0x111b5cc66fc29cac57ed685c50a509014181cbf98122b5fd89c0449eea3fab5f"]
    description:
    + "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."
    deployerAddress:
    + "eth:0xe02e3b1cbEc07FC8D03B2eD15ddCe743403A013b"
    sinceTimestamp:
    + 1789151411
    sinceBlock:
    + 25955963
    values:
    + {"$admin":"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3","$implementation":"eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD","$pastUpgrades":[["2026-09-11T18:30:11.000Z","0x96d24e2718e693259e6f30d476fc2a1157018ee8b4978f224807e2ecb06f6c56",["eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD"]]],"$upgradeCount":1,"blockedUsers":[],"confidentialProtocolId":1,"confidentialTotalSupply":"0x04eede51a52f5c474b858c4dec93e3f8ddb87fba80ff00000000000000010500","constructorArgs":["eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD","0x6e690fe60000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000001a0000000000000000000000000a2eaad0d586cf9fd73bb2c09cf6a7e3e187d68cd000000000000000000000000b6d69d5f334d8b97b194617b53c6ab62f8681ef30000000000000000000000000000000000000000000000000000000000000280000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000015436f6e666964656e7469616c2061726d5553444373000000000000000000000000000000000000000000000000000000000000000000000000000000000000096361726d5553444373000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a8646174613a6170706c69636174696f6e2f6a736f6e3b757466382c7b226e616d65223a22436f6e666964656e7469616c2061726d5553444373222c2273796d626f6c223a226361726d5553444373222c226465736372697074696f6e223a22436f6e666964656e7469616c2077726170706572206f662061726d555344437320736869656c64696e6720697420696e746f206120636f6e666964656e7469616c20746f6b656e227d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"],"contractURI":"data:application/json;utf8,{\"name\":\"Confidential armUSDCs\",\"symbol\":\"carmUSDCs\",\"description\":\"Confidential wrapper of armUSDCs shielding it into a confidential token\"}","decimals":6,"fheAcl":"eth:0xcA2E8f1F656CD25C01F05d0b243Ab1ecd4a8ffb6","fheCoprocessor":"eth:0xD82385dADa1ae3E969447f20A3164F6213100e75","fheKmsVerifier":"eth:0x77627828a55156b04Ac0DC0eb30467f1a552BB03","getUnderlyingDenyListSelector":"0x00000000","inferredTotalSupply":48148590,"maxTotalSupply":"18446744073709551615","name":"Confidential armUSDCs","observers":[],"owner":"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3","paused":false,"pauser":"eth:0x0000000000000000000000000000000000000000","pendingOwner":"eth:0x0000000000000000000000000000000000000000","rate":1000000000000,"symbol":"carmUSDCs","underlying":"eth:0xA2EAaD0D586cF9FD73bb2c09cF6A7E3e187D68cd","UPGRADE_INTERFACE_VERSION":"5.0.0"}
    fieldMeta:
    + {"owner":{"severity":"HIGH","description":"Current owner of the wrapper.","type":"PERMISSION"},"pendingOwner":{"severity":"HIGH","description":"Pending owner for a two-step ownership transfer.","type":"PERMISSION"},"underlying":{"description":"ERC-20 token escrowed by this wrapper."},"getUnderlyingDenyListSelector":{"severity":"HIGH","description":"Underlying-token denylist hook used by the wrapper. If enabled (non-zero), the wrapper calls this selector on the underlying token before restricted operations.","type":"RISK_PARAMETER"},"blockedUsers":{"severity":"HIGH","description":"Wrapper-local denylist reconstructed from UserBlocked and UserUnblocked events.","type":"PERMISSION"},"observers":{"severity":"HIGH","description":"Accounts holding a wildcard user-decryption delegation over all wrapper-owned encrypted handles. Observers can decrypt every confidential balance and transfer amount of this wrapper, so adding one changes its privacy guarantees.","type":"PERMISSION"},"pauser":{"description":"Address allowed to pause the wrapper (zero address means pausing is disabled). Only the owner can unpause.","type":"PERMISSION"},"paused":{"description":"Whether wrapping, unwrapping, unwrap finalization and confidential transfers are currently halted.","type":"RISK_PARAMETER"},"fheAcl":{"description":"Zama ACL contract used by the confidential token stack to check which accounts/contracts may use encrypted handles."},"fheCoprocessor":{"description":"Zama FHE coprocessor/executor contract that receives encrypted-operation requests and stores encrypted-result handles."},"fheKmsVerifier":{"description":"Zama KMS verifier contract used to verify threshold decryption/signature material returned by the offchain KMS."}}
    implementationNames:
    + {"eth:0x77F8207ee451441336538bA07a2F425780dED8DB":"ERC1967Proxy","eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD":"ConfidentialWrapper"}
    category:
    + {"name":"Local Infrastructure","priority":5}
    }
    contract ConfidentialBbqUSDTWrapper (eth:0x80Ae7dbCe3c1696d3eeD04Ec8348c3C432322273) [zama/ConfidentialWrapper] {
    +++ description: 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.
    type:
    - "EOA"
    + "Contract"
    proxyType:
    - "EOA"
    + "EIP1967 proxy"
    template:
    + "zama/ConfidentialWrapper"
    sourceHashes:
    + ["0x7df5501f3f5ffd35e0c61153fcd76f37533ab73a80adf20a7a19b30c246faea3","0x111b5cc66fc29cac57ed685c50a509014181cbf98122b5fd89c0449eea3fab5f"]
    description:
    + "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."
    deployerAddress:
    + "eth:0xe02e3b1cbEc07FC8D03B2eD15ddCe743403A013b"
    sinceTimestamp:
    + 1789152695
    sinceBlock:
    + 25956070
    values:
    + {"$admin":"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3","$implementation":"eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD","$pastUpgrades":[["2026-09-11T18:51:35.000Z","0x015d053c281a8ebb13d7170b1f91cdbac616e0aff901335a9cdb542dd15137dd",["eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD"]]],"$upgradeCount":1,"blockedUsers":[],"confidentialProtocolId":1,"confidentialTotalSupply":"0x4c174f25773bdd4f4283b52e5a6e86343af1338f0fff00000000000000010500","constructorArgs":["eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD","0x6e690fe60000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000001a0000000000000000000000000beeff07d991c04cd640de9f15c08ba59c4fedeb7000000000000000000000000b6d69d5f334d8b97b194617b53c6ab62f8681ef30000000000000000000000000000000000000000000000000000000000000280000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000014436f6e666964656e7469616c20626271555344540000000000000000000000000000000000000000000000000000000000000000000000000000000000000008636262715553445400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a5646174613a6170706c69636174696f6e2f6a736f6e3b757466382c7b226e616d65223a22436f6e666964656e7469616c2062627155534454222c2273796d626f6c223a226362627155534454222c226465736372697074696f6e223a22436f6e666964656e7469616c2077726170706572206f66206262715553445420736869656c64696e6720697420696e746f206120636f6e666964656e7469616c20746f6b656e227d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"],"contractURI":"data:application/json;utf8,{\"name\":\"Confidential bbqUSDT\",\"symbol\":\"cbbqUSDT\",\"description\":\"Confidential wrapper of bbqUSDT shielding it into a confidential token\"}","decimals":6,"fheAcl":"eth:0xcA2E8f1F656CD25C01F05d0b243Ab1ecd4a8ffb6","fheCoprocessor":"eth:0xD82385dADa1ae3E969447f20A3164F6213100e75","fheKmsVerifier":"eth:0x77627828a55156b04Ac0DC0eb30467f1a552BB03","getUnderlyingDenyListSelector":"0x00000000","inferredTotalSupply":528600765,"maxTotalSupply":"18446744073709551615","name":"Confidential bbqUSDT","observers":[],"owner":"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3","paused":false,"pauser":"eth:0x0000000000000000000000000000000000000000","pendingOwner":"eth:0x0000000000000000000000000000000000000000","rate":1000000000000,"symbol":"cbbqUSDT","underlying":"eth:0xbeeff07d991C04CD640DE9F15C08ba59c4FEDEb7","UPGRADE_INTERFACE_VERSION":"5.0.0"}
    fieldMeta:
    + {"owner":{"severity":"HIGH","description":"Current owner of the wrapper.","type":"PERMISSION"},"pendingOwner":{"severity":"HIGH","description":"Pending owner for a two-step ownership transfer.","type":"PERMISSION"},"underlying":{"description":"ERC-20 token escrowed by this wrapper."},"getUnderlyingDenyListSelector":{"severity":"HIGH","description":"Underlying-token denylist hook used by the wrapper. If enabled (non-zero), the wrapper calls this selector on the underlying token before restricted operations.","type":"RISK_PARAMETER"},"blockedUsers":{"severity":"HIGH","description":"Wrapper-local denylist reconstructed from UserBlocked and UserUnblocked events.","type":"PERMISSION"},"observers":{"severity":"HIGH","description":"Accounts holding a wildcard user-decryption delegation over all wrapper-owned encrypted handles. Observers can decrypt every confidential balance and transfer amount of this wrapper, so adding one changes its privacy guarantees.","type":"PERMISSION"},"pauser":{"description":"Address allowed to pause the wrapper (zero address means pausing is disabled). Only the owner can unpause.","type":"PERMISSION"},"paused":{"description":"Whether wrapping, unwrapping, unwrap finalization and confidential transfers are currently halted.","type":"RISK_PARAMETER"},"fheAcl":{"description":"Zama ACL contract used by the confidential token stack to check which accounts/contracts may use encrypted handles."},"fheCoprocessor":{"description":"Zama FHE coprocessor/executor contract that receives encrypted-operation requests and stores encrypted-result handles."},"fheKmsVerifier":{"description":"Zama KMS verifier contract used to verify threshold decryption/signature material returned by the offchain KMS."}}
    implementationNames:
    + {"eth:0x80Ae7dbCe3c1696d3eeD04Ec8348c3C432322273":"ERC1967Proxy","eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD":"ConfidentialWrapper"}
    category:
    + {"name":"Local Infrastructure","priority":5}
    }
    contract ConfidentialPENDLEWrapper (eth:0x8900123F7e17709C1D80eda1E611A9503Cf1B3df) [zama/ConfidentialWrapper] {
    +++ description: 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.
    type:
    - "EOA"
    + "Contract"
    proxyType:
    - "EOA"
    + "EIP1967 proxy"
    template:
    + "zama/ConfidentialWrapper"
    sourceHashes:
    + ["0x7df5501f3f5ffd35e0c61153fcd76f37533ab73a80adf20a7a19b30c246faea3","0x111b5cc66fc29cac57ed685c50a509014181cbf98122b5fd89c0449eea3fab5f"]
    description:
    + "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."
    deployerAddress:
    + "eth:0xe02e3b1cbEc07FC8D03B2eD15ddCe743403A013b"
    sinceTimestamp:
    + 1789150991
    sinceBlock:
    + 25955928
    values:
    + {"$admin":"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3","$implementation":"eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD","$pastUpgrades":[["2026-09-11T18:23:11.000Z","0x81bc67cd541d90df6904fd05608b64880b98be74fb5c1c0f5e4f17a0ec779561",["eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD"]]],"$upgradeCount":1,"blockedUsers":[],"confidentialProtocolId":1,"confidentialTotalSupply":"0xba6c9ebe37b031712a8c7bc4ad41ca77a160d6ab93ff00000000000000010500","constructorArgs":["eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD","0x6e690fe60000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000001a0000000000000000000000000808507121b80c02388fad14726482e061b8da827000000000000000000000000b6d69d5f334d8b97b194617b53c6ab62f8681ef30000000000000000000000000000000000000000000000000000000000000280000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000013436f6e666964656e7469616c2050454e444c450000000000000000000000000000000000000000000000000000000000000000000000000000000000000000076350454e444c450000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a2646174613a6170706c69636174696f6e2f6a736f6e3b757466382c7b226e616d65223a22436f6e666964656e7469616c2050454e444c45222c2273796d626f6c223a226350454e444c45222c226465736372697074696f6e223a22436f6e666964656e7469616c2077726170706572206f662050454e444c4520736869656c64696e6720697420696e746f206120636f6e666964656e7469616c20746f6b656e227d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"],"contractURI":"data:application/json;utf8,{\"name\":\"Confidential PENDLE\",\"symbol\":\"cPENDLE\",\"description\":\"Confidential wrapper of PENDLE shielding it into a confidential token\"}","decimals":6,"fheAcl":"eth:0xcA2E8f1F656CD25C01F05d0b243Ab1ecd4a8ffb6","fheCoprocessor":"eth:0xD82385dADa1ae3E969447f20A3164F6213100e75","fheKmsVerifier":"eth:0x77627828a55156b04Ac0DC0eb30467f1a552BB03","getUnderlyingDenyListSelector":"0x00000000","inferredTotalSupply":22973360000,"maxTotalSupply":"18446744073709551615","name":"Confidential PENDLE","observers":[],"owner":"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3","paused":false,"pauser":"eth:0x0000000000000000000000000000000000000000","pendingOwner":"eth:0x0000000000000000000000000000000000000000","rate":1000000000000,"symbol":"cPENDLE","underlying":"eth:0x808507121B80c02388fAd14726482e061B8da827","UPGRADE_INTERFACE_VERSION":"5.0.0"}
    fieldMeta:
    + {"owner":{"severity":"HIGH","description":"Current owner of the wrapper.","type":"PERMISSION"},"pendingOwner":{"severity":"HIGH","description":"Pending owner for a two-step ownership transfer.","type":"PERMISSION"},"underlying":{"description":"ERC-20 token escrowed by this wrapper."},"getUnderlyingDenyListSelector":{"severity":"HIGH","description":"Underlying-token denylist hook used by the wrapper. If enabled (non-zero), the wrapper calls this selector on the underlying token before restricted operations.","type":"RISK_PARAMETER"},"blockedUsers":{"severity":"HIGH","description":"Wrapper-local denylist reconstructed from UserBlocked and UserUnblocked events.","type":"PERMISSION"},"observers":{"severity":"HIGH","description":"Accounts holding a wildcard user-decryption delegation over all wrapper-owned encrypted handles. Observers can decrypt every confidential balance and transfer amount of this wrapper, so adding one changes its privacy guarantees.","type":"PERMISSION"},"pauser":{"description":"Address allowed to pause the wrapper (zero address means pausing is disabled). Only the owner can unpause.","type":"PERMISSION"},"paused":{"description":"Whether wrapping, unwrapping, unwrap finalization and confidential transfers are currently halted.","type":"RISK_PARAMETER"},"fheAcl":{"description":"Zama ACL contract used by the confidential token stack to check which accounts/contracts may use encrypted handles."},"fheCoprocessor":{"description":"Zama FHE coprocessor/executor contract that receives encrypted-operation requests and stores encrypted-result handles."},"fheKmsVerifier":{"description":"Zama KMS verifier contract used to verify threshold decryption/signature material returned by the offchain KMS."}}
    implementationNames:
    + {"eth:0x8900123F7e17709C1D80eda1E611A9503Cf1B3df":"ERC1967Proxy","eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD":"ConfidentialWrapper"}
    category:
    + {"name":"Local Infrastructure","priority":5}
    }
    contract Safe (eth:0x8c0E2c46F96756C49DBd6723F4C57a03a254B4B0) [GnosisSafe] {
    +++ description: None
    values.$members.2:
    - "eth:0x8a686b039c0323e990Be80991a16bdaAb78113AC"
    + "eth:0xFd23FcEFC76B5fCe924d0D460D9AE4a0e1CF0B99"
    }
    contract ConfidentialPAPYWrapper (eth:0x9ABb8f3dC2863B1F108DeD7ea41902fEF6732A8c) [zama/ConfidentialWrapper] {
    +++ description: 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.
    type:
    - "EOA"
    + "Contract"
    proxyType:
    - "EOA"
    + "EIP1967 proxy"
    template:
    + "zama/ConfidentialWrapper"
    sourceHashes:
    + ["0x7df5501f3f5ffd35e0c61153fcd76f37533ab73a80adf20a7a19b30c246faea3","0x111b5cc66fc29cac57ed685c50a509014181cbf98122b5fd89c0449eea3fab5f"]
    description:
    + "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."
    deployerAddress:
    + "eth:0xe02e3b1cbEc07FC8D03B2eD15ddCe743403A013b"
    sinceTimestamp:
    + 1789151975
    sinceBlock:
    + 25956010
    values:
    + {"$admin":"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3","$implementation":"eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD","$pastUpgrades":[["2026-09-11T18:39:35.000Z","0xeb2532285d2ac5d8939481a8bfa78ddd8fc0418d031cfc525d97bf7201939a66",["eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD"]]],"$upgradeCount":1,"blockedUsers":[],"confidentialProtocolId":1,"confidentialTotalSupply":"0x2982980665e6d3df2f508ec3225920cf36877b15caff00000000000000010500","constructorArgs":["eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD","0x6e690fe60000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000001a0000000000000000000000000b344e331a3cda61d329fb3cca2be5942da87c418000000000000000000000000b6d69d5f334d8b97b194617b53c6ab62f8681ef300000000000000000000000000000000000000000000000000000000000002600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000028000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011436f6e666964656e7469616c205041505900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000056350415059000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009c646174613a6170706c69636174696f6e2f6a736f6e3b757466382c7b226e616d65223a22436f6e666964656e7469616c2050415059222c2273796d626f6c223a226350415059222c226465736372697074696f6e223a22436f6e666964656e7469616c2077726170706572206f66205041505920736869656c64696e6720697420696e746f206120636f6e666964656e7469616c20746f6b656e227d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"],"contractURI":"data:application/json;utf8,{\"name\":\"Confidential PAPY\",\"symbol\":\"cPAPY\",\"description\":\"Confidential wrapper of PAPY shielding it into a confidential token\"}","decimals":6,"fheAcl":"eth:0xcA2E8f1F656CD25C01F05d0b243Ab1ecd4a8ffb6","fheCoprocessor":"eth:0xD82385dADa1ae3E969447f20A3164F6213100e75","fheKmsVerifier":"eth:0x77627828a55156b04Ac0DC0eb30467f1a552BB03","getUnderlyingDenyListSelector":"0x00000000","inferredTotalSupply":310251261912,"maxTotalSupply":"18446744073709551615","name":"Confidential PAPY","observers":[],"owner":"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3","paused":false,"pauser":"eth:0x0000000000000000000000000000000000000000","pendingOwner":"eth:0x0000000000000000000000000000000000000000","rate":1000000000000,"symbol":"cPAPY","underlying":"eth:0xB344e331A3cDa61D329fb3Cca2Be5942da87c418","UPGRADE_INTERFACE_VERSION":"5.0.0"}
    fieldMeta:
    + {"owner":{"severity":"HIGH","description":"Current owner of the wrapper.","type":"PERMISSION"},"pendingOwner":{"severity":"HIGH","description":"Pending owner for a two-step ownership transfer.","type":"PERMISSION"},"underlying":{"description":"ERC-20 token escrowed by this wrapper."},"getUnderlyingDenyListSelector":{"severity":"HIGH","description":"Underlying-token denylist hook used by the wrapper. If enabled (non-zero), the wrapper calls this selector on the underlying token before restricted operations.","type":"RISK_PARAMETER"},"blockedUsers":{"severity":"HIGH","description":"Wrapper-local denylist reconstructed from UserBlocked and UserUnblocked events.","type":"PERMISSION"},"observers":{"severity":"HIGH","description":"Accounts holding a wildcard user-decryption delegation over all wrapper-owned encrypted handles. Observers can decrypt every confidential balance and transfer amount of this wrapper, so adding one changes its privacy guarantees.","type":"PERMISSION"},"pauser":{"description":"Address allowed to pause the wrapper (zero address means pausing is disabled). Only the owner can unpause.","type":"PERMISSION"},"paused":{"description":"Whether wrapping, unwrapping, unwrap finalization and confidential transfers are currently halted.","type":"RISK_PARAMETER"},"fheAcl":{"description":"Zama ACL contract used by the confidential token stack to check which accounts/contracts may use encrypted handles."},"fheCoprocessor":{"description":"Zama FHE coprocessor/executor contract that receives encrypted-operation requests and stores encrypted-result handles."},"fheKmsVerifier":{"description":"Zama KMS verifier contract used to verify threshold decryption/signature material returned by the offchain KMS."}}
    implementationNames:
    + {"eth:0x9ABb8f3dC2863B1F108DeD7ea41902fEF6732A8c":"ERC1967Proxy","eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD":"ConfidentialWrapper"}
    category:
    + {"name":"Local Infrastructure","priority":5}
    }
    contract ConfidentialFcUSDTWrapper (eth:0xA28A369Df348ac232E4DAF7B0Ef90280d8707D7F) [zama/ConfidentialWrapper] {
    +++ description: 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.
    type:
    - "EOA"
    + "Contract"
    proxyType:
    - "EOA"
    + "EIP1967 proxy"
    template:
    + "zama/ConfidentialWrapper"
    sourceHashes:
    + ["0x7df5501f3f5ffd35e0c61153fcd76f37533ab73a80adf20a7a19b30c246faea3","0x111b5cc66fc29cac57ed685c50a509014181cbf98122b5fd89c0449eea3fab5f"]
    description:
    + "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."
    deployerAddress:
    + "eth:0xe02e3b1cbEc07FC8D03B2eD15ddCe743403A013b"
    sinceTimestamp:
    + 1789388567
    sinceBlock:
    + 25975670
    values:
    + {"$admin":"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3","$implementation":"eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD","$pastUpgrades":[["2026-09-14T12:22:47.000Z","0xac60b0c2440232297fb1e4b7aabe445e32b69cc56d0d7be02bef6f4bba219ff9",["eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD"]]],"$upgradeCount":1,"blockedUsers":[],"confidentialProtocolId":1,"confidentialTotalSupply":"0xa7bea747da47fb3d7e6e2afda103a240e2e974e913ff00000000000000010500","constructorArgs":["eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD","0x6e690fe60000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000001a0000000000000000000000000b48c056c5608ba2ee4cd94af2bf4b1f25295bd7e000000000000000000000000b6d69d5f334d8b97b194617b53c6ab62f8681ef30000000000000000000000000000000000000000000000000000000000000280000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000013436f6e666964656e7469616c20666355534454000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007636663555344540000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a2646174613a6170706c69636174696f6e2f6a736f6e3b757466382c7b226e616d65223a22436f6e666964656e7469616c20666355534454222c2273796d626f6c223a2263666355534454222c226465736372697074696f6e223a22436f6e666964656e7469616c2077726170706572206f662066635553445420736869656c64696e6720697420696e746f206120636f6e666964656e7469616c20746f6b656e227d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"],"contractURI":"data:application/json;utf8,{\"name\":\"Confidential fcUSDT\",\"symbol\":\"cfcUSDT\",\"description\":\"Confidential wrapper of fcUSDT shielding it into a confidential token\"}","decimals":6,"fheAcl":"eth:0xcA2E8f1F656CD25C01F05d0b243Ab1ecd4a8ffb6","fheCoprocessor":"eth:0xD82385dADa1ae3E969447f20A3164F6213100e75","fheKmsVerifier":"eth:0x77627828a55156b04Ac0DC0eb30467f1a552BB03","getUnderlyingDenyListSelector":"0x00000000","inferredTotalSupply":1680592832924,"maxTotalSupply":"18446744073709551615","name":"Confidential fcUSDT","observers":[],"owner":"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3","paused":false,"pauser":"eth:0x0000000000000000000000000000000000000000","pendingOwner":"eth:0x0000000000000000000000000000000000000000","rate":1000000000000,"symbol":"cfcUSDT","underlying":"eth:0xb48C056C5608bA2Ee4cD94AF2bF4b1F25295Bd7e","UPGRADE_INTERFACE_VERSION":"5.0.0"}
    fieldMeta:
    + {"owner":{"severity":"HIGH","description":"Current owner of the wrapper.","type":"PERMISSION"},"pendingOwner":{"severity":"HIGH","description":"Pending owner for a two-step ownership transfer.","type":"PERMISSION"},"underlying":{"description":"ERC-20 token escrowed by this wrapper."},"getUnderlyingDenyListSelector":{"severity":"HIGH","description":"Underlying-token denylist hook used by the wrapper. If enabled (non-zero), the wrapper calls this selector on the underlying token before restricted operations.","type":"RISK_PARAMETER"},"blockedUsers":{"severity":"HIGH","description":"Wrapper-local denylist reconstructed from UserBlocked and UserUnblocked events.","type":"PERMISSION"},"observers":{"severity":"HIGH","description":"Accounts holding a wildcard user-decryption delegation over all wrapper-owned encrypted handles. Observers can decrypt every confidential balance and transfer amount of this wrapper, so adding one changes its privacy guarantees.","type":"PERMISSION"},"pauser":{"description":"Address allowed to pause the wrapper (zero address means pausing is disabled). Only the owner can unpause.","type":"PERMISSION"},"paused":{"description":"Whether wrapping, unwrapping, unwrap finalization and confidential transfers are currently halted.","type":"RISK_PARAMETER"},"fheAcl":{"description":"Zama ACL contract used by the confidential token stack to check which accounts/contracts may use encrypted handles."},"fheCoprocessor":{"description":"Zama FHE coprocessor/executor contract that receives encrypted-operation requests and stores encrypted-result handles."},"fheKmsVerifier":{"description":"Zama KMS verifier contract used to verify threshold decryption/signature material returned by the offchain KMS."}}
    implementationNames:
    + {"eth:0xA28A369Df348ac232E4DAF7B0Ef90280d8707D7F":"ERC1967Proxy","eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD":"ConfidentialWrapper"}
    category:
    + {"name":"Local Infrastructure","priority":5}
    }
    contract ConfidentialRoxcUSDCWrapper (eth:0xB1B18Ad1F16D744c470cb6B09Cb826AfFcc9EB30) [zama/ConfidentialWrapper] {
    +++ description: 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.
    type:
    - "EOA"
    + "Contract"
    proxyType:
    - "EOA"
    + "EIP1967 proxy"
    template:
    + "zama/ConfidentialWrapper"
    sourceHashes:
    + ["0x7df5501f3f5ffd35e0c61153fcd76f37533ab73a80adf20a7a19b30c246faea3","0x111b5cc66fc29cac57ed685c50a509014181cbf98122b5fd89c0449eea3fab5f"]
    description:
    + "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."
    deployerAddress:
    + "eth:0xe02e3b1cbEc07FC8D03B2eD15ddCe743403A013b"
    sinceTimestamp:
    + 1789153955
    sinceBlock:
    + 25956174
    values:
    + {"$admin":"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3","$implementation":"eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD","$pastUpgrades":[["2026-09-11T19:12:35.000Z","0x3ef21251bb814e05e1ad9812ad70d000318e223d8655c395944d1ca345984f7a",["eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD"]]],"$upgradeCount":1,"blockedUsers":[],"confidentialProtocolId":1,"confidentialTotalSupply":"0xf3c25fec6e0e39fa9bb6dafe9cbc5e21e3da59e23dff00000000000000010500","constructorArgs":["eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD","0x6e690fe60000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000001a0000000000000000000000000c207d3f66537d7f66456808379a0e560cf20da36000000000000000000000000b6d69d5f334d8b97b194617b53c6ab62f8681ef30000000000000000000000000000000000000000000000000000000000000280000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000015436f6e666964656e7469616c20726f7863555344430000000000000000000000000000000000000000000000000000000000000000000000000000000000000963726f786355534443000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a8646174613a6170706c69636174696f6e2f6a736f6e3b757466382c7b226e616d65223a22436f6e666964656e7469616c20726f786355534443222c2273796d626f6c223a2263726f786355534443222c226465736372697074696f6e223a22436f6e666964656e7469616c2077726170706572206f6620726f78635553444320736869656c64696e6720697420696e746f206120636f6e666964656e7469616c20746f6b656e227d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"],"contractURI":"data:application/json;utf8,{\"name\":\"Confidential roxcUSDC\",\"symbol\":\"croxcUSDC\",\"description\":\"Confidential wrapper of roxcUSDC shielding it into a confidential token\"}","decimals":6,"fheAcl":"eth:0xcA2E8f1F656CD25C01F05d0b243Ab1ecd4a8ffb6","fheCoprocessor":"eth:0xD82385dADa1ae3E969447f20A3164F6213100e75","fheKmsVerifier":"eth:0x77627828a55156b04Ac0DC0eb30467f1a552BB03","getUnderlyingDenyListSelector":"0x00000000","inferredTotalSupply":7942254635408,"maxTotalSupply":"18446744073709551615","name":"Confidential roxcUSDC","observers":[],"owner":"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3","paused":false,"pauser":"eth:0x0000000000000000000000000000000000000000","pendingOwner":"eth:0x0000000000000000000000000000000000000000","rate":1000000000000,"symbol":"croxcUSDC","underlying":"eth:0xc207d3f66537D7F66456808379A0E560cF20Da36","UPGRADE_INTERFACE_VERSION":"5.0.0"}
    fieldMeta:
    + {"owner":{"severity":"HIGH","description":"Current owner of the wrapper.","type":"PERMISSION"},"pendingOwner":{"severity":"HIGH","description":"Pending owner for a two-step ownership transfer.","type":"PERMISSION"},"underlying":{"description":"ERC-20 token escrowed by this wrapper."},"getUnderlyingDenyListSelector":{"severity":"HIGH","description":"Underlying-token denylist hook used by the wrapper. If enabled (non-zero), the wrapper calls this selector on the underlying token before restricted operations.","type":"RISK_PARAMETER"},"blockedUsers":{"severity":"HIGH","description":"Wrapper-local denylist reconstructed from UserBlocked and UserUnblocked events.","type":"PERMISSION"},"observers":{"severity":"HIGH","description":"Accounts holding a wildcard user-decryption delegation over all wrapper-owned encrypted handles. Observers can decrypt every confidential balance and transfer amount of this wrapper, so adding one changes its privacy guarantees.","type":"PERMISSION"},"pauser":{"description":"Address allowed to pause the wrapper (zero address means pausing is disabled). Only the owner can unpause.","type":"PERMISSION"},"paused":{"description":"Whether wrapping, unwrapping, unwrap finalization and confidential transfers are currently halted.","type":"RISK_PARAMETER"},"fheAcl":{"description":"Zama ACL contract used by the confidential token stack to check which accounts/contracts may use encrypted handles."},"fheCoprocessor":{"description":"Zama FHE coprocessor/executor contract that receives encrypted-operation requests and stores encrypted-result handles."},"fheKmsVerifier":{"description":"Zama KMS verifier contract used to verify threshold decryption/signature material returned by the offchain KMS."}}
    implementationNames:
    + {"eth:0xB1B18Ad1F16D744c470cb6B09Cb826AfFcc9EB30":"ERC1967Proxy","eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD":"ConfidentialWrapper"}
    category:
    + {"name":"Local Infrastructure","priority":5}
    }
    contract DAO (eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3) [zama/ZamaDAO] {
    +++ description: Aragon DAO that stores governance state and executes proposal action batches.
    directlyReceivedPermissions.0:
    + {"permission":"interact","from":"eth:0x1F6A937119c0c34Db0a2c4F000386a3BfD4A9e73","description":"block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership.","role":".owner"}
    directlyReceivedPermissions.1:
    + {"permission":"interact","from":"eth:0x2ebBd099f66b0ca94DD82B4c06fe3eEf6AFf853c","description":"block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership.","role":".owner"}
    directlyReceivedPermissions.3:
    + {"permission":"interact","from":"eth:0x4FCCF8046FB7FB7AB76321BD39C27453e396B88f","description":"block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership.","role":".owner"}
    directlyReceivedPermissions.4:
    + {"permission":"interact","from":"eth:0x501b014f86a73A7199E00cB31C0e9565Ac51e51B","description":"block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership.","role":".owner"}
    directlyReceivedPermissions.5:
    + {"permission":"interact","from":"eth:0x63a60aCC304b84eF829b263f28e7b636Bf77d45A","description":"block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership.","role":".owner"}
    directlyReceivedPermissions.10:
    + {"permission":"interact","from":"eth:0x76A3f985315aAc9789Cb5BF8A5bb83BFF55FD5a6","description":"block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership.","role":".owner"}
    directlyReceivedPermissions.11:
    + {"permission":"interact","from":"eth:0x77F8207ee451441336538bA07a2F425780dED8DB","description":"block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership.","role":".owner"}
    directlyReceivedPermissions.12:
    + {"permission":"interact","from":"eth:0x80Ae7dbCe3c1696d3eeD04Ec8348c3C432322273","description":"block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership.","role":".owner"}
    directlyReceivedPermissions.15:
    + {"permission":"interact","from":"eth:0x8900123F7e17709C1D80eda1E611A9503Cf1B3df","description":"block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership.","role":".owner"}
    directlyReceivedPermissions.16:
    + {"permission":"interact","from":"eth:0x9ABb8f3dC2863B1F108DeD7ea41902fEF6732A8c","description":"block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership.","role":".owner"}
    directlyReceivedPermissions.17:
    + {"permission":"interact","from":"eth:0xA28A369Df348ac232E4DAF7B0Ef90280d8707D7F","description":"block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership.","role":".owner"}
    directlyReceivedPermissions.20:
    + {"permission":"interact","from":"eth:0xB1B18Ad1F16D744c470cb6B09Cb826AfFcc9EB30","description":"block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership.","role":".owner"}
    directlyReceivedPermissions.24:
    + {"permission":"interact","from":"eth:0xb6e5299fc56053DD5440104Fd6Fd2A3CD064edbC","description":"block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership.","role":".owner"}
    directlyReceivedPermissions.26:
    + {"permission":"interact","from":"eth:0xbaC6DeDf2C10D6D381F9DBd9EFd69D93FfCef50B","description":"block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership.","role":".owner"}
    directlyReceivedPermissions.31:
    + {"permission":"interact","from":"eth:0xd86aE89C089B380f064Fe01899B4071F1eb6Bb3d","description":"block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership.","role":".owner"}
    directlyReceivedPermissions.36:
    + {"permission":"interact","from":"eth:0xEa9A15A29DD180c40442142CaeEfC491d37bfDB2","description":"block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership.","role":".owner"}
    directlyReceivedPermissions.39:
    + {"permission":"interact","from":"eth:0xF921A5B0634f4236B21A4e948317abf9a2E86B6f","description":"block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership.","role":".owner"}
    directlyReceivedPermissions.40:
    + {"permission":"upgrade","from":"eth:0x1F6A937119c0c34Db0a2c4F000386a3BfD4A9e73","role":"admin"}
    directlyReceivedPermissions.41:
    + {"permission":"upgrade","from":"eth:0x2ebBd099f66b0ca94DD82B4c06fe3eEf6AFf853c","role":"admin"}
    directlyReceivedPermissions.43:
    + {"permission":"upgrade","from":"eth:0x4FCCF8046FB7FB7AB76321BD39C27453e396B88f","role":"admin"}
    directlyReceivedPermissions.44:
    + {"permission":"upgrade","from":"eth:0x501b014f86a73A7199E00cB31C0e9565Ac51e51B","role":"admin"}
    directlyReceivedPermissions.45:
    + {"permission":"upgrade","from":"eth:0x63a60aCC304b84eF829b263f28e7b636Bf77d45A","role":"admin"}
    directlyReceivedPermissions.49:
    + {"permission":"upgrade","from":"eth:0x76A3f985315aAc9789Cb5BF8A5bb83BFF55FD5a6","role":"admin"}
    directlyReceivedPermissions.51:
    + {"permission":"upgrade","from":"eth:0x77F8207ee451441336538bA07a2F425780dED8DB","role":"admin"}
    directlyReceivedPermissions.52:
    + {"permission":"upgrade","from":"eth:0x80Ae7dbCe3c1696d3eeD04Ec8348c3C432322273","role":"admin"}
    directlyReceivedPermissions.55:
    + {"permission":"upgrade","from":"eth:0x8900123F7e17709C1D80eda1E611A9503Cf1B3df","role":"admin"}
    directlyReceivedPermissions.56:
    + {"permission":"upgrade","from":"eth:0x9ABb8f3dC2863B1F108DeD7ea41902fEF6732A8c","role":"admin"}
    directlyReceivedPermissions.57:
    + {"permission":"upgrade","from":"eth:0xA28A369Df348ac232E4DAF7B0Ef90280d8707D7F","role":"admin"}
    directlyReceivedPermissions.60:
    + {"permission":"upgrade","from":"eth:0xB1B18Ad1F16D744c470cb6B09Cb826AfFcc9EB30","role":"admin"}
    directlyReceivedPermissions.62:
    + {"permission":"upgrade","from":"eth:0xb6e5299fc56053DD5440104Fd6Fd2A3CD064edbC","role":"admin"}
    directlyReceivedPermissions.64:
    + {"permission":"upgrade","from":"eth:0xbaC6DeDf2C10D6D381F9DBd9EFd69D93FfCef50B","role":"admin"}
    directlyReceivedPermissions.69:
    + {"permission":"upgrade","from":"eth:0xd86aE89C089B380f064Fe01899B4071F1eb6Bb3d","role":"admin"}
    directlyReceivedPermissions.73:
    + {"permission":"upgrade","from":"eth:0xEa9A15A29DD180c40442142CaeEfC491d37bfDB2","role":"admin"}
    directlyReceivedPermissions.76:
    + {"permission":"upgrade","from":"eth:0xF921A5B0634f4236B21A4e948317abf9a2E86B6f","role":"admin"}
    }
    contract ConfidentialPendleUSDCWrapper (eth:0xb6e5299fc56053DD5440104Fd6Fd2A3CD064edbC) [zama/ConfidentialWrapper] {
    +++ description: 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.
    type:
    - "EOA"
    + "Contract"
    proxyType:
    - "EOA"
    + "EIP1967 proxy"
    template:
    + "zama/ConfidentialWrapper"
    sourceHashes:
    + ["0x7df5501f3f5ffd35e0c61153fcd76f37533ab73a80adf20a7a19b30c246faea3","0x111b5cc66fc29cac57ed685c50a509014181cbf98122b5fd89c0449eea3fab5f"]
    description:
    + "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."
    deployerAddress:
    + "eth:0xe02e3b1cbEc07FC8D03B2eD15ddCe743403A013b"
    sinceTimestamp:
    + 1789150499
    sinceBlock:
    + 25955887
    values:
    + {"$admin":"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3","$implementation":"eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD","$pastUpgrades":[["2026-09-11T18:14:59.000Z","0x245c01d53b1793bf5bcdcc33260534472552aeb287fa76e0330648a25385f7f1",["eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD"]]],"$upgradeCount":1,"blockedUsers":[],"confidentialProtocolId":1,"confidentialTotalSupply":"0x0c1aa706cc1144ed21d09130a4f9078a921fbd5033ff00000000000000010500","constructorArgs":["eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD","0x6e690fe60000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000001a000000000000000000000000055c1b6e461a6334b567baf0feb5d728715446f05000000000000000000000000b6d69d5f334d8b97b194617b53c6ab62f8681ef30000000000000000000000000000000000000000000000000000000000000280000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000017436f6e666964656e7469616c2070656e646c6555534443000000000000000000000000000000000000000000000000000000000000000000000000000000000b6370656e646c655553444300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ae646174613a6170706c69636174696f6e2f6a736f6e3b757466382c7b226e616d65223a22436f6e666964656e7469616c2070656e646c6555534443222c2273796d626f6c223a226370656e646c6555534443222c226465736372697074696f6e223a22436f6e666964656e7469616c2077726170706572206f662070656e646c655553444320736869656c64696e6720697420696e746f206120636f6e666964656e7469616c20746f6b656e227d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"],"contractURI":"data:application/json;utf8,{\"name\":\"Confidential pendleUSDC\",\"symbol\":\"cpendleUSDC\",\"description\":\"Confidential wrapper of pendleUSDC shielding it into a confidential token\"}","decimals":6,"fheAcl":"eth:0xcA2E8f1F656CD25C01F05d0b243Ab1ecd4a8ffb6","fheCoprocessor":"eth:0xD82385dADa1ae3E969447f20A3164F6213100e75","fheKmsVerifier":"eth:0x77627828a55156b04Ac0DC0eb30467f1a552BB03","getUnderlyingDenyListSelector":"0x00000000","inferredTotalSupply":501767205337,"maxTotalSupply":"18446744073709551615","name":"Confidential pendleUSDC","observers":[],"owner":"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3","paused":false,"pauser":"eth:0x0000000000000000000000000000000000000000","pendingOwner":"eth:0x0000000000000000000000000000000000000000","rate":1000000000000,"symbol":"cpendleUSDC","underlying":"eth:0x55C1B6e461a6334B567bAF0FEb5D728715446f05","UPGRADE_INTERFACE_VERSION":"5.0.0"}
    fieldMeta:
    + {"owner":{"severity":"HIGH","description":"Current owner of the wrapper.","type":"PERMISSION"},"pendingOwner":{"severity":"HIGH","description":"Pending owner for a two-step ownership transfer.","type":"PERMISSION"},"underlying":{"description":"ERC-20 token escrowed by this wrapper."},"getUnderlyingDenyListSelector":{"severity":"HIGH","description":"Underlying-token denylist hook used by the wrapper. If enabled (non-zero), the wrapper calls this selector on the underlying token before restricted operations.","type":"RISK_PARAMETER"},"blockedUsers":{"severity":"HIGH","description":"Wrapper-local denylist reconstructed from UserBlocked and UserUnblocked events.","type":"PERMISSION"},"observers":{"severity":"HIGH","description":"Accounts holding a wildcard user-decryption delegation over all wrapper-owned encrypted handles. Observers can decrypt every confidential balance and transfer amount of this wrapper, so adding one changes its privacy guarantees.","type":"PERMISSION"},"pauser":{"description":"Address allowed to pause the wrapper (zero address means pausing is disabled). Only the owner can unpause.","type":"PERMISSION"},"paused":{"description":"Whether wrapping, unwrapping, unwrap finalization and confidential transfers are currently halted.","type":"RISK_PARAMETER"},"fheAcl":{"description":"Zama ACL contract used by the confidential token stack to check which accounts/contracts may use encrypted handles."},"fheCoprocessor":{"description":"Zama FHE coprocessor/executor contract that receives encrypted-operation requests and stores encrypted-result handles."},"fheKmsVerifier":{"description":"Zama KMS verifier contract used to verify threshold decryption/signature material returned by the offchain KMS."}}
    implementationNames:
    + {"eth:0xb6e5299fc56053DD5440104Fd6Fd2A3CD064edbC":"ERC1967Proxy","eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD":"ConfidentialWrapper"}
    category:
    + {"name":"Local Infrastructure","priority":5}
    }
    contract ConfidentialArmUSDTsWrapper (eth:0xbaC6DeDf2C10D6D381F9DBd9EFd69D93FfCef50B) [zama/ConfidentialWrapper] {
    +++ description: 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.
    type:
    - "EOA"
    + "Contract"
    proxyType:
    - "EOA"
    + "EIP1967 proxy"
    template:
    + "zama/ConfidentialWrapper"
    sourceHashes:
    + ["0x7df5501f3f5ffd35e0c61153fcd76f37533ab73a80adf20a7a19b30c246faea3","0x111b5cc66fc29cac57ed685c50a509014181cbf98122b5fd89c0449eea3fab5f"]
    description:
    + "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."
    deployerAddress:
    + "eth:0xe02e3b1cbEc07FC8D03B2eD15ddCe743403A013b"
    sinceTimestamp:
    + 1789150187
    sinceBlock:
    + 25955861
    values:
    + {"$admin":"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3","$implementation":"eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD","$pastUpgrades":[["2026-09-11T18:09:47.000Z","0x0126561c5f1b610e7f7dac5a364b5e6122bf5c3cb86f56908b94a94893df33b5",["eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD"]]],"$upgradeCount":1,"blockedUsers":[],"confidentialProtocolId":1,"confidentialTotalSupply":"0xd1389d02871d3a639bc4d6aba33b056ab38002446aff00000000000000010500","constructorArgs":["eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD","0x6e690fe60000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000001a0000000000000000000000000500ae64100d7dbdb640531085c2f5d40cdc8930d000000000000000000000000b6d69d5f334d8b97b194617b53c6ab62f8681ef30000000000000000000000000000000000000000000000000000000000000280000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000015436f6e666964656e7469616c2061726d5553445473000000000000000000000000000000000000000000000000000000000000000000000000000000000000096361726d5553445473000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a8646174613a6170706c69636174696f6e2f6a736f6e3b757466382c7b226e616d65223a22436f6e666964656e7469616c2061726d5553445473222c2273796d626f6c223a226361726d5553445473222c226465736372697074696f6e223a22436f6e666964656e7469616c2077726170706572206f662061726d555344547320736869656c64696e6720697420696e746f206120636f6e666964656e7469616c20746f6b656e227d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"],"contractURI":"data:application/json;utf8,{\"name\":\"Confidential armUSDTs\",\"symbol\":\"carmUSDTs\",\"description\":\"Confidential wrapper of armUSDTs shielding it into a confidential token\"}","decimals":6,"fheAcl":"eth:0xcA2E8f1F656CD25C01F05d0b243Ab1ecd4a8ffb6","fheCoprocessor":"eth:0xD82385dADa1ae3E969447f20A3164F6213100e75","fheKmsVerifier":"eth:0x77627828a55156b04Ac0DC0eb30467f1a552BB03","getUnderlyingDenyListSelector":"0x00000000","inferredTotalSupply":21141620,"maxTotalSupply":"18446744073709551615","name":"Confidential armUSDTs","observers":[],"owner":"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3","paused":false,"pauser":"eth:0x0000000000000000000000000000000000000000","pendingOwner":"eth:0x0000000000000000000000000000000000000000","rate":1000000000000,"symbol":"carmUSDTs","underlying":"eth:0x500aE64100D7DbDb640531085C2F5d40cDC8930D","UPGRADE_INTERFACE_VERSION":"5.0.0"}
    fieldMeta:
    + {"owner":{"severity":"HIGH","description":"Current owner of the wrapper.","type":"PERMISSION"},"pendingOwner":{"severity":"HIGH","description":"Pending owner for a two-step ownership transfer.","type":"PERMISSION"},"underlying":{"description":"ERC-20 token escrowed by this wrapper."},"getUnderlyingDenyListSelector":{"severity":"HIGH","description":"Underlying-token denylist hook used by the wrapper. If enabled (non-zero), the wrapper calls this selector on the underlying token before restricted operations.","type":"RISK_PARAMETER"},"blockedUsers":{"severity":"HIGH","description":"Wrapper-local denylist reconstructed from UserBlocked and UserUnblocked events.","type":"PERMISSION"},"observers":{"severity":"HIGH","description":"Accounts holding a wildcard user-decryption delegation over all wrapper-owned encrypted handles. Observers can decrypt every confidential balance and transfer amount of this wrapper, so adding one changes its privacy guarantees.","type":"PERMISSION"},"pauser":{"description":"Address allowed to pause the wrapper (zero address means pausing is disabled). Only the owner can unpause.","type":"PERMISSION"},"paused":{"description":"Whether wrapping, unwrapping, unwrap finalization and confidential transfers are currently halted.","type":"RISK_PARAMETER"},"fheAcl":{"description":"Zama ACL contract used by the confidential token stack to check which accounts/contracts may use encrypted handles."},"fheCoprocessor":{"description":"Zama FHE coprocessor/executor contract that receives encrypted-operation requests and stores encrypted-result handles."},"fheKmsVerifier":{"description":"Zama KMS verifier contract used to verify threshold decryption/signature material returned by the offchain KMS."}}
    implementationNames:
    + {"eth:0xbaC6DeDf2C10D6D381F9DBd9EFd69D93FfCef50B":"ERC1967Proxy","eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD":"ConfidentialWrapper"}
    category:
    + {"name":"Local Infrastructure","priority":5}
    }
    contract ZamaGovMultisigB (eth:0xBc860b6a4C860C5424B84A056E53ACFb2C99a38F) [zama/Multisig] {
    +++ description: Aragon multisig plugin for creating proposals and collecting approvals against a configurable threshold.
    +++ description: Current multisig members reconstructed from MembersAdded and MembersRemoved events.
    values.$members.5:
    + "eth:0x8aA8D71520d88a1Ed2B4257348134b94e00A9978"
    +++ description: Number of addresses currently listed as multisig members.
    +++ severity: HIGH
    values.addresslistLength:
    - 5
    + 6
    receivedPermissions.0:
    + {"permission":"interact","from":"eth:0x1F6A937119c0c34Db0a2c4F000386a3BfD4A9e73","description":"block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership.","role":".owner","via":[{"address":"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3"}]}
    receivedPermissions.1:
    + {"permission":"interact","from":"eth:0x2ebBd099f66b0ca94DD82B4c06fe3eEf6AFf853c","description":"block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership.","role":".owner","via":[{"address":"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3"}]}
    receivedPermissions.3:
    + {"permission":"interact","from":"eth:0x4FCCF8046FB7FB7AB76321BD39C27453e396B88f","description":"block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership.","role":".owner","via":[{"address":"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3"}]}
    receivedPermissions.4:
    + {"permission":"interact","from":"eth:0x501b014f86a73A7199E00cB31C0e9565Ac51e51B","description":"block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership.","role":".owner","via":[{"address":"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3"}]}
    receivedPermissions.5:
    + {"permission":"interact","from":"eth:0x63a60aCC304b84eF829b263f28e7b636Bf77d45A","description":"block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership.","role":".owner","via":[{"address":"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3"}]}
    receivedPermissions.10:
    + {"permission":"interact","from":"eth:0x76A3f985315aAc9789Cb5BF8A5bb83BFF55FD5a6","description":"block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership.","role":".owner","via":[{"address":"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3"}]}
    receivedPermissions.11:
    + {"permission":"interact","from":"eth:0x77F8207ee451441336538bA07a2F425780dED8DB","description":"block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership.","role":".owner","via":[{"address":"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3"}]}
    receivedPermissions.12:
    + {"permission":"interact","from":"eth:0x80Ae7dbCe3c1696d3eeD04Ec8348c3C432322273","description":"block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership.","role":".owner","via":[{"address":"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3"}]}
    receivedPermissions.15:
    + {"permission":"interact","from":"eth:0x8900123F7e17709C1D80eda1E611A9503Cf1B3df","description":"block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership.","role":".owner","via":[{"address":"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3"}]}
    receivedPermissions.16:
    + {"permission":"interact","from":"eth:0x9ABb8f3dC2863B1F108DeD7ea41902fEF6732A8c","description":"block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership.","role":".owner","via":[{"address":"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3"}]}
    receivedPermissions.17:
    + {"permission":"interact","from":"eth:0xA28A369Df348ac232E4DAF7B0Ef90280d8707D7F","description":"block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership.","role":".owner","via":[{"address":"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3"}]}
    receivedPermissions.20:
    + {"permission":"interact","from":"eth:0xB1B18Ad1F16D744c470cb6B09Cb826AfFcc9EB30","description":"block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership.","role":".owner","via":[{"address":"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3"}]}
    receivedPermissions.26:
    + {"permission":"interact","from":"eth:0xb6e5299fc56053DD5440104Fd6Fd2A3CD064edbC","description":"block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership.","role":".owner","via":[{"address":"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3"}]}
    receivedPermissions.28:
    + {"permission":"interact","from":"eth:0xbaC6DeDf2C10D6D381F9DBd9EFd69D93FfCef50B","description":"block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership.","role":".owner","via":[{"address":"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3"}]}
    receivedPermissions.33:
    + {"permission":"interact","from":"eth:0xd86aE89C089B380f064Fe01899B4071F1eb6Bb3d","description":"block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership.","role":".owner","via":[{"address":"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3"}]}
    receivedPermissions.38:
    + {"permission":"interact","from":"eth:0xEa9A15A29DD180c40442142CaeEfC491d37bfDB2","description":"block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership.","role":".owner","via":[{"address":"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3"}]}
    receivedPermissions.41:
    + {"permission":"interact","from":"eth:0xF921A5B0634f4236B21A4e948317abf9a2E86B6f","description":"block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership.","role":".owner","via":[{"address":"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3"}]}
    receivedPermissions.42:
    + {"permission":"upgrade","from":"eth:0x1F6A937119c0c34Db0a2c4F000386a3BfD4A9e73","role":"admin","via":[{"address":"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3"}]}
    receivedPermissions.43:
    + {"permission":"upgrade","from":"eth:0x2ebBd099f66b0ca94DD82B4c06fe3eEf6AFf853c","role":"admin","via":[{"address":"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3"}]}
    receivedPermissions.45:
    + {"permission":"upgrade","from":"eth:0x4FCCF8046FB7FB7AB76321BD39C27453e396B88f","role":"admin","via":[{"address":"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3"}]}
    receivedPermissions.46:
    + {"permission":"upgrade","from":"eth:0x501b014f86a73A7199E00cB31C0e9565Ac51e51B","role":"admin","via":[{"address":"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3"}]}
    receivedPermissions.47:
    + {"permission":"upgrade","from":"eth:0x63a60aCC304b84eF829b263f28e7b636Bf77d45A","role":"admin","via":[{"address":"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3"}]}
    receivedPermissions.51:
    + {"permission":"upgrade","from":"eth:0x76A3f985315aAc9789Cb5BF8A5bb83BFF55FD5a6","role":"admin","via":[{"address":"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3"}]}
    receivedPermissions.53:
    + {"permission":"upgrade","from":"eth:0x77F8207ee451441336538bA07a2F425780dED8DB","role":"admin","via":[{"address":"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3"}]}
    receivedPermissions.54:
    + {"permission":"upgrade","from":"eth:0x80Ae7dbCe3c1696d3eeD04Ec8348c3C432322273","role":"admin","via":[{"address":"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3"}]}
    receivedPermissions.57:
    + {"permission":"upgrade","from":"eth:0x8900123F7e17709C1D80eda1E611A9503Cf1B3df","role":"admin","via":[{"address":"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3"}]}
    receivedPermissions.58:
    + {"permission":"upgrade","from":"eth:0x9ABb8f3dC2863B1F108DeD7ea41902fEF6732A8c","role":"admin","via":[{"address":"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3"}]}
    receivedPermissions.59:
    + {"permission":"upgrade","from":"eth:0xA28A369Df348ac232E4DAF7B0Ef90280d8707D7F","role":"admin","via":[{"address":"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3"}]}
    receivedPermissions.62:
    + {"permission":"upgrade","from":"eth:0xB1B18Ad1F16D744c470cb6B09Cb826AfFcc9EB30","role":"admin","via":[{"address":"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3"}]}
    receivedPermissions.64:
    + {"permission":"upgrade","from":"eth:0xb6e5299fc56053DD5440104Fd6Fd2A3CD064edbC","role":"admin","via":[{"address":"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3"}]}
    receivedPermissions.66:
    + {"permission":"upgrade","from":"eth:0xbaC6DeDf2C10D6D381F9DBd9EFd69D93FfCef50B","role":"admin","via":[{"address":"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3"}]}
    receivedPermissions.71:
    + {"permission":"upgrade","from":"eth:0xd86aE89C089B380f064Fe01899B4071F1eb6Bb3d","role":"admin","via":[{"address":"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3"}]}
    receivedPermissions.75:
    + {"permission":"upgrade","from":"eth:0xEa9A15A29DD180c40442142CaeEfC491d37bfDB2","role":"admin","via":[{"address":"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3"}]}
    receivedPermissions.78:
    + {"permission":"upgrade","from":"eth:0xF921A5B0634f4236B21A4e948317abf9a2E86B6f","role":"admin","via":[{"address":"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3"}]}
    }
    contract ConfidentialWBTCWrapper (eth:0xd86aE89C089B380f064Fe01899B4071F1eb6Bb3d) [zama/ConfidentialWrapper] {
    +++ description: 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.
    type:
    - "EOA"
    + "Contract"
    proxyType:
    - "EOA"
    + "EIP1967 proxy"
    template:
    + "zama/ConfidentialWrapper"
    sourceHashes:
    + ["0x7df5501f3f5ffd35e0c61153fcd76f37533ab73a80adf20a7a19b30c246faea3","0x111b5cc66fc29cac57ed685c50a509014181cbf98122b5fd89c0449eea3fab5f"]
    description:
    + "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."
    deployerAddress:
    + "eth:0xe02e3b1cbEc07FC8D03B2eD15ddCe743403A013b"
    sinceTimestamp:
    + 1789148087
    sinceBlock:
    + 25955687
    values:
    + {"$admin":"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3","$implementation":"eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD","$pastUpgrades":[["2026-09-11T17:34:47.000Z","0x2542e4587e213e5d97c9589fb98ce80648043a69f8e55417b045677f64bac13e",["eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD"]]],"$upgradeCount":1,"blockedUsers":[],"confidentialProtocolId":1,"confidentialTotalSupply":"0xb293c90de6003b4312a23ada60e8ae0e519e32ee59ff00000000000000010500","constructorArgs":["eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD","0x6e690fe60000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000001a00000000000000000000000002260fac5e5542a773aa44fbcfedf7c193bc2c599000000000000000000000000b6d69d5f334d8b97b194617b53c6ab62f8681ef300000000000000000000000000000000000000000000000000000000000002600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000028000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011436f6e666964656e7469616c205742544300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000056357425443000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009c646174613a6170706c69636174696f6e2f6a736f6e3b757466382c7b226e616d65223a22436f6e666964656e7469616c2057425443222c2273796d626f6c223a226357425443222c226465736372697074696f6e223a22436f6e666964656e7469616c2077726170706572206f66205742544320736869656c64696e6720697420696e746f206120636f6e666964656e7469616c20746f6b656e227d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"],"contractURI":"data:application/json;utf8,{\"name\":\"Confidential WBTC\",\"symbol\":\"cWBTC\",\"description\":\"Confidential wrapper of WBTC shielding it into a confidential token\"}","decimals":6,"fheAcl":"eth:0xcA2E8f1F656CD25C01F05d0b243Ab1ecd4a8ffb6","fheCoprocessor":"eth:0xD82385dADa1ae3E969447f20A3164F6213100e75","fheKmsVerifier":"eth:0x77627828a55156b04Ac0DC0eb30467f1a552BB03","getUnderlyingDenyListSelector":"0x00000000","inferredTotalSupply":2455315,"maxTotalSupply":"18446744073709551615","name":"Confidential WBTC","observers":[],"owner":"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3","paused":false,"pauser":"eth:0x0000000000000000000000000000000000000000","pendingOwner":"eth:0x0000000000000000000000000000000000000000","rate":100,"symbol":"cWBTC","underlying":"eth:0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599","UPGRADE_INTERFACE_VERSION":"5.0.0"}
    fieldMeta:
    + {"owner":{"severity":"HIGH","description":"Current owner of the wrapper.","type":"PERMISSION"},"pendingOwner":{"severity":"HIGH","description":"Pending owner for a two-step ownership transfer.","type":"PERMISSION"},"underlying":{"description":"ERC-20 token escrowed by this wrapper."},"getUnderlyingDenyListSelector":{"severity":"HIGH","description":"Underlying-token denylist hook used by the wrapper. If enabled (non-zero), the wrapper calls this selector on the underlying token before restricted operations.","type":"RISK_PARAMETER"},"blockedUsers":{"severity":"HIGH","description":"Wrapper-local denylist reconstructed from UserBlocked and UserUnblocked events.","type":"PERMISSION"},"observers":{"severity":"HIGH","description":"Accounts holding a wildcard user-decryption delegation over all wrapper-owned encrypted handles. Observers can decrypt every confidential balance and transfer amount of this wrapper, so adding one changes its privacy guarantees.","type":"PERMISSION"},"pauser":{"description":"Address allowed to pause the wrapper (zero address means pausing is disabled). Only the owner can unpause.","type":"PERMISSION"},"paused":{"description":"Whether wrapping, unwrapping, unwrap finalization and confidential transfers are currently halted.","type":"RISK_PARAMETER"},"fheAcl":{"description":"Zama ACL contract used by the confidential token stack to check which accounts/contracts may use encrypted handles."},"fheCoprocessor":{"description":"Zama FHE coprocessor/executor contract that receives encrypted-operation requests and stores encrypted-result handles."},"fheKmsVerifier":{"description":"Zama KMS verifier contract used to verify threshold decryption/signature material returned by the offchain KMS."}}
    implementationNames:
    + {"eth:0xd86aE89C089B380f064Fe01899B4071F1eb6Bb3d":"ERC1967Proxy","eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD":"ConfidentialWrapper"}
    category:
    + {"name":"Local Infrastructure","priority":5}
    }
    contract ZamaGovMultisigA (eth:0xE43c73aAb2b6aBBad6d0461997ce1cfea5ABe66f) [zama/Multisig] {
    +++ description: Aragon multisig plugin for creating proposals and collecting approvals against a configurable threshold.
    receivedPermissions.0:
    + {"permission":"interact","from":"eth:0x1F6A937119c0c34Db0a2c4F000386a3BfD4A9e73","description":"block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership.","role":".owner","via":[{"address":"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3"}]}
    receivedPermissions.1:
    + {"permission":"interact","from":"eth:0x2ebBd099f66b0ca94DD82B4c06fe3eEf6AFf853c","description":"block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership.","role":".owner","via":[{"address":"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3"}]}
    receivedPermissions.3:
    + {"permission":"interact","from":"eth:0x4FCCF8046FB7FB7AB76321BD39C27453e396B88f","description":"block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership.","role":".owner","via":[{"address":"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3"}]}
    receivedPermissions.4:
    + {"permission":"interact","from":"eth:0x501b014f86a73A7199E00cB31C0e9565Ac51e51B","description":"block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership.","role":".owner","via":[{"address":"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3"}]}
    receivedPermissions.5:
    + {"permission":"interact","from":"eth:0x63a60aCC304b84eF829b263f28e7b636Bf77d45A","description":"block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership.","role":".owner","via":[{"address":"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3"}]}
    receivedPermissions.10:
    + {"permission":"interact","from":"eth:0x76A3f985315aAc9789Cb5BF8A5bb83BFF55FD5a6","description":"block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership.","role":".owner","via":[{"address":"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3"}]}
    receivedPermissions.11:
    + {"permission":"interact","from":"eth:0x77F8207ee451441336538bA07a2F425780dED8DB","description":"block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership.","role":".owner","via":[{"address":"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3"}]}
    receivedPermissions.12:
    + {"permission":"interact","from":"eth:0x80Ae7dbCe3c1696d3eeD04Ec8348c3C432322273","description":"block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership.","role":".owner","via":[{"address":"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3"}]}
    receivedPermissions.15:
    + {"permission":"interact","from":"eth:0x8900123F7e17709C1D80eda1E611A9503Cf1B3df","description":"block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership.","role":".owner","via":[{"address":"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3"}]}
    receivedPermissions.16:
    + {"permission":"interact","from":"eth:0x9ABb8f3dC2863B1F108DeD7ea41902fEF6732A8c","description":"block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership.","role":".owner","via":[{"address":"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3"}]}
    receivedPermissions.17:
    + {"permission":"interact","from":"eth:0xA28A369Df348ac232E4DAF7B0Ef90280d8707D7F","description":"block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership.","role":".owner","via":[{"address":"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3"}]}
    receivedPermissions.20:
    + {"permission":"interact","from":"eth:0xB1B18Ad1F16D744c470cb6B09Cb826AfFcc9EB30","description":"block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership.","role":".owner","via":[{"address":"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3"}]}
    receivedPermissions.26:
    + {"permission":"interact","from":"eth:0xb6e5299fc56053DD5440104Fd6Fd2A3CD064edbC","description":"block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership.","role":".owner","via":[{"address":"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3"}]}
    receivedPermissions.28:
    + {"permission":"interact","from":"eth:0xbaC6DeDf2C10D6D381F9DBd9EFd69D93FfCef50B","description":"block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership.","role":".owner","via":[{"address":"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3"}]}
    receivedPermissions.33:
    + {"permission":"interact","from":"eth:0xd86aE89C089B380f064Fe01899B4071F1eb6Bb3d","description":"block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership.","role":".owner","via":[{"address":"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3"}]}
    receivedPermissions.38:
    + {"permission":"interact","from":"eth:0xEa9A15A29DD180c40442142CaeEfC491d37bfDB2","description":"block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership.","role":".owner","via":[{"address":"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3"}]}
    receivedPermissions.41:
    + {"permission":"interact","from":"eth:0xF921A5B0634f4236B21A4e948317abf9a2E86B6f","description":"block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership.","role":".owner","via":[{"address":"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3"}]}
    receivedPermissions.42:
    + {"permission":"upgrade","from":"eth:0x1F6A937119c0c34Db0a2c4F000386a3BfD4A9e73","role":"admin","via":[{"address":"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3"}]}
    receivedPermissions.43:
    + {"permission":"upgrade","from":"eth:0x2ebBd099f66b0ca94DD82B4c06fe3eEf6AFf853c","role":"admin","via":[{"address":"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3"}]}
    receivedPermissions.45:
    + {"permission":"upgrade","from":"eth:0x4FCCF8046FB7FB7AB76321BD39C27453e396B88f","role":"admin","via":[{"address":"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3"}]}
    receivedPermissions.46:
    + {"permission":"upgrade","from":"eth:0x501b014f86a73A7199E00cB31C0e9565Ac51e51B","role":"admin","via":[{"address":"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3"}]}
    receivedPermissions.47:
    + {"permission":"upgrade","from":"eth:0x63a60aCC304b84eF829b263f28e7b636Bf77d45A","role":"admin","via":[{"address":"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3"}]}
    receivedPermissions.51:
    + {"permission":"upgrade","from":"eth:0x76A3f985315aAc9789Cb5BF8A5bb83BFF55FD5a6","role":"admin","via":[{"address":"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3"}]}
    receivedPermissions.53:
    + {"permission":"upgrade","from":"eth:0x77F8207ee451441336538bA07a2F425780dED8DB","role":"admin","via":[{"address":"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3"}]}
    receivedPermissions.54:
    + {"permission":"upgrade","from":"eth:0x80Ae7dbCe3c1696d3eeD04Ec8348c3C432322273","role":"admin","via":[{"address":"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3"}]}
    receivedPermissions.57:
    + {"permission":"upgrade","from":"eth:0x8900123F7e17709C1D80eda1E611A9503Cf1B3df","role":"admin","via":[{"address":"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3"}]}
    receivedPermissions.58:
    + {"permission":"upgrade","from":"eth:0x9ABb8f3dC2863B1F108DeD7ea41902fEF6732A8c","role":"admin","via":[{"address":"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3"}]}
    receivedPermissions.59:
    + {"permission":"upgrade","from":"eth:0xA28A369Df348ac232E4DAF7B0Ef90280d8707D7F","role":"admin","via":[{"address":"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3"}]}
    receivedPermissions.62:
    + {"permission":"upgrade","from":"eth:0xB1B18Ad1F16D744c470cb6B09Cb826AfFcc9EB30","role":"admin","via":[{"address":"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3"}]}
    receivedPermissions.64:
    + {"permission":"upgrade","from":"eth:0xb6e5299fc56053DD5440104Fd6Fd2A3CD064edbC","role":"admin","via":[{"address":"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3"}]}
    receivedPermissions.66:
    + {"permission":"upgrade","from":"eth:0xbaC6DeDf2C10D6D381F9DBd9EFd69D93FfCef50B","role":"admin","via":[{"address":"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3"}]}
    receivedPermissions.71:
    + {"permission":"upgrade","from":"eth:0xd86aE89C089B380f064Fe01899B4071F1eb6Bb3d","role":"admin","via":[{"address":"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3"}]}
    receivedPermissions.75:
    + {"permission":"upgrade","from":"eth:0xEa9A15A29DD180c40442142CaeEfC491d37bfDB2","role":"admin","via":[{"address":"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3"}]}
    receivedPermissions.78:
    + {"permission":"upgrade","from":"eth:0xF921A5B0634f4236B21A4e948317abf9a2E86B6f","role":"admin","via":[{"address":"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3"}]}
    }
    contract ConfidentialAUSDWrapper (eth:0xEa9A15A29DD180c40442142CaeEfC491d37bfDB2) [zama/ConfidentialWrapper] {
    +++ description: 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.
    type:
    - "EOA"
    + "Contract"
    proxyType:
    - "EOA"
    + "EIP1967 proxy"
    template:
    + "zama/ConfidentialWrapper"
    sourceHashes:
    + ["0x7df5501f3f5ffd35e0c61153fcd76f37533ab73a80adf20a7a19b30c246faea3","0x111b5cc66fc29cac57ed685c50a509014181cbf98122b5fd89c0449eea3fab5f"]
    description:
    + "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."
    deployerAddress:
    + "eth:0xe02e3b1cbEc07FC8D03B2eD15ddCe743403A013b"
    sinceTimestamp:
    + 1789146719
    sinceBlock:
    + 25955573
    values:
    + {"$admin":"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3","$implementation":"eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD","$pastUpgrades":[["2026-09-11T17:11:59.000Z","0x696d006e217f5ccda05c1bf61a575622009037f45ec832dac617dbce7edaf677",["eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD"]]],"$upgradeCount":1,"blockedUsers":[],"confidentialProtocolId":1,"confidentialTotalSupply":"0xda30806eba9dd325b0ab4aa4b31b25b773035efd6bff00000000000000010500","constructorArgs":["eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD","0x6e690fe60000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000001a000000000000000000000000000000000efe302beaa2b3e6e1b18d08d69a9012a000000000000000000000000b6d69d5f334d8b97b194617b53c6ab62f8681ef30000000000000000000000000000000000000000000000000000000000000260e816d97f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000028000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011436f6e666964656e7469616c204155534400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000056341555344000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009c646174613a6170706c69636174696f6e2f6a736f6e3b757466382c7b226e616d65223a22436f6e666964656e7469616c2041555344222c2273796d626f6c223a226341555344222c226465736372697074696f6e223a22436f6e666964656e7469616c2077726170706572206f66204155534420736869656c64696e6720697420696e746f206120636f6e666964656e7469616c20746f6b656e227d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"],"contractURI":"data:application/json;utf8,{\"name\":\"Confidential AUSD\",\"symbol\":\"cAUSD\",\"description\":\"Confidential wrapper of AUSD shielding it into a confidential token\"}","decimals":6,"fheAcl":"eth:0xcA2E8f1F656CD25C01F05d0b243Ab1ecd4a8ffb6","fheCoprocessor":"eth:0xD82385dADa1ae3E969447f20A3164F6213100e75","fheKmsVerifier":"eth:0x77627828a55156b04Ac0DC0eb30467f1a552BB03","getUnderlyingDenyListSelector":"0xe816d97f","inferredTotalSupply":196279400000,"maxTotalSupply":"18446744073709551615","name":"Confidential AUSD","observers":[],"owner":"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3","paused":false,"pauser":"eth:0x0000000000000000000000000000000000000000","pendingOwner":"eth:0x0000000000000000000000000000000000000000","rate":1,"symbol":"cAUSD","underlying":"eth:0x00000000eFE302BEAA2b3e6e1b18d08D69a9012a","UPGRADE_INTERFACE_VERSION":"5.0.0"}
    fieldMeta:
    + {"owner":{"severity":"HIGH","description":"Current owner of the wrapper.","type":"PERMISSION"},"pendingOwner":{"severity":"HIGH","description":"Pending owner for a two-step ownership transfer.","type":"PERMISSION"},"underlying":{"description":"ERC-20 token escrowed by this wrapper."},"getUnderlyingDenyListSelector":{"severity":"HIGH","description":"Underlying-token denylist hook used by the wrapper. If enabled (non-zero), the wrapper calls this selector on the underlying token before restricted operations.","type":"RISK_PARAMETER"},"blockedUsers":{"severity":"HIGH","description":"Wrapper-local denylist reconstructed from UserBlocked and UserUnblocked events.","type":"PERMISSION"},"observers":{"severity":"HIGH","description":"Accounts holding a wildcard user-decryption delegation over all wrapper-owned encrypted handles. Observers can decrypt every confidential balance and transfer amount of this wrapper, so adding one changes its privacy guarantees.","type":"PERMISSION"},"pauser":{"description":"Address allowed to pause the wrapper (zero address means pausing is disabled). Only the owner can unpause.","type":"PERMISSION"},"paused":{"description":"Whether wrapping, unwrapping, unwrap finalization and confidential transfers are currently halted.","type":"RISK_PARAMETER"},"fheAcl":{"description":"Zama ACL contract used by the confidential token stack to check which accounts/contracts may use encrypted handles."},"fheCoprocessor":{"description":"Zama FHE coprocessor/executor contract that receives encrypted-operation requests and stores encrypted-result handles."},"fheKmsVerifier":{"description":"Zama KMS verifier contract used to verify threshold decryption/signature material returned by the offchain KMS."}}
    implementationNames:
    + {"eth:0xEa9A15A29DD180c40442142CaeEfC491d37bfDB2":"ERC1967Proxy","eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD":"ConfidentialWrapper"}
    category:
    + {"name":"Local Infrastructure","priority":5}
    }
    contract ConfidentialTokenWrappersRegistry (eth:0xeb5015fF021DB115aCe010f23F55C2591059bBA0) [zama/ConfidentialTokenWrappersRegistry] {
    +++ description: Registry for Zama confidential token wrappers.
    values.getTokenConfidentialTokenPairs.9:
    + {"tokenAddress":"eth:0x00000000eFE302BEAA2b3e6e1b18d08D69a9012a","confidentialTokenAddress":"eth:0xEa9A15A29DD180c40442142CaeEfC491d37bfDB2","isValid":true}
    values.getTokenConfidentialTokenPairs.10:
    + {"tokenAddress":"eth:0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599","confidentialTokenAddress":"eth:0xd86aE89C089B380f064Fe01899B4071F1eb6Bb3d","isValid":true}
    values.getTokenConfidentialTokenPairs.11:
    + {"tokenAddress":"eth:0x32401B9fb79065Bc15949DE0BD43927492f02F0C","confidentialTokenAddress":"eth:0x76A3f985315aAc9789Cb5BF8A5bb83BFF55FD5a6","isValid":true}
    values.getTokenConfidentialTokenPairs.12:
    + {"tokenAddress":"eth:0x3d5EcCb62974178236A768A7ef14D3ce468Fbe91","confidentialTokenAddress":"eth:0xF921A5B0634f4236B21A4e948317abf9a2E86B6f","isValid":true}
    values.getTokenConfidentialTokenPairs.13:
    + {"tokenAddress":"eth:0x500aE64100D7DbDb640531085C2F5d40cDC8930D","confidentialTokenAddress":"eth:0xbaC6DeDf2C10D6D381F9DBd9EFd69D93FfCef50B","isValid":true}
    values.getTokenConfidentialTokenPairs.14:
    + {"tokenAddress":"eth:0x55C1B6e461a6334B567bAF0FEb5D728715446f05","confidentialTokenAddress":"eth:0xb6e5299fc56053DD5440104Fd6Fd2A3CD064edbC","isValid":true}
    values.getTokenConfidentialTokenPairs.15:
    + {"tokenAddress":"eth:0x5dc53a23AdC9f2Bed98de6F59F7F309a7c71FF2B","confidentialTokenAddress":"eth:0x2ebBd099f66b0ca94DD82B4c06fe3eEf6AFf853c","isValid":true}
    values.getTokenConfidentialTokenPairs.16:
    + {"tokenAddress":"eth:0x808507121B80c02388fAd14726482e061B8da827","confidentialTokenAddress":"eth:0x8900123F7e17709C1D80eda1E611A9503Cf1B3df","isValid":true}
    values.getTokenConfidentialTokenPairs.17:
    + {"tokenAddress":"eth:0xA2EAaD0D586cF9FD73bb2c09cF6A7E3e187D68cd","confidentialTokenAddress":"eth:0x77F8207ee451441336538bA07a2F425780dED8DB","isValid":true}
    values.getTokenConfidentialTokenPairs.18:
    + {"tokenAddress":"eth:0xB344e331A3cDa61D329fb3Cca2Be5942da87c418","confidentialTokenAddress":"eth:0x9ABb8f3dC2863B1F108DeD7ea41902fEF6732A8c","isValid":true}
    values.getTokenConfidentialTokenPairs.19:
    + {"tokenAddress":"eth:0xbeef003C68896c7D2c3c60d363e8d71a49Ab2bf9","confidentialTokenAddress":"eth:0x1F6A937119c0c34Db0a2c4F000386a3BfD4A9e73","isValid":true}
    values.getTokenConfidentialTokenPairs.20:
    + {"tokenAddress":"eth:0xbeeff07d991C04CD640DE9F15C08ba59c4FEDEb7","confidentialTokenAddress":"eth:0x80Ae7dbCe3c1696d3eeD04Ec8348c3C432322273","isValid":true}
    values.getTokenConfidentialTokenPairs.21:
    + {"tokenAddress":"eth:0xbeeff2C5bF38f90e3482a8b19F12E5a6D2FCa757","confidentialTokenAddress":"eth:0x501b014f86a73A7199E00cB31C0e9565Ac51e51B","isValid":true}
    values.getTokenConfidentialTokenPairs.22:
    + {"tokenAddress":"eth:0xBf29043164660C60A2a72Cd15FFe2304e87B6838","confidentialTokenAddress":"eth:0x63a60aCC304b84eF829b263f28e7b636Bf77d45A","isValid":true}
    values.getTokenConfidentialTokenPairs.23:
    + {"tokenAddress":"eth:0xc207d3f66537D7F66456808379A0E560cF20Da36","confidentialTokenAddress":"eth:0xB1B18Ad1F16D744c470cb6B09Cb826AfFcc9EB30","isValid":true}
    values.getTokenConfidentialTokenPairs.24:
    + {"tokenAddress":"eth:0xE0181090c22579B6A217f1522cbf8c9f1F0C1965","confidentialTokenAddress":"eth:0x4FCCF8046FB7FB7AB76321BD39C27453e396B88f","isValid":true}
    values.getTokenConfidentialTokenPairs.25:
    + {"tokenAddress":"eth:0xb48C056C5608bA2Ee4cD94AF2bF4b1F25295Bd7e","confidentialTokenAddress":"eth:0xA28A369Df348ac232E4DAF7B0Ef90280d8707D7F","isValid":true}
    values.getTokenConfidentialTokenPairsLength:
    - 9
    + 26
    }
    contract ConfidentialArmcWBTCWrapper (eth:0xF921A5B0634f4236B21A4e948317abf9a2E86B6f) [zama/ConfidentialWrapper] {
    +++ description: 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.
    type:
    - "EOA"
    + "Contract"
    proxyType:
    - "EOA"
    + "EIP1967 proxy"
    template:
    + "zama/ConfidentialWrapper"
    sourceHashes:
    + ["0x7df5501f3f5ffd35e0c61153fcd76f37533ab73a80adf20a7a19b30c246faea3","0x111b5cc66fc29cac57ed685c50a509014181cbf98122b5fd89c0449eea3fab5f"]
    description:
    + "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."
    deployerAddress:
    + "eth:0xe02e3b1cbEc07FC8D03B2eD15ddCe743403A013b"
    sinceTimestamp:
    + 1789148987
    sinceBlock:
    + 25955762
    values:
    + {"$admin":"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3","$implementation":"eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD","$pastUpgrades":[["2026-09-11T17:49:47.000Z","0xd938d016e57611121abc327202b921dc60afe8d505b7eaee1f0dd7dd67eca127",["eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD"]]],"$upgradeCount":1,"blockedUsers":[],"confidentialProtocolId":1,"confidentialTotalSupply":"0xdd80ab784134afca1c9b4e212234cbd1efc5af6adeff00000000000000010500","constructorArgs":["eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD","0x6e690fe60000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000001a00000000000000000000000003d5eccb62974178236a768a7ef14d3ce468fbe91000000000000000000000000b6d69d5f334d8b97b194617b53c6ab62f8681ef30000000000000000000000000000000000000000000000000000000000000280000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000015436f6e666964656e7469616c2061726d6357425443000000000000000000000000000000000000000000000000000000000000000000000000000000000000096361726d6357425443000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a8646174613a6170706c69636174696f6e2f6a736f6e3b757466382c7b226e616d65223a22436f6e666964656e7469616c2061726d6357425443222c2273796d626f6c223a226361726d6357425443222c226465736372697074696f6e223a22436f6e666964656e7469616c2077726170706572206f662061726d635742544320736869656c64696e6720697420696e746f206120636f6e666964656e7469616c20746f6b656e227d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"],"contractURI":"data:application/json;utf8,{\"name\":\"Confidential armcWBTC\",\"symbol\":\"carmcWBTC\",\"description\":\"Confidential wrapper of armcWBTC shielding it into a confidential token\"}","decimals":6,"fheAcl":"eth:0xcA2E8f1F656CD25C01F05d0b243Ab1ecd4a8ffb6","fheCoprocessor":"eth:0xD82385dADa1ae3E969447f20A3164F6213100e75","fheKmsVerifier":"eth:0x77627828a55156b04Ac0DC0eb30467f1a552BB03","getUnderlyingDenyListSelector":"0x00000000","inferredTotalSupply":245032,"maxTotalSupply":"18446744073709551615","name":"Confidential armcWBTC","observers":[],"owner":"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3","paused":false,"pauser":"eth:0x0000000000000000000000000000000000000000","pendingOwner":"eth:0x0000000000000000000000000000000000000000","rate":1000000000000,"symbol":"carmcWBTC","underlying":"eth:0x3d5EcCb62974178236A768A7ef14D3ce468Fbe91","UPGRADE_INTERFACE_VERSION":"5.0.0"}
    fieldMeta:
    + {"owner":{"severity":"HIGH","description":"Current owner of the wrapper.","type":"PERMISSION"},"pendingOwner":{"severity":"HIGH","description":"Pending owner for a two-step ownership transfer.","type":"PERMISSION"},"underlying":{"description":"ERC-20 token escrowed by this wrapper."},"getUnderlyingDenyListSelector":{"severity":"HIGH","description":"Underlying-token denylist hook used by the wrapper. If enabled (non-zero), the wrapper calls this selector on the underlying token before restricted operations.","type":"RISK_PARAMETER"},"blockedUsers":{"severity":"HIGH","description":"Wrapper-local denylist reconstructed from UserBlocked and UserUnblocked events.","type":"PERMISSION"},"observers":{"severity":"HIGH","description":"Accounts holding a wildcard user-decryption delegation over all wrapper-owned encrypted handles. Observers can decrypt every confidential balance and transfer amount of this wrapper, so adding one changes its privacy guarantees.","type":"PERMISSION"},"pauser":{"description":"Address allowed to pause the wrapper (zero address means pausing is disabled). Only the owner can unpause.","type":"PERMISSION"},"paused":{"description":"Whether wrapping, unwrapping, unwrap finalization and confidential transfers are currently halted.","type":"RISK_PARAMETER"},"fheAcl":{"description":"Zama ACL contract used by the confidential token stack to check which accounts/contracts may use encrypted handles."},"fheCoprocessor":{"description":"Zama FHE coprocessor/executor contract that receives encrypted-operation requests and stores encrypted-result handles."},"fheKmsVerifier":{"description":"Zama KMS verifier contract used to verify threshold decryption/signature material returned by the offchain KMS."}}
    implementationNames:
    + {"eth:0xF921A5B0634f4236B21A4e948317abf9a2E86B6f":"ERC1967Proxy","eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD":"ConfidentialWrapper"}
    category:
    + {"name":"Local Infrastructure","priority":5}
    }
    2026 August 27, 12:35 UTC
    High severity
    171changes

    All nine confidential token wrappers were upgraded to a shared new implementation named ConfidentialWrapper (eth:0x2ABad2203Eba104b52cf040cCcFA100Df15687F8). Compared to the previous ConfidentialWrapperV3 , the upgrade adds two subsystems: 1. Observers: the owner can add/remove observer accounts that receive a wildcard, non-expiring user-decryption delegation over all wrapper-owned encrypted handles, i.e. they can decrypt every confidential balance and transfer amount of the wrapper. 2. Pausing: an owner-set pauser address can pause wrapping, unwrapping, unwrap finalization and confidential transfers; only the owner can unpause.

    contract ConfidentialSteakcUSDCWrapper (eth:0x66Bf74E96900D1a19c7070D939D124f2F565C458) [zama/ConfidentialWrapper] {
    +++ description: 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.
    template:
    - "zama/ConfidentialWrapperV3"
    + "zama/ConfidentialWrapper"
    sourceHashes.1:
    - "0xc6ef75f9a2275b9cfb58b0322dfb55b63e1630022b171af50f1851ee8052447b"
    + "0x111b5cc66fc29cac57ed685c50a509014181cbf98122b5fd89c0449eea3fab5f"
    description:
    - "ERC-20 wrapper that escrows an underlying token and issues confidential balances. It supports encrypted transfers, wrapping, unwrapping, local blocking, and optional underlying-token denylist checks."
    + "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."
    values.$implementation:
    - "eth:0x5226fe30Fa7Bf20C1Cd33F125f77D0c42d3c23b5"
    + "eth:0x2ABad2203Eba104b52cf040cCcFA100Df15687F8"
    values.$pastUpgrades.2:
    + ["2026-08-25T15:59:35.000Z","0x55c55172da4c231406a41da3838bff87dc9b361c62f208fe0e60994a1b82b0b0",["eth:0x2ABad2203Eba104b52cf040cCcFA100Df15687F8"]]
    values.$upgradeCount:
    - 2
    + 3
    +++ description: Underlying-token denylist hook used by the wrapper. If enabled (non-zero), the wrapper calls this selector on the underlying token before restricted operations.
    +++ severity: HIGH
    values.getUnderlyingDenyListSelector:
    - {"isSet":false,"selector":"0x00000000"}
    + "0x00000000"
    +++ description: Accounts holding a wildcard user-decryption delegation over all wrapper-owned encrypted handles. Observers can decrypt every confidential balance and transfer amount of this wrapper, so adding one changes its privacy guarantees.
    +++ severity: HIGH
    values.observers:
    + []
    +++ description: Whether wrapping, unwrapping, unwrap finalization and confidential transfers are currently halted.
    values.paused:
    + false
    +++ description: Address allowed to pause the wrapper (zero address means pausing is disabled). Only the owner can unpause.
    values.pauser:
    + "eth:0x0000000000000000000000000000000000000000"
    fieldMeta.getUnderlyingDenyListSelector.description:
    - "Underlying-token denylist hook used by the wrapper. If enabled, the wrapper calls this selector on the underlying token before restricted operations."
    + "Underlying-token denylist hook used by the wrapper. If enabled (non-zero), the wrapper calls this selector on the underlying token before restricted operations."
    fieldMeta.observers:
    + {"severity":"HIGH","description":"Accounts holding a wildcard user-decryption delegation over all wrapper-owned encrypted handles. Observers can decrypt every confidential balance and transfer amount of this wrapper, so adding one changes its privacy guarantees.","type":"PERMISSION"}
    fieldMeta.pauser:
    + {"description":"Address allowed to pause the wrapper (zero address means pausing is disabled). Only the owner can unpause.","type":"PERMISSION"}
    fieldMeta.paused:
    + {"description":"Whether wrapping, unwrapping, unwrap finalization and confidential transfers are currently halted.","type":"RISK_PARAMETER"}
    implementationNames.eth:0x5226fe30Fa7Bf20C1Cd33F125f77D0c42d3c23b5:
    - "ConfidentialWrapperV3"
    implementationNames.eth:0x2ABad2203Eba104b52cf040cCcFA100Df15687F8:
    + "ConfidentialWrapper"
    }
    contract ConfidentialXAUTWrapper (eth:0x73cc9aF9d6BEFdb3c3fAf8a5E8c05Cb95FdaEEf1) [zama/ConfidentialWrapper] {
    +++ description: 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.
    template:
    - "zama/ConfidentialWrapperV3"
    + "zama/ConfidentialWrapper"
    sourceHashes.1:
    - "0xc6ef75f9a2275b9cfb58b0322dfb55b63e1630022b171af50f1851ee8052447b"
    + "0x111b5cc66fc29cac57ed685c50a509014181cbf98122b5fd89c0449eea3fab5f"
    description:
    - "ERC-20 wrapper that escrows an underlying token and issues confidential balances. It supports encrypted transfers, wrapping, unwrapping, local blocking, and optional underlying-token denylist checks."
    + "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."
    values.$implementation:
    - "eth:0x5226fe30Fa7Bf20C1Cd33F125f77D0c42d3c23b5"
    + "eth:0x2ABad2203Eba104b52cf040cCcFA100Df15687F8"
    values.$pastUpgrades.3:
    + ["2026-08-25T15:59:35.000Z","0x55c55172da4c231406a41da3838bff87dc9b361c62f208fe0e60994a1b82b0b0",["eth:0x2ABad2203Eba104b52cf040cCcFA100Df15687F8"]]
    values.$upgradeCount:
    - 3
    + 4
    +++ description: Underlying-token denylist hook used by the wrapper. If enabled (non-zero), the wrapper calls this selector on the underlying token before restricted operations.
    +++ severity: HIGH
    values.getUnderlyingDenyListSelector:
    - {"isSet":true,"selector":"0xfbac3951"}
    + "0xfbac3951"
    +++ description: Accounts holding a wildcard user-decryption delegation over all wrapper-owned encrypted handles. Observers can decrypt every confidential balance and transfer amount of this wrapper, so adding one changes its privacy guarantees.
    +++ severity: HIGH
    values.observers:
    + []
    +++ description: Whether wrapping, unwrapping, unwrap finalization and confidential transfers are currently halted.
    values.paused:
    + false
    +++ description: Address allowed to pause the wrapper (zero address means pausing is disabled). Only the owner can unpause.
    values.pauser:
    + "eth:0x0000000000000000000000000000000000000000"
    fieldMeta.getUnderlyingDenyListSelector.description:
    - "Underlying-token denylist hook used by the wrapper. If enabled, the wrapper calls this selector on the underlying token before restricted operations."
    + "Underlying-token denylist hook used by the wrapper. If enabled (non-zero), the wrapper calls this selector on the underlying token before restricted operations."
    fieldMeta.observers:
    + {"severity":"HIGH","description":"Accounts holding a wildcard user-decryption delegation over all wrapper-owned encrypted handles. Observers can decrypt every confidential balance and transfer amount of this wrapper, so adding one changes its privacy guarantees.","type":"PERMISSION"}
    fieldMeta.pauser:
    + {"description":"Address allowed to pause the wrapper (zero address means pausing is disabled). Only the owner can unpause.","type":"PERMISSION"}
    fieldMeta.paused:
    + {"description":"Whether wrapping, unwrapping, unwrap finalization and confidential transfers are currently halted.","type":"RISK_PARAMETER"}
    implementationNames.eth:0x5226fe30Fa7Bf20C1Cd33F125f77D0c42d3c23b5:
    - "ConfidentialWrapperV3"
    implementationNames.eth:0x2ABad2203Eba104b52cf040cCcFA100Df15687F8:
    + "ConfidentialWrapper"
    }
    contract ConfidentialZAMAWrapper (eth:0x80CB147Fd86dC6dEe3Eee7e4Cee33d1397d98071) [zama/ConfidentialWrapper] {
    +++ description: 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.
    template:
    - "zama/ConfidentialWrapperV3"
    + "zama/ConfidentialWrapper"
    sourceHashes.1:
    - "0xc6ef75f9a2275b9cfb58b0322dfb55b63e1630022b171af50f1851ee8052447b"
    + "0x111b5cc66fc29cac57ed685c50a509014181cbf98122b5fd89c0449eea3fab5f"
    description:
    - "ERC-20 wrapper that escrows an underlying token and issues confidential balances. It supports encrypted transfers, wrapping, unwrapping, local blocking, and optional underlying-token denylist checks."
    + "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."
    values.$implementation:
    - "eth:0x5226fe30Fa7Bf20C1Cd33F125f77D0c42d3c23b5"
    + "eth:0x2ABad2203Eba104b52cf040cCcFA100Df15687F8"
    values.$pastUpgrades.3:
    + ["2026-08-25T15:59:35.000Z","0x55c55172da4c231406a41da3838bff87dc9b361c62f208fe0e60994a1b82b0b0",["eth:0x2ABad2203Eba104b52cf040cCcFA100Df15687F8"]]
    values.$upgradeCount:
    - 3
    + 4
    +++ description: Underlying-token denylist hook used by the wrapper. If enabled (non-zero), the wrapper calls this selector on the underlying token before restricted operations.
    +++ severity: HIGH
    values.getUnderlyingDenyListSelector:
    - {"isSet":false,"selector":"0x00000000"}
    + "0x00000000"
    +++ description: Accounts holding a wildcard user-decryption delegation over all wrapper-owned encrypted handles. Observers can decrypt every confidential balance and transfer amount of this wrapper, so adding one changes its privacy guarantees.
    +++ severity: HIGH
    values.observers:
    + []
    +++ description: Whether wrapping, unwrapping, unwrap finalization and confidential transfers are currently halted.
    values.paused:
    + false
    +++ description: Address allowed to pause the wrapper (zero address means pausing is disabled). Only the owner can unpause.
    values.pauser:
    + "eth:0x0000000000000000000000000000000000000000"
    fieldMeta.getUnderlyingDenyListSelector.description:
    - "Underlying-token denylist hook used by the wrapper. If enabled, the wrapper calls this selector on the underlying token before restricted operations."
    + "Underlying-token denylist hook used by the wrapper. If enabled (non-zero), the wrapper calls this selector on the underlying token before restricted operations."
    fieldMeta.observers:
    + {"severity":"HIGH","description":"Accounts holding a wildcard user-decryption delegation over all wrapper-owned encrypted handles. Observers can decrypt every confidential balance and transfer amount of this wrapper, so adding one changes its privacy guarantees.","type":"PERMISSION"}
    fieldMeta.pauser:
    + {"description":"Address allowed to pause the wrapper (zero address means pausing is disabled). Only the owner can unpause.","type":"PERMISSION"}
    fieldMeta.paused:
    + {"description":"Whether wrapping, unwrapping, unwrap finalization and confidential transfers are currently halted.","type":"RISK_PARAMETER"}
    implementationNames.eth:0x5226fe30Fa7Bf20C1Cd33F125f77D0c42d3c23b5:
    - "ConfidentialWrapperV3"
    implementationNames.eth:0x2ABad2203Eba104b52cf040cCcFA100Df15687F8:
    + "ConfidentialWrapper"
    }
    contract ConfidentialBRONWrapper (eth:0x85dE671c3bec1aDeD752c3Cea943521181C826bc) [zama/ConfidentialWrapper] {
    +++ description: 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.
    template:
    - "zama/ConfidentialWrapperV3"
    + "zama/ConfidentialWrapper"
    sourceHashes.1:
    - "0xc6ef75f9a2275b9cfb58b0322dfb55b63e1630022b171af50f1851ee8052447b"
    + "0x111b5cc66fc29cac57ed685c50a509014181cbf98122b5fd89c0449eea3fab5f"
    description:
    - "ERC-20 wrapper that escrows an underlying token and issues confidential balances. It supports encrypted transfers, wrapping, unwrapping, local blocking, and optional underlying-token denylist checks."
    + "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."
    values.$implementation:
    - "eth:0x5226fe30Fa7Bf20C1Cd33F125f77D0c42d3c23b5"
    + "eth:0x2ABad2203Eba104b52cf040cCcFA100Df15687F8"
    values.$pastUpgrades.3:
    + ["2026-08-25T15:59:35.000Z","0x55c55172da4c231406a41da3838bff87dc9b361c62f208fe0e60994a1b82b0b0",["eth:0x2ABad2203Eba104b52cf040cCcFA100Df15687F8"]]
    values.$upgradeCount:
    - 3
    + 4
    +++ description: Underlying-token denylist hook used by the wrapper. If enabled (non-zero), the wrapper calls this selector on the underlying token before restricted operations.
    +++ severity: HIGH
    values.getUnderlyingDenyListSelector:
    - {"isSet":false,"selector":"0x00000000"}
    + "0x00000000"
    +++ description: Accounts holding a wildcard user-decryption delegation over all wrapper-owned encrypted handles. Observers can decrypt every confidential balance and transfer amount of this wrapper, so adding one changes its privacy guarantees.
    +++ severity: HIGH
    values.observers:
    + []
    +++ description: Whether wrapping, unwrapping, unwrap finalization and confidential transfers are currently halted.
    values.paused:
    + false
    +++ description: Address allowed to pause the wrapper (zero address means pausing is disabled). Only the owner can unpause.
    values.pauser:
    + "eth:0x0000000000000000000000000000000000000000"
    fieldMeta.getUnderlyingDenyListSelector.description:
    - "Underlying-token denylist hook used by the wrapper. If enabled, the wrapper calls this selector on the underlying token before restricted operations."
    + "Underlying-token denylist hook used by the wrapper. If enabled (non-zero), the wrapper calls this selector on the underlying token before restricted operations."
    fieldMeta.observers:
    + {"severity":"HIGH","description":"Accounts holding a wildcard user-decryption delegation over all wrapper-owned encrypted handles. Observers can decrypt every confidential balance and transfer amount of this wrapper, so adding one changes its privacy guarantees.","type":"PERMISSION"}
    fieldMeta.pauser:
    + {"description":"Address allowed to pause the wrapper (zero address means pausing is disabled). Only the owner can unpause.","type":"PERMISSION"}
    fieldMeta.paused:
    + {"description":"Whether wrapping, unwrapping, unwrap finalization and confidential transfers are currently halted.","type":"RISK_PARAMETER"}
    implementationNames.eth:0x5226fe30Fa7Bf20C1Cd33F125f77D0c42d3c23b5:
    - "ConfidentialWrapperV3"
    implementationNames.eth:0x2ABad2203Eba104b52cf040cCcFA100Df15687F8:
    + "ConfidentialWrapper"
    }
    contract ConfidentialTGBPWrapper (eth:0xa873750ccBafD5ec7Dd13bfD5237d7129832eDD9) [zama/ConfidentialWrapper] {
    +++ description: 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.
    template:
    - "zama/ConfidentialWrapperV3"
    + "zama/ConfidentialWrapper"
    sourceHashes.1:
    - "0xc6ef75f9a2275b9cfb58b0322dfb55b63e1630022b171af50f1851ee8052447b"
    + "0x111b5cc66fc29cac57ed685c50a509014181cbf98122b5fd89c0449eea3fab5f"
    description:
    - "ERC-20 wrapper that escrows an underlying token and issues confidential balances. It supports encrypted transfers, wrapping, unwrapping, local blocking, and optional underlying-token denylist checks."
    + "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."
    values.$implementation:
    - "eth:0x5226fe30Fa7Bf20C1Cd33F125f77D0c42d3c23b5"
    + "eth:0x2ABad2203Eba104b52cf040cCcFA100Df15687F8"
    values.$pastUpgrades.3:
    + ["2026-08-25T15:59:35.000Z","0x55c55172da4c231406a41da3838bff87dc9b361c62f208fe0e60994a1b82b0b0",["eth:0x2ABad2203Eba104b52cf040cCcFA100Df15687F8"]]
    values.$upgradeCount:
    - 3
    + 4
    +++ description: Underlying-token denylist hook used by the wrapper. If enabled (non-zero), the wrapper calls this selector on the underlying token before restricted operations.
    +++ severity: HIGH
    values.getUnderlyingDenyListSelector:
    - {"isSet":true,"selector":"0x97f735d5"}
    + "0x97f735d5"
    +++ description: Accounts holding a wildcard user-decryption delegation over all wrapper-owned encrypted handles. Observers can decrypt every confidential balance and transfer amount of this wrapper, so adding one changes its privacy guarantees.
    +++ severity: HIGH
    values.observers:
    + []
    +++ description: Whether wrapping, unwrapping, unwrap finalization and confidential transfers are currently halted.
    values.paused:
    + false
    +++ description: Address allowed to pause the wrapper (zero address means pausing is disabled). Only the owner can unpause.
    values.pauser:
    + "eth:0x0000000000000000000000000000000000000000"
    fieldMeta.getUnderlyingDenyListSelector.description:
    - "Underlying-token denylist hook used by the wrapper. If enabled, the wrapper calls this selector on the underlying token before restricted operations."
    + "Underlying-token denylist hook used by the wrapper. If enabled (non-zero), the wrapper calls this selector on the underlying token before restricted operations."
    fieldMeta.observers:
    + {"severity":"HIGH","description":"Accounts holding a wildcard user-decryption delegation over all wrapper-owned encrypted handles. Observers can decrypt every confidential balance and transfer amount of this wrapper, so adding one changes its privacy guarantees.","type":"PERMISSION"}
    fieldMeta.pauser:
    + {"description":"Address allowed to pause the wrapper (zero address means pausing is disabled). Only the owner can unpause.","type":"PERMISSION"}
    fieldMeta.paused:
    + {"description":"Whether wrapping, unwrapping, unwrap finalization and confidential transfers are currently halted.","type":"RISK_PARAMETER"}
    implementationNames.eth:0x5226fe30Fa7Bf20C1Cd33F125f77D0c42d3c23b5:
    - "ConfidentialWrapperV3"
    implementationNames.eth:0x2ABad2203Eba104b52cf040cCcFA100Df15687F8:
    + "ConfidentialWrapper"
    }
    contract ConfidentialUSDTWrapper (eth:0xAe0207C757Aa2B4019Ad96edD0092ddc63EF0c50) [zama/ConfidentialWrapper] {
    +++ description: 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.
    template:
    - "zama/ConfidentialWrapperV3"
    + "zama/ConfidentialWrapper"
    sourceHashes.1:
    - "0xc6ef75f9a2275b9cfb58b0322dfb55b63e1630022b171af50f1851ee8052447b"
    + "0x111b5cc66fc29cac57ed685c50a509014181cbf98122b5fd89c0449eea3fab5f"
    description:
    - "ERC-20 wrapper that escrows an underlying token and issues confidential balances. It supports encrypted transfers, wrapping, unwrapping, local blocking, and optional underlying-token denylist checks."
    + "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."
    values.$implementation:
    - "eth:0x5226fe30Fa7Bf20C1Cd33F125f77D0c42d3c23b5"
    + "eth:0x2ABad2203Eba104b52cf040cCcFA100Df15687F8"
    values.$pastUpgrades.3:
    + ["2026-08-25T15:59:35.000Z","0x55c55172da4c231406a41da3838bff87dc9b361c62f208fe0e60994a1b82b0b0",["eth:0x2ABad2203Eba104b52cf040cCcFA100Df15687F8"]]
    values.$upgradeCount:
    - 3
    + 4
    +++ description: Underlying-token denylist hook used by the wrapper. If enabled (non-zero), the wrapper calls this selector on the underlying token before restricted operations.
    +++ severity: HIGH
    values.getUnderlyingDenyListSelector:
    - {"isSet":true,"selector":"0x59bf1abe"}
    + "0x59bf1abe"
    +++ description: Accounts holding a wildcard user-decryption delegation over all wrapper-owned encrypted handles. Observers can decrypt every confidential balance and transfer amount of this wrapper, so adding one changes its privacy guarantees.
    +++ severity: HIGH
    values.observers:
    + []
    +++ description: Whether wrapping, unwrapping, unwrap finalization and confidential transfers are currently halted.
    values.paused:
    + false
    +++ description: Address allowed to pause the wrapper (zero address means pausing is disabled). Only the owner can unpause.
    values.pauser:
    + "eth:0x0000000000000000000000000000000000000000"
    fieldMeta.getUnderlyingDenyListSelector.description:
    - "Underlying-token denylist hook used by the wrapper. If enabled, the wrapper calls this selector on the underlying token before restricted operations."
    + "Underlying-token denylist hook used by the wrapper. If enabled (non-zero), the wrapper calls this selector on the underlying token before restricted operations."
    fieldMeta.observers:
    + {"severity":"HIGH","description":"Accounts holding a wildcard user-decryption delegation over all wrapper-owned encrypted handles. Observers can decrypt every confidential balance and transfer amount of this wrapper, so adding one changes its privacy guarantees.","type":"PERMISSION"}
    fieldMeta.pauser:
    + {"description":"Address allowed to pause the wrapper (zero address means pausing is disabled). Only the owner can unpause.","type":"PERMISSION"}
    fieldMeta.paused:
    + {"description":"Whether wrapping, unwrapping, unwrap finalization and confidential transfers are currently halted.","type":"RISK_PARAMETER"}
    implementationNames.eth:0x5226fe30Fa7Bf20C1Cd33F125f77D0c42d3c23b5:
    - "ConfidentialWrapperV3"
    implementationNames.eth:0x2ABad2203Eba104b52cf040cCcFA100Df15687F8:
    + "ConfidentialWrapper"
    }
    contract DAO (eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3) [zama/ZamaDAO] {
    +++ description: Aragon DAO that stores governance state and executes proposal action batches.
    directlyReceivedPermissions.1.description:
    - "block and unblock users, and transfer ownership."
    + "block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership."
    directlyReceivedPermissions.4.description:
    - "block and unblock users, and transfer ownership."
    + "block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership."
    directlyReceivedPermissions.5.description:
    - "block and unblock users, and transfer ownership."
    + "block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership."
    directlyReceivedPermissions.6.description:
    - "block and unblock users, and transfer ownership."
    + "block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership."
    directlyReceivedPermissions.7.description:
    - "block and unblock users, and transfer ownership."
    + "block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership."
    directlyReceivedPermissions.8.description:
    - "block and unblock users, and transfer ownership."
    + "block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership."
    directlyReceivedPermissions.12.description:
    - "block and unblock users, and transfer ownership."
    + "block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership."
    directlyReceivedPermissions.17.description:
    - "block and unblock users, and transfer ownership."
    + "block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership."
    directlyReceivedPermissions.18.description:
    - "block and unblock users, and transfer ownership."
    + "block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership."
    }
    contract ConfidentialBbqTGBPWrapper (eth:0xBA4cFF6ED6F7Cb2A58776dECa4E984b498446762) [zama/ConfidentialWrapper] {
    +++ description: 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.
    template:
    - "zama/ConfidentialWrapperV3"
    + "zama/ConfidentialWrapper"
    sourceHashes.1:
    - "0xc6ef75f9a2275b9cfb58b0322dfb55b63e1630022b171af50f1851ee8052447b"
    + "0x111b5cc66fc29cac57ed685c50a509014181cbf98122b5fd89c0449eea3fab5f"
    description:
    - "ERC-20 wrapper that escrows an underlying token and issues confidential balances. It supports encrypted transfers, wrapping, unwrapping, local blocking, and optional underlying-token denylist checks."
    + "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."
    values.$implementation:
    - "eth:0x5226fe30Fa7Bf20C1Cd33F125f77D0c42d3c23b5"
    + "eth:0x2ABad2203Eba104b52cf040cCcFA100Df15687F8"
    values.$pastUpgrades.2:
    + ["2026-08-25T15:59:35.000Z","0x55c55172da4c231406a41da3838bff87dc9b361c62f208fe0e60994a1b82b0b0",["eth:0x2ABad2203Eba104b52cf040cCcFA100Df15687F8"]]
    values.$upgradeCount:
    - 2
    + 3
    +++ description: Underlying-token denylist hook used by the wrapper. If enabled (non-zero), the wrapper calls this selector on the underlying token before restricted operations.
    +++ severity: HIGH
    values.getUnderlyingDenyListSelector:
    - {"isSet":false,"selector":"0x00000000"}
    + "0x00000000"
    +++ description: Accounts holding a wildcard user-decryption delegation over all wrapper-owned encrypted handles. Observers can decrypt every confidential balance and transfer amount of this wrapper, so adding one changes its privacy guarantees.
    +++ severity: HIGH
    values.observers:
    + []
    +++ description: Whether wrapping, unwrapping, unwrap finalization and confidential transfers are currently halted.
    values.paused:
    + false
    +++ description: Address allowed to pause the wrapper (zero address means pausing is disabled). Only the owner can unpause.
    values.pauser:
    + "eth:0x0000000000000000000000000000000000000000"
    fieldMeta.getUnderlyingDenyListSelector.description:
    - "Underlying-token denylist hook used by the wrapper. If enabled, the wrapper calls this selector on the underlying token before restricted operations."
    + "Underlying-token denylist hook used by the wrapper. If enabled (non-zero), the wrapper calls this selector on the underlying token before restricted operations."
    fieldMeta.observers:
    + {"severity":"HIGH","description":"Accounts holding a wildcard user-decryption delegation over all wrapper-owned encrypted handles. Observers can decrypt every confidential balance and transfer amount of this wrapper, so adding one changes its privacy guarantees.","type":"PERMISSION"}
    fieldMeta.pauser:
    + {"description":"Address allowed to pause the wrapper (zero address means pausing is disabled). Only the owner can unpause.","type":"PERMISSION"}
    fieldMeta.paused:
    + {"description":"Whether wrapping, unwrapping, unwrap finalization and confidential transfers are currently halted.","type":"RISK_PARAMETER"}
    implementationNames.eth:0x5226fe30Fa7Bf20C1Cd33F125f77D0c42d3c23b5:
    - "ConfidentialWrapperV3"
    implementationNames.eth:0x2ABad2203Eba104b52cf040cCcFA100Df15687F8:
    + "ConfidentialWrapper"
    }
    contract ZamaGovMultisigB (eth:0xBc860b6a4C860C5424B84A056E53ACFb2C99a38F) [zama/Multisig] {
    +++ description: Aragon multisig plugin for creating proposals and collecting approvals against a configurable threshold.
    receivedPermissions.1.description:
    - "block and unblock users, and transfer ownership."
    + "block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership."
    receivedPermissions.4.description:
    - "block and unblock users, and transfer ownership."
    + "block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership."
    receivedPermissions.5.description:
    - "block and unblock users, and transfer ownership."
    + "block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership."
    receivedPermissions.6.description:
    - "block and unblock users, and transfer ownership."
    + "block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership."
    receivedPermissions.7.description:
    - "block and unblock users, and transfer ownership."
    + "block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership."
    receivedPermissions.8.description:
    - "block and unblock users, and transfer ownership."
    + "block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership."
    receivedPermissions.14.description:
    - "block and unblock users, and transfer ownership."
    + "block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership."
    receivedPermissions.19.description:
    - "block and unblock users, and transfer ownership."
    + "block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership."
    receivedPermissions.20.description:
    - "block and unblock users, and transfer ownership."
    + "block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership."
    }
    contract ConfidentialWETHWrapper (eth:0xda9396b82634Ea99243cE51258B6A5Ae512D4893) [zama/ConfidentialWrapper] {
    +++ description: 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.
    template:
    - "zama/ConfidentialWrapperV3"
    + "zama/ConfidentialWrapper"
    sourceHashes.1:
    - "0xc6ef75f9a2275b9cfb58b0322dfb55b63e1630022b171af50f1851ee8052447b"
    + "0x111b5cc66fc29cac57ed685c50a509014181cbf98122b5fd89c0449eea3fab5f"
    description:
    - "ERC-20 wrapper that escrows an underlying token and issues confidential balances. It supports encrypted transfers, wrapping, unwrapping, local blocking, and optional underlying-token denylist checks."
    + "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."
    values.$implementation:
    - "eth:0x5226fe30Fa7Bf20C1Cd33F125f77D0c42d3c23b5"
    + "eth:0x2ABad2203Eba104b52cf040cCcFA100Df15687F8"
    values.$pastUpgrades.3:
    + ["2026-08-25T15:59:35.000Z","0x55c55172da4c231406a41da3838bff87dc9b361c62f208fe0e60994a1b82b0b0",["eth:0x2ABad2203Eba104b52cf040cCcFA100Df15687F8"]]
    values.$upgradeCount:
    - 3
    + 4
    +++ description: Underlying-token denylist hook used by the wrapper. If enabled (non-zero), the wrapper calls this selector on the underlying token before restricted operations.
    +++ severity: HIGH
    values.getUnderlyingDenyListSelector:
    - {"isSet":false,"selector":"0x00000000"}
    + "0x00000000"
    +++ description: Accounts holding a wildcard user-decryption delegation over all wrapper-owned encrypted handles. Observers can decrypt every confidential balance and transfer amount of this wrapper, so adding one changes its privacy guarantees.
    +++ severity: HIGH
    values.observers:
    + []
    +++ description: Whether wrapping, unwrapping, unwrap finalization and confidential transfers are currently halted.
    values.paused:
    + false
    +++ description: Address allowed to pause the wrapper (zero address means pausing is disabled). Only the owner can unpause.
    values.pauser:
    + "eth:0x0000000000000000000000000000000000000000"
    fieldMeta.getUnderlyingDenyListSelector.description:
    - "Underlying-token denylist hook used by the wrapper. If enabled, the wrapper calls this selector on the underlying token before restricted operations."
    + "Underlying-token denylist hook used by the wrapper. If enabled (non-zero), the wrapper calls this selector on the underlying token before restricted operations."
    fieldMeta.observers:
    + {"severity":"HIGH","description":"Accounts holding a wildcard user-decryption delegation over all wrapper-owned encrypted handles. Observers can decrypt every confidential balance and transfer amount of this wrapper, so adding one changes its privacy guarantees.","type":"PERMISSION"}
    fieldMeta.pauser:
    + {"description":"Address allowed to pause the wrapper (zero address means pausing is disabled). Only the owner can unpause.","type":"PERMISSION"}
    fieldMeta.paused:
    + {"description":"Whether wrapping, unwrapping, unwrap finalization and confidential transfers are currently halted.","type":"RISK_PARAMETER"}
    implementationNames.eth:0x5226fe30Fa7Bf20C1Cd33F125f77D0c42d3c23b5:
    - "ConfidentialWrapperV3"
    implementationNames.eth:0x2ABad2203Eba104b52cf040cCcFA100Df15687F8:
    + "ConfidentialWrapper"
    }
    contract ZamaGovMultisigA (eth:0xE43c73aAb2b6aBBad6d0461997ce1cfea5ABe66f) [zama/Multisig] {
    +++ description: Aragon multisig plugin for creating proposals and collecting approvals against a configurable threshold.
    receivedPermissions.1.description:
    - "block and unblock users, and transfer ownership."
    + "block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership."
    receivedPermissions.4.description:
    - "block and unblock users, and transfer ownership."
    + "block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership."
    receivedPermissions.5.description:
    - "block and unblock users, and transfer ownership."
    + "block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership."
    receivedPermissions.6.description:
    - "block and unblock users, and transfer ownership."
    + "block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership."
    receivedPermissions.7.description:
    - "block and unblock users, and transfer ownership."
    + "block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership."
    receivedPermissions.8.description:
    - "block and unblock users, and transfer ownership."
    + "block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership."
    receivedPermissions.14.description:
    - "block and unblock users, and transfer ownership."
    + "block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership."
    receivedPermissions.19.description:
    - "block and unblock users, and transfer ownership."
    + "block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership."
    receivedPermissions.20.description:
    - "block and unblock users, and transfer ownership."
    + "block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership."
    }
    contract ConfidentialUSDCWrapper (eth:0xe978F22157048E5DB8E5d07971376e86671672B2) [zama/ConfidentialWrapper] {
    +++ description: 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.
    template:
    - "zama/ConfidentialWrapperV3"
    + "zama/ConfidentialWrapper"
    sourceHashes.1:
    - "0xc6ef75f9a2275b9cfb58b0322dfb55b63e1630022b171af50f1851ee8052447b"
    + "0x111b5cc66fc29cac57ed685c50a509014181cbf98122b5fd89c0449eea3fab5f"
    description:
    - "ERC-20 wrapper that escrows an underlying token and issues confidential balances. It supports encrypted transfers, wrapping, unwrapping, local blocking, and optional underlying-token denylist checks."
    + "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."
    values.$implementation:
    - "eth:0x5226fe30Fa7Bf20C1Cd33F125f77D0c42d3c23b5"
    + "eth:0x2ABad2203Eba104b52cf040cCcFA100Df15687F8"
    values.$pastUpgrades.3:
    + ["2026-08-25T15:59:35.000Z","0x55c55172da4c231406a41da3838bff87dc9b361c62f208fe0e60994a1b82b0b0",["eth:0x2ABad2203Eba104b52cf040cCcFA100Df15687F8"]]
    values.$upgradeCount:
    - 3
    + 4
    +++ description: Underlying-token denylist hook used by the wrapper. If enabled (non-zero), the wrapper calls this selector on the underlying token before restricted operations.
    +++ severity: HIGH
    values.getUnderlyingDenyListSelector:
    - {"isSet":true,"selector":"0xfe575a87"}
    + "0xfe575a87"
    +++ description: Accounts holding a wildcard user-decryption delegation over all wrapper-owned encrypted handles. Observers can decrypt every confidential balance and transfer amount of this wrapper, so adding one changes its privacy guarantees.
    +++ severity: HIGH
    values.observers:
    + []
    +++ description: Whether wrapping, unwrapping, unwrap finalization and confidential transfers are currently halted.
    values.paused:
    + false
    +++ description: Address allowed to pause the wrapper (zero address means pausing is disabled). Only the owner can unpause.
    values.pauser:
    + "eth:0x0000000000000000000000000000000000000000"
    fieldMeta.getUnderlyingDenyListSelector.description:
    - "Underlying-token denylist hook used by the wrapper. If enabled, the wrapper calls this selector on the underlying token before restricted operations."
    + "Underlying-token denylist hook used by the wrapper. If enabled (non-zero), the wrapper calls this selector on the underlying token before restricted operations."
    fieldMeta.observers:
    + {"severity":"HIGH","description":"Accounts holding a wildcard user-decryption delegation over all wrapper-owned encrypted handles. Observers can decrypt every confidential balance and transfer amount of this wrapper, so adding one changes its privacy guarantees.","type":"PERMISSION"}
    fieldMeta.pauser:
    + {"description":"Address allowed to pause the wrapper (zero address means pausing is disabled). Only the owner can unpause.","type":"PERMISSION"}
    fieldMeta.paused:
    + {"description":"Whether wrapping, unwrapping, unwrap finalization and confidential transfers are currently halted.","type":"RISK_PARAMETER"}
    implementationNames.eth:0x5226fe30Fa7Bf20C1Cd33F125f77D0c42d3c23b5:
    - "ConfidentialWrapperV3"
    implementationNames.eth:0x2ABad2203Eba104b52cf040cCcFA100Df15687F8:
    + "ConfidentialWrapper"
    }
    A dashboard to explore contracts and permissions
    Go to Disco
    Disco UI Banner

    Ethereum

    Actors:

    ZamaGovMultisigB0xBc86…a38F

    A Multisig with 3/6 threshold. Aragon multisig plugin for creating proposals and collecting approvals against a configurable threshold.

    • Can upgrade with no delay
      • ConfidentialSteakUSDTWrapper
      • ConfidentialArmUSDCpWrapper
      • HCULimit
      • ConfidentialRoxUSDCyWrapper
      • ConfidentialBbqUSDCWrapper
      • ConfidentialArmUSDTpWrapper
      • ConfidentialSteakcUSDCWrapper
      • Staking (Coprocessor)
      • ConfidentialXAUTWrapper
      • ConfidentialFAUSDeWrapper
      • KMSVerifier
      • ConfidentialArmUSDCsWrapper
      • ConfidentialBbqUSDTWrapper
      • ConfidentialZAMAWrapper
      • ConfidentialBRONWrapper
      • ConfidentialPENDLEWrapper
      • ConfidentialPAPYWrapper
      • ConfidentialFcUSDTWrapper
      • ConfidentialTGBPWrapper
      • ConfidentialUSDTWrapper
      • ConfidentialRoxcUSDCWrapper
      • DAO
      • ConfidentialPendleUSDCWrapper
      • ConfidentialBbqTGBPWrapper
      • ConfidentialArmUSDTsWrapper
      • ACL
      • InputVerifier
      • ProtocolConfig
      • FHEVMExecutor
      • ConfidentialWBTCWrapper
      • ConfidentialWETHWrapper
      • ConfidentialUSDCWrapper
      • Staking (KMS)
      • ConfidentialAUSDWrapper
      • ConfidentialTokenWrappersRegistry
      • KMSGeneration
      • ConfidentialArmcWBTCWrapper
    • Can interact with ConfidentialSteakUSDTWrapper
      • 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. and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership
    • Can interact with ConfidentialArmUSDCpWrapper
      • block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership
    • Can interact with HCULimit
      • change the per-block and per-transaction HCU limits and manage callers that bypass the per-block limit
    • Can interact with ConfidentialRoxUSDCyWrapper
      • block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership
    • Can interact with ConfidentialBbqUSDCWrapper
      • block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership
    • Can interact with ConfidentialArmUSDTpWrapper
      • block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership
    • Can interact with ConfidentialSteakcUSDCWrapper
      • block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership
    • Can interact with Staking (Coprocessor)
      • grant and revoke manager accounts, transfer or renounce the default admin role, and change the default admin transfer delay
      • set the reward rate, set the unstake cooldown period, and add or remove reward-eligible staking accounts
    • Can interact with ConfidentialXAUTWrapper
      • block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership
    • Can interact with ConfidentialFAUSDeWrapper
      • block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership
    • Can interact with ConfidentialArmUSDCsWrapper
      • block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership
    • Can interact with ConfidentialBbqUSDTWrapper
      • block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership
    • Can interact with ConfidentialZAMAWrapper
      • block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership
    • Can interact with ConfidentialBRONWrapper
      • block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership
    • Can interact with ConfidentialPENDLEWrapper
      • block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership
    • Can interact with ConfidentialPAPYWrapper
      • block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership
    • Can interact with ConfidentialFcUSDTWrapper
      • block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership
    • Can interact with ConfidentialTGBPWrapper
      • block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership
    • Can interact with ConfidentialUSDTWrapper
      • block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership
    • Can interact with ConfidentialRoxcUSDCWrapper
      • block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership
    • Can interact with DAO
      • change multisig plugin settings
      • change multisig plugin target execution configuration
      • grant and revoke DAO permissions
    • Can interact with ConfidentialPendleUSDCWrapper
      • block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership
    • Can interact with ConfidentialBbqTGBPWrapper
      • block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership
    • Can interact with ConfidentialArmUSDTsWrapper
      • block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership
    • Can interact with PauserSet
      • add, remove, or swap accounts that can pause the ACL
    • Can interact with ACL
      • transfer ACL ownership, unpause the ACL, block or unblock accounts, and manage PauserSet membership
    • Can interact with InputVerifier
      • set the coprocessor signer set and signature threshold used for encrypted input verification
    • Can interact with ProtocolConfig
      • create KMS contexts with arbitrary nodeA software client that participates in the network. sets and thresholds that immediately become the default verifierAn entity in a ZK-Rollup, often a smart contract, that verifies zero-knowledge proofs submitted by a prover. authority, destroy non-current contexts, and retune the per-context thresholds (public decryption, user decryption, key generation, MPC) of any live context including the current one. A malicious context or lowered threshold can attest an inflated unwrap amount and drain pooled wrapper backing
    • Can interact with ConfidentialWBTCWrapper
      • block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership
    • Can interact with ConfidentialWETHWrapper
      • block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership
    • Can interact with ConfidentialUSDCWrapper
      • block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership
    • Can interact with Staking (KMS)
      • grant and revoke manager accounts, transfer or renounce the default admin role, and change the default admin transfer delay
      • set the reward rate, set the unstake cooldown period, and add or remove reward-eligible staking accounts
    • Can interact with ConfidentialAUSDWrapper
      • block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership
    • Can interact with ConfidentialTokenWrappersRegistry
      • manage addresses in the registry
    • Can interact with KMSGeneration
      • trigger and abort FHE key and CRS generation rounds executed by the KMS nodes
    • Can interact with ConfidentialArmcWBTCWrapper
      • block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership
    ZamaGovMultisigA0xE43c…e66f

    A Multisig with 9/17 threshold. Aragon multisig plugin for creating proposals and collecting approvals against a configurable threshold.

    • Can upgrade with no delay
      • ConfidentialSteakUSDTWrapper
      • ConfidentialArmUSDCpWrapper
      • HCULimit
      • ConfidentialRoxUSDCyWrapper
      • ConfidentialBbqUSDCWrapper
      • ConfidentialArmUSDTpWrapper
      • ConfidentialSteakcUSDCWrapper
      • Staking (Coprocessor)
      • ConfidentialXAUTWrapper
      • ConfidentialFAUSDeWrapper
      • KMSVerifier
      • ConfidentialArmUSDCsWrapper
      • ConfidentialBbqUSDTWrapper
      • ConfidentialZAMAWrapper
      • ConfidentialBRONWrapper
      • ConfidentialPENDLEWrapper
      • ConfidentialPAPYWrapper
      • ConfidentialFcUSDTWrapper
      • ConfidentialTGBPWrapper
      • ConfidentialUSDTWrapper
      • ConfidentialRoxcUSDCWrapper
      • DAO
      • ConfidentialPendleUSDCWrapper
      • ConfidentialBbqTGBPWrapper
      • ConfidentialArmUSDTsWrapper
      • ACL
      • InputVerifier
      • ProtocolConfig
      • FHEVMExecutor
      • ConfidentialWBTCWrapper
      • ConfidentialWETHWrapper
      • ConfidentialUSDCWrapper
      • Staking (KMS)
      • ConfidentialAUSDWrapper
      • ConfidentialTokenWrappersRegistry
      • KMSGeneration
      • ConfidentialArmcWBTCWrapper
    • Can interact with ConfidentialSteakUSDTWrapper
      • 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. and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership
    • Can interact with ConfidentialArmUSDCpWrapper
      • block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership
    • Can interact with HCULimit
      • change the per-block and per-transaction HCU limits and manage callers that bypass the per-block limit
    • Can interact with ConfidentialRoxUSDCyWrapper
      • block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership
    • Can interact with ConfidentialBbqUSDCWrapper
      • block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership
    • Can interact with ConfidentialArmUSDTpWrapper
      • block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership
    • Can interact with ConfidentialSteakcUSDCWrapper
      • block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership
    • Can interact with Staking (Coprocessor)
      • grant and revoke manager accounts, transfer or renounce the default admin role, and change the default admin transfer delay
      • set the reward rate, set the unstake cooldown period, and add or remove reward-eligible staking accounts
    • Can interact with ConfidentialXAUTWrapper
      • block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership
    • Can interact with ConfidentialFAUSDeWrapper
      • block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership
    • Can interact with ConfidentialArmUSDCsWrapper
      • block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership
    • Can interact with ConfidentialBbqUSDTWrapper
      • block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership
    • Can interact with ConfidentialZAMAWrapper
      • block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership
    • Can interact with ConfidentialBRONWrapper
      • block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership
    • Can interact with ConfidentialPENDLEWrapper
      • block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership
    • Can interact with ConfidentialPAPYWrapper
      • block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership
    • Can interact with ConfidentialFcUSDTWrapper
      • block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership
    • Can interact with ConfidentialTGBPWrapper
      • block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership
    • Can interact with ConfidentialUSDTWrapper
      • block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership
    • Can interact with ConfidentialRoxcUSDCWrapper
      • block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership
    • Can interact with DAO
      • change multisig plugin settings
      • change multisig plugin target execution configuration
      • grant and revoke DAO permissions
    • Can interact with ConfidentialPendleUSDCWrapper
      • block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership
    • Can interact with ConfidentialBbqTGBPWrapper
      • block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership
    • Can interact with ConfidentialArmUSDTsWrapper
      • block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership
    • Can interact with PauserSet
      • add, remove, or swap accounts that can pause the ACL
    • Can interact with ACL
      • transfer ACL ownership, unpause the ACL, block or unblock accounts, and manage PauserSet membership
    • Can interact with InputVerifier
      • set the coprocessor signer set and signature threshold used for encrypted input verification
    • Can interact with ProtocolConfig
      • create KMS contexts with arbitrary nodeA software client that participates in the network. sets and thresholds that immediately become the default verifierAn entity in a ZK-Rollup, often a smart contract, that verifies zero-knowledge proofs submitted by a prover. authority, destroy non-current contexts, and retune the per-context thresholds (public decryption, user decryption, key generation, MPC) of any live context including the current one. A malicious context or lowered threshold can attest an inflated unwrap amount and drain pooled wrapper backing
    • Can interact with ConfidentialWBTCWrapper
      • block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership
    • Can interact with ConfidentialWETHWrapper
      • block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership
    • Can interact with ConfidentialUSDCWrapper
      • block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership
    • Can interact with Staking (KMS)
      • grant and revoke manager accounts, transfer or renounce the default admin role, and change the default admin transfer delay
      • set the reward rate, set the unstake cooldown period, and add or remove reward-eligible staking accounts
    • Can interact with ConfidentialAUSDWrapper
      • block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership
    • Can interact with ConfidentialTokenWrappersRegistry
      • manage addresses in the registry
    • Can interact with KMSGeneration
      • trigger and abort FHE key and CRS generation rounds executed by the KMS nodes
    • Can interact with ConfidentialArmcWBTCWrapper
      • block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership
    ZamaGovMemberDAO0x31bB…382C

    Aragon DAO that stores governance state and executes proposal action batches. Member of ZamaGovMultisigA.

    • Can interact with ZamaGovMemberDAO
      • change multisig plugin settings
      • change multisig plugin target execution configuration
    • Can interact with ProtocolConfig
      • submit KMS key- and CRS-generation responses to KMSGeneration
    • Can interact with InputVerifier
      • sign encrypted input verification bundles accepted by the InputVerifier
    • Can interact with ProtocolConfig
      • sign public decryption results accepted by the KMSVerifier and key- and CRS-generation responses accepted by KMSGeneration

    Member of ZamaGovMultisigB.

    • Can interact with PauserSet
      • pause the ACL

    Member of ZamaGovMultisigB, ZamaGovMultisigA.

    • Can interact with PauserSet
      • pause the ACL

    Zama Gateway

    Actors:

    A Multisig with 3/5 threshold. Gateway owner Safe. Its LayerZero governance module is outside the Zama Gateway protocol surface covered here.

    • Can upgrade with no delay
      • MultichainACL
      • Decryption
      • KMSGeneration
      • ProtocolPayment
      • InputVerification
      • CiphertextCommits
      • GatewayConfig
    • Can interact with Decryption
      • unpause Decryption
    • Can interact with GatewayPauserSet
      • add, remove, or swap gateway pausers
    • Can interact with ProtocolPayment
      • set gateway fee prices for input verification, public decryption, and user decryption
    • Can interact with InputVerification
      • unpause InputVerification
    • Can interact with GatewayConfig
      • 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 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., transfer ownership, and unpause gateway workflow contracts
    • Can interact with MultichainACL
      • submit public-decryption allowances, account handle allowances, and user-decryption delegation or revocation messages to MultichainACL
    • Can interact with InputVerification
      • finalize encrypted input proof verification or rejection in InputVerification alone while priority mode is active
      • sign encrypted input proof verification responses accepted by InputVerification
      • submit coprocessor proof verification and rejection responses to InputVerification
    • Can interact with CiphertextCommits
      • commit ciphertext and SNS ciphertext digests to CiphertextCommits alone while priority mode is active
      • submit ciphertext and SNS ciphertext digests to CiphertextCommits
    • Can interact with GatewayConfig
      • finalize 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. alone for encrypted input proofs and ciphertext material commitments while priority mode is active
      • sign encrypted input proof verification responses accepted by the gateway
      • submit coprocessor responses, ACL mirror updates, and ciphertext material commitments to gateway contracts
    • Can upgrade with no delay
      • MultichainACL
      • Decryption
      • KMSGeneration
      • ProtocolPayment
      • InputVerification
      • CiphertextCommits
    • Can interact with GatewayConfig
      • accept GatewayConfig ownership
    • Can interact with MultichainACL
      • submit public-decryption allowances, account handle allowances, and user-decryption delegation or revocation messages to MultichainACL
    • Can interact with InputVerification
      • sign encrypted input proof verification responses accepted by InputVerification
      • submit coprocessor proof verification and rejection responses to InputVerification
    • Can interact with CiphertextCommits
      • submit ciphertext and SNS ciphertext digests to CiphertextCommits
    • Can interact with GatewayConfig
      • sign encrypted input proof verification responses accepted by the gateway
      • submit coprocessor responses, ACL mirror updates, and ciphertext material commitments to gateway contracts
    • Can interact with GatewayConfig
      • participate in gateway key custody workflows
      • sign gateway key custody material
    • Can interact with Decryption
      • submit KMS decryption responses to Decryption
    • Can interact with GatewayConfig
      • submit KMS decryption responses to gateway contracts
    • Can interact with Decryption
      • sign public decryption results and user decryption shares accepted by Decryption
    • Can interact with GatewayConfig
      • sign KMS decryption material accepted by gateway contracts

    Member of SafeL2.

    • Can interact with GatewayPauserSet
      • pause GatewayConfig and pausable gateway workflow contracts
    A dashboard to explore contracts and permissions
    Go to Disco
    Disco UI Banner

    Ethereum

    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.

    • Roles:
      • admin: DAO; ultimately ZamaGovMultisigA, ZamaGovMultisigB
      • owner: DAO; ultimately ZamaGovMultisigA, ZamaGovMultisigB

    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.

    • Roles:
      • admin: DAO; ultimately ZamaGovMultisigA, ZamaGovMultisigB
      • owner: DAO; ultimately ZamaGovMultisigA, ZamaGovMultisigB

    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.

    • Roles:
      • lOwner: DAO; ultimately ZamaGovMultisigA, ZamaGovMultisigB

    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.

    • Roles:
      • admin: DAO; ultimately ZamaGovMultisigA, ZamaGovMultisigB
      • owner: DAO; ultimately ZamaGovMultisigA, ZamaGovMultisigB

    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.

    • Roles:
      • admin: DAO; ultimately ZamaGovMultisigA, ZamaGovMultisigB
      • owner: DAO; ultimately ZamaGovMultisigA, ZamaGovMultisigB

    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.

    • Roles:
      • admin: DAO; ultimately ZamaGovMultisigA, ZamaGovMultisigB
      • owner: DAO; ultimately ZamaGovMultisigA, ZamaGovMultisigB

    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.

    • Roles:
      • admin: DAO; ultimately ZamaGovMultisigA, ZamaGovMultisigB
      • owner: DAO; ultimately ZamaGovMultisigA, ZamaGovMultisigB

    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.

    • Roles:
      • admin: DAO; ultimately ZamaGovMultisigA, ZamaGovMultisigB
      • owner: DAO; ultimately ZamaGovMultisigA, ZamaGovMultisigB

    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.

    • Roles:
      • admin: DAO; ultimately ZamaGovMultisigA, ZamaGovMultisigB
      • owner: DAO; ultimately ZamaGovMultisigA, ZamaGovMultisigB

    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.

    • Roles:
      • lOwner: DAO; ultimately ZamaGovMultisigA, ZamaGovMultisigB

    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.

    • Roles:
      • admin: DAO; ultimately ZamaGovMultisigA, ZamaGovMultisigB
      • owner: DAO; ultimately ZamaGovMultisigA, ZamaGovMultisigB

    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.

    • Roles:
      • admin: DAO; ultimately ZamaGovMultisigA, ZamaGovMultisigB
      • owner: DAO; ultimately ZamaGovMultisigA, ZamaGovMultisigB

    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.

    • Roles:
      • admin: DAO; ultimately ZamaGovMultisigA, ZamaGovMultisigB
      • owner: DAO; ultimately ZamaGovMultisigA, ZamaGovMultisigB

    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.

    • Roles:
      • admin: DAO; ultimately ZamaGovMultisigA, ZamaGovMultisigB
      • owner: DAO; ultimately ZamaGovMultisigA, ZamaGovMultisigB

    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.

    • Roles:
      • admin: DAO; ultimately ZamaGovMultisigA, ZamaGovMultisigB
      • owner: DAO; ultimately ZamaGovMultisigA, ZamaGovMultisigB

    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.

    • Roles:
      • admin: DAO; ultimately ZamaGovMultisigA, ZamaGovMultisigB
      • owner: DAO; ultimately ZamaGovMultisigA, ZamaGovMultisigB

    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.

    • Roles:
      • admin: DAO; ultimately ZamaGovMultisigA, ZamaGovMultisigB
      • owner: DAO; ultimately ZamaGovMultisigA, ZamaGovMultisigB

    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.

    • Roles:
      • admin: DAO; ultimately ZamaGovMultisigA, ZamaGovMultisigB
      • owner: DAO; ultimately ZamaGovMultisigA, ZamaGovMultisigB

    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.

    • Roles:
      • admin: DAO; ultimately ZamaGovMultisigA, ZamaGovMultisigB
      • owner: DAO; ultimately ZamaGovMultisigA, ZamaGovMultisigB

    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.

    • Roles:
      • admin: DAO; ultimately ZamaGovMultisigA, ZamaGovMultisigB
      • owner: DAO; ultimately ZamaGovMultisigA, ZamaGovMultisigB

    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.

    • Roles:
      • admin: DAO; ultimately ZamaGovMultisigA, ZamaGovMultisigB
      • owner: DAO; ultimately ZamaGovMultisigA, ZamaGovMultisigB

    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.

    • Roles:
      • admin: DAO; ultimately ZamaGovMultisigA, ZamaGovMultisigB
      • owner: DAO; ultimately ZamaGovMultisigA, ZamaGovMultisigB

    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.

    • Roles:
      • admin: DAO; ultimately ZamaGovMultisigA, ZamaGovMultisigB
      • owner: DAO; ultimately ZamaGovMultisigA, ZamaGovMultisigB

    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.

    • Roles:
      • admin: DAO; ultimately ZamaGovMultisigA, ZamaGovMultisigB
      • owner: DAO; ultimately ZamaGovMultisigA, ZamaGovMultisigB

    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.

    • Roles:
      • getCoprocessorSigners: EOA 35
      • lOwner: DAO; ultimately ZamaGovMultisigA, ZamaGovMultisigB

    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.

    • Roles:
      • currentKmsTxSenders: EOA 34, EOA 37, EOA 38, EOA 39, EOA 40, EOA 44, EOA 45, EOA 50, EOA 52, EOA 53, EOA 55, EOA 56, EOA 60
      • getKmsSigners: EOA 36, EOA 41, EOA 42, EOA 43, EOA 46, EOA 47, EOA 48, EOA 49, EOA 51, EOA 54, EOA 57, EOA 58, EOA 59
      • lOwner: DAO; ultimately ZamaGovMultisigA, ZamaGovMultisigB

    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.

    • Roles:
      • lOwner: DAO; ultimately ZamaGovMultisigA, ZamaGovMultisigB

    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.

    • Roles:
      • admin: DAO; ultimately ZamaGovMultisigA, ZamaGovMultisigB
      • owner: DAO; ultimately ZamaGovMultisigA, ZamaGovMultisigB

    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.

    • Roles:
      • admin: DAO; ultimately ZamaGovMultisigA, ZamaGovMultisigB
      • owner: DAO; ultimately ZamaGovMultisigA, ZamaGovMultisigB

    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.

    • Roles:
      • admin: DAO; ultimately ZamaGovMultisigA, ZamaGovMultisigB
      • owner: DAO; ultimately ZamaGovMultisigA, ZamaGovMultisigB

    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.

    • Roles:
      • admin: DAO; ultimately ZamaGovMultisigA, ZamaGovMultisigB
      • owner: DAO; ultimately ZamaGovMultisigA, ZamaGovMultisigB
    ConfidentialTokenWrappersRegistry0xeb50…bBA0Implementation (Upgradable)Admin

    Registry for Zama confidential token wrappers.

    • Roles:
      • admin: DAO; ultimately ZamaGovMultisigA, ZamaGovMultisigB
      • owner: DAO; ultimately ZamaGovMultisigA, ZamaGovMultisigB

    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.

    • Roles:
      • lOwner: DAO; ultimately ZamaGovMultisigA, ZamaGovMultisigB

    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.

    • Roles:
      • admin: DAO; ultimately ZamaGovMultisigA, ZamaGovMultisigB
      • owner: DAO; ultimately ZamaGovMultisigA, ZamaGovMultisigB

    Aragon DAO that stores governance state and executes proposal action batches.

    • Roles:
      • daoExecutors: ZamaGovMultisigA, ZamaGovMultisigB
      • daoRootHolders: DAO; ultimately ZamaGovMultisigA, ZamaGovMultisigB
      • daoUpgraders: DAO; ultimately ZamaGovMultisigA, ZamaGovMultisigB
      • multisigSettingsAdmins: DAO, ZamaGovMultisigA, ZamaGovMultisigB; ultimately ZamaGovMultisigA, ZamaGovMultisigB
      • multisigTargetConfigAdmins: DAO, ZamaGovMultisigA, ZamaGovMultisigB; ultimately ZamaGovMultisigA, ZamaGovMultisigB
    PauserSet0xbBfE…586C

    Maintains the pauser account set used in pause-control checks.

    • Roles:
      • lOwner: DAO; ultimately ZamaGovMultisigA, ZamaGovMultisigB
      • pausers: EOA 61, EOA 62, EOA 63, EOA 64

    Staking contract that escrows ZAMA, issues non-transferable staked voting tokens, and mints protocol rewards to eligible stakers at a configurable reward rate.

    • Roles:
      • admin: DAO; ultimately ZamaGovMultisigA, ZamaGovMultisigB
      • defaultAdmin: DAO; ultimately ZamaGovMultisigA, ZamaGovMultisigB
      • managerRoleMembers: DAO; ultimately ZamaGovMultisigA, ZamaGovMultisigB

    Staking contract that escrows ZAMA, issues non-transferable staked voting tokens, and mints protocol rewards to eligible stakers at a configurable reward rate.

    • Roles:
      • admin: DAO; ultimately ZamaGovMultisigA, ZamaGovMultisigB
      • defaultAdmin: DAO; ultimately ZamaGovMultisigA, ZamaGovMultisigB
      • managerRoleMembers: DAO; ultimately ZamaGovMultisigA, ZamaGovMultisigB

    Zama Gateway

    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.

    • Roles:
      • admin: EOA 2
      • gatewayCoprocessorTxSenders: EOA 1, EOA 3, EOA 4, EOA 5, EOA 6
      • gatewayOwner: SafeL2

    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.

    • Roles:
      • admin: EOA 2
      • gatewayKmsSigners: EOA 14, EOA 15, EOA 16, EOA 19, EOA 20, EOA 21, EOA 22, EOA 24, EOA 27, EOA 30, EOA 31, EOA 32, EOA 9
      • gatewayKmsTxSenders: EOA 10, EOA 11, EOA 12, EOA 13, EOA 17, EOA 18, EOA 23, EOA 25, EOA 26, EOA 28, EOA 29, EOA 33, EOA 8
      • gatewayOwner: SafeL2

    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.

    • Roles:
      • admin: EOA 2
      • gatewayOwner: SafeL2

    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.

    • Roles:
      • admin: EOA 2
      • gatewayOwner: SafeL2

    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.

    • Roles:
      • admin: EOA 2
      • gatewayCoprocessorSigners: EOA 1, EOA 3, EOA 4, EOA 5, EOA 6
      • gatewayCoprocessorTxSenders: EOA 1, EOA 3, EOA 4, EOA 5, EOA 6
      • gatewayOwner: SafeL2
      • gatewayPriorityCoprocessorTxSender: EOA 1

    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.

    • Roles:
      • admin: EOA 2
      • gatewayCoprocessorTxSenders: EOA 1, EOA 3, EOA 4, EOA 5, EOA 6
      • gatewayOwner: SafeL2
      • gatewayPriorityCoprocessorTxSender: EOA 1

    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.

    • Roles:
      • admin: SafeL2
      • getCoprocessorSigners: EOA 1, EOA 3, EOA 4, EOA 5, EOA 6
      • getCoprocessorTxSenders: EOA 1, EOA 3, EOA 4, EOA 5, EOA 6
      • getCustodianSigners: EOA 7
      • getCustodianTxSenders: EOA 7
      • getKmsSigners: EOA 14, EOA 15, EOA 16, EOA 19, EOA 20, EOA 21, EOA 22, EOA 24, EOA 27, EOA 30, EOA 31, EOA 32, EOA 9
      • getKmsTxSenders: EOA 10, EOA 11, EOA 12, EOA 13, EOA 17, EOA 18, EOA 23, EOA 25, EOA 26, EOA 28, EOA 29, EOA 33, EOA 8
      • getPriorityCoprocessorTxSender: EOA 1
      • owner: SafeL2
      • pendingOwner: EOA 2
    Can be upgraded by:
    GatewayPauserSet0x571e…ac1b

    Maintains the set of accounts allowed to pause gateway contracts. The set is managed by the GatewayConfig owner.

    • Roles:
      • gatewayOwner: SafeL2
      • pausers: EOA 65, EOA 66, EOA 67, EOA 68