9da50713 (main)
and
f34255f6 (PR)
[ADDED]
interfold
+2164 -0
+1 -0
"interfold"
+1 -0
"interfold-crisp"
+1 -0
"Interfold CRISP"
+1 -0
null
+1 -0
null
+1 -0
1792368000
+7 -0
{
"unverifiedContracts": [
"eth:0x6E1eC1e74162D9c141e12B593Cad390aEfFb6bD0",
"eth:0xC496A7ee730590D5A7669E251cbE54F5Fc339Ea8"
],
"yellowWarning": "Early mainnet: Interfold runs with an initial set of ciphernode operators, and only a few votes have taken place. L2BEAT does not track the anonymity set and rates the design, not the size of past votes."
}
+19 -0
{
"badges": [],
"description": "A secret ballot on Interfold's encrypted-computation network: voters cast FHE-encrypted ballots, and a committee of ciphernodes decrypts only the totals.",
"detailedDescription": "CRISP (Coercion-Resistant Impartial Selection Protocol) is a secret ballot on Interfold, a network for encrypted computation. Anyone can open a CRISP vote, and the Interfold DAO votes on its proposals with it. A voter picks an option, and only the totals per option are decrypted. Every address that receives a ballot, and its voting power, stays public.\n\nVoters trust the committee of 19 ciphernodes drawn for each vote, any 10 of whom can decrypt every ballot. They also trust Interfold, which hosts the app and runs the CRISP server that must sign every ballot. Two Interfold multisigs change the protocol instantly, see [upgrades and governance](#upgrades-and-governance).\n\n### Architecture\n\nEach vote is one E3 (encrypted execution environment), a computation over encrypted inputs that the Interfold contract coordinates. CiphernodeRegistry draws a committee of ciphernodes by a lottery weighted by their collateral. The committee generates a shared public key for BFV, a lattice-based fully homomorphic encryption scheme, and each member keeps a share of the secret key. An OpenVM program adds up the encrypted ballots, and the committee decrypts only the sum.\n\n### Flow\n\n1. **Request.** A requester, such as a DAO proposal, opens a CRISP vote and pays for its E3. Voting power is fixed at that moment.\n2. **Vote.** Your browser encrypts the ballot to the committee key and proves that it is well formed and signed by your wallet. The CRISP server stores the ciphertext on Avail, signs that it is available and submits it.\n3. **Mask.** Anyone can add an encrypted zero to any eligible address, and it looks like a vote. The app sends masks only when the voter adds them.\n4. **Re-vote.** A later ballot from your wallet replaces the earlier one.\n5. **Tally.** The committee decrypts the sum and publishes the totals per option.\n\n### Voting\n\nA CRISP vote sets who may vote in one of three ways. It reads voting power from a token at a snapshot, as Interfold DAO votes do, or uses an address list built from token holders or supplied by the requester. The Interfold DAO must post each list's Merkle root, so it controls these lists. Each voter counts with their token weight or with the same weight as everyone else. With equal weights, the totals leave nothing to match against.\n\n### App\n\nThe ratings assume Interfold DAO votes through Interfold's [governance app](https://governance.theinterfold.com), which is [open source](https://github.com/theinterfold/the-interfold-governance) and hosted by Interfold. By default it counts a random 99 to 100% of the voter's power, so totals do not match balances exactly. A local build removes the host's view of the choice before encryption. A voter can also send the ballot from their own wallet.\n\n### Ciphernodes\n\nOperators register by bonding 32,000 FOLD and buying tickets with sUSDS. The lottery gives each bond-owner address at most one seat per committee, the only limit on one party filling a committee. Interfold does not name the operators and calls the current set an [initial one](https://blog.theinterfold.com/network-alpha-mainnet/).",
"links": {
"websites": [
"https://theinterfold.com",
"https://governance.theinterfold.com"
],
"documentation": [
"https://docs.theinterfold.com"
],
"repositories": [
"https://github.com/theinterfold/interfold",
"https://github.com/theinterfold/CRISP",
"https://github.com/theinterfold/the-interfold-governance"
]
}
}
+1 -0
null
+1 -0
null
+30 -0
[
{
"title": "Network Alpha live on Ethereum",
"url": "https://blog.theinterfold.com/network-alpha-mainnet/",
"date": "2026-08-19T00:00:00Z",
"description": "Interfold launches its mainnet and the FOLD token, with an initial set of ciphernode operators.",
"type": "general"
},
{
"title": "New votes paused for two weeks",
"url": "https://etherscan.io/tx/0x28446d923bd9a9b99b2881cbfdeac13a5ab0cc7f2449e2d074c820f806690e86",
"date": "2026-09-29T00:00:00Z",
"description": "Interfold pauses new computation requests, and with them new votes, until an upgrade on October 12.",
"type": "incident"
},
{
"title": "First CRISP vote backs the constitution",
"url": "https://etherscan.io/tx/0x71b8f01267c7edaf4015a58407eef393418e3eb56feb66950bed04c4a96c0660",
"date": "2026-10-02T00:00:00Z",
"description": "The third constitution vote is the first CRISP vote to be decrypted, with every vote on yes.",
"type": "general"
},
{
"title": "Protocol proposals move to secret ballots",
"url": "https://blog.theinterfold.com/how-to-vote-on-interfold/",
"date": "2026-10-10T00:00:00Z",
"description": "Interfold Protocol Proposals now pass a CRISP vote before InterfoldSafeB approves them.",
"type": "general"
}
]
+1 -0
null
+1 -0
null
+1 -0
null
+1 -0
null
+1 -0
null
+1 -0
null
+1 -0
null
+1 -0
null
+1 -0
null
+1 -0
null
+1 -0
null
+1 -0
null
+1 -0
null
+1 -0
null
+1 -0
null
+226 -0
{
"adversaries": {
"promise": {
"protects": "linkage",
"text": "Hides which option each voter chose. Every address that receives a ballot, its voting power, the timing and the totals per option are public."
},
"adversaries": [
{
"id": "publicObserver",
"label": "Public observer",
"description": "Everyone with a block explorer and some basic tools. Sees every public onchain event, but does no correlation beyond following links.",
"examples": "A curious counterparty, an employer, a journalist."
},
{
"id": "chainAnalyst",
"label": "Chain analyst",
"description": "Scrapes all public data and correlates it: timing, amounts, gas and wallet fingerprints, address clusters.",
"examples": "Chain analytics firms, ZachXBT, data brokers."
},
{
"id": "networkObserver",
"label": "Network observer",
"description": "Sits between the user and the services and sees traffic only: ISPs, VPNs, Tor exits, public RPCs and relayers. Learns IP addresses, timing, fingerprints and ciphertext. Services the operator runs count as the insider.",
"examples": "Infura or Alchemy, a Tornado relayer, a wallet vendor selling telemetry, Google captcha or analytics in the dapp frontend."
},
{
"id": "privilegedInsider",
"label": "Privileged insider",
"description": "Holds an operator role, custodies funds, receives keys or plaintext by design, or delivers the client: upgrade admin, custodian, view key holder, enclave operator, association set provider, hosted prover, registry, frontend host.",
"examples": "A compliance backdoor key, a DAO with an upgrade key, a KMS committee, an ASP operator, a custodial bridge."
},
{
"id": "futureAdversary",
"label": "Future adversary",
"description": "Harvest now, decrypt later. Holds every byte ever published and runs the known quantum attacks: elliptic curves, pairings and RSA fall. Hashes, symmetric ciphers and post-quantum schemes stand until an attack on them is known.",
"examples": "An intelligence agency archiving chain data today, then anyone once a break is public."
}
],
"fields": [
{
"id": "sender",
"label": "Sender",
"subject": "Sender",
"promiseLabel": "Sender privacy",
"description": "The Ethereum address that funds entered from, or that initiated a transfer."
},
{
"id": "recipient",
"label": "Recipient",
"subject": "Recipient",
"promiseLabel": "Recipient privacy",
"description": "Who receives the funds: the address they exit to, the receiver of a transfer, or whoever controls a one-time receiving address."
},
{
"id": "amount",
"label": "Amount",
"subject": "Amounts",
"promiseLabel": "Amount privacy",
"description": "The value moved."
},
{
"id": "asset",
"label": "Asset",
"subject": "Asset",
"promiseLabel": "Asset privacy",
"description": "Which token is moved."
},
{
"id": "linkage",
"label": "Link",
"subject": "Link",
"promiseLabel": "Link privacy",
"description": "Which option a voter chose: the link between a voter's address and their ballot."
}
],
"cells": {
"publicObserver": {
"sentiment": "good",
"exposureShort": "Ballots stay encrypted, and only the totals per option are decrypted.",
"exposureContinued": "A mask looks like a vote, so an input to an address does not prove that its owner voted.",
"sources": [
{
"contract": "CRISPProgram",
"title": "Inputs carry only a commitment to the ciphertext"
},
{
"title": "Votes, updates and masks share one circuit",
"url": "https://github.com/theinterfold/CRISP/blob/35dbda14c4026510ba91e15d700399df115900ab/circuits/bin/crisp_onchain/src/main.nr#L28-L58"
}
],
"id": "publicObserver",
"value": "Link private",
"alsoExposed": []
},
"chainAnalyst": {
"sentiment": "warning",
"exposureShort": "Voting power is public, so the totals per option can reveal how a voter with outsized weight voted.",
"exposureContinued": "A voter whose weight exceeds the totals of all but one option can only have chosen that one. The app's random weight blurs exact matches among smaller voters.",
"advice": "Keep the random weight on.",
"sources": [
{
"title": "Random weight against subset-sum matching",
"url": "https://github.com/theinterfold/the-interfold-governance/blob/28b03a8b529dfa7491f01229724391665f06bd95/app/plugins/crispVoting/utils/ballotWeight.ts#L36-L55"
},
{
"title": "Interfold: the public result can show how a voter voted",
"url": "https://github.com/theinterfold/interfold/blob/c2a28ae6b277aa72a62c34c07142bfadf7c4b4e1/docs/pages/governance.mdx#L237-L270"
}
],
"id": "chainAnalyst",
"value": "Link at risk",
"alsoExposed": []
},
"networkObserver": {
"sentiment": "good",
"exposureShort": "The ballot leaves the browser only as ciphertext with its proof, so traffic shows at most that the user sent a ballot.",
"exposureContinued": "The app reads the chain through the CRISP server and sends ballots to it, so these requests reach no third party. WalletConnect runs with analytics off.",
"sources": [
{
"title": "Chain reads go to the CRISP server first",
"url": "https://github.com/theinterfold/the-interfold-governance/blob/28b03a8b529dfa7491f01229724391665f06bd95/app/constants.ts#L70-L82"
},
{
"title": "Ballots are sent to the CRISP server",
"url": "https://github.com/theinterfold/the-interfold-governance/blob/28b03a8b529dfa7491f01229724391665f06bd95/app/plugins/crispVoting/hooks/useCrispServer.ts#L700-L712"
},
{
"title": "WalletConnect analytics disabled",
"url": "https://github.com/theinterfold/the-interfold-governance/blob/28b03a8b529dfa7491f01229724391665f06bd95/app/context/index.tsx#L32"
}
],
"id": "networkObserver",
"value": "Link private",
"alsoExposed": []
},
"privilegedInsider": {
"sentiment": "bad",
"exposureShort": "Any 10 of the 19 ciphernodes in a vote's committee can combine their key shares and decrypt every ballot of that vote.",
"exposureContinued": "Operators are unnamed, and the lottery limits only each bond-owner address to one seat. The Interfold multisigs can instantly shrink future committees to 3 members, 2 of whom decrypt, and Interfold's hosted app sees the choice before encrypting it.",
"sources": [
{
"title": "Interfold: T + 1 colluding members decrypt individual ballots",
"url": "https://github.com/theinterfold/interfold/blob/c2a28ae6b277aa72a62c34c07142bfadf7c4b4e1/docs/pages/governance.mdx#L244-L245"
},
{
"title": "Committee sizes and decryption thresholds (T + 1)",
"url": "https://github.com/theinterfold/interfold/blob/c2a28ae6b277aa72a62c34c07142bfadf7c4b4e1/packages/interfold-contracts/contracts/lib/ActiveCryptoConfig.sol#L29-L42"
},
{
"contract": "CiphernodeRegistry",
"title": "One seat per bond owner"
},
{
"section": "upgrades-and-governance"
}
],
"id": "privilegedInsider",
"value": "Link exposed",
"alsoExposed": []
},
"futureAdversary": {
"sentiment": "warning",
"exposureShort": "Archived ballots rest on lattice assumptions with no known quantum attack, so a break adds nothing to what the totals show.",
"exposureContinued": "A recovered wallet key can replace a voter's ballot in an open vote but opens no past one. The contracts that verify ballot proofs are unverified, so whether the proofs hide the vote cannot be checked.",
"sources": [
{
"title": "Key shares are BFV-encrypted and never published",
"url": "https://github.com/theinterfold/interfold/blob/c2a28ae6b277aa72a62c34c07142bfadf7c4b4e1/docs/pages/internals/dkg.mdx#L764-L772"
},
{
"contract": "CrispOnchainBallotVerifier",
"title": "Unverified ballot proof verifier"
}
],
"id": "futureAdversary",
"value": "Link at risk",
"alsoExposed": []
}
}
},
"anonymitySet": {
"type": "not-applicable",
"description": "Every ballot names the address it counts for. Only the choice is hidden, among the voters of the same vote."
},
"attributes": [
{
"id": "fhe",
"label": "FHE",
"description": "Uses fully homomorphic encryption for private computation over encrypted values."
},
{
"id": "zk",
"label": "ZK",
"description": "Uses zero-knowledge proofs to prove private actions without revealing private data."
}
],
"category": {
"id": "secretBallot",
"label": "Secret ballot",
"description": "Voters and their voting power are public, ballots are encrypted and only the tally is decrypted. Hides which option each voter chose."
},
"exitWindow": {
"value": "None",
"sentiment": "bad",
"orderHint": 0,
"description": "A 1-of-1 multisig plugin can upgrade the escrow that holds locked FOLD instantly, and the Interfold multisigs can upgrade the bonding registry instantly.",
"walkawayTest": {
"passed": false,
"reason": "Every ballot needs a signature from Interfold's CRISP server, whose address is fixed in CRISPProgram."
}
},
"reproducibility": {
"value": "Partially reproducible",
"sentiment": "warning",
"description": "The contracts, ciphernode software, circuits, CRISP server and app are open source. The two contracts that verify ballot proofs are unverified."
},
"riskSummary": "## Funds can be stolen if\n1. the VotingEscrowMultisig upgrades the escrow that holds locked FOLD, which takes effect instantly.\n2. either Interfold multisig upgrades the bonding registry holding bonded FOLD, which takes effect instantly.\n
\n## Privacy can be lost if\n1. 10 of the 19 ciphernodes in a vote's committee combine their key shares (see privileged insider).\n2. the Interfold multisigs shrink the committee of future votes (see privileged insider).\n3. Interfold's hosted app reads the choice before encrypting it (see privileged insider).\n4. one voter's power exceeds the totals of all but one option (see chain analyst).",
"tokens": [],
"trackedOn": [
"ethereum"
],
"upgradesAndGovernance": {
"content": "InterfoldSafeA (3/5) and InterfoldSafeB (3/5) have the same signers. Through the Admin plugin, either can execute any Interfold DAO action instantly and without a vote. The DAO owns the coordinator, the ciphernode and bonding registries and their proxy admins. The multisigs can therefore upgrade these contracts and change the committee size of future votes. CRISPProgram cannot be upgraded.\n\nDAO proposals pass a CRISP vote of 5 days, then need InterfoldSafeB's approval within 5 days.\n\nVotingEscrowDAO can upgrade the escrow that holds locked FOLD. It executes whatever its 1-of-1 multisig plugin approves. The Interfold DAO can also execute through it."
},
"zkCatalogId": "barretenberg"
}
+1 -0
null
+1 -0
null
+1 -0
null
+1 -0
null
+1 -0
null
+1 -0
null
+1 -0
null
+1 -0
null
+1 -0
null
+1 -0
null
+1 -0
null
+1 -0
null
+1 -0
null
+704 -0
{
"ethereum": {
"roles": [],
"actors": [
{
"id": "InterfoldSafeA",
"name": "InterfoldSafeA",
"description": "A Multisig with 3/5 threshold. \n* Can upgrade **with no delay**\n * BondingRegistry [via: InterfoldDAO → ProxyAdmin]\n * E3RefundManager [via: InterfoldDAO → ProxyAdmin]\n * Interfold [via: InterfoldDAO → ProxyAdmin]\n * InterfoldDAO [via: InterfoldDAO]\n * VotingEscrowDAO [via: InterfoldDAO → VotingEscrowDAO - or InterfoldDAO → VotingEscrowDAO - or InterfoldDAO → VotingEscrowDAO - or InterfoldDAO → VotingEscrowDAO - or InterfoldDAO → VotingEscrowDAO - or InterfoldDAO → VotingEscrowDAO - or InterfoldDAO → VotingEscrowDAO - or InterfoldDAO → VotingEscrowDAO]\n * CiphernodeRegistry [via: InterfoldDAO → ProxyAdmin]\n* Can interact with BondingRegistry\n * replace collateral assets and protocol dependencies; change bond, ticket, eligibility and exit parameters; set the committee-admission cooldown or pause admissions to future committees; authorize slashing managers and reward distributors; clear bans from old managers; withdraw slashed funds; and replace the slashed-funds treasury [via: InterfoldDAO]\n* Can interact with E3RefundManager\n * change the work-allocation split, coordinator and treasury without an onchain delay [via: InterfoldDAO]\n* Can interact with CRISPProgram\n * set census roots and replace the application OpenVM receipt verifier, and with it the image ID, immediately. Such replacement cannot change the verifier snapshotted by Interfold, but can make an in-flight round fail [via: InterfoldDAO]\n* Can interact with Interfold\n * pause or unpause new requests; replace the registry, bonding, slashing, refund and node-release dependencies; allow fee assets and E3 programs; replace proof verifiers; and change pricing (including the flat randomness fee), timeouts, parameter sets and committee thresholds without an onchain delay [via: InterfoldDAO]\n* Can interact with CRISPProgramV2\n * set census roots and replace the application RISC Zero verifier or guest image ID immediately. Such replacement cannot change the verifier snapshotted by Interfold, but can make an in-flight round fail [via: InterfoldDAO]\n* Can interact with InterfoldDAO\n * change multisig plugin target execution configuration [via: InterfoldDAO]\n * change support, participation, duration, proposer-power and minimum-approval requirements for future votes [via: InterfoldDAO]\n * change the settings of the CRISP token-voting plugin used as the IPP voting stage, including the committee size of future votes [via: InterfoldDAO]\n * grant and revoke permissions in the DAO [via: InterfoldDAO]\n * redirect calls made by the Admin plugin to another executor or target [via: InterfoldDAO]\n * redirect passed CRISP vote actions to another executor or target [via: InterfoldDAO]\n * redirect passed Interfold Protocol Proposal actions to another executor or target [via: InterfoldDAO]\n * redirect passed proposal actions to another executor or target [via: InterfoldDAO]\n * redirect passed vote actions to another executor or target [via: InterfoldDAO]\n * replace the address trusted to append the effective caller to IPP proposal transactions [via: InterfoldDAO]\n * replace the address trusted to append the effective caller to proposal transactions [via: InterfoldDAO]\n * replace the rules that gate creation of Interfold Protocol Proposals [via: InterfoldDAO]\n * replace the rules that gate public creation of staged proposals [via: InterfoldDAO]\n * replace the stages, bodies, thresholds and timing rules for future Interfold Protocol Proposals [via: InterfoldDAO]\n * replace the stages, bodies, thresholds and timing rules for future public proposals [via: InterfoldDAO]\n* Can interact with SlashingManager\n * create or disable slash policies, grant or revoke evidence slashers, resolve appeals, close E3 assignments and propose, confirm or remove operator bans [via: InterfoldDAO]\n * replace the coordinator, bonding registry, ciphernode registry and refund manager, and grant or revoke governance membership. A transfer of the default-admin role itself has the configured delay [via: InterfoldDAO]\n* Can interact with CRISPProgram\n * set census roots and replace the application RISC Zero verifier or guest image ID immediately. Such replacement cannot change the verifier snapshotted by Interfold, but can make an in-flight round fail [via: InterfoldDAO]\n* Can interact with NodeReleaseRegistry\n * raise the required ciphernode protocol version and node generation, which instantly invalidates every operator's cached eligibility until they attest the new release. The requirement can only increase, and only while new E3 requests are paused and no E3s or committees are active [via: InterfoldDAO]\n* Can interact with VotingEscrowDAO\n * change cooldowns and exit fees and upgrade the voting-escrow exit queue [via: InterfoldDAO → VotingEscrowDAO]\n * change multisig plugin settings [via: InterfoldDAO → VotingEscrowDAO]\n * change multisig plugin target execution configuration [via: InterfoldDAO → VotingEscrowDAO]\n * change transfer whitelist settings and upgrade the voting-lock NFT [via: InterfoldDAO → VotingEscrowDAO]\n * change voting epochs and upgrade the voting-escrow Clock [via: InterfoldDAO → VotingEscrowDAO]\n * change voting-power curve parameters and upgrade the Curve implementation [via: InterfoldDAO → VotingEscrowDAO]\n * complete queued voting-escrow withdrawals [via: InterfoldDAO → VotingEscrowDAO]\n * grant and revoke permissions in the voting-escrow DAO [via: InterfoldDAO → VotingEscrowDAO]\n * manage gauge metadata and the voting-power update hook [via: InterfoldDAO → VotingEscrowDAO]\n * pause and unpause voting-escrow operations [via: InterfoldDAO → VotingEscrowDAO]\n * pause the escrow voting-power adapter, manage delegation settings and upgrade its implementation [via: InterfoldDAO → VotingEscrowDAO]\n * replace voting-power dependencies, change minimum deposits and split rules, and upgrade VotingEscrow [via: InterfoldDAO → VotingEscrowDAO]\n * sweep unaccounted tokens and NFTs from VotingEscrow [via: InterfoldDAO → VotingEscrowDAO]\n * update delegated voting power through the escrow voting adapter [via: InterfoldDAO → VotingEscrowDAO]\n* Can interact with InterfoldTicketToken\n * schedule and activate a registry replacement after one day when all ticket liabilities are zero, and rescue ERC-20s other than the underlying sUSDS [via: InterfoldDAO]\n* Can interact with RandomnessProvider\n * replace the Chainlink VRF coordinator that delivers the sortition entropy [via: InterfoldDAO]\n* Can interact with CiphernodeRegistry\n * replace the coordinator, bonding, slashing and randomness-provider dependencies; add or remove ciphernodes; change the sortition window and randomness timeout; and update the DKG verifier and accusation-vote validity parameters. DKG-verifier replacement and risk-reducing accusation-window changes use a two-day propose/commit delay, while other changes are immediate. Randomness settings can only change while new requests are paused and no committees are outstanding [via: InterfoldDAO]\n* Can interact with FOLD\n * create immutable vesting policies, link claimed balances to policies and exempt accounts from automatic claim locks until the immutable lock cutoff \n * grant and revoke FOLD roles. The role's direct mint function permanently reverts after TGE ",
"accounts": [
{
"address": "eth:0x5429D8c7fD14023f3c414126F94BbE25A05fC018",
"type": "Contract",
"isVerified": true,
"name": "0x5429…C018",
"url": "https://etherscan.io/address/0x5429D8c7fD14023f3c414126F94BbE25A05fC018"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0xCb83ef506989534463a0E3F6E5526a8FE26897B3",
"type": "EOA",
"isVerified": true,
"name": "0xCb83…97B3",
"url": "https://etherscan.io/address/0xCb83ef506989534463a0E3F6E5526a8FE26897B3"
},
{
"address": "eth:0xA8C3c4B6aE7f31193057A6d8833980853Ef71f85",
"type": "EOA",
"isVerified": true,
"name": "0xA8C3…1f85",
"url": "https://etherscan.io/address/0xA8C3c4B6aE7f31193057A6d8833980853Ef71f85"
},
{
"address": "eth:0xC3F8EBC47A4C47D91b643a4C64d34eA7B2584260",
"type": "EOA",
"isVerified": true,
"name": "0xC3F8…4260",
"url": "https://etherscan.io/address/0xC3F8EBC47A4C47D91b643a4C64d34eA7B2584260"
},
{
"address": "eth:0x26f8034baBfbcA2233350a0Dca1CCcE3d01Fa41F",
"type": "EOA",
"isVerified": true,
"name": "0x26f8…a41F",
"url": "https://etherscan.io/address/0x26f8034baBfbcA2233350a0Dca1CCcE3d01Fa41F"
},
{
"address": "eth:0x7b4273f9291aEAC9ea85f44093Aca5fC873A7Cf5",
"type": "EOA",
"isVerified": true,
"name": "0x7b42…7Cf5",
"url": "https://etherscan.io/address/0x7b4273f9291aEAC9ea85f44093Aca5fC873A7Cf5"
}
],
"discoveryDrivenData": true
},
{
"id": "PublicStagedProposalProcessor",
"name": "PublicStagedProposalProcessor",
"accounts": [
{
"address": "eth:0x9c0Ff283399Bd1D3111E6c9C689066759b7AccDb",
"type": "Contract",
"isVerified": true,
"name": "0x9c0F…ccDb",
"url": "https://etherscan.io/address/0x9c0Ff283399Bd1D3111E6c9C689066759b7AccDb"
}
],
"chain": "ethereum",
"description": "Upgradeable Aragon staged-proposal plugin that executes DAO actions after proposals pass its configured sequence of voting or manual bodies, thresholds and timing windows.\n* Can upgrade **with no delay**\n * BondingRegistry [via: InterfoldDAO → ProxyAdmin]\n * E3RefundManager [via: InterfoldDAO → ProxyAdmin]\n * Interfold [via: InterfoldDAO → ProxyAdmin]\n * InterfoldDAO [via: InterfoldDAO]\n * VotingEscrowDAO [via: InterfoldDAO → VotingEscrowDAO - or InterfoldDAO → VotingEscrowDAO - or InterfoldDAO → VotingEscrowDAO - or InterfoldDAO → VotingEscrowDAO - or InterfoldDAO → VotingEscrowDAO - or InterfoldDAO → VotingEscrowDAO - or InterfoldDAO → VotingEscrowDAO - or InterfoldDAO → VotingEscrowDAO]\n * CiphernodeRegistry [via: InterfoldDAO → ProxyAdmin]\n* Can interact with BondingRegistry\n * replace collateral assets and protocol dependencies; change bond, ticket, eligibility and exit parameters; set the committee-admission cooldown or pause admissions to future committees; authorize slashing managers and reward distributors; clear bans from old managers; withdraw slashed funds; and replace the slashed-funds treasury [via: InterfoldDAO]\n* Can interact with E3RefundManager\n * change the work-allocation split, coordinator and treasury without an onchain delay [via: InterfoldDAO]\n* Can interact with CRISPProgram\n * set census roots and replace the application OpenVM receipt verifier, and with it the image ID, immediately. Such replacement cannot change the verifier snapshotted by Interfold, but can make an in-flight round fail [via: InterfoldDAO]\n* Can interact with Interfold\n * pause or unpause new requests; replace the registry, bonding, slashing, refund and node-release dependencies; allow fee assets and E3 programs; replace proof verifiers; and change pricing (including the flat randomness fee), timeouts, parameter sets and committee thresholds without an onchain delay [via: InterfoldDAO]\n* Can interact with CRISPProgramV2\n * set census roots and replace the application RISC Zero verifier or guest image ID immediately. Such replacement cannot change the verifier snapshotted by Interfold, but can make an in-flight round fail [via: InterfoldDAO]\n* Can interact with InterfoldDAO\n * change multisig plugin target execution configuration [via: InterfoldDAO - or - acting directly]\n * change support, participation, duration, proposer-power and minimum-approval requirements for future votes [via: InterfoldDAO]\n * change the settings of the CRISP token-voting plugin used as the IPP voting stage, including the committee size of future votes [via: InterfoldDAO]\n * grant and revoke permissions in the DAO [via: InterfoldDAO]\n * open a token vote using the caller-supplied proposal payload \n * redirect calls made by the Admin plugin to another executor or target [via: InterfoldDAO]\n * redirect passed CRISP vote actions to another executor or target [via: InterfoldDAO]\n * redirect passed Interfold Protocol Proposal actions to another executor or target [via: InterfoldDAO]\n * redirect passed proposal actions to another executor or target [via: InterfoldDAO]\n * redirect passed vote actions to another executor or target [via: InterfoldDAO]\n * replace the address trusted to append the effective caller to IPP proposal transactions [via: InterfoldDAO]\n * replace the address trusted to append the effective caller to proposal transactions [via: InterfoldDAO]\n * replace the rules that gate creation of Interfold Protocol Proposals [via: InterfoldDAO]\n * replace the rules that gate public creation of staged proposals [via: InterfoldDAO]\n * replace the stages, bodies, thresholds and timing rules for future Interfold Protocol Proposals [via: InterfoldDAO]\n * replace the stages, bodies, thresholds and timing rules for future public proposals [via: InterfoldDAO]\n* Can interact with SlashingManager\n * create or disable slash policies, grant or revoke evidence slashers, resolve appeals, close E3 assignments and propose, confirm or remove operator bans [via: InterfoldDAO]\n * replace the coordinator, bonding registry, ciphernode registry and refund manager, and grant or revoke governance membership. A transfer of the default-admin role itself has the configured delay [via: InterfoldDAO]\n* Can interact with CRISPProgram\n * set census roots and replace the application RISC Zero verifier or guest image ID immediately. Such replacement cannot change the verifier snapshotted by Interfold, but can make an in-flight round fail [via: InterfoldDAO]\n* Can interact with NodeReleaseRegistry\n * raise the required ciphernode protocol version and node generation, which instantly invalidates every operator's cached eligibility until they attest the new release. The requirement can only increase, and only while new E3 requests are paused and no E3s or committees are active [via: InterfoldDAO]\n* Can interact with VotingEscrowDAO\n * change cooldowns and exit fees and upgrade the voting-escrow exit queue [via: InterfoldDAO → VotingEscrowDAO]\n * change multisig plugin settings [via: InterfoldDAO → VotingEscrowDAO]\n * change multisig plugin target execution configuration [via: InterfoldDAO → VotingEscrowDAO]\n * change transfer whitelist settings and upgrade the voting-lock NFT [via: InterfoldDAO → VotingEscrowDAO]\n * change voting epochs and upgrade the voting-escrow Clock [via: InterfoldDAO → VotingEscrowDAO]\n * change voting-power curve parameters and upgrade the Curve implementation [via: InterfoldDAO → VotingEscrowDAO]\n * complete queued voting-escrow withdrawals [via: InterfoldDAO → VotingEscrowDAO]\n * grant and revoke permissions in the voting-escrow DAO [via: InterfoldDAO → VotingEscrowDAO]\n * manage gauge metadata and the voting-power update hook [via: InterfoldDAO → VotingEscrowDAO]\n * pause and unpause voting-escrow operations [via: InterfoldDAO → VotingEscrowDAO]\n * pause the escrow voting-power adapter, manage delegation settings and upgrade its implementation [via: InterfoldDAO → VotingEscrowDAO]\n * replace voting-power dependencies, change minimum deposits and split rules, and upgrade VotingEscrow [via: InterfoldDAO → VotingEscrowDAO]\n * sweep unaccounted tokens and NFTs from VotingEscrow [via: InterfoldDAO → VotingEscrowDAO]\n * update delegated voting power through the escrow voting adapter [via: InterfoldDAO → VotingEscrowDAO]\n* Can interact with InterfoldTicketToken\n * schedule and activate a registry replacement after one day when all ticket liabilities are zero, and rescue ERC-20s other than the underlying sUSDS [via: InterfoldDAO]\n* Can interact with RandomnessProvider\n * replace the Chainlink VRF coordinator that delivers the sortition entropy [via: InterfoldDAO]\n* Can interact with CiphernodeRegistry\n * replace the coordinator, bonding, slashing and randomness-provider dependencies; add or remove ciphernodes; change the sortition window and randomness timeout; and update the DKG verifier and accusation-vote validity parameters. DKG-verifier replacement and risk-reducing accusation-window changes use a two-day propose/commit delay, while other changes are immediate. Randomness settings can only change while new requests are paused and no committees are outstanding [via: InterfoldDAO]",
"discoveryDrivenData": true
},
{
"id": "ProtocolProposalProcessor",
"name": "ProtocolProposalProcessor",
"accounts": [
{
"address": "eth:0xc19635aD8De0a0D6430025fC5ed212CA8216bab3",
"type": "Contract",
"isVerified": true,
"name": "0xc196…bab3",
"url": "https://etherscan.io/address/0xc19635aD8De0a0D6430025fC5ed212CA8216bab3"
}
],
"chain": "ethereum",
"description": "Upgradeable Aragon staged-proposal plugin that executes DAO actions after proposals pass its configured sequence of voting or manual bodies, thresholds and timing windows.\n* Can upgrade **with no delay**\n * BondingRegistry [via: InterfoldDAO → ProxyAdmin]\n * E3RefundManager [via: InterfoldDAO → ProxyAdmin]\n * Interfold [via: InterfoldDAO → ProxyAdmin]\n * InterfoldDAO [via: InterfoldDAO]\n * VotingEscrowDAO [via: InterfoldDAO → VotingEscrowDAO - or InterfoldDAO → VotingEscrowDAO - or InterfoldDAO → VotingEscrowDAO - or InterfoldDAO → VotingEscrowDAO - or InterfoldDAO → VotingEscrowDAO - or InterfoldDAO → VotingEscrowDAO - or InterfoldDAO → VotingEscrowDAO - or InterfoldDAO → VotingEscrowDAO]\n * CiphernodeRegistry [via: InterfoldDAO → ProxyAdmin]\n* Can interact with BondingRegistry\n * replace collateral assets and protocol dependencies; change bond, ticket, eligibility and exit parameters; set the committee-admission cooldown or pause admissions to future committees; authorize slashing managers and reward distributors; clear bans from old managers; withdraw slashed funds; and replace the slashed-funds treasury [via: InterfoldDAO]\n* Can interact with E3RefundManager\n * change the work-allocation split, coordinator and treasury without an onchain delay [via: InterfoldDAO]\n* Can interact with CRISPProgram\n * set census roots and replace the application OpenVM receipt verifier, and with it the image ID, immediately. Such replacement cannot change the verifier snapshotted by Interfold, but can make an in-flight round fail [via: InterfoldDAO]\n* Can interact with Interfold\n * pause or unpause new requests; replace the registry, bonding, slashing, refund and node-release dependencies; allow fee assets and E3 programs; replace proof verifiers; and change pricing (including the flat randomness fee), timeouts, parameter sets and committee thresholds without an onchain delay [via: InterfoldDAO]\n* Can interact with CRISPProgramV2\n * set census roots and replace the application RISC Zero verifier or guest image ID immediately. Such replacement cannot change the verifier snapshotted by Interfold, but can make an in-flight round fail [via: InterfoldDAO]\n* Can interact with InterfoldDAO\n * change multisig plugin target execution configuration [via: InterfoldDAO - or - acting directly]\n * change support, participation, duration, proposer-power and minimum-approval requirements for future votes [via: InterfoldDAO]\n * change the settings of the CRISP token-voting plugin used as the IPP voting stage, including the committee size of future votes [via: InterfoldDAO]\n * grant and revoke permissions in the DAO [via: InterfoldDAO]\n * open a CRISP token vote using the caller-supplied proposal payload \n * redirect calls made by the Admin plugin to another executor or target [via: InterfoldDAO]\n * redirect passed CRISP vote actions to another executor or target [via: InterfoldDAO]\n * redirect passed Interfold Protocol Proposal actions to another executor or target [via: InterfoldDAO]\n * redirect passed proposal actions to another executor or target [via: InterfoldDAO]\n * redirect passed vote actions to another executor or target [via: InterfoldDAO]\n * replace the address trusted to append the effective caller to IPP proposal transactions [via: InterfoldDAO]\n * replace the address trusted to append the effective caller to proposal transactions [via: InterfoldDAO]\n * replace the rules that gate creation of Interfold Protocol Proposals [via: InterfoldDAO]\n * replace the rules that gate public creation of staged proposals [via: InterfoldDAO]\n * replace the stages, bodies, thresholds and timing rules for future Interfold Protocol Proposals [via: InterfoldDAO]\n * replace the stages, bodies, thresholds and timing rules for future public proposals [via: InterfoldDAO]\n* Can interact with SlashingManager\n * create or disable slash policies, grant or revoke evidence slashers, resolve appeals, close E3 assignments and propose, confirm or remove operator bans [via: InterfoldDAO]\n * replace the coordinator, bonding registry, ciphernode registry and refund manager, and grant or revoke governance membership. A transfer of the default-admin role itself has the configured delay [via: InterfoldDAO]\n* Can interact with CRISPProgram\n * set census roots and replace the application RISC Zero verifier or guest image ID immediately. Such replacement cannot change the verifier snapshotted by Interfold, but can make an in-flight round fail [via: InterfoldDAO]\n* Can interact with NodeReleaseRegistry\n * raise the required ciphernode protocol version and node generation, which instantly invalidates every operator's cached eligibility until they attest the new release. The requirement can only increase, and only while new E3 requests are paused and no E3s or committees are active [via: InterfoldDAO]\n* Can interact with VotingEscrowDAO\n * change cooldowns and exit fees and upgrade the voting-escrow exit queue [via: InterfoldDAO → VotingEscrowDAO]\n * change multisig plugin settings [via: InterfoldDAO → VotingEscrowDAO]\n * change multisig plugin target execution configuration [via: InterfoldDAO → VotingEscrowDAO]\n * change transfer whitelist settings and upgrade the voting-lock NFT [via: InterfoldDAO → VotingEscrowDAO]\n * change voting epochs and upgrade the voting-escrow Clock [via: InterfoldDAO → VotingEscrowDAO]\n * change voting-power curve parameters and upgrade the Curve implementation [via: InterfoldDAO → VotingEscrowDAO]\n * complete queued voting-escrow withdrawals [via: InterfoldDAO → VotingEscrowDAO]\n * grant and revoke permissions in the voting-escrow DAO [via: InterfoldDAO → VotingEscrowDAO]\n * manage gauge metadata and the voting-power update hook [via: InterfoldDAO → VotingEscrowDAO]\n * pause and unpause voting-escrow operations [via: InterfoldDAO → VotingEscrowDAO]\n * pause the escrow voting-power adapter, manage delegation settings and upgrade its implementation [via: InterfoldDAO → VotingEscrowDAO]\n * replace voting-power dependencies, change minimum deposits and split rules, and upgrade VotingEscrow [via: InterfoldDAO → VotingEscrowDAO]\n * sweep unaccounted tokens and NFTs from VotingEscrow [via: InterfoldDAO → VotingEscrowDAO]\n * update delegated voting power through the escrow voting adapter [via: InterfoldDAO → VotingEscrowDAO]\n* Can interact with InterfoldTicketToken\n * schedule and activate a registry replacement after one day when all ticket liabilities are zero, and rescue ERC-20s other than the underlying sUSDS [via: InterfoldDAO]\n* Can interact with RandomnessProvider\n * replace the Chainlink VRF coordinator that delivers the sortition entropy [via: InterfoldDAO]\n* Can interact with CiphernodeRegistry\n * replace the coordinator, bonding, slashing and randomness-provider dependencies; add or remove ciphernodes; change the sortition window and randomness timeout; and update the DKG verifier and accusation-vote validity parameters. DKG-verifier replacement and risk-reducing accusation-window changes use a two-day propose/commit delay, while other changes are immediate. Randomness settings can only change while new requests are paused and no committees are outstanding [via: InterfoldDAO]",
"discoveryDrivenData": true
},
{
"id": "AdminPlugin",
"name": "AdminPlugin",
"accounts": [
{
"address": "eth:0xF21e25455988887EE797050080141eba67B33920",
"type": "Contract",
"isVerified": true,
"name": "0xF21e…3920",
"url": "https://etherscan.io/address/0xF21e25455988887EE797050080141eba67B33920"
}
],
"chain": "ethereum",
"description": "Non-upgradeable Aragon Admin plugin. Holders of its DAO-granted EXECUTE_PROPOSAL permission can submit actions that the plugin forwards immediately, without a vote or onchain delay.\n* Can upgrade **with no delay**\n * BondingRegistry [via: InterfoldDAO → ProxyAdmin]\n * E3RefundManager [via: InterfoldDAO → ProxyAdmin]\n * Interfold [via: InterfoldDAO → ProxyAdmin]\n * InterfoldDAO [via: InterfoldDAO]\n * VotingEscrowDAO [via: InterfoldDAO → VotingEscrowDAO - or InterfoldDAO → VotingEscrowDAO - or InterfoldDAO → VotingEscrowDAO - or InterfoldDAO → VotingEscrowDAO - or InterfoldDAO → VotingEscrowDAO - or InterfoldDAO → VotingEscrowDAO - or InterfoldDAO → VotingEscrowDAO - or InterfoldDAO → VotingEscrowDAO]\n * CiphernodeRegistry [via: InterfoldDAO → ProxyAdmin]\n* Can interact with BondingRegistry\n * replace collateral assets and protocol dependencies; change bond, ticket, eligibility and exit parameters; set the committee-admission cooldown or pause admissions to future committees; authorize slashing managers and reward distributors; clear bans from old managers; withdraw slashed funds; and replace the slashed-funds treasury [via: InterfoldDAO]\n* Can interact with E3RefundManager\n * change the work-allocation split, coordinator and treasury without an onchain delay [via: InterfoldDAO]\n* Can interact with CRISPProgram\n * set census roots and replace the application OpenVM receipt verifier, and with it the image ID, immediately. Such replacement cannot change the verifier snapshotted by Interfold, but can make an in-flight round fail [via: InterfoldDAO]\n* Can interact with Interfold\n * pause or unpause new requests; replace the registry, bonding, slashing, refund and node-release dependencies; allow fee assets and E3 programs; replace proof verifiers; and change pricing (including the flat randomness fee), timeouts, parameter sets and committee thresholds without an onchain delay [via: InterfoldDAO]\n* Can interact with CRISPProgramV2\n * set census roots and replace the application RISC Zero verifier or guest image ID immediately. Such replacement cannot change the verifier snapshotted by Interfold, but can make an in-flight round fail [via: InterfoldDAO]\n* Can interact with InterfoldDAO\n * change multisig plugin target execution configuration [via: InterfoldDAO - or - acting directly]\n * change support, participation, duration, proposer-power and minimum-approval requirements for future votes [via: InterfoldDAO]\n * change the settings of the CRISP token-voting plugin used as the IPP voting stage, including the committee size of future votes [via: InterfoldDAO]\n * grant and revoke permissions in the DAO [via: InterfoldDAO]\n * redirect calls made by the Admin plugin to another executor or target [via: InterfoldDAO]\n * redirect passed CRISP vote actions to another executor or target [via: InterfoldDAO]\n * redirect passed Interfold Protocol Proposal actions to another executor or target [via: InterfoldDAO]\n * redirect passed proposal actions to another executor or target [via: InterfoldDAO]\n * redirect passed vote actions to another executor or target [via: InterfoldDAO]\n * replace the address trusted to append the effective caller to IPP proposal transactions [via: InterfoldDAO]\n * replace the address trusted to append the effective caller to proposal transactions [via: InterfoldDAO]\n * replace the rules that gate creation of Interfold Protocol Proposals [via: InterfoldDAO]\n * replace the rules that gate public creation of staged proposals [via: InterfoldDAO]\n * replace the stages, bodies, thresholds and timing rules for future Interfold Protocol Proposals [via: InterfoldDAO]\n * replace the stages, bodies, thresholds and timing rules for future public proposals [via: InterfoldDAO]\n* Can interact with SlashingManager\n * create or disable slash policies, grant or revoke evidence slashers, resolve appeals, close E3 assignments and propose, confirm or remove operator bans [via: InterfoldDAO]\n * replace the coordinator, bonding registry, ciphernode registry and refund manager, and grant or revoke governance membership. A transfer of the default-admin role itself has the configured delay [via: InterfoldDAO]\n* Can interact with CRISPProgram\n * set census roots and replace the application RISC Zero verifier or guest image ID immediately. Such replacement cannot change the verifier snapshotted by Interfold, but can make an in-flight round fail [via: InterfoldDAO]\n* Can interact with NodeReleaseRegistry\n * raise the required ciphernode protocol version and node generation, which instantly invalidates every operator's cached eligibility until they attest the new release. The requirement can only increase, and only while new E3 requests are paused and no E3s or committees are active [via: InterfoldDAO]\n* Can interact with VotingEscrowDAO\n * change cooldowns and exit fees and upgrade the voting-escrow exit queue [via: InterfoldDAO → VotingEscrowDAO]\n * change multisig plugin settings [via: InterfoldDAO → VotingEscrowDAO]\n * change multisig plugin target execution configuration [via: InterfoldDAO → VotingEscrowDAO]\n * change transfer whitelist settings and upgrade the voting-lock NFT [via: InterfoldDAO → VotingEscrowDAO]\n * change voting epochs and upgrade the voting-escrow Clock [via: InterfoldDAO → VotingEscrowDAO]\n * change voting-power curve parameters and upgrade the Curve implementation [via: InterfoldDAO → VotingEscrowDAO]\n * complete queued voting-escrow withdrawals [via: InterfoldDAO → VotingEscrowDAO]\n * grant and revoke permissions in the voting-escrow DAO [via: InterfoldDAO → VotingEscrowDAO]\n * manage gauge metadata and the voting-power update hook [via: InterfoldDAO → VotingEscrowDAO]\n * pause and unpause voting-escrow operations [via: InterfoldDAO → VotingEscrowDAO]\n * pause the escrow voting-power adapter, manage delegation settings and upgrade its implementation [via: InterfoldDAO → VotingEscrowDAO]\n * replace voting-power dependencies, change minimum deposits and split rules, and upgrade VotingEscrow [via: InterfoldDAO → VotingEscrowDAO]\n * sweep unaccounted tokens and NFTs from VotingEscrow [via: InterfoldDAO → VotingEscrowDAO]\n * update delegated voting power through the escrow voting adapter [via: InterfoldDAO → VotingEscrowDAO]\n* Can interact with InterfoldTicketToken\n * schedule and activate a registry replacement after one day when all ticket liabilities are zero, and rescue ERC-20s other than the underlying sUSDS [via: InterfoldDAO]\n* Can interact with RandomnessProvider\n * replace the Chainlink VRF coordinator that delivers the sortition entropy [via: InterfoldDAO]\n* Can interact with CiphernodeRegistry\n * replace the coordinator, bonding, slashing and randomness-provider dependencies; add or remove ciphernodes; change the sortition window and randomness timeout; and update the DKG verifier and accusation-vote validity parameters. DKG-verifier replacement and risk-reducing accusation-window changes use a two-day propose/commit delay, while other changes are immediate. Randomness settings can only change while new requests are paused and no committees are outstanding [via: InterfoldDAO]",
"discoveryDrivenData": true
},
{
"id": "InterfoldSafeB",
"name": "InterfoldSafeB",
"description": "A Multisig with 3/5 threshold. \n* Can upgrade **with no delay**\n * BondingRegistry [via: InterfoldDAO → ProxyAdmin]\n * E3RefundManager [via: InterfoldDAO → ProxyAdmin]\n * Interfold [via: InterfoldDAO → ProxyAdmin]\n * InterfoldDAO [via: InterfoldDAO]\n * VotingEscrowDAO [via: InterfoldDAO → VotingEscrowDAO - or InterfoldDAO → VotingEscrowDAO - or InterfoldDAO → VotingEscrowDAO - or InterfoldDAO → VotingEscrowDAO - or InterfoldDAO → VotingEscrowDAO - or InterfoldDAO → VotingEscrowDAO - or InterfoldDAO → VotingEscrowDAO - or InterfoldDAO → VotingEscrowDAO]\n * CiphernodeRegistry [via: InterfoldDAO → ProxyAdmin]\n* Can interact with BondingRegistry\n * replace collateral assets and protocol dependencies; change bond, ticket, eligibility and exit parameters; set the committee-admission cooldown or pause admissions to future committees; authorize slashing managers and reward distributors; clear bans from old managers; withdraw slashed funds; and replace the slashed-funds treasury [via: InterfoldDAO]\n* Can interact with E3RefundManager\n * change the work-allocation split, coordinator and treasury without an onchain delay [via: InterfoldDAO]\n* Can interact with CRISPProgram\n * set census roots and replace the application OpenVM receipt verifier, and with it the image ID, immediately. Such replacement cannot change the verifier snapshotted by Interfold, but can make an in-flight round fail [via: InterfoldDAO]\n* Can interact with Interfold\n * pause or unpause new requests; replace the registry, bonding, slashing, refund and node-release dependencies; allow fee assets and E3 programs; replace proof verifiers; and change pricing (including the flat randomness fee), timeouts, parameter sets and committee thresholds without an onchain delay [via: InterfoldDAO]\n* Can interact with CRISPProgramV2\n * set census roots and replace the application RISC Zero verifier or guest image ID immediately. Such replacement cannot change the verifier snapshotted by Interfold, but can make an in-flight round fail [via: InterfoldDAO]\n* Can interact with InterfoldDAO\n * change multisig plugin target execution configuration [via: InterfoldDAO]\n * change support, participation, duration, proposer-power and minimum-approval requirements for future votes [via: InterfoldDAO]\n * change the settings of the CRISP token-voting plugin used as the IPP voting stage, including the committee size of future votes [via: InterfoldDAO]\n * grant and revoke permissions in the DAO [via: InterfoldDAO]\n * redirect calls made by the Admin plugin to another executor or target [via: InterfoldDAO]\n * redirect passed CRISP vote actions to another executor or target [via: InterfoldDAO]\n * redirect passed Interfold Protocol Proposal actions to another executor or target [via: InterfoldDAO]\n * redirect passed proposal actions to another executor or target [via: InterfoldDAO]\n * redirect passed vote actions to another executor or target [via: InterfoldDAO]\n * replace the address trusted to append the effective caller to IPP proposal transactions [via: InterfoldDAO]\n * replace the address trusted to append the effective caller to proposal transactions [via: InterfoldDAO]\n * replace the rules that gate creation of Interfold Protocol Proposals [via: InterfoldDAO]\n * replace the rules that gate public creation of staged proposals [via: InterfoldDAO]\n * replace the stages, bodies, thresholds and timing rules for future Interfold Protocol Proposals [via: InterfoldDAO]\n * replace the stages, bodies, thresholds and timing rules for future public proposals [via: InterfoldDAO]\n* Can interact with SlashingManager\n * create or disable slash policies, grant or revoke evidence slashers, resolve appeals, close E3 assignments and propose, confirm or remove operator bans [via: InterfoldDAO]\n * replace the coordinator, bonding registry, ciphernode registry and refund manager, and grant or revoke governance membership. A transfer of the default-admin role itself has the configured delay [via: InterfoldDAO]\n* Can interact with CRISPProgram\n * set census roots and replace the application RISC Zero verifier or guest image ID immediately. Such replacement cannot change the verifier snapshotted by Interfold, but can make an in-flight round fail [via: InterfoldDAO]\n* Can interact with NodeReleaseRegistry\n * raise the required ciphernode protocol version and node generation, which instantly invalidates every operator's cached eligibility until they attest the new release. The requirement can only increase, and only while new E3 requests are paused and no E3s or committees are active [via: InterfoldDAO]\n* Can interact with VotingEscrowDAO\n * change cooldowns and exit fees and upgrade the voting-escrow exit queue [via: InterfoldDAO → VotingEscrowDAO]\n * change multisig plugin settings [via: InterfoldDAO → VotingEscrowDAO]\n * change multisig plugin target execution configuration [via: InterfoldDAO → VotingEscrowDAO]\n * change transfer whitelist settings and upgrade the voting-lock NFT [via: InterfoldDAO → VotingEscrowDAO]\n * change voting epochs and upgrade the voting-escrow Clock [via: InterfoldDAO → VotingEscrowDAO]\n * change voting-power curve parameters and upgrade the Curve implementation [via: InterfoldDAO → VotingEscrowDAO]\n * complete queued voting-escrow withdrawals [via: InterfoldDAO → VotingEscrowDAO]\n * grant and revoke permissions in the voting-escrow DAO [via: InterfoldDAO → VotingEscrowDAO]\n * manage gauge metadata and the voting-power update hook [via: InterfoldDAO → VotingEscrowDAO]\n * pause and unpause voting-escrow operations [via: InterfoldDAO → VotingEscrowDAO]\n * pause the escrow voting-power adapter, manage delegation settings and upgrade its implementation [via: InterfoldDAO → VotingEscrowDAO]\n * replace voting-power dependencies, change minimum deposits and split rules, and upgrade VotingEscrow [via: InterfoldDAO → VotingEscrowDAO]\n * sweep unaccounted tokens and NFTs from VotingEscrow [via: InterfoldDAO → VotingEscrowDAO]\n * update delegated voting power through the escrow voting adapter [via: InterfoldDAO → VotingEscrowDAO]\n* Can interact with InterfoldTicketToken\n * schedule and activate a registry replacement after one day when all ticket liabilities are zero, and rescue ERC-20s other than the underlying sUSDS [via: InterfoldDAO]\n* Can interact with RandomnessProvider\n * replace the Chainlink VRF coordinator that delivers the sortition entropy [via: InterfoldDAO]\n* Can interact with CiphernodeRegistry\n * replace the coordinator, bonding, slashing and randomness-provider dependencies; add or remove ciphernodes; change the sortition window and randomness timeout; and update the DKG verifier and accusation-vote validity parameters. DKG-verifier replacement and risk-reducing accusation-window changes use a two-day propose/commit delay, while other changes are immediate. Randomness settings can only change while new requests are paused and no committees are outstanding [via: InterfoldDAO]",
"accounts": [
{
"address": "eth:0x8B43b2852fc5031D01DDfCDF702973D93A2FF593",
"type": "Contract",
"isVerified": true,
"name": "0x8B43…F593",
"url": "https://etherscan.io/address/0x8B43b2852fc5031D01DDfCDF702973D93A2FF593"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0xCb83ef506989534463a0E3F6E5526a8FE26897B3",
"type": "EOA",
"isVerified": true,
"name": "0xCb83…97B3",
"url": "https://etherscan.io/address/0xCb83ef506989534463a0E3F6E5526a8FE26897B3"
},
{
"address": "eth:0xA8C3c4B6aE7f31193057A6d8833980853Ef71f85",
"type": "EOA",
"isVerified": true,
"name": "0xA8C3…1f85",
"url": "https://etherscan.io/address/0xA8C3c4B6aE7f31193057A6d8833980853Ef71f85"
},
{
"address": "eth:0xC3F8EBC47A4C47D91b643a4C64d34eA7B2584260",
"type": "EOA",
"isVerified": true,
"name": "0xC3F8…4260",
"url": "https://etherscan.io/address/0xC3F8EBC47A4C47D91b643a4C64d34eA7B2584260"
},
{
"address": "eth:0x26f8034baBfbcA2233350a0Dca1CCcE3d01Fa41F",
"type": "EOA",
"isVerified": true,
"name": "0x26f8…a41F",
"url": "https://etherscan.io/address/0x26f8034baBfbcA2233350a0Dca1CCcE3d01Fa41F"
},
{
"address": "eth:0x7b4273f9291aEAC9ea85f44093Aca5fC873A7Cf5",
"type": "EOA",
"isVerified": true,
"name": "0x7b42…7Cf5",
"url": "https://etherscan.io/address/0x7b4273f9291aEAC9ea85f44093Aca5fC873A7Cf5"
}
],
"discoveryDrivenData": true
},
{
"id": "BondingRegistry",
"name": "BondingRegistry",
"accounts": [
{
"address": "eth:0x0ec90465095C21830BEcED07e032809A2Bd2915F",
"type": "Contract",
"isVerified": true,
"name": "0x0ec9…915F",
"url": "https://etherscan.io/address/0x0ec90465095C21830BEcED07e032809A2Bd2915F"
}
],
"chain": "ethereum",
"description": "Collateral registry for ciphernode operators. Operators become eligible by depositing ticket collateral backed by sUSDS and a FOLD bond, and by attesting a current software release in the NodeReleaseRegistry; the contract also enforces exits, committee obligations, bans and slashing debits. It checkpoints bond ownership so that committee sortition admits at most one operator key per bond owner, and applies an owner-set admission policy (cooldown and pause) to future committees.\n* Can interact with InterfoldTicketToken\n * deposit and withdraw underlying sUSDS, mint and burn ticket tokens, and pay out underlying reserved by ticket slashing \n* Can interact with CiphernodeRegistry\n * add and remove ciphernode operator keys as collateral positions are registered and exited \n* Can interact with BondedCheckpoints\n * write bonded-FOLD voting-power checkpoints ",
"discoveryDrivenData": true
},
{
"id": "Interfold",
"name": "Interfold",
"accounts": [
{
"address": "eth:0x28cF63B459e6218C69EA97ea7D90541cf648c715",
"type": "Contract",
"isVerified": true,
"name": "0x28cF…c715",
"url": "https://etherscan.io/address/0x28cF63B459e6218C69EA97ea7D90541cf648c715"
}
],
"chain": "ethereum",
"description": "Coordinator for Encrypted Execution Environments (E3s). It accepts requests for allowlisted programs, selects a ciphernode committee, snapshots the configured proof system, and verifies the encrypted result and threshold decryption before publishing plaintext output.\n* Can interact with BondingRegistry\n * deposit and credit ticket collateral for an operator \n* Can interact with E3RefundManager\n * snapshot E3 refund policy and credit protocol payments \n* Can interact with CiphernodeRegistry\n * request and release E3 committees ",
"discoveryDrivenData": true
},
{
"id": "SlashingManager",
"name": "SlashingManager",
"accounts": [
{
"address": "eth:0x753109Ee36Dc65cC178875AddA30C6433e5bEEe4",
"type": "Contract",
"isVerified": true,
"name": "0x7531…EEe4",
"url": "https://etherscan.io/address/0x753109Ee36Dc65cC178875AddA30C6433e5bEEe4"
}
],
"chain": "ethereum",
"description": "Policy and evidence router for ciphernode penalties, appeals and bans. Slashing is effective only for reasons with an enabled policy and through a manager authorized by the BondingRegistry.\n* Can interact with BondingRegistry\n * slash operator ticket collateral and FOLD bonds, ban operators and manage slash-routing state \n* Can interact with CiphernodeRegistry\n * expel selected members from active committees ",
"discoveryDrivenData": true
},
{
"id": "E3RefundManager",
"name": "E3RefundManager",
"accounts": [
{
"address": "eth:0x1940eF168f4E0B3dA24BEca539856684793B0F6e",
"type": "Contract",
"isVerified": true,
"name": "0x1940…0F6e",
"url": "https://etherscan.io/address/0x1940eF168f4E0B3dA24BEca539856684793B0F6e"
}
],
"chain": "ethereum",
"description": "Upgradeable accounting contract that snapshots the refund policy for each E3 and distributes request fees and routed slashed funds between the requester, honest committee members, protocol treasury and reserve.\n* Can interact with BondingRegistry\n * deposit and credit ticket collateral for an operator ",
"discoveryDrivenData": true
},
{
"id": "RandomnessProvider",
"name": "RandomnessProvider",
"accounts": [
{
"address": "eth:0xC60919F8Bd128B76E11F4B071C8c38e1391a3e00",
"type": "Contract",
"isVerified": true,
"name": "0xC609…3e00",
"url": "https://etherscan.io/address/0xC60919F8Bd128B76E11F4B071C8c38e1391a3e00"
}
],
"chain": "ethereum",
"description": "Supplies committee-sortition entropy as a Chainlink VRF v2.5 subscription consumer. Only its fixed requester (the CiphernodeRegistry) can request randomness, each E3 can be served exactly once, and requests revert while the funding subscription balance is below the configured minimum. All VRF parameters are immutable.\n* Can interact with CiphernodeRegistry\n * deliver the entropy used to select ciphernode committees for each E3 ",
"discoveryDrivenData": true
},
{
"id": "CrispTokenVoting",
"name": "CrispTokenVoting",
"accounts": [
{
"address": "eth:0xf101fB197E38f6b3Ca110D619D845634CD88098c",
"type": "Contract",
"isVerified": true,
"name": "0xf101…098c",
"url": "https://etherscan.io/address/0xf101fB197E38f6b3Ca110D619D845634CD88098c"
}
],
"chain": "ethereum",
"description": "Upgradeable Aragon voting plugin from the interfold-crisp plugin repo. Votes are cast as encrypted CRISP ballots and tallied through an Interfold E3, so individual votes stay confidential to the ciphernode committee threshold. Used as the token-holder voting stage of the Interfold Protocol Proposal path.\n* Can interact with InterfoldDAO\n * change multisig plugin target execution configuration ",
"discoveryDrivenData": true
},
{
"id": "PublicTokenVoting",
"name": "PublicTokenVoting",
"accounts": [
{
"address": "eth:0xfb4e1e518E5F7F8903233e639662110F31Db0BDC",
"type": "Contract",
"isVerified": true,
"name": "0xfb4e…0BDC",
"url": "https://etherscan.io/address/0xfb4e1e518E5F7F8903233e639662110F31Db0BDC"
}
],
"chain": "ethereum",
"description": "Upgradeable Aragon majority-voting plugin used as the voting body in Interfold's public staged proposal path. Voting power comes from the immutable BondedVotes adapter.\n* Can interact with InterfoldDAO\n * change multisig plugin target execution configuration ",
"discoveryDrivenData": true
},
{
"id": "VotingEscrowMultisig",
"name": "VotingEscrowMultisig",
"description": "A Multisig with 1/1 threshold. \nAragon multisig plugin for creating proposals and collecting approvals against a configurable threshold.\n",
"accounts": [
{
"address": "eth:0xDE2C723Ada1363575c716aFB9477A777B2a2bd7C",
"type": "Contract",
"isVerified": true,
"name": "0xDE2C…bd7C",
"url": "https://etherscan.io/address/0xDE2C723Ada1363575c716aFB9477A777B2a2bd7C"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0x455e3DEFBC6b48D9127CF6acC609F5cEa87cA759",
"type": "EOA",
"isVerified": true,
"name": "EOA 1",
"url": "#EOA-1"
}
],
"discoveryDrivenData": true
},
{
"id": "EOA-1",
"name": "EOA 1",
"accounts": [
{
"address": "eth:0x455e3DEFBC6b48D9127CF6acC609F5cEa87cA759",
"type": "EOA",
"isVerified": true,
"name": "0x455e…A759",
"url": "https://etherscan.io/address/0x455e3DEFBC6b48D9127CF6acC609F5cEa87cA759",
"displayName": "EOA 1"
}
],
"chain": "ethereum",
"description": "Member of VotingEscrowMultisig.\n* Can upgrade **with no delay**\n * VotingEscrowDAO [via: VotingEscrowMultisig → VotingEscrowDAO - or VotingEscrowMultisig → VotingEscrowDAO - or VotingEscrowMultisig → VotingEscrowDAO - or VotingEscrowMultisig → VotingEscrowDAO - or VotingEscrowMultisig → VotingEscrowDAO - or VotingEscrowMultisig → VotingEscrowDAO - or VotingEscrowMultisig → VotingEscrowDAO - or VotingEscrowMultisig → VotingEscrowDAO]\n* Can interact with VotingEscrowDAO\n * change cooldowns and exit fees and upgrade the voting-escrow exit queue [via: VotingEscrowMultisig → VotingEscrowDAO]\n * change multisig plugin settings [via: VotingEscrowMultisig → VotingEscrowDAO - or VotingEscrowMultisig]\n * change multisig plugin target execution configuration [via: VotingEscrowMultisig → VotingEscrowDAO - or VotingEscrowMultisig]\n * change transfer whitelist settings and upgrade the voting-lock NFT [via: VotingEscrowMultisig → VotingEscrowDAO]\n * change voting epochs and upgrade the voting-escrow Clock [via: VotingEscrowMultisig → VotingEscrowDAO]\n * change voting-power curve parameters and upgrade the Curve implementation [via: VotingEscrowMultisig → VotingEscrowDAO]\n * complete queued voting-escrow withdrawals [via: VotingEscrowMultisig → VotingEscrowDAO]\n * grant and revoke permissions in the voting-escrow DAO [via: VotingEscrowMultisig → VotingEscrowDAO]\n * manage gauge metadata and the voting-power update hook [via: VotingEscrowMultisig → VotingEscrowDAO]\n * pause and unpause voting-escrow operations [via: VotingEscrowMultisig → VotingEscrowDAO]\n * pause the escrow voting-power adapter, manage delegation settings and upgrade its implementation [via: VotingEscrowMultisig → VotingEscrowDAO]\n * replace voting-power dependencies, change minimum deposits and split rules, and upgrade VotingEscrow [via: VotingEscrowMultisig → VotingEscrowDAO]\n * sweep unaccounted tokens and NFTs from VotingEscrow [via: VotingEscrowMultisig → VotingEscrowDAO]\n * update delegated voting power through the escrow voting adapter [via: VotingEscrowMultisig → VotingEscrowDAO]",
"discoveryDrivenData": true
},
{
"id": "EOA-2",
"name": "EOA 2",
"accounts": [
{
"address": "eth:0x34655732dB9BBfA627021D18d786EfF7Bde211F7",
"type": "EOA",
"isVerified": true,
"name": "0x3465…11F7",
"url": "https://etherscan.io/address/0x34655732dB9BBfA627021D18d786EfF7Bde211F7",
"displayName": "EOA 2"
}
],
"chain": "ethereum",
"description": "* Can interact with CRISPProgram\n * attest that ballot inputs are available so a CRISP round can proceed \n* Can interact with CRISPProgramV2\n * attest that ballot inputs are available so a CRISP round can proceed ",
"discoveryDrivenData": true
},
{
"id": "EOA-3,-EOA-4,-EOA-5,-EOA-6,-EOA-7,-EOA-8,-EOA-9,-EOA-10,-EOA-11,-EOA-12,-EOA-13,-EOA-14,-EOA-15,-EOA-16,-EOA-17,-EOA-18,-EOA-19,-EOA-20,-EOA-21,-EOA-22,-EOA-23,-EOA-24,-EOA-25,-EOA-26,-EOA-27,-EOA-28,-EOA-29,-EOA-30,-EOA-31,-EOA-32,-EOA-33,-EOA-34,-EOA-35,-EOA-36,-EOA-37,-EOA-38,-EOA-39,-EOA-40,-EOA-41,-EOA-42,-EOA-43,-EOA-44,-EOA-45,-EOA-46-and-EOA-47",
"name": "EOA 3, EOA 4, EOA 5, EOA 6, EOA 7, EOA 8, EOA 9, EOA 10, EOA 11, EOA 12, EOA 13, EOA 14, EOA 15, EOA 16, EOA 17, EOA 18, EOA 19, EOA 20, EOA 21, EOA 22, EOA 23, EOA 24, EOA 25, EOA 26, EOA 27, EOA 28, EOA 29, EOA 30, EOA 31, EOA 32, EOA 33, EOA 34, EOA 35, EOA 36, EOA 37, EOA 38, EOA 39, EOA 40, EOA 41, EOA 42, EOA 43, EOA 44, EOA 45, EOA 46 and EOA 47",
"accounts": [
{
"address": "eth:0x0a3E22cb9778A10b188eC2BF149D628ab91A76a9",
"type": "EOA",
"isVerified": true,
"name": "0x0a3E…76a9",
"url": "https://etherscan.io/address/0x0a3E22cb9778A10b188eC2BF149D628ab91A76a9",
"displayName": "EOA 3"
},
{
"address": "eth:0x12c75ce176D5a58d2a72e85Af158Cbd8749fE1D8",
"type": "EOA",
"isVerified": true,
"name": "0x12c7…E1D8",
"url": "https://etherscan.io/address/0x12c75ce176D5a58d2a72e85Af158Cbd8749fE1D8",
"displayName": "EOA 4"
},
{
"address": "eth:0x15de07b6280ae5F5D37F6d77dF88c37875ef2877",
"type": "EOA",
"isVerified": true,
"name": "0x15de…2877",
"url": "https://etherscan.io/address/0x15de07b6280ae5F5D37F6d77dF88c37875ef2877",
"displayName": "EOA 5"
},
{
"address": "eth:0x18ddBf8Aa6F72FC4D9E1911527d0CE1E9f3597d8",
"type": "EOA",
"isVerified": true,
"name": "0x18dd…97d8",
"url": "https://etherscan.io/address/0x18ddBf8Aa6F72FC4D9E1911527d0CE1E9f3597d8",
"displayName": "EOA 6"
},
{
"address": "eth:0x18F98f8F44a37d4179888f286191f4F856CB4663",
"type": "EOA",
"isVerified": true,
"name": "0x18F9…4663",
"url": "https://etherscan.io/address/0x18F98f8F44a37d4179888f286191f4F856CB4663",
"displayName": "EOA 7"
},
{
"address": "eth:0x1d4205bc727E4f3799B25d0FEAe8e45d365858b1",
"type": "EOA",
"isVerified": true,
"name": "0x1d42…58b1",
"url": "https://etherscan.io/address/0x1d4205bc727E4f3799B25d0FEAe8e45d365858b1",
"displayName": "EOA 8"
},
{
"address": "eth:0x1dF428833f2C9FB1eF098754e5D710432450d706",
"type": "EOA",
"isVerified": true,
"name": "0x1dF4…d706",
"url": "https://etherscan.io/address/0x1dF428833f2C9FB1eF098754e5D710432450d706",
"displayName": "EOA 9"
},
{
"address": "eth:0x1fD2b3d4a9f4Aeb62877cab9dF70A5a6e976b118",
"type": "EOA",
"isVerified": true,
"name": "0x1fD2…b118",
"url": "https://etherscan.io/address/0x1fD2b3d4a9f4Aeb62877cab9dF70A5a6e976b118",
"displayName": "EOA 10"
},
{
"address": "eth:0x222D696D0242194457eD491b0c52aBbF9250342F",
"type": "EOA",
"isVerified": true,
"name": "0x222D…342F",
"url": "https://etherscan.io/address/0x222D696D0242194457eD491b0c52aBbF9250342F",
"displayName": "EOA 11"
},
{
"address": "eth:0x252a6c33C87C0b439671b983C3f730D2C46a5F1d",
"type": "EOA",
"isVerified": true,
"name": "0x252a…5F1d",
"url": "https://etherscan.io/address/0x252a6c33C87C0b439671b983C3f730D2C46a5F1d",
"displayName": "EOA 12"
},
{
"address": "eth:0x291bD021638B9aef86c6d47e29CdA1cF3804bafb",
"type": "EOA",
"isVerified": true,
"name": "0x291b…bafb",
"url": "https://etherscan.io/address/0x291bD021638B9aef86c6d47e29CdA1cF3804bafb",
"displayName": "EOA 13"
},
{
"address": "eth:0x29a540E858500fd6ee2B68EE63769b0bB0A05CF4",
"type": "EOA",
"isVerified": true,
"name": "0x29a5…5CF4",
"url": "https://etherscan.io/address/0x29a540E858500fd6ee2B68EE63769b0bB0A05CF4",
"displayName": "EOA 14"
},
{
"address": "eth:0x3b62d921EFdbc295B017fAb9Ba8a521457F037d3",
"type": "EOA",
"isVerified": true,
"name": "0x3b62…37d3",
"url": "https://etherscan.io/address/0x3b62d921EFdbc295B017fAb9Ba8a521457F037d3",
"displayName": "EOA 15"
},
{
"address": "eth:0x3Dedb602A8997B89685803Dff207566C9883FE0F",
"type": "EOA",
"isVerified": true,
"name": "0x3Ded…FE0F",
"url": "https://etherscan.io/address/0x3Dedb602A8997B89685803Dff207566C9883FE0F",
"displayName": "EOA 16"
},
{
"address": "eth:0x516C12B6D622A62166bDe3580628d6d23ae5b310",
"type": "EOA",
"isVerified": true,
"name": "0x516C…b310",
"url": "https://etherscan.io/address/0x516C12B6D622A62166bDe3580628d6d23ae5b310",
"displayName": "EOA 17"
},
{
"address": "eth:0x59461947EC279863138fae477C35B0c551A5c3a6",
"type": "EOA",
"isVerified": true,
"name": "0x5946…c3a6",
"url": "https://etherscan.io/address/0x59461947EC279863138fae477C35B0c551A5c3a6",
"displayName": "EOA 18"
},
{
"address": "eth:0x5Fb0854aB8fb2810b80d3DE276b3107a9e5281b1",
"type": "EOA",
"isVerified": true,
"name": "0x5Fb0…81b1",
"url": "https://etherscan.io/address/0x5Fb0854aB8fb2810b80d3DE276b3107a9e5281b1",
"displayName": "EOA 19"
},
{
"address": "eth:0x60cd23981430e4909957EA1fB214E9A21468175A",
"type": "EOA",
"isVerified": true,
"name": "0x60cd…175A",
"url": "https://etherscan.io/address/0x60cd23981430e4909957EA1fB214E9A21468175A",
"displayName": "EOA 20"
},
{
"address": "eth:0x630B9c418aCb02829E34F2E0B7948b4A9c92e05F",
"type": "EOA",
"isVerified": true,
"name": "0x630B…e05F",
"url": "https://etherscan.io/address/0x630B9c418aCb02829E34F2E0B7948b4A9c92e05F",
"displayName": "EOA 21"
},
{
"address": "eth:0x73F8511492fE99B1d3b230B1015e22db53DaA9a1",
"type": "EOA",
"isVerified": true,
"name": "0x73F8…A9a1",
"url": "https://etherscan.io/address/0x73F8511492fE99B1d3b230B1015e22db53DaA9a1",
"displayName": "EOA 22"
},
{
"address": "eth:0x856F8E59dEd8386C57f48a55b007F21F89724CFC",
"type": "EOA",
"isVerified": true,
"name": "0x856F…4CFC",
"url": "https://etherscan.io/address/0x856F8E59dEd8386C57f48a55b007F21F89724CFC",
"displayName": "EOA 23"
},
{
"address": "eth:0x86Ab0b3C4A36cAB3037d750C850D660cE710e2a1",
"type": "EOA",
"isVerified": true,
"name": "0x86Ab…e2a1",
"url": "https://etherscan.io/address/0x86Ab0b3C4A36cAB3037d750C850D660cE710e2a1",
"displayName": "EOA 24"
},
{
"address": "eth:0x88ED57A03E98931a81dBa7A9Bc2dc95B48929E45",
"type": "EOA",
"isVerified": true,
"name": "0x88ED…9E45",
"url": "https://etherscan.io/address/0x88ED57A03E98931a81dBa7A9Bc2dc95B48929E45",
"displayName": "EOA 25"
},
{
"address": "eth:0x980AaA907E51a4e3cc89b8FF8e37Aa0D55D46597",
"type": "EOA",
"isVerified": true,
"name": "0x980A…6597",
"url": "https://etherscan.io/address/0x980AaA907E51a4e3cc89b8FF8e37Aa0D55D46597",
"displayName": "EOA 26"
},
{
"address": "eth:0x9E2558B76c7D7CF169556A1a729C2CB0324f0E61",
"type": "EOA",
"isVerified": true,
"name": "0x9E25…0E61",
"url": "https://etherscan.io/address/0x9E2558B76c7D7CF169556A1a729C2CB0324f0E61",
"displayName": "EOA 27"
},
{
"address": "eth:0x9EC16384b956D7B2A71284711FD32d156e6b33c6",
"type": "EOA",
"isVerified": true,
"name": "0x9EC1…33c6",
"url": "https://etherscan.io/address/0x9EC16384b956D7B2A71284711FD32d156e6b33c6",
"displayName": "EOA 28"
},
{
"address": "eth:0xA2bA6A63335cdB2789b0e636987Ce12C3D44662a",
"type": "EOA",
"isVerified": true,
"name": "0xA2bA…662a",
"url": "https://etherscan.io/address/0xA2bA6A63335cdB2789b0e636987Ce12C3D44662a",
"displayName": "EOA 29"
},
{
"address": "eth:0xA303d8Cb0CE470F772A459b4a87AcB11b2978DB8",
"type": "EOA",
"isVerified": true,
"name": "0xA303…8DB8",
"url": "https://etherscan.io/address/0xA303d8Cb0CE470F772A459b4a87AcB11b2978DB8",
"displayName": "EOA 30"
},
{
"address": "eth:0xAF062fC363c3AE910ec76676346f798792bEB851",
"type": "EOA",
"isVerified": true,
"name": "0xAF06…B851",
"url": "https://etherscan.io/address/0xAF062fC363c3AE910ec76676346f798792bEB851",
"displayName": "EOA 31"
},
{
"address": "eth:0xB6Bb517ca0bD9a8b0eD2817e604b327d31626190",
"type": "EOA",
"isVerified": true,
"name": "0xB6Bb…6190",
"url": "https://etherscan.io/address/0xB6Bb517ca0bD9a8b0eD2817e604b327d31626190",
"displayName": "EOA 32"
},
{
"address": "eth:0xb8d9Bf1b6C283D29dC3dC5711C9036F6896a963A",
"type": "EOA",
"isVerified": true,
"name": "0xb8d9…963A",
"url": "https://etherscan.io/address/0xb8d9Bf1b6C283D29dC3dC5711C9036F6896a963A",
"displayName": "EOA 33"
},
{
"address": "eth:0xba7254CC6c70AE1D99aEa3ecA705E81635aaA988",
"type": "EOA",
"isVerified": true,
"name": "0xba72…A988",
"url": "https://etherscan.io/address/0xba7254CC6c70AE1D99aEa3ecA705E81635aaA988",
"displayName": "EOA 34"
},
{
"address": "eth:0xBB3f49DED0EdE92ba3C9247A93E925770ac68671",
"type": "EOA",
"isVerified": true,
"name": "0xBB3f…8671",
"url": "https://etherscan.io/address/0xBB3f49DED0EdE92ba3C9247A93E925770ac68671",
"displayName": "EOA 35"
},
{
"address": "eth:0xc6E48712E56F6E9548c54a0A983eBe992eFA26Bd",
"type": "EOA",
"isVerified": true,
"name": "0xc6E4…26Bd",
"url": "https://etherscan.io/address/0xc6E48712E56F6E9548c54a0A983eBe992eFA26Bd",
"displayName": "EOA 36"
},
{
"address": "eth:0xc798b5f60150FbB2Db9b061817831DF62D2b269C",
"type": "EOA",
"isVerified": true,
"name": "0xc798…269C",
"url": "https://etherscan.io/address/0xc798b5f60150FbB2Db9b061817831DF62D2b269C",
"displayName": "EOA 37"
},
{
"address": "eth:0xcb6ce8C3a16DeF797167e8A2aED7998A065f2513",
"type": "EOA",
"isVerified": true,
"name": "0xcb6c…2513",
"url": "https://etherscan.io/address/0xcb6ce8C3a16DeF797167e8A2aED7998A065f2513",
"displayName": "EOA 38"
},
{
"address": "eth:0xCdc8B4379dDF736f8e34B0A65585E07dE7060A84",
"type": "EOA",
"isVerified": true,
"name": "0xCdc8…0A84",
"url": "https://etherscan.io/address/0xCdc8B4379dDF736f8e34B0A65585E07dE7060A84",
"displayName": "EOA 39"
},
{
"address": "eth:0xd2b46ceC7b4d8046eF2D7bCb32aF3220Ef7bc1dd",
"type": "EOA",
"isVerified": true,
"name": "0xd2b4…c1dd",
"url": "https://etherscan.io/address/0xd2b46ceC7b4d8046eF2D7bCb32aF3220Ef7bc1dd",
"displayName": "EOA 40"
},
{
"address": "eth:0xd333232f08d6a8A4f7Cee8327476DbeDDDF20554",
"type": "EOA",
"isVerified": true,
"name": "0xd333…0554",
"url": "https://etherscan.io/address/0xd333232f08d6a8A4f7Cee8327476DbeDDDF20554",
"displayName": "EOA 41"
},
{
"address": "eth:0xd3336047DCf4d7C7393b3BF5Fa47A31478C22d47",
"type": "EOA",
"isVerified": true,
"name": "0xd333…2d47",
"url": "https://etherscan.io/address/0xd3336047DCf4d7C7393b3BF5Fa47A31478C22d47",
"displayName": "EOA 42"
},
{
"address": "eth:0xd698bC33a4A98a019881c6e2664f1dAc62c4B3B5",
"type": "EOA",
"isVerified": true,
"name": "0xd698…B3B5",
"url": "https://etherscan.io/address/0xd698bC33a4A98a019881c6e2664f1dAc62c4B3B5",
"displayName": "EOA 43"
},
{
"address": "eth:0xD81f88b9Ae6261d684f8BfEb6a642692213dAe86",
"type": "EOA",
"isVerified": true,
"name": "0xD81f…Ae86",
"url": "https://etherscan.io/address/0xD81f88b9Ae6261d684f8BfEb6a642692213dAe86",
"displayName": "EOA 44"
},
{
"address": "eth:0xDb78ebaB8597AF977B686E540DCe734E613Eba88",
"type": "EOA",
"isVerified": true,
"name": "0xDb78…ba88",
"url": "https://etherscan.io/address/0xDb78ebaB8597AF977B686E540DCe734E613Eba88",
"displayName": "EOA 45"
},
{
"address": "eth:0xdBEd503093A01EA08f21144114542E53594536D6",
"type": "EOA",
"isVerified": true,
"name": "0xdBEd…36D6",
"url": "https://etherscan.io/address/0xdBEd503093A01EA08f21144114542E53594536D6",
"displayName": "EOA 46"
},
{
"address": "eth:0xe603c63ee0e97DA5a833B7498C366E88B9a5EBFe",
"type": "EOA",
"isVerified": true,
"name": "0xe603…EBFe",
"url": "https://etherscan.io/address/0xe603c63ee0e97DA5a833B7498C366E88B9a5EBFe",
"displayName": "EOA 47"
}
],
"chain": "ethereum",
"description": "* Can interact with CiphernodeRegistry\n * be selected by ticket-weighted sortition into E3 committees, whose members create key shares and threshold-decrypt E3 outputs. Enough colluding members of one committee can decrypt every input of that E3 ",
"discoveryDrivenData": true
}
]
}
}
+977 -0
{
"addresses": {
"ethereum": [
{
"name": "DkgAggregatorVerifier",
"isVerified": true,
"address": "eth:0x0a4D70bBD4e71b9e515Efc417F423c64D85197cb",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Immutable generated Honk verifier for the BFV distributed-key-generation aggregation circuit.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x0a4D70bBD4e71b9e515Efc417F423c64D85197cb#code"
},
{
"name": "OpenVmReceiptVerifier",
"isVerified": true,
"address": "eth:0x0dd5E45414629F0f7D757cbb0310A9cfdc5B400b",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Immutable OpenVM receipt verifier. It checks a Halo2 proof whose only public value is the journal digest, bound to one OpenVM executable and VM commitment.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x0dd5E45414629F0f7D757cbb0310A9cfdc5B400b#code"
},
{
"name": "BfvDecryptionVerifier",
"isVerified": true,
"address": "eth:0x194A489c918b74F11C6b03e12Ea26F198110f9A5",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Threshold-decryption proof wrapper. It checks the generated circuit proof and binds its parties and public-key context to the committee recorded by CiphernodeRegistry.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x194A489c918b74F11C6b03e12Ea26F198110f9A5#code"
},
{
"name": "CRISPProgram",
"isVerified": true,
"address": "eth:0x1EA4dBdec0F2F1E9235915847fc59EF4045EEe28",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "CRISP encrypted-ballot E3 application. It verifies ballot eligibility and encryption proofs, commits ciphertext inputs, checks that an OpenVM tally proof is bound to its input root and parameters, and decodes the threshold-decrypted tally.\n* Roles:\n * **inputAvailabilitySigner**: EOA 2\n * **owner**: InterfoldDAO; ultimately AdminPlugin, InterfoldSafeA, InterfoldSafeB, ProtocolProposalProcessor, PublicStagedProposalProcessor",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x1EA4dBdec0F2F1E9235915847fc59EF4045EEe28#code"
},
{
"name": "BfvDecryptionVerifier",
"isVerified": true,
"address": "eth:0x31715a243b80484629040592Eaff619729E98B39",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Threshold-decryption proof wrapper. It checks the generated circuit proof and binds its parties and public-key context to the committee recorded by CiphernodeRegistry.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x31715a243b80484629040592Eaff619729E98B39#code"
},
{
"name": "BfvPkVerifierRouter",
"isVerified": true,
"address": "eth:0x3E9614e711ee301DAC3FeF7D86031ED015bc406b",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Immutable router for BFV distributed-key-generation proofs. It forwards each proof to the per-committee-size BfvPkVerifier whose public-input length and circuit verification-key hashes match, so committees of every supported size share one verifier entry point.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x3E9614e711ee301DAC3FeF7D86031ED015bc406b#code"
},
{
"name": "BfvDecryptionVerifier",
"isVerified": true,
"address": "eth:0x43c65d641A693962c942407A2834A7d923cEE1d8",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Threshold-decryption proof wrapper. It checks the generated circuit proof and binds its parties and public-key context to the committee recorded by CiphernodeRegistry.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x43c65d641A693962c942407A2834A7d923cEE1d8#code"
},
{
"name": "MockE3Program",
"isVerified": true,
"address": "eth:0x4976E5E47852eFCe6851d35B95A1A2E19456F3D7",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Permanently allowlisted test E3 application. It accepts arbitrary input and returns successful validation and output verification, so requests using it exercise the protocol proof pipeline without application-level correctness checks.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x4976E5E47852eFCe6851d35B95A1A2E19456F3D7#code"
},
{
"name": "CRISPProgramV2",
"isVerified": true,
"address": "eth:0x53FCdb21E73A461CfE6c64B19855204384B91BA3",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "CRISP encrypted-ballot E3 application. It verifies ballot eligibility and encryption proofs, commits ciphertext inputs, checks that a RISC Zero tally is bound to its input root and parameters, and decodes the threshold-decrypted tally.\n* Roles:\n * **inputAvailabilitySigner**: EOA 2\n * **owner**: InterfoldDAO; ultimately AdminPlugin, InterfoldSafeA, InterfoldSafeB, ProtocolProposalProcessor, PublicStagedProposalProcessor",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x53FCdb21E73A461CfE6c64B19855204384B91BA3#code"
},
{
"name": "BfvPkVerifier",
"isVerified": true,
"address": "eth:0x5b93A3D59f8D65548748fc303f75a21b082EB2f4",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "BFV public-key proof wrapper. It binds the generated circuit verifier to the expected DKG-fold and C5 verification-key hashes.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x5b93A3D59f8D65548748fc303f75a21b082EB2f4#code"
},
{
"name": "BfvPkVerifier",
"isVerified": true,
"address": "eth:0x5CcE227e613A41239b7E07764ad8b5a1cCA0a2CE",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "BFV public-key proof wrapper. It binds the generated circuit verifier to the expected DKG-fold and C5 verification-key hashes.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x5CcE227e613A41239b7E07764ad8b5a1cCA0a2CE#code"
},
{
"name": "OpenVmBfvCiphertextVerifier",
"isVerified": true,
"address": "eth:0x6cD258E0a893612Aea41c42dC47450ac1A6E2dD1",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Ciphertext-output verifier for BFV E3s. It accepts an OpenVM proof for the immutable guest image ID against the E3-specific journal constructed by Interfold.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x6cD258E0a893612Aea41c42dC47450ac1A6E2dD1#code"
},
{
"name": "OpenVmHalo2Verifier",
"isVerified": true,
"address": "eth:0x75cECF62f1ADe2C7b95d5a93460f450c6885F904",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Immutable Halo2 verifier generated by the OpenVM 2.0 SDK. It checks the final proof of an OpenVM execution against the app executable and VM commitments passed by the caller.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x75cECF62f1ADe2C7b95d5a93460f450c6885F904#code"
},
{
"name": "DecryptionAggregatorVerifier",
"isVerified": true,
"address": "eth:0x769C243b712aD4D844bCbAed3981F7C24fA64Ada",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Immutable generated Honk verifier for the BFV threshold-decryption aggregation circuit.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x769C243b712aD4D844bCbAed3981F7C24fA64Ada#code"
},
{
"name": "DkgAggregatorVerifier",
"isVerified": true,
"address": "eth:0x7987EF7cd79478Ee1ed51A279eEF46D2996a793c",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Immutable generated Honk verifier for the BFV distributed-key-generation aggregation circuit.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x7987EF7cd79478Ee1ed51A279eEF46D2996a793c#code"
},
{
"name": "CRISPProgram",
"isVerified": true,
"address": "eth:0x847A22303639017bcDB7F7E49EEa4a4629c1169f",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "CRISP encrypted-ballot E3 application. It verifies ballot eligibility and encryption proofs, commits ciphertext inputs, checks that a RISC Zero tally is bound to its input root and parameters, and decodes the threshold-decrypted tally.\n* Roles:\n * **owner**: InterfoldDAO; ultimately AdminPlugin, InterfoldSafeA, InterfoldSafeB, ProtocolProposalProcessor, PublicStagedProposalProcessor",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x847A22303639017bcDB7F7E49EEa4a4629c1169f#code"
},
{
"name": "BfvPkVerifier",
"isVerified": true,
"address": "eth:0x8d4c0bd5c796a5FEd7C419deA56f6A88EdB51023",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "BFV public-key proof wrapper. It binds the generated circuit verifier to the expected DKG-fold and C5 verification-key hashes.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x8d4c0bd5c796a5FEd7C419deA56f6A88EdB51023#code"
},
{
"name": "AvailVectorXDataAvailabilityVerifier",
"isVerified": true,
"address": "eth:0x9B5088112Ae1D682782236486290120E27Eb32e3",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Immutable verifier of Avail blob inclusion used by the CRISP program to attest that encrypted ballot inputs were published. It checks inclusion proofs against the Avail bridge and VectorX light-client contracts fixed at deployment.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x9B5088112Ae1D682782236486290120E27Eb32e3#code"
},
{
"name": "NodeReleaseRegistry",
"isVerified": true,
"address": "eth:0x9E1C6B433CFbC8f28d80EAB583C428B01d083b0A",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Registry of ciphernode software releases. Operators self-attest the release they run; staying eligible for new E3 committees requires an attestation matching the exact governance-set protocol version and at least the required node generation. Raising the requirement instantly invalidates every operator's cached eligibility until they re-attest.\n* Roles:\n * **owner**: InterfoldDAO; ultimately AdminPlugin, InterfoldSafeA, InterfoldSafeB, ProtocolProposalProcessor, PublicStagedProposalProcessor",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x9E1C6B433CFbC8f28d80EAB583C428B01d083b0A#code"
},
{
"name": "DkgAggregatorVerifier",
"isVerified": true,
"address": "eth:0xBb643dC305794364E435C883B6DC1E7666dA4fEc",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Immutable generated Honk verifier for the BFV distributed-key-generation aggregation circuit.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xBb643dC305794364E435C883B6DC1E7666dA4fEc#code"
},
{
"name": "BfvDecryptionVerifierRouter",
"isVerified": true,
"address": "eth:0xbbFF7101A3Be43e06b64B00e2e656529E6aDf2eE",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Immutable router for BFV threshold-decryption proofs. It forwards each proof to the per-committee-size BfvDecryptionVerifier whose public-input length and circuit verification-key hashes match, so committees of every supported size share one verifier entry point.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xbbFF7101A3Be43e06b64B00e2e656529E6aDf2eE#code"
},
{
"name": "DecryptionAggregatorVerifier",
"isVerified": true,
"address": "eth:0xbe012465a45179170cFb863405427f8ecAcb5C80",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Immutable generated Honk verifier for the BFV threshold-decryption aggregation circuit.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xbe012465a45179170cFb863405427f8ecAcb5C80#code"
},
{
"name": "AvailVectorXDataAvailabilityVerifier",
"isVerified": true,
"address": "eth:0xC038C7ba5717bDa886115e5d954085bce069069E",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Immutable verifier of Avail blob inclusion used by the CRISP program to attest that encrypted ballot inputs were published. It checks inclusion proofs against the Avail bridge and VectorX light-client contracts fixed at deployment.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xC038C7ba5717bDa886115e5d954085bce069069E#code"
},
{
"name": "InterfoldTicketToken",
"isVerified": true,
"address": "eth:0xC0B5b49a3949eC4B520eF21BaCFE16e3695F3B5D",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Non-transferable ERC-20 Votes wrapper for sUSDS used as ciphernode ticket collateral. Only the configured BondingRegistry can deposit, mint, burn, withdraw or pay out the underlying asset.\n* Roles:\n * **owner**: InterfoldDAO; ultimately AdminPlugin, InterfoldSafeA, InterfoldSafeB, ProtocolProposalProcessor, PublicStagedProposalProcessor\n * **registry**: BondingRegistry",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xC0B5b49a3949eC4B520eF21BaCFE16e3695F3B5D#code"
},
{
"name": "DecryptionAggregatorVerifier",
"isVerified": true,
"address": "eth:0xC590b979c9BDA89f87443EBE134321272a5dD013",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Immutable generated Honk verifier for the BFV threshold-decryption aggregation circuit.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xC590b979c9BDA89f87443EBE134321272a5dD013#code"
},
{
"name": "CiphernodeRegistry",
"isVerified": true,
"address": "eth:0xC927A5B2d8F68697bC28C0670df05178c93df2d7",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x2DFb93A8C3cE68Be3d8129479d7870646d89aDa7"
],
"implementations": [
"eth:0x8354E51d14C118f6386C3F6F73E79190D71FFA3A"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1787109059,
"transactionHash": "0xc17b85549e721c943dd5667c8ad8a3857c7897b9cc0add6e834539bdd4e7d0d6",
"implementations": [
"eth:0xB06Aaf9EF87984192490E947078D2f3563399b7B"
]
},
{
"timestamp": 1787876615,
"transactionHash": "0xb72b8bc214a3416a90f0d84cf34dc833251a669b1e0201f70924805f7fa18b58",
"implementations": [
"eth:0xFff476751949a7e1B784b5c88648833c1e8dD69c"
]
},
{
"timestamp": 1789737347,
"transactionHash": "0x975b5104729480bdf914304ce81726041e27450580fab4cd2f2750b7f0848047",
"implementations": [
"eth:0xD9A3224D829a4ac8b55A75C539fD447AC4B05Bf2"
]
},
{
"timestamp": 1790275415,
"transactionHash": "0x8e6d53a9137ad0cb441aef11b4752abfa936258661668d1b2692bf6c2678b4a2",
"implementations": [
"eth:0x8354E51d14C118f6386C3F6F73E79190D71FFA3A"
]
}
],
"description": "Registry of ciphernodes and E3 committees. It performs ticket-weighted committee selection (admitting at most one operator key per bond owner, and only when the BondingRegistry counts at least as many distinct active bond owners as the committee size), records DKG (distributed key generation) proof anchors and the committee public key (to which cyphertexts can be encrypted), and tracks committee viability. Sortition entropy is supplied asynchronously by a governance-set randomness provider.\n* Roles:\n * **admin**: ProxyAdmin; ultimately AdminPlugin, InterfoldSafeA, InterfoldSafeB, ProtocolProposalProcessor, PublicStagedProposalProcessor\n * **bondingRegistry**: BondingRegistry\n * **interfold**: Interfold\n * **owner**: InterfoldDAO; ultimately AdminPlugin, InterfoldSafeA, InterfoldSafeB, ProtocolProposalProcessor, PublicStagedProposalProcessor\n * **randomnessProvider**: RandomnessProvider\n * **registeredCiphernodes**: EOA 10, EOA 11, EOA 12, EOA 13, EOA 14, EOA 15, EOA 16, EOA 17, EOA 18, EOA 19, EOA 20, EOA 21, EOA 22, EOA 23, EOA 24, EOA 25, EOA 26, EOA 27, EOA 28, EOA 29, EOA 3, EOA 30, EOA 31, EOA 32, EOA 33, EOA 34, EOA 35, EOA 36, EOA 37, EOA 38, EOA 39, EOA 4, EOA 40, EOA 41, EOA 42, EOA 43, EOA 44, EOA 45, EOA 46, EOA 47, EOA 5, EOA 6, EOA 7, EOA 8, EOA 9\n * **slashingManager**: SlashingManager",
"upgradableBy": [
{
"name": "InterfoldSafeA",
"delay": "no"
},
{
"name": "InterfoldSafeB",
"delay": "no"
},
{
"name": "PublicStagedProposalProcessor",
"delay": "no"
},
{
"name": "ProtocolProposalProcessor",
"delay": "no"
},
{
"name": "AdminPlugin",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xC927A5B2d8F68697bC28C0670df05178c93df2d7#code"
},
{
"name": "BondedCheckpoints",
"isVerified": true,
"address": "eth:0xDbCaeec5B040A134314FfD43aA2ca0D16006f963",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Voting-power checkpoint store updated exclusively by the BondingRegistry so FOLD bonded to ciphernode operators remains visible to governance snapshots.\n* Roles:\n * **registry**: BondingRegistry",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xDbCaeec5B040A134314FfD43aA2ca0D16006f963#code"
},
{
"name": "FOLD",
"isVerified": true,
"address": "eth:0xE172e9B6cfBeeB5593bDcE3f077356FDb33af904",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Fixed-cap FOLD governance and ciphernode-bond token. Minting and pre-TGE transfer controls are disabled after the one-way TGE transition, while lock-policy administration can continue until the immutable lock cutoff.\n* Roles:\n * **defaultAdmins**: InterfoldSafeA\n * **lockManagers**: InterfoldSafeA",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xE172e9B6cfBeeB5593bDcE3f077356FDb33af904#code"
},
{
"name": "DkgFoldAttestationVerifier",
"isVerified": true,
"address": "eth:0xE5657c0756B772B600D6c73eDbF046f32129c770",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Immutable verifier for EIP-712 attestations that bind selected ciphernode operator keys to the party commitments folded into an E3 distributed-key-generation proof.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xE5657c0756B772B600D6c73eDbF046f32129c770#code"
},
{
"name": "BondedVotes",
"isVerified": true,
"address": "eth:0x028deEA644258c78b1B5B2eacF469F5D781Fb43E",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Voting-power adapter used by PublicTokenVoting. It counts voting-escrow power, FOLD bonded to ciphernode operators, and eligible vesting-locked wallet FOLD while using FOLD total supply as the quorum denominator.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x028deEA644258c78b1B5B2eacF469F5D781Fb43E#code"
},
{
"name": "VotingEscrowGaugeVoter",
"isVerified": true,
"address": "eth:0x0A32454FC578e3CAFeE86F6E03f267b25ad0bAf0",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x0000000000000000000000000000000000000000"
],
"implementations": [
"eth:0x41d565fcC636805E3addDa99714067cB020F09Aa"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1787028983,
"transactionHash": "0xd83f0141bd15b5bdc5c5c531218d3bbe1523ae0c80ea16e3d493259017e17e6e",
"implementations": [
"eth:0x41d565fcC636805E3addDa99714067cB020F09Aa"
]
}
],
"description": "Upgradeable, currently paused gauge-voting plugin connected to VotingEscrow. It can update voting state used by escrow lock operations but is not the Interfold DAO proposal-voting plugin.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x0A32454FC578e3CAFeE86F6E03f267b25ad0bAf0#code"
},
{
"name": "ProtocolProposalCondition",
"isVerified": true,
"address": "eth:0x4c9D0A2B8E5917c480bdF3E42F1b1c9365EF2115",
"upgradeability": {
"proxyType": "EIP1167 proxy",
"admins": [],
"implementations": [
"eth:0xE437E5c7EeB0D49F97CfD040fb8a02A60a61c0f0"
]
},
"chain": "ethereum",
"description": "Aragon condition attached to the public CREATE_PROPOSAL permission. Its mutable rule program determines which callers and proposal calls qualify for the otherwise-public grant.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x4c9D0A2B8E5917c480bdF3E42F1b1c9365EF2115#code"
},
{
"name": "AragonExecutor",
"isVerified": true,
"address": "eth:0x56ce4D8006292Abf418291FaE813C1E3769240A4",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Immutable Aragon action executor used as a delegatecall target by PublicTokenVoting. It executes proposal action batches in the calling plugin's context.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x56ce4D8006292Abf418291FaE813C1E3769240A4#code"
},
{
"name": "InterfoldDAO",
"isVerified": true,
"address": "eth:0x652a31c669f9AB37f6040f279139a75D04F2679e",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x0000000000000000000000000000000000000000"
],
"implementations": [
"eth:0x58C1F7Bc62Bb63fb137bc8F6d8ea6321a0501d29"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1786931579,
"transactionHash": "0x462d1f6a604859fe289698f04dac0bce77cb22bfad707580e5f2ea333a948a82",
"implementations": [
"eth:0x58C1F7Bc62Bb63fb137bc8F6d8ea6321a0501d29"
]
}
],
"description": "Aragon DAO that stores governance state and executes proposal action batches.\n* Roles:\n * **adminPluginExecutors**: InterfoldSafeA, InterfoldSafeB\n * **adminTargetManagers**: InterfoldDAO; ultimately AdminPlugin, InterfoldSafeA, InterfoldSafeB, ProtocolProposalProcessor, PublicStagedProposalProcessor\n * **conditionRuleManagers**: InterfoldDAO; ultimately AdminPlugin, InterfoldSafeA, InterfoldSafeB, ProtocolProposalProcessor, PublicStagedProposalProcessor\n * **crispVotingProposalCreators**: ProtocolProposalProcessor\n * **crispVotingSettingsManagers**: InterfoldDAO; ultimately AdminPlugin, InterfoldSafeA, InterfoldSafeB, ProtocolProposalProcessor, PublicStagedProposalProcessor\n * **crispVotingTargetManagers**: InterfoldDAO; ultimately AdminPlugin, InterfoldSafeA, InterfoldSafeB, ProtocolProposalProcessor, PublicStagedProposalProcessor\n * **daoExecutors**: AdminPlugin, ProtocolProposalProcessor, PublicStagedProposalProcessor\n * **daoRootHolders**: InterfoldDAO; ultimately AdminPlugin, InterfoldSafeA, InterfoldSafeB, ProtocolProposalProcessor, PublicStagedProposalProcessor\n * **daoUpgraders**: InterfoldDAO; ultimately AdminPlugin, InterfoldSafeA, InterfoldSafeB, ProtocolProposalProcessor, PublicStagedProposalProcessor\n * **ippConditionRuleManagers**: InterfoldDAO; ultimately AdminPlugin, InterfoldSafeA, InterfoldSafeB, ProtocolProposalProcessor, PublicStagedProposalProcessor\n * **ippStageManagers**: InterfoldDAO; ultimately AdminPlugin, InterfoldSafeA, InterfoldSafeB, ProtocolProposalProcessor, PublicStagedProposalProcessor\n * **ippTargetManagers**: InterfoldDAO; ultimately AdminPlugin, InterfoldSafeA, InterfoldSafeB, ProtocolProposalProcessor, PublicStagedProposalProcessor\n * **ippTrustedForwarderManagers**: InterfoldDAO; ultimately AdminPlugin, InterfoldSafeA, InterfoldSafeB, ProtocolProposalProcessor, PublicStagedProposalProcessor\n * **multisigTargetConfigAdmins**: AdminPlugin, CrispTokenVoting, InterfoldDAO, ProtocolProposalProcessor, PublicStagedProposalProcessor, PublicTokenVoting; ultimately AdminPlugin, InterfoldSafeA, InterfoldSafeB, ProtocolProposalProcessor, PublicStagedProposalProcessor\n * **sppStageManagers**: InterfoldDAO; ultimately AdminPlugin, InterfoldSafeA, InterfoldSafeB, ProtocolProposalProcessor, PublicStagedProposalProcessor\n * **sppTargetManagers**: InterfoldDAO; ultimately AdminPlugin, InterfoldSafeA, InterfoldSafeB, ProtocolProposalProcessor, PublicStagedProposalProcessor\n * **sppTrustedForwarderManagers**: InterfoldDAO; ultimately AdminPlugin, InterfoldSafeA, InterfoldSafeB, ProtocolProposalProcessor, PublicStagedProposalProcessor\n * **tokenVotingProposalCreators**: PublicStagedProposalProcessor\n * **tokenVotingSettingsManagers**: InterfoldDAO; ultimately AdminPlugin, InterfoldSafeA, InterfoldSafeB, ProtocolProposalProcessor, PublicStagedProposalProcessor\n * **tokenVotingTargetManagers**: InterfoldDAO; ultimately AdminPlugin, InterfoldSafeA, InterfoldSafeB, ProtocolProposalProcessor, PublicStagedProposalProcessor",
"upgradableBy": [
{
"name": "InterfoldSafeA",
"delay": "no"
},
{
"name": "InterfoldSafeB",
"delay": "no"
},
{
"name": "PublicStagedProposalProcessor",
"delay": "no"
},
{
"name": "ProtocolProposalProcessor",
"delay": "no"
},
{
"name": "AdminPlugin",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x652a31c669f9AB37f6040f279139a75D04F2679e#code"
},
{
"name": "BondedVotes",
"isVerified": true,
"address": "eth:0x6Cd2976AD3d908E503c6D93A5E010392E25DcFB6",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Voting-power adapter used by PublicTokenVoting. It counts voting-escrow power, FOLD bonded to ciphernode operators, and eligible vesting-locked wallet FOLD while using FOLD total supply as the quorum denominator.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x6Cd2976AD3d908E503c6D93A5E010392E25DcFB6#code"
},
{
"name": "VotingEscrow",
"isVerified": true,
"address": "eth:0x71360F335e4Ec9c010e29bA7171bc62c9B4c1F12",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x0000000000000000000000000000000000000000"
],
"implementations": [
"eth:0x201d4c1cd48F2fC1297eEa56B14A29a039164a91"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1787028983,
"transactionHash": "0xd83f0141bd15b5bdc5c5c531218d3bbe1523ae0c80ea16e3d493259017e17e6e",
"implementations": [
"eth:0x201d4c1cd48F2fC1297eEa56B14A29a039164a91"
]
}
],
"description": "veFOLD escrow that custodies locked FOLD, issues lock NFTs and calculates the voting power consumed by BondedVotes through EscrowVotesAdapter.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x71360F335e4Ec9c010e29bA7171bc62c9B4c1F12#code"
},
{
"name": "VotingEscrowExitQueue",
"isVerified": true,
"address": "eth:0x8095C0B90Be4abCBF5CA7371f588fe1637E02b7f",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x0000000000000000000000000000000000000000"
],
"implementations": [
"eth:0x037c00ba58D4d2A4870017aeaD7f79A0D23A294f"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1787028983,
"transactionHash": "0xd83f0141bd15b5bdc5c5c531218d3bbe1523ae0c80ea16e3d493259017e17e6e",
"implementations": [
"eth:0x037c00ba58D4d2A4870017aeaD7f79A0D23A294f"
]
}
],
"description": "Queue applying cooldowns and optional fees to withdrawals from VotingEscrow.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x8095C0B90Be4abCBF5CA7371f588fe1637E02b7f#code"
},
{
"name": "EscrowVotesAdapter",
"isVerified": true,
"address": "eth:0x8f141B4D294d39e7D1530916A3eD65B3970C6FEc",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x0000000000000000000000000000000000000000"
],
"implementations": [
"eth:0xB67C1ABaC78686c67b91bBd1032813D86047104B"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1787028983,
"transactionHash": "0xd83f0141bd15b5bdc5c5c531218d3bbe1523ae0c80ea16e3d493259017e17e6e",
"implementations": [
"eth:0xB67C1ABaC78686c67b91bBd1032813D86047104B"
]
}
],
"description": "Upgradeable IVotes adapter that exposes voting power from veFOLD locks. BondedVotes uses it as its primary voting-power source.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x8f141B4D294d39e7D1530916A3eD65B3970C6FEc#code"
},
{
"name": "VotingEscrowDAO",
"isVerified": true,
"address": "eth:0x9e9617418DFb9E4daD00E2D1e8f21e214901989B",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x0000000000000000000000000000000000000000"
],
"implementations": [
"eth:0x58C1F7Bc62Bb63fb137bc8F6d8ea6321a0501d29"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1787028983,
"transactionHash": "0xd83f0141bd15b5bdc5c5c531218d3bbe1523ae0c80ea16e3d493259017e17e6e",
"implementations": [
"eth:0x58C1F7Bc62Bb63fb137bc8F6d8ea6321a0501d29"
]
}
],
"description": "Aragon DAO that stores governance state and executes proposal action batches.\n* Roles:\n * **clockAdmins**: VotingEscrowDAO; ultimately AdminPlugin, EOA 1, InterfoldSafeA, InterfoldSafeB, ProtocolProposalProcessor, PublicStagedProposalProcessor\n * **curveAdmins**: VotingEscrowDAO; ultimately AdminPlugin, EOA 1, InterfoldSafeA, InterfoldSafeB, ProtocolProposalProcessor, PublicStagedProposalProcessor\n * **delegationTokenManagers**: VotingEscrowDAO; ultimately AdminPlugin, EOA 1, InterfoldSafeA, InterfoldSafeB, ProtocolProposalProcessor, PublicStagedProposalProcessor\n * **exitQueueAdmins**: VotingEscrowDAO; ultimately AdminPlugin, EOA 1, InterfoldSafeA, InterfoldSafeB, ProtocolProposalProcessor, PublicStagedProposalProcessor\n * **exitQueueWithdrawers**: VotingEscrowDAO; ultimately AdminPlugin, EOA 1, InterfoldSafeA, InterfoldSafeB, ProtocolProposalProcessor, PublicStagedProposalProcessor\n * **gaugeAdmins**: VotingEscrowDAO; ultimately AdminPlugin, EOA 1, InterfoldSafeA, InterfoldSafeB, ProtocolProposalProcessor, PublicStagedProposalProcessor\n * **gaugeUpgraders**: VotingEscrowDAO; ultimately AdminPlugin, EOA 1, InterfoldSafeA, InterfoldSafeB, ProtocolProposalProcessor, PublicStagedProposalProcessor\n * **lockAdmins**: VotingEscrowDAO; ultimately AdminPlugin, EOA 1, InterfoldSafeA, InterfoldSafeB, ProtocolProposalProcessor, PublicStagedProposalProcessor\n * **multisigSettingsAdmins**: VotingEscrowDAO, VotingEscrowMultisig; ultimately AdminPlugin, EOA 1, InterfoldSafeA, InterfoldSafeB, ProtocolProposalProcessor, PublicStagedProposalProcessor\n * **multisigTargetConfigAdmins**: VotingEscrowDAO, VotingEscrowMultisig; ultimately AdminPlugin, EOA 1, InterfoldSafeA, InterfoldSafeB, ProtocolProposalProcessor, PublicStagedProposalProcessor\n * **veDaoExecutors**: InterfoldDAO, VotingEscrowMultisig\n * **veDaoRootHolders**: VotingEscrowDAO; ultimately AdminPlugin, EOA 1, InterfoldSafeA, InterfoldSafeB, ProtocolProposalProcessor, PublicStagedProposalProcessor\n * **veDaoUpgraders**: VotingEscrowDAO; ultimately AdminPlugin, EOA 1, InterfoldSafeA, InterfoldSafeB, ProtocolProposalProcessor, PublicStagedProposalProcessor\n * **votesAdapterAdmins**: VotingEscrowDAO; ultimately AdminPlugin, EOA 1, InterfoldSafeA, InterfoldSafeB, ProtocolProposalProcessor, PublicStagedProposalProcessor\n * **votingEscrowAdmins**: VotingEscrowDAO; ultimately AdminPlugin, EOA 1, InterfoldSafeA, InterfoldSafeB, ProtocolProposalProcessor, PublicStagedProposalProcessor\n * **votingEscrowPausers**: VotingEscrowDAO; ultimately AdminPlugin, EOA 1, InterfoldSafeA, InterfoldSafeB, ProtocolProposalProcessor, PublicStagedProposalProcessor\n * **votingEscrowSweepers**: VotingEscrowDAO; ultimately AdminPlugin, EOA 1, InterfoldSafeA, InterfoldSafeB, ProtocolProposalProcessor, PublicStagedProposalProcessor",
"upgradableBy": [
{
"id": "EOA-1",
"name": "EOA 1",
"delay": "no"
},
{
"name": "InterfoldSafeA",
"delay": "no"
},
{
"name": "InterfoldSafeB",
"delay": "no"
},
{
"name": "PublicStagedProposalProcessor",
"delay": "no"
},
{
"name": "ProtocolProposalProcessor",
"delay": "no"
},
{
"name": "AdminPlugin",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x9e9617418DFb9E4daD00E2D1e8f21e214901989B#code"
},
{
"name": "VotingEscrowClock",
"isVerified": true,
"address": "eth:0xc9707d36C07c3E0C4215a4574DB760b4e0E79166",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x0000000000000000000000000000000000000000"
],
"implementations": [
"eth:0xEC0162045B44C5506954E3A04dbbcdfe39f64f21"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1787028983,
"transactionHash": "0xd83f0141bd15b5bdc5c5c531218d3bbe1523ae0c80ea16e3d493259017e17e6e",
"implementations": [
"eth:0xEC0162045B44C5506954E3A04dbbcdfe39f64f21"
]
}
],
"description": "Timestamp clock defining veFOLD epochs, checkpoint cadence and gauge-voting windows.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xc9707d36C07c3E0C4215a4574DB760b4e0E79166#code"
},
{
"name": "PublicProposalCondition",
"isVerified": true,
"address": "eth:0xD0C2A1f94f7c584f0BF5588a519E82AD71dC1EC2",
"upgradeability": {
"proxyType": "EIP1167 proxy",
"admins": [],
"implementations": [
"eth:0xE437E5c7EeB0D49F97CfD040fb8a02A60a61c0f0"
]
},
"chain": "ethereum",
"description": "Aragon condition attached to the public CREATE_PROPOSAL permission. Its mutable rule program determines which callers and proposal calls qualify for the otherwise-public grant.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xD0C2A1f94f7c584f0BF5588a519E82AD71dC1EC2#code"
},
{
"name": "VotingEscrowMemberCondition",
"isVerified": true,
"address": "eth:0xde423A95f7955CcA8848e0eDCA773F6A2FBA2d76",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Immutable Aragon condition on the voting-escrow multisig's public proposal grant. When the multisig is configured as only-listed, it restricts proposal creators to current listed members. The associated Multisig address is embedded immutably in bytecode.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xde423A95f7955CcA8848e0eDCA773F6A2FBA2d76#code"
},
{
"name": "VotingPowerCurve",
"isVerified": true,
"address": "eth:0xf023390C78CF95a77A8910187d5B09BBC05F37e9",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x0000000000000000000000000000000000000000"
],
"implementations": [
"eth:0x59417A78C133a6Fddf8a3b5e751378aF8d42e249"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1787028983,
"transactionHash": "0xd83f0141bd15b5bdc5c5c531218d3bbe1523ae0c80ea16e3d493259017e17e6e",
"implementations": [
"eth:0x59417A78C133a6Fddf8a3b5e751378aF8d42e249"
]
}
],
"description": "Curve that converts veFOLD lock amount and duration into voting power.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xf023390C78CF95a77A8910187d5B09BBC05F37e9#code"
},
{
"name": "VotingEscrowLockNFT",
"isVerified": true,
"address": "eth:0xF3eeE0f5E721b8c0073C8d85bf26A3d6EC293A0E",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x0000000000000000000000000000000000000000"
],
"implementations": [
"eth:0x5F8a4394415a7630e715B8eb6F84b73c6172881a"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1787028983,
"transactionHash": "0xd83f0141bd15b5bdc5c5c531218d3bbe1523ae0c80ea16e3d493259017e17e6e",
"implementations": [
"eth:0x5F8a4394415a7630e715B8eb6F84b73c6172881a"
]
}
],
"description": "ERC-721 whose tokens represent individual veFOLD lock positions.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xF3eeE0f5E721b8c0073C8d85bf26A3d6EC293A0E#code"
},
{
"name": "ProxyAdmin",
"isVerified": true,
"address": "eth:0x2DFb93A8C3cE68Be3d8129479d7870646d89aDa7",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "* Roles:\n * **owner**: InterfoldDAO",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x2DFb93A8C3cE68Be3d8129479d7870646d89aDa7#code"
},
{
"name": "CrispBallotVerifier",
"isVerified": false,
"address": "eth:0x6E1eC1e74162D9c141e12B593Cad390aEfFb6bD0",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Unverified Honk verifier that CRISPProgram uses for ballot proofs in rounds whose voters are listed in a Merkle tree.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x6E1eC1e74162D9c141e12B593Cad390aEfFb6bD0#code"
},
{
"name": "ProxyAdmin",
"isVerified": true,
"address": "eth:0x9393573a9EF85c9A37d91E32702a340084A48b6E",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "* Roles:\n * **owner**: InterfoldDAO",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x9393573a9EF85c9A37d91E32702a340084A48b6E#code"
},
{
"name": "ProxyAdmin",
"isVerified": true,
"address": "eth:0xB3985D7fF844FA0F5E0aaC5feb5DD8BE15e88580",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "* Roles:\n * **owner**: InterfoldDAO",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xB3985D7fF844FA0F5E0aaC5feb5DD8BE15e88580#code"
},
{
"name": "CrispOnchainBallotVerifier",
"isVerified": false,
"address": "eth:0xC496A7ee730590D5A7669E251cbE54F5Fc339Ea8",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Unverified Honk verifier that CRISPProgram uses for ballot proofs in rounds that read voting power from the token, which includes every DAO vote.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xC496A7ee730590D5A7669E251cbE54F5Fc339Ea8#code"
},
{
"name": "ProxyAdmin",
"isVerified": true,
"address": "eth:0xf1511Fc32abf7Bd3a3213ddCF08C07259b53972b",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "* Roles:\n * **owner**: InterfoldDAO",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xf1511Fc32abf7Bd3a3213ddCF08C07259b53972b#code"
}
]
},
"risks": [
{
"category": "Funds can be stolen if",
"text": "the source code of unverified contracts contains malicious code.",
"isCritical": true
}
]
}
+7 -0
{
"baseTimestamp": 1792414952,
"contractsDiscoDriven": false,
"hasDiscoUi": false,
"isDiscoDriven": false,
"permissionsDiscoDriven": false
}
+154 -0
[
{
"id": "bb1702a3",
"date": "Mon, 19 Oct 2026 13:04:16 GMT",
"timestamp": 1792414952,
"description": "Config: discover the two unverified CRISP ballot verifiers from CRISPProgram's constructor arguments and track the committee size of each committee preset on Interfold. Model ciphernode operators as registry participants instead of multisig members, and resolve the VotingEscrowMultisig plugin's members.",
"isHighSeverity": false,
"changeCount": 2,
"sections": [
{
"kind": "config-related-changes",
"body": "```diff\n+ Status: CREATED\n contract CrispBallotVerifier (eth:0x6E1eC1e74162D9c141e12B593Cad390aEfFb6bD0) [N/A]\n +++ description: Unverified Honk verifier that CRISPProgram uses for ballot proofs in rounds whose voters are listed in a Merkle tree.\n```\n\n```diff\n+ Status: CREATED\n contract CrispOnchainBallotVerifier (eth:0xC496A7ee730590D5A7669E251cbE54F5Fc339Ea8) [N/A]\n +++ description: Unverified Honk verifier that CRISPProgram uses for ballot proofs in rounds that read voting power from the token, which includes every DAO vote.\n```"
}
]
},
{
"id": "022c6b27",
"date": "Fri, 16 Oct 2026 11:49:18 GMT",
"timestamp": 1792144337,
"description": "Interfold v0.19.0 upgrade. L2BEAT reproduced and verified it on Sourcify and Etherscan, with the OpenVM Halo2 verifier from the OpenVM v2.0.2 artifacts. New requests are **unpaused**, and the crypto config id changed to the new BFV parameter set (`0xa174862e…`).\n- coordinator: https://disco.l2beat.com/diff/eth:0xad5C8CA4bd0d086272039400Fa532019A920dD43/eth:0xA1FAB087d7315d2220910C6e0dEcaf659F3f4d2d\n- pk router: https://disco.l2beat.com/diff/eth:0x7CD10057c25674bd5666A9deEE3193f1b29563d1/eth:0x3E9614e711ee301DAC3FeF7D86031ED015bc406b\n- decryption router: https://disco.l2beat.com/diff/eth:0xA66CAb7AE230698b2a9ee1E0E967BaD4651FeEa7/eth:0xbbFF7101A3Be43e06b64B00e2e656529E6aDf2eE\n\nThe ciphertext output is now proven with OpenVM instead of RISC Zero. The OpenVmBfvCiphertextVerifier pins one image ID. The OpenVmReceiptVerifier binds it to fixed app executable and VM commitments, checked by an immutable OpenVM Halo2 verifier.\n- ciphertext verifier: https://disco.l2beat.com/diff/eth:0x80D217d3b2e16fF2ecc178cC75655C773895c549/eth:0x6cD258E0a893612Aea41c42dC47450ac1A6E2dD1\n\nThe DKG and decryption routes point to new secure-8192 wrappers and Honk aggregation verifiers. A new CRISPProgram (eth:0x1EA4dBdec0F2F1E9235915847fc59EF4045EEe28) with OpenVM tally proofs is registered as an E3 program. Its owner, the DAO, can replace its OpenVM verifier immediately.\n\nThe DAO replaced its Interfold Protocol Proposal pipeline. A new StagedProposalProcessor holds EXECUTE on the DAO. It comes with a new proposal condition and a new CRISP voting plugin. The plugin reads voting power from a new BondedVotes, which gives treasury Safes no voting power. The old processor and CRISP plugin are detached.\n- CRISP voting: https://disco.l2beat.com/diff/eth:0xb3d51BDe9cB8401cE9C630448Da2619279eF97DA/eth:0x8153c6dce903b3a4a886399d310668fb8c97cec6",
"isHighSeverity": true,
"changeCount": 159,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n- Status: DELETED\n contract DkgAggregatorVerifier (eth:0x00a586aB1E533e2544daAF4BB7388e176320572F) [interfold/DkgAggregatorVerifier]\n +++ description: Immutable generated Honk verifier for the BFV distributed-key-generation aggregation circuit.\n```\n\n```diff\n- Status: DELETED\n contract BfvDecryptionVerifier (eth:0x0Be6f92594ee8776C7c658eFA1ec6Ca12F5D9701) [interfold/BfvDecryptionVerifier]\n +++ description: Threshold-decryption proof wrapper. It checks the generated circuit proof and binds its parties and public-key context to the committee recorded by CiphernodeRegistry.\n```\n\n```diff\n EOA (eth:0x0dB1A5DA3481Ce66B81FC7A48dD982FA0AcFCC99) {\n +++ description: None\n receivedPermissions.1:\n- {\"permission\":\"member\",\"from\":\"eth:0xC927A5B2d8F68697bC28C0670df05178c93df2d7\",\"description\":\"eligible for ticket-weighted selection into E3 committees, where selected members create key shares and participate in threshold decryption.\",\"role\":\".$members\"}\n }\n```\n\n```diff\n EOA (eth:0x160AC642aC8Ef8bd4491d22A46772B773960B4b5) {\n +++ description: None\n receivedPermissions.1:\n- {\"permission\":\"member\",\"from\":\"eth:0xC927A5B2d8F68697bC28C0670df05178c93df2d7\",\"description\":\"eligible for ticket-weighted selection into E3 committees, where selected members create key shares and participate in threshold decryption.\",\"role\":\".$members\"}\n }\n```\n\n```diff\n- Status: DELETED\n contract DkgAggregatorVerifier (eth:0x1Eba833dd9CBC32c925B4a54DBC7682Ac276f302) [interfold/DkgAggregatorVerifier]\n +++ description: Immutable generated Honk verifier for the BFV distributed-key-generation aggregation circuit.\n```\n\n```diff\n EOA (eth:0x2048E0750655298E628155Ca5024F0b30D896e51) {\n +++ description: None\n receivedPermissions.1:\n- {\"permission\":\"member\",\"from\":\"eth:0xC927A5B2d8F68697bC28C0670df05178c93df2d7\",\"description\":\"eligible for ticket-weighted selection into E3 committees, where selected members create key shares and participate in threshold decryption.\",\"role\":\".$members\"}\n }\n```\n\n```diff\n EOA (eth:0x2358424b1E347f1FAADB7F54C5eB57eeA3A2738d) {\n +++ description: None\n receivedPermissions.1:\n- {\"permission\":\"member\",\"from\":\"eth:0xC927A5B2d8F68697bC28C0670df05178c93df2d7\",\"description\":\"eligible for ticket-weighted selection into E3 committees, where selected members create key shares and participate in threshold decryption.\",\"role\":\".$members\"}\n }\n```\n\n```diff\n contract Interfold (eth:0x28cF63B459e6218C69EA97ea7D90541cf648c715) [interfold/Interfold] {\n +++ description: Coordinator for Encrypted Execution Environments (E3s). It accepts requests for allowlisted programs, selects a ciphernode committee, snapshots the configured proof system, and verifies the encrypted result and threshold decryption before publishing plaintext output.\n sourceHashes.1:\n- \"0x2df58a27c4061f9543d01a5d32f6f88aefd401d25a50c1c574ecae4a01236915\"\n+ \"0xf368ee0ace4e9c82f5dc0c9f99a92a493b1bc3a7325cb27798ad1fcb4e970e9b\"\n values.$implementation:\n- \"eth:0xad5C8CA4bd0d086272039400Fa532019A920dD43\"\n+ \"eth:0xA1FAB087d7315d2220910C6e0dEcaf659F3f4d2d\"\n values.$pastUpgrades.3:\n+ [\"2026-10-12T13:43:59.000Z\",\"0x0cdf46abaaa48475a18ffd505f6c07d736083ddf936364f4faea18cbef77030c\",[\"eth:0xA1FAB087d7315d2220910C6e0dEcaf659F3f4d2d\"]]\n values.$upgradeCount:\n- 3\n+ 4\n+++ description: Compiled-in identifier of the BFV parameter set and circuit configuration accepted for new requests. Changing it requires a new implementation.\n+++ severity: HIGH\n values.activeCryptoConfigId:\n- \"0xd9c86e581f8291ffb5b63595600e8d096ed30b16e2e0a6634a76c22b1f58fb4e\"\n+ \"0xa174862efd4487031d423ca96516807775ade0191c714e513aab93d0cc289baa\"\n+++ description: Verifier used for the encrypted computation output of future BFV E3s.\n+++ severity: HIGH\n values.bfvCiphertextVerifier:\n- \"eth:0x80D217d3b2e16fF2ecc178cC75655C773895c549\"\n+ \"eth:0x6cD258E0a893612Aea41c42dC47450ac1A6E2dD1\"\n+++ description: Verifier used for BFV threshold-decryption proofs for future E3s.\n+++ severity: HIGH\n values.bfvDecryptionVerifier:\n- \"eth:0xA66CAb7AE230698b2a9ee1E0E967BaD4651FeEa7\"\n+ \"eth:0xbbFF7101A3Be43e06b64B00e2e656529E6aDf2eE\"\n+++ description: Verifier used for BFV distributed-key-generation proofs for future E3s.\n+++ severity: HIGH\n values.bfvPkVerifier:\n- \"eth:0x7CD10057c25674bd5666A9deEE3193f1b29563d1\"\n+ \"eth:0x3E9614e711ee301DAC3FeF7D86031ED015bc406b\"\n+++ description: E3 application contracts permanently allowlisted by governance. Registration cannot be revoked in the current implementation.\n values.registeredE3Programs.3:\n+ \"eth:0x1EA4dBdec0F2F1E9235915847fc59EF4045EEe28\"\n+++ description: Whether new E3 requests are disabled.\n values.requestsPaused:\n- true\n+ false\n implementationNames.eth:0xad5C8CA4bd0d086272039400Fa532019A920dD43:\n- \"Interfold\"\n implementationNames.eth:0xA1FAB087d7315d2220910C6e0dEcaf659F3f4d2d:\n+ \"Interfold\"\n }\n```\n\n```diff\n EOA (eth:0x2A2Df1e79ec3be51c0B050175E3D897e3911dC42) {\n +++ description: None\n receivedPermissions.1:\n- {\"permission\":\"member\",\"from\":\"eth:0xC927A5B2d8F68697bC28C0670df05178c93df2d7\",\"description\":\"eligible for ticket-weighted selection into E3 committees, where selected members create key shares and participate in threshold decryption.\",\"role\":\".$members\"}\n }\n```\n\n```diff\n EOA (eth:0x3394971Ee0cb5bc6336F8C36bc8807CDAA8BB017) {\n +++ description: None\n receivedPermissions.1:\n- {\"permission\":\"member\",\"from\":\"eth:0xC927A5B2d8F68697bC28C0670df05178c93df2d7\",\"description\":\"eligible for ticket-weighted selection into E3 committees, where selected members create key shares and participate in threshold decryption.\",\"role\":\".$members\"}\n }\n```\n\n```diff\n EOA (eth:0x34655732dB9BBfA627021D18d786EfF7Bde211F7) {\n +++ description: None\n receivedPermissions.0:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x1EA4dBdec0F2F1E9235915847fc59EF4045EEe28\",\"description\":\"attest that ballot inputs are available so a CRISP round can proceed.\",\"role\":\".inputAvailabilitySigner\"}\n }\n```\n\n```diff\n- Status: DELETED\n contract BfvPkVerifier (eth:0x3C1C772B1D800ff4E6F8d0c02E1e6D07293c0059) [interfold/BfvPkVerifier]\n +++ description: BFV public-key proof wrapper. It binds the generated circuit verifier to the expected DKG-fold and C5 verification-key hashes.\n```\n\n```diff\n EOA (eth:0x4429dB606a7c476762E4c7003963603f97a3C031) {\n +++ description: None\n receivedPermissions.1:\n- {\"permission\":\"member\",\"from\":\"eth:0xC927A5B2d8F68697bC28C0670df05178c93df2d7\",\"description\":\"eligible for ticket-weighted selection into E3 committees, where selected members create key shares and participate in threshold decryption.\",\"role\":\".$members\"}\n }\n```\n\n```diff\n contract InterfoldSafeA (eth:0x5429D8c7fD14023f3c414126F94BbE25A05fC018) [GnosisSafe] {\n +++ description: None\n receivedPermissions.2:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x1EA4dBdec0F2F1E9235915847fc59EF4045EEe28\",\"description\":\"set census roots and replace the application OpenVM receipt verifier, and with it the image ID, immediately. Such replacement cannot change the verifier snapshotted by Interfold, but can make an in-flight round fail.\",\"role\":\".owner\",\"via\":[{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]}\n receivedPermissions.7:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\",\"description\":\"change the settings of the unverified CRISP token-voting plugin used as the IPP voting stage.\",\"role\":\".crispVotingSettingsManagers\",\"via\":[{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]}\n receivedPermissions.10:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\",\"description\":\"redirect passed CRISP vote actions to another executor or target.\",\"role\":\".crispVotingTargetManagers\",\"via\":[{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]}\n receivedPermissions.11:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\",\"description\":\"redirect passed Interfold Protocol Proposal actions to another executor or target.\",\"role\":\".ippTargetManagers\",\"via\":[{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]}\n receivedPermissions.14:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\",\"description\":\"replace the address trusted to append the effective caller to IPP proposal transactions.\",\"role\":\".ippTrustedForwarderManagers\",\"via\":[{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]}\n receivedPermissions.16:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\",\"description\":\"replace the rules that gate creation of Interfold Protocol Proposals.\",\"role\":\".ippConditionRuleManagers\",\"via\":[{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]}\n receivedPermissions.18:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\",\"description\":\"replace the stages, bodies, thresholds and timing rules for future Interfold Protocol Proposals.\",\"role\":\".ippStageManagers\",\"via\":[{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]}\n }\n```\n\n```diff\n- Status: DELETED\n contract BfvPkVerifier (eth:0x55F7379898512dEdCc994109a590e7d6a6eB50D8) [interfold/BfvPkVerifier]\n +++ description: BFV public-key proof wrapper. It binds the generated circuit verifier to the expected DKG-fold and C5 verification-key hashes.\n```\n\n```diff\n EOA (eth:0x58C40cEC1ebAc2e383B5091ed47fa719a29f00A4) {\n +++ description: None\n receivedPermissions.1:\n- {\"permission\":\"member\",\"from\":\"eth:0xC927A5B2d8F68697bC28C0670df05178c93df2d7\",\"description\":\"eligible for ticket-weighted selection into E3 committees, where selected members create key shares and participate in threshold decryption.\",\"role\":\".$members\"}\n }\n```\n\n```diff\n EOA (eth:0x5BA3ef7913D6dD46e2b4EBd8A05eF4615ae8Be5B) {\n +++ description: None\n receivedPermissions.1:\n- {\"permission\":\"member\",\"from\":\"eth:0xC927A5B2d8F68697bC28C0670df05178c93df2d7\",\"description\":\"eligible for ticket-weighted selection into E3 committees, where selected members create key shares and participate in threshold decryption.\",\"role\":\".$members\"}\n }\n```\n\n```diff\n EOA (eth:0x5cFc8841C3fBb3CA8dCb2BfBD3a39a98dE5B942a) {\n +++ description: None\n receivedPermissions.1:\n- {\"permission\":\"member\",\"from\":\"eth:0xC927A5B2d8F68697bC28C0670df05178c93df2d7\",\"description\":\"eligible for ticket-weighted selection into E3 committees, where selected members create key shares and participate in threshold decryption.\",\"role\":\".$members\"}\n }\n```\n\n```diff\n EOA (eth:0x62b2dF039198096259F8dc619cE5E79507806A00) {\n +++ description: None\n receivedPermissions.1:\n- {\"permission\":\"member\",\"from\":\"eth:0xC927A5B2d8F68697bC28C0670df05178c93df2d7\",\"description\":\"eligible for ticket-weighted selection into E3 committees, where selected members create key shares and participate in threshold decryption.\",\"role\":\".$members\"}\n }\n```\n\n```diff\n contract InterfoldDAO (eth:0x652a31c669f9AB37f6040f279139a75D04F2679e) [zama/ZamaDAO] {\n +++ description: Aragon DAO that stores governance state and executes proposal action batches.\n+++ description: Active Aragon grants reconstructed from Granted and Revoked events. The permissionId, target contract (where), grantee (who), and optional condition are preserved.\n+++ severity: HIGH\n values.$activePermissions.31:\n- {\"permissionId\":\"0x8c433a4cd6b51969eca37f974940894297b9fcf4b282a213fea5cd8f85289c90\",\"where\":\"eth:0x364686f83d7cCEdf88B881B23d4437D1652A8FfB\",\"who\":\"eth:0xFFfFfFffFFfffFFfFFfFFFFFffFFFffffFfFFFfF\",\"condition\":\"eth:0xaE0F1082039E715609495Fdb2265b3B53f1296C9\"}\n+++ description: Active Aragon grants reconstructed from Granted and Revoked events. The permissionId, target contract (where), grantee (who), and optional condition are preserved.\n+++ severity: HIGH\n values.$activePermissions.33:\n- {\"permissionId\":\"0xbf04b4486c9663d805744005c3da000eda93de6e3308a4a7a812eb565327b78d\",\"where\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\",\"who\":\"eth:0x364686f83d7cCEdf88B881B23d4437D1652A8FfB\",\"condition\":\"eth:0x0000000000000000000000000000000000000002\"}\n+++ description: Active Aragon grants reconstructed from Granted and Revoked events. The permissionId, target contract (where), grantee (who), and optional condition are preserved.\n+++ severity: HIGH\n values.$activePermissions.33:\n+ {\"permissionId\":\"0x568cc693d84eb1901f8bcecba154cbdef23ca3cf67efc0a0b698528a06c660f7\",\"where\":\"eth:0xf101fB197E38f6b3Ca110D619D845634CD88098c\",\"who\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\",\"condition\":\"eth:0x0000000000000000000000000000000000000002\"}\n+++ description: Active Aragon grants reconstructed from Granted and Revoked events. The permissionId, target contract (where), grantee (who), and optional condition are preserved.\n+++ severity: HIGH\n values.$activePermissions.34:\n+ {\"permissionId\":\"0x2cf8b99554b63927353c04c2e1cee7fe05352aeb3c52d2576a2f7fd7fb8e180a\",\"where\":\"eth:0xf101fB197E38f6b3Ca110D619D845634CD88098c\",\"who\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\",\"condition\":\"eth:0x0000000000000000000000000000000000000002\"}\n+++ description: Active Aragon grants reconstructed from Granted and Revoked events. The permissionId, target contract (where), grantee (who), and optional condition are preserved.\n+++ severity: HIGH\n values.$activePermissions.35:\n+ {\"permissionId\":\"0x4707e94b25cfce1a7c363508fbb838c35864388ad77284b248282b9746982b9b\",\"where\":\"eth:0xf101fB197E38f6b3Ca110D619D845634CD88098c\",\"who\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\",\"condition\":\"eth:0x0000000000000000000000000000000000000002\"}\n+++ description: Active Aragon grants reconstructed from Granted and Revoked events. The permissionId, target contract (where), grantee (who), and optional condition are preserved.\n+++ severity: HIGH\n values.$activePermissions.36:\n+ {\"permissionId\":\"0x6f36f8bf0398781285f5a40c489dbf3268ce3e205aba87f21e49e6805391b5a1\",\"where\":\"eth:0xc19635aD8De0a0D6430025fC5ed212CA8216bab3\",\"who\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\",\"condition\":\"eth:0x0000000000000000000000000000000000000002\"}\n+++ description: Active Aragon grants reconstructed from Granted and Revoked events. The permissionId, target contract (where), grantee (who), and optional condition are preserved.\n+++ severity: HIGH\n values.$activePermissions.37:\n+ {\"permissionId\":\"0xf281525e53675515a6ba7cc7bea8a81e649b3608423ee2d73be1752cea887889\",\"where\":\"eth:0xc19635aD8De0a0D6430025fC5ed212CA8216bab3\",\"who\":\"eth:0xFFfFfFffFFfffFFfFFfFFFFFffFFFffffFfFFFfF\",\"condition\":\"eth:0x0000000000000000000000000000000000000002\"}\n+++ description: Active Aragon grants reconstructed from Granted and Revoked events. The permissionId, target contract (where), grantee (who), and optional condition are preserved.\n+++ severity: HIGH\n values.$activePermissions.38:\n+ {\"permissionId\":\"0x06d294bc8cbad2e393408b20dd019a772661f60b8d633e56761157cb1ec85f8c\",\"where\":\"eth:0xc19635aD8De0a0D6430025fC5ed212CA8216bab3\",\"who\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\",\"condition\":\"eth:0x0000000000000000000000000000000000000002\"}\n+++ description: Active Aragon grants reconstructed from Granted and Revoked events. The permissionId, target contract (where), grantee (who), and optional condition are preserved.\n+++ severity: HIGH\n values.$activePermissions.39:\n+ {\"permissionId\":\"0x568cc693d84eb1901f8bcecba154cbdef23ca3cf67efc0a0b698528a06c660f7\",\"where\":\"eth:0xc19635aD8De0a0D6430025fC5ed212CA8216bab3\",\"who\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\",\"condition\":\"eth:0x0000000000000000000000000000000000000002\"}\n+++ description: Active Aragon grants reconstructed from Granted and Revoked events. The permissionId, target contract (where), grantee (who), and optional condition are preserved.\n+++ severity: HIGH\n values.$activePermissions.40:\n+ {\"permissionId\":\"0x4707e94b25cfce1a7c363508fbb838c35864388ad77284b248282b9746982b9b\",\"where\":\"eth:0xc19635aD8De0a0D6430025fC5ed212CA8216bab3\",\"who\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\",\"condition\":\"eth:0x0000000000000000000000000000000000000002\"}\n+++ description: Active Aragon grants reconstructed from Granted and Revoked events. The permissionId, target contract (where), grantee (who), and optional condition are preserved.\n+++ severity: HIGH\n values.$activePermissions.41:\n+ {\"permissionId\":\"0x8c433a4cd6b51969eca37f974940894297b9fcf4b282a213fea5cd8f85289c90\",\"where\":\"eth:0xc19635aD8De0a0D6430025fC5ed212CA8216bab3\",\"who\":\"eth:0xFFfFfFffFFfffFFfFFfFFFFFffFFFffffFfFFFfF\",\"condition\":\"eth:0x4c9D0A2B8E5917c480bdF3E42F1b1c9365EF2115\"}\n+++ description: Active Aragon grants reconstructed from Granted and Revoked events. The permissionId, target contract (where), grantee (who), and optional condition are preserved.\n+++ severity: HIGH\n values.$activePermissions.42:\n+ {\"permissionId\":\"0xb014ce248804cab6a144581acce1eeb70ce5d54f08433b989d73bb0ccee3d3f9\",\"where\":\"eth:0xc19635aD8De0a0D6430025fC5ed212CA8216bab3\",\"who\":\"eth:0xFFfFfFffFFfffFFfFFfFFFFFffFFFffffFfFFFfF\",\"condition\":\"eth:0x0000000000000000000000000000000000000002\"}\n+++ description: Active Aragon grants reconstructed from Granted and Revoked events. The permissionId, target contract (where), grantee (who), and optional condition are preserved.\n+++ severity: HIGH\n values.$activePermissions.43:\n+ {\"permissionId\":\"0xbf04b4486c9663d805744005c3da000eda93de6e3308a4a7a812eb565327b78d\",\"where\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\",\"who\":\"eth:0xc19635aD8De0a0D6430025fC5ed212CA8216bab3\",\"condition\":\"eth:0x0000000000000000000000000000000000000002\"}\n+++ description: Active Aragon grants reconstructed from Granted and Revoked events. The permissionId, target contract (where), grantee (who), and optional condition are preserved.\n+++ severity: HIGH\n values.$activePermissions.44:\n+ {\"permissionId\":\"0xd3d98e95f3486fc234d80c098cf0d2a0a3fb187833d7e9cc930f8c4f8335a0e7\",\"where\":\"eth:0x4c9D0A2B8E5917c480bdF3E42F1b1c9365EF2115\",\"who\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\",\"condition\":\"eth:0x0000000000000000000000000000000000000002\"}\n values.$activePermissions.35.who:\n- \"eth:0x364686f83d7cCEdf88B881B23d4437D1652A8FfB\"\n+ \"eth:0xc19635aD8De0a0D6430025fC5ed212CA8216bab3\"\n values.$activePermissions.35.where:\n- \"eth:0x197be4E09614285Abb4b74b672377c404FD44d54\"\n+ \"eth:0xf101fB197E38f6b3Ca110D619D845634CD88098c\"\n+++ description: Current grantees allowed to open votes in the CRISP token-voting plugin.\n values.crispVotingProposalCreators.0:\n+ \"eth:0xc19635aD8De0a0D6430025fC5ed212CA8216bab3\"\n+++ description: Current grantees of the settings-update permission (id 0x2cf8b995...) on the CRISP token-voting plugin.\n values.crispVotingSettingsManagers.0:\n+ \"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"\n+++ description: Current grantees allowed to redirect the CRISP token-voting plugin's execution target.\n values.crispVotingTargetManagers.0:\n+ \"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"\n+++ description: Current grantees of Aragon's EXECUTE_PERMISSION on this DAO, reconstructed from grant and revoke events.\n values.daoExecutors.2:\n- \"eth:0x364686f83d7cCEdf88B881B23d4437D1652A8FfB\"\n+ \"eth:0xc19635aD8De0a0D6430025fC5ed212CA8216bab3\"\n+++ description: Current grantees allowed to advance Interfold Protocol Proposals whose stage conditions have passed.\n values.ippAdvancers.0:\n+ \"eth:0xFFfFfFffFFfffFFfFFfFFFFFffFFFffffFfFFFfF\"\n+++ description: Current grantees allowed to replace the IPP proposal-creation condition rules.\n values.ippConditionRuleManagers.0:\n+ \"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"\n+++ description: Current grantees allowed to execute an Interfold Protocol Proposal after its stages have passed.\n values.ippExecutors.0:\n+ \"eth:0xFFfFfFffFFfffFFfFFfFFFFFffFFFffffFfFFFfF\"\n+++ description: Current grantees allowed to create Interfold Protocol Proposals. Conditional grants remain visible in $activePermissions.\n values.ippProposalCreators.0:\n+ \"eth:0xFFfFfFffFFfffFFfFFfFFFFFffFFFffffFfFFFfF\"\n+++ description: Current grantees allowed to replace the Interfold Protocol Proposal (IPP) staged process.\n values.ippStageManagers.0:\n+ \"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"\n+++ description: Current grantees allowed to redirect the IPP processor's execution target.\n values.ippTargetManagers.0:\n+ \"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"\n+++ description: Current grantees allowed to replace the IPP processor's trusted meta-transaction forwarder.\n values.ippTrustedForwarderManagers.0:\n+ \"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"\n+++ description: Current multisig target-configuration grantees derived from Aragon grant/revoke events.\n+++ severity: HIGH\n values.multisigTargetConfigAdmins.5:\n+ {\"where\":\"eth:0xf101fB197E38f6b3Ca110D619D845634CD88098c\",\"who\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}\n+++ description: Current multisig target-configuration grantees derived from Aragon grant/revoke events.\n+++ severity: HIGH\n values.multisigTargetConfigAdmins.6:\n+ {\"where\":\"eth:0xc19635aD8De0a0D6430025fC5ed212CA8216bab3\",\"who\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}\n+++ description: Multisig plugins with public proposal creation configured through Aragon grant/revoke events.\n+++ severity: LOW\n values.publicProposalCreators.1:\n- \"eth:0x364686f83d7cCEdf88B881B23d4437D1652A8FfB\"\n+ \"eth:0xc19635aD8De0a0D6430025fC5ed212CA8216bab3\"\n+++ description: Multisig plugins with public proposal execution configured through Aragon grant/revoke events.\n+++ severity: LOW\n values.publicProposalExecutors.3:\n+ \"eth:0xc19635aD8De0a0D6430025fC5ed212CA8216bab3\"\n directlyReceivedPermissions.7:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x1EA4dBdec0F2F1E9235915847fc59EF4045EEe28\",\"description\":\"set census roots and replace the application OpenVM receipt verifier, and with it the image ID, immediately. Such replacement cannot change the verifier snapshotted by Interfold, but can make an in-flight round fail.\",\"role\":\".owner\"}\n directlyReceivedPermissions.12:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\",\"description\":\"change the settings of the unverified CRISP token-voting plugin used as the IPP voting stage.\",\"role\":\".crispVotingSettingsManagers\"}\n directlyReceivedPermissions.15:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\",\"description\":\"redirect passed CRISP vote actions to another executor or target.\",\"role\":\".crispVotingTargetManagers\"}\n directlyReceivedPermissions.16:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\",\"description\":\"redirect passed Interfold Protocol Proposal actions to another executor or target.\",\"role\":\".ippTargetManagers\"}\n directlyReceivedPermissions.19:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\",\"description\":\"replace the address trusted to append the effective caller to IPP proposal transactions.\",\"role\":\".ippTrustedForwarderManagers\"}\n directlyReceivedPermissions.21:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\",\"description\":\"replace the rules that gate creation of Interfold Protocol Proposals.\",\"role\":\".ippConditionRuleManagers\"}\n directlyReceivedPermissions.23:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\",\"description\":\"replace the stages, bodies, thresholds and timing rules for future Interfold Protocol Proposals.\",\"role\":\".ippStageManagers\"}\n }\n```\n\n```diff\n- Status: DELETED\n contract BfvPkVerifier (eth:0x67DDfB579EB5dC7df9B3f7Cfd942f325a792Afc3) [interfold/BfvPkVerifier]\n +++ description: BFV public-key proof wrapper. It binds the generated circuit verifier to the expected DKG-fold and C5 verification-key hashes.\n```\n\n```diff\n EOA (eth:0x69760AF47771F8F763B5E3cb88601C197b0ee235) {\n +++ description: None\n receivedPermissions.1:\n- {\"permission\":\"member\",\"from\":\"eth:0xC927A5B2d8F68697bC28C0670df05178c93df2d7\",\"description\":\"eligible for ticket-weighted selection into E3 committees, where selected members create key shares and participate in threshold decryption.\",\"role\":\".$members\"}\n }\n```\n\n```diff\n EOA (eth:0x6B035c1b0B099555284C8676e48e2C3CB8b3d4B0) {\n +++ description: None\n receivedPermissions.1:\n- {\"permission\":\"member\",\"from\":\"eth:0xC927A5B2d8F68697bC28C0670df05178c93df2d7\",\"description\":\"eligible for ticket-weighted selection into E3 committees, where selected members create key shares and participate in threshold decryption.\",\"role\":\".$members\"}\n }\n```\n\n```diff\n EOA (eth:0x76f3491D36138450F957b03F657dDa258Ad4c0E7) {\n +++ description: None\n receivedPermissions.1:\n- {\"permission\":\"member\",\"from\":\"eth:0xC927A5B2d8F68697bC28C0670df05178c93df2d7\",\"description\":\"eligible for ticket-weighted selection into E3 committees, where selected members create key shares and participate in threshold decryption.\",\"role\":\".$members\"}\n }\n```\n\n```diff\n EOA (eth:0x780c1bB4Abc6F4324813e58a52C9d2FEF055ef78) {\n +++ description: None\n receivedPermissions.1:\n- {\"permission\":\"member\",\"from\":\"eth:0xC927A5B2d8F68697bC28C0670df05178c93df2d7\",\"description\":\"eligible for ticket-weighted selection into E3 committees, where selected members create key shares and participate in threshold decryption.\",\"role\":\".$members\"}\n }\n```\n\n```diff\n- Status: DELETED\n contract BfvPkVerifierRouter (eth:0x7CD10057c25674bd5666A9deEE3193f1b29563d1) [interfold/BfvPkVerifierRouter]\n +++ description: Immutable router for BFV distributed-key-generation proofs. It forwards each proof to the per-committee-size BfvPkVerifier whose public-input length and circuit verification-key hashes match, so committees of every supported size share one verifier entry point.\n```\n\n```diff\n EOA (eth:0x7E94eEd05e81679F69dA44157a45F0528DA9Ce66) {\n +++ description: None\n receivedPermissions.1:\n- {\"permission\":\"member\",\"from\":\"eth:0xC927A5B2d8F68697bC28C0670df05178c93df2d7\",\"description\":\"eligible for ticket-weighted selection into E3 committees, where selected members create key shares and participate in threshold decryption.\",\"role\":\".$members\"}\n }\n```\n\n```diff\n- Status: DELETED\n contract Risc0BfvCiphertextVerifier (eth:0x80D217d3b2e16fF2ecc178cC75655C773895c549) [interfold/Risc0BfvCiphertextVerifier]\n +++ description: Ciphertext-output verifier for BFV E3s. It accepts a RISC Zero receipt for the immutable guest image ID against the E3-specific journal constructed by Interfold.\n```\n\n```diff\n- Status: DELETED\n contract BfvDecryptionVerifier (eth:0x86ba053b37a844FcD2dd52aBC69fc4D69D965Ad8) [interfold/BfvDecryptionVerifier]\n +++ description: Threshold-decryption proof wrapper. It checks the generated circuit proof and binds its parties and public-key context to the committee recorded by CiphernodeRegistry.\n```\n\n```diff\n EOA (eth:0x86FBE1027577A343c1C9DcCAEc470d2B613cB347) {\n +++ description: None\n receivedPermissions.1:\n- {\"permission\":\"member\",\"from\":\"eth:0xC927A5B2d8F68697bC28C0670df05178c93df2d7\",\"description\":\"eligible for ticket-weighted selection into E3 committees, where selected members create key shares and participate in threshold decryption.\",\"role\":\".$members\"}\n }\n```\n\n```diff\n contract InterfoldSafeB (eth:0x8B43b2852fc5031D01DDfCDF702973D93A2FF593) [GnosisSafe] {\n +++ description: None\n receivedPermissions.2:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x1EA4dBdec0F2F1E9235915847fc59EF4045EEe28\",\"description\":\"set census roots and replace the application OpenVM receipt verifier, and with it the image ID, immediately. Such replacement cannot change the verifier snapshotted by Interfold, but can make an in-flight round fail.\",\"role\":\".owner\",\"via\":[{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]}\n receivedPermissions.7:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\",\"description\":\"change the settings of the unverified CRISP token-voting plugin used as the IPP voting stage.\",\"role\":\".crispVotingSettingsManagers\",\"via\":[{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]}\n receivedPermissions.10:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\",\"description\":\"redirect passed CRISP vote actions to another executor or target.\",\"role\":\".crispVotingTargetManagers\",\"via\":[{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]}\n receivedPermissions.11:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\",\"description\":\"redirect passed Interfold Protocol Proposal actions to another executor or target.\",\"role\":\".ippTargetManagers\",\"via\":[{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]}\n receivedPermissions.14:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\",\"description\":\"replace the address trusted to append the effective caller to IPP proposal transactions.\",\"role\":\".ippTrustedForwarderManagers\",\"via\":[{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]}\n receivedPermissions.16:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\",\"description\":\"replace the rules that gate creation of Interfold Protocol Proposals.\",\"role\":\".ippConditionRuleManagers\",\"via\":[{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]}\n receivedPermissions.18:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\",\"description\":\"replace the stages, bodies, thresholds and timing rules for future Interfold Protocol Proposals.\",\"role\":\".ippStageManagers\",\"via\":[{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]}\n }\n```\n\n```diff\n EOA (eth:0x8DEeF8799921D549BAC469aD6d37912DBeB2432a) {\n +++ description: None\n receivedPermissions.1:\n- {\"permission\":\"member\",\"from\":\"eth:0xC927A5B2d8F68697bC28C0670df05178c93df2d7\",\"description\":\"eligible for ticket-weighted selection into E3 committees, where selected members create key shares and participate in threshold decryption.\",\"role\":\".$members\"}\n }\n```\n\n```diff\n EOA (eth:0x9aCc89CCD297064779C4e0f1c353079975C731b6) {\n +++ description: None\n receivedPermissions.1:\n- {\"permission\":\"member\",\"from\":\"eth:0xC927A5B2d8F68697bC28C0670df05178c93df2d7\",\"description\":\"eligible for ticket-weighted selection into E3 committees, where selected members create key shares and participate in threshold decryption.\",\"role\":\".$members\"}\n }\n```\n\n```diff\n contract PublicStagedProposalProcessor (eth:0x9c0Ff283399Bd1D3111E6c9C689066759b7AccDb) [interfold/StagedProposalProcessor] {\n +++ description: Upgradeable Aragon staged-proposal plugin that executes DAO actions after proposals pass its configured sequence of voting or manual bodies, thresholds and timing windows.\n receivedPermissions.2:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x1EA4dBdec0F2F1E9235915847fc59EF4045EEe28\",\"description\":\"set census roots and replace the application OpenVM receipt verifier, and with it the image ID, immediately. Such replacement cannot change the verifier snapshotted by Interfold, but can make an in-flight round fail.\",\"role\":\".owner\",\"via\":[{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]}\n receivedPermissions.8:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\",\"description\":\"change the settings of the unverified CRISP token-voting plugin used as the IPP voting stage.\",\"role\":\".crispVotingSettingsManagers\",\"via\":[{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]}\n receivedPermissions.12:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\",\"description\":\"redirect passed CRISP vote actions to another executor or target.\",\"role\":\".crispVotingTargetManagers\",\"via\":[{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]}\n receivedPermissions.13:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\",\"description\":\"redirect passed Interfold Protocol Proposal actions to another executor or target.\",\"role\":\".ippTargetManagers\",\"via\":[{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]}\n receivedPermissions.16:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\",\"description\":\"replace the address trusted to append the effective caller to IPP proposal transactions.\",\"role\":\".ippTrustedForwarderManagers\",\"via\":[{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]}\n receivedPermissions.18:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\",\"description\":\"replace the rules that gate creation of Interfold Protocol Proposals.\",\"role\":\".ippConditionRuleManagers\",\"via\":[{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]}\n receivedPermissions.20:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\",\"description\":\"replace the stages, bodies, thresholds and timing rules for future Interfold Protocol Proposals.\",\"role\":\".ippStageManagers\",\"via\":[{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]}\n }\n```\n\n```diff\n EOA (eth:0x9D129a1733ab0f56460cCCfdC807C797b5a1a53c) {\n +++ description: None\n receivedPermissions.1:\n- {\"permission\":\"member\",\"from\":\"eth:0xC927A5B2d8F68697bC28C0670df05178c93df2d7\",\"description\":\"eligible for ticket-weighted selection into E3 committees, where selected members create key shares and participate in threshold decryption.\",\"role\":\".$members\"}\n }\n```\n\n```diff\n contract NodeReleaseRegistry (eth:0x9E1C6B433CFbC8f28d80EAB583C428B01d083b0A) [interfold/NodeReleaseRegistry] {\n +++ description: Registry of ciphernode software releases. Operators self-attest the release they run; staying eligible for new E3 committees requires an attestation matching the exact governance-set protocol version and at least the required node generation. Raising the requirement instantly invalidates every operator's cached eligibility until they re-attest.\n+++ description: Minimum ciphernode software generation operators must attest to remain eligible.\n values.requiredNodeGeneration:\n- 1\n+ 2\n+++ description: Exact ciphernode protocol version operators must attest to remain eligible.\n values.requiredProtocolVersion:\n- 4\n+ 8\n }\n```\n\n```diff\n- Status: DELETED\n contract BfvDecryptionVerifierRouter (eth:0xA66CAb7AE230698b2a9ee1E0E967BaD4651FeEa7) [interfold/BfvDecryptionVerifierRouter]\n +++ description: Immutable router for BFV threshold-decryption proofs. It forwards each proof to the per-committee-size BfvDecryptionVerifier whose public-input length and circuit verification-key hashes match, so committees of every supported size share one verifier entry point.\n```\n\n```diff\n- Status: DELETED\n contract DkgAggregatorVerifier (eth:0xaC784625D32Ce7840D3f0EBD7E5832ea34C188C0) [interfold/DkgAggregatorVerifier]\n +++ description: Immutable generated Honk verifier for the BFV distributed-key-generation aggregation circuit.\n```\n\n```diff\n EOA (eth:0xAF92b142F15eb873f7D1d9F05c8c9b1855698249) {\n +++ description: None\n receivedPermissions.1:\n- {\"permission\":\"member\",\"from\":\"eth:0xC927A5B2d8F68697bC28C0670df05178c93df2d7\",\"description\":\"eligible for ticket-weighted selection into E3 committees, where selected members create key shares and participate in threshold decryption.\",\"role\":\".$members\"}\n }\n```\n\n```diff\n- Status: DELETED\n contract DecryptionAggregatorVerifier (eth:0xbeF207838845b227394Eb46579372FEE5E2a95fd) [interfold/DecryptionAggregatorVerifier]\n +++ description: Immutable generated Honk verifier for the BFV threshold-decryption aggregation circuit.\n```\n\n```diff\n EOA (eth:0xBf11E6B5be2ff90CDC6860BAe7941e44aa52DEc3) {\n +++ description: None\n receivedPermissions.1:\n- {\"permission\":\"member\",\"from\":\"eth:0xC927A5B2d8F68697bC28C0670df05178c93df2d7\",\"description\":\"eligible for ticket-weighted selection into E3 committees, where selected members create key shares and participate in threshold decryption.\",\"role\":\".$members\"}\n }\n```\n\n```diff\n- Status: DELETED\n contract DecryptionAggregatorVerifier (eth:0xBFAE594dc43f4b910F478ec00D285B8daC66855F) [interfold/DecryptionAggregatorVerifier]\n +++ description: Immutable generated Honk verifier for the BFV threshold-decryption aggregation circuit.\n```\n\n```diff\n contract ProtocolProposalProcessor (eth:0xc19635aD8De0a0D6430025fC5ed212CA8216bab3) [interfold/StagedProposalProcessor] {\n +++ description: Upgradeable Aragon staged-proposal plugin that executes DAO actions after proposals pass its configured sequence of voting or manual bodies, thresholds and timing windows.\n+++ description: Index of the stage configuration used by newly created proposals. Existing proposals retain their earlier snapshot.\n values.getCurrentConfigIndex:\n- 0\n+ 1\n+++ description: Latest proposal-stage configuration reconstructed from events, including voting bodies, approval and veto thresholds, timing windows, and edit/cancel flags.\n values.currentStages:\n+ [[[[\"eth:0xf101fB197E38f6b3Ca110D619D845634CD88098c\",false,true,1]],1296000,0,432000,1,0,false,false],[[[\"eth:0x8B43b2852fc5031D01DDfCDF702973D93A2FF593\",true,false,1]],432000,0,0,1,0,false,false]]\n receivedPermissions:\n+ [{\"permission\":\"interact\",\"from\":\"eth:0x0ec90465095C21830BEcED07e032809A2Bd2915F\",\"description\":\"replace collateral assets and protocol dependencies; change bond, ticket, eligibility and exit parameters; set the committee-admission cooldown or pause admissions to future committees; authorize slashing managers and reward distributors; clear bans from old managers; withdraw slashed funds; and replace the slashed-funds treasury.\",\"role\":\".owner\",\"via\":[{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]},{\"permission\":\"interact\",\"from\":\"eth:0x1940eF168f4E0B3dA24BEca539856684793B0F6e\",\"description\":\"change the work-allocation split, coordinator and treasury without an onchain delay.\",\"role\":\".owner\",\"via\":[{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]},{\"permission\":\"interact\",\"from\":\"eth:0x1EA4dBdec0F2F1E9235915847fc59EF4045EEe28\",\"description\":\"set census roots and replace the application OpenVM receipt verifier, and with it the image ID, immediately. Such replacement cannot change the verifier snapshotted by Interfold, but can make an in-flight round fail.\",\"role\":\".owner\",\"via\":[{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]},{\"permission\":\"interact\",\"from\":\"eth:0x28cF63B459e6218C69EA97ea7D90541cf648c715\",\"description\":\"pause or unpause new requests; replace the registry, bonding, slashing, refund and node-release dependencies; allow fee assets and E3 programs; replace proof verifiers; and change pricing (including the flat randomness fee), timeouts, parameter sets and committee thresholds without an onchain delay.\",\"role\":\".owner\",\"via\":[{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]},{\"permission\":\"interact\",\"from\":\"eth:0x53FCdb21E73A461CfE6c64B19855204384B91BA3\",\"description\":\"set census roots and replace the application RISC Zero verifier or guest image ID immediately. Such replacement cannot change the verifier snapshotted by Interfold, but can make an in-flight round fail.\",\"role\":\".owner\",\"via\":[{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]},{\"permission\":\"interact\",\"from\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\",\"description\":\"change multisig plugin target execution configuration.\",\"role\":\".multisigTargetConfigAdmins\",\"via\":[{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]},{\"permission\":\"interact\",\"from\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\",\"description\":\"change multisig plugin target execution configuration.\",\"role\":\".multisigTargetConfigAdmins\"},{\"permission\":\"interact\",\"from\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\",\"description\":\"change support, participation, duration, proposer-power and minimum-approval requirements for future votes.\",\"role\":\".tokenVotingSettingsManagers\",\"via\":[{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]},{\"permission\":\"interact\",\"from\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\",\"description\":\"change the settings of the unverified CRISP token-voting plugin used as the IPP voting stage.\",\"role\":\".crispVotingSettingsManagers\",\"via\":[{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]},{\"permission\":\"interact\",\"from\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\",\"description\":\"grant and revoke permissions in the DAO.\",\"role\":\".daoRootHolders\",\"via\":[{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]},{\"permission\":\"interact\",\"from\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\",\"description\":\"open a CRISP token vote using the caller-supplied proposal payload.\",\"role\":\".crispVotingProposalCreators\"},{\"permission\":\"interact\",\"from\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\",\"description\":\"redirect calls made by the Admin plugin to another executor or target.\",\"role\":\".adminTargetManagers\",\"via\":[{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]},{\"permission\":\"interact\",\"from\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\",\"description\":\"redirect passed CRISP vote actions to another executor or target.\",\"role\":\".crispVotingTargetManagers\",\"via\":[{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]},{\"permission\":\"interact\",\"from\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\",\"description\":\"redirect passed Interfold Protocol Proposal actions to another executor or target.\",\"role\":\".ippTargetManagers\",\"via\":[{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]},{\"permission\":\"interact\",\"from\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\",\"description\":\"redirect passed proposal actions to another executor or target.\",\"role\":\".sppTargetManagers\",\"via\":[{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]},{\"permission\":\"interact\",\"from\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\",\"description\":\"redirect passed vote actions to another executor or target.\",\"role\":\".tokenVotingTargetManagers\",\"via\":[{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]},{\"permission\":\"interact\",\"from\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\",\"description\":\"replace the address trusted to append the effective caller to IPP proposal transactions.\",\"role\":\".ippTrustedForwarderManagers\",\"via\":[{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]},{\"permission\":\"interact\",\"from\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\",\"description\":\"replace the address trusted to append the effective caller to proposal transactions.\",\"role\":\".sppTrustedForwarderManagers\",\"via\":[{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]},{\"permission\":\"interact\",\"from\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\",\"description\":\"replace the rules that gate creation of Interfold Protocol Proposals.\",\"role\":\".ippConditionRuleManagers\",\"via\":[{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]},{\"permission\":\"interact\",\"from\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\",\"description\":\"replace the rules that gate public creation of staged proposals.\",\"role\":\".conditionRuleManagers\",\"via\":[{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]},{\"permission\":\"interact\",\"from\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\",\"description\":\"replace the stages, bodies, thresholds and timing rules for future Interfold Protocol Proposals.\",\"role\":\".ippStageManagers\",\"via\":[{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]},{\"permission\":\"interact\",\"from\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\",\"description\":\"replace the stages, bodies, thresholds and timing rules for future public proposals.\",\"role\":\".sppStageManagers\",\"via\":[{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]},{\"permission\":\"interact\",\"from\":\"eth:0x753109Ee36Dc65cC178875AddA30C6433e5bEEe4\",\"description\":\"create or disable slash policies, grant or revoke evidence slashers, resolve appeals, close E3 assignments and propose, confirm or remove operator bans.\",\"role\":\".governanceMembers\",\"via\":[{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]},{\"permission\":\"interact\",\"from\":\"eth:0x753109Ee36Dc65cC178875AddA30C6433e5bEEe4\",\"description\":\"replace the coordinator, bonding registry, ciphernode registry and refund manager, and grant or revoke governance membership. A transfer of the default-admin role itself has the configured delay.\",\"role\":\".defaultAdmins\",\"via\":[{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]},{\"permission\":\"interact\",\"from\":\"eth:0x847A22303639017bcDB7F7E49EEa4a4629c1169f\",\"description\":\"set census roots and replace the application RISC Zero verifier or guest image ID immediately. Such replacement cannot change the verifier snapshotted by Interfold, but can make an in-flight round fail.\",\"role\":\".owner\",\"via\":[{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]},{\"permission\":\"interact\",\"from\":\"eth:0x9E1C6B433CFbC8f28d80EAB583C428B01d083b0A\",\"description\":\"raise the required ciphernode protocol version and node generation, which instantly invalidates every operator's cached eligibility until they attest the new release. The requirement can only increase, and only while new E3 requests are paused and no E3s or committees are active.\",\"role\":\".owner\",\"via\":[{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]},{\"permission\":\"interact\",\"from\":\"eth:0x9e9617418DFb9E4daD00E2D1e8f21e214901989B\",\"description\":\"change cooldowns and exit fees and upgrade the voting-escrow exit queue.\",\"role\":\".exitQueueAdmins\",\"via\":[{\"address\":\"eth:0x9e9617418DFb9E4daD00E2D1e8f21e214901989B\"},{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]},{\"permission\":\"interact\",\"from\":\"eth:0x9e9617418DFb9E4daD00E2D1e8f21e214901989B\",\"description\":\"change multisig plugin settings.\",\"role\":\".multisigSettingsAdmins\",\"via\":[{\"address\":\"eth:0x9e9617418DFb9E4daD00E2D1e8f21e214901989B\"},{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]},{\"permission\":\"interact\",\"from\":\"eth:0x9e9617418DFb9E4daD00E2D1e8f21e214901989B\",\"description\":\"change multisig plugin target execution configuration.\",\"role\":\".multisigTargetConfigAdmins\",\"via\":[{\"address\":\"eth:0x9e9617418DFb9E4daD00E2D1e8f21e214901989B\"},{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]},{\"permission\":\"interact\",\"from\":\"eth:0x9e9617418DFb9E4daD00E2D1e8f21e214901989B\",\"description\":\"change transfer whitelist settings and upgrade the voting-lock NFT.\",\"role\":\".lockAdmins\",\"via\":[{\"address\":\"eth:0x9e9617418DFb9E4daD00E2D1e8f21e214901989B\"},{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]},{\"permission\":\"interact\",\"from\":\"eth:0x9e9617418DFb9E4daD00E2D1e8f21e214901989B\",\"description\":\"change voting epochs and upgrade the voting-escrow Clock.\",\"role\":\".clockAdmins\",\"via\":[{\"address\":\"eth:0x9e9617418DFb9E4daD00E2D1e8f21e214901989B\"},{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]},{\"permission\":\"interact\",\"from\":\"eth:0x9e9617418DFb9E4daD00E2D1e8f21e214901989B\",\"description\":\"change voting-power curve parameters and upgrade the Curve implementation.\",\"role\":\".curveAdmins\",\"via\":[{\"address\":\"eth:0x9e9617418DFb9E4daD00E2D1e8f21e214901989B\"},{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]},{\"permission\":\"interact\",\"from\":\"eth:0x9e9617418DFb9E4daD00E2D1e8f21e214901989B\",\"description\":\"complete queued voting-escrow withdrawals.\",\"role\":\".exitQueueWithdrawers\",\"via\":[{\"address\":\"eth:0x9e9617418DFb9E4daD00E2D1e8f21e214901989B\"},{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]},{\"permission\":\"interact\",\"from\":\"eth:0x9e9617418DFb9E4daD00E2D1e8f21e214901989B\",\"description\":\"grant and revoke permissions in the voting-escrow DAO.\",\"role\":\".veDaoRootHolders\",\"via\":[{\"address\":\"eth:0x9e9617418DFb9E4daD00E2D1e8f21e214901989B\"},{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]},{\"permission\":\"interact\",\"from\":\"eth:0x9e9617418DFb9E4daD00E2D1e8f21e214901989B\",\"description\":\"manage gauge metadata and the voting-power update hook.\",\"role\":\".gaugeAdmins\",\"via\":[{\"address\":\"eth:0x9e9617418DFb9E4daD00E2D1e8f21e214901989B\"},{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]},{\"permission\":\"interact\",\"from\":\"eth:0x9e9617418DFb9E4daD00E2D1e8f21e214901989B\",\"description\":\"pause and unpause voting-escrow operations.\",\"role\":\".votingEscrowPausers\",\"via\":[{\"address\":\"eth:0x9e9617418DFb9E4daD00E2D1e8f21e214901989B\"},{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]},{\"permission\":\"interact\",\"from\":\"eth:0x9e9617418DFb9E4daD00E2D1e8f21e214901989B\",\"description\":\"pause the escrow voting-power adapter, manage delegation settings and upgrade its implementation.\",\"role\":\".votesAdapterAdmins\",\"via\":[{\"address\":\"eth:0x9e9617418DFb9E4daD00E2D1e8f21e214901989B\"},{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]},{\"permission\":\"interact\",\"from\":\"eth:0x9e9617418DFb9E4daD00E2D1e8f21e214901989B\",\"description\":\"replace voting-power dependencies, change minimum deposits and split rules, and upgrade VotingEscrow.\",\"role\":\".votingEscrowAdmins\",\"via\":[{\"address\":\"eth:0x9e9617418DFb9E4daD00E2D1e8f21e214901989B\"},{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]},{\"permission\":\"interact\",\"from\":\"eth:0x9e9617418DFb9E4daD00E2D1e8f21e214901989B\",\"description\":\"sweep unaccounted tokens and NFTs from VotingEscrow.\",\"role\":\".votingEscrowSweepers\",\"via\":[{\"address\":\"eth:0x9e9617418DFb9E4daD00E2D1e8f21e214901989B\"},{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]},{\"permission\":\"interact\",\"from\":\"eth:0x9e9617418DFb9E4daD00E2D1e8f21e214901989B\",\"description\":\"update delegated voting power through the escrow voting adapter.\",\"role\":\".delegationTokenManagers\",\"via\":[{\"address\":\"eth:0x9e9617418DFb9E4daD00E2D1e8f21e214901989B\"},{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]},{\"permission\":\"interact\",\"from\":\"eth:0xC0B5b49a3949eC4B520eF21BaCFE16e3695F3B5D\",\"description\":\"schedule and activate a registry replacement after one day when all ticket liabilities are zero, and rescue ERC-20s other than the underlying sUSDS.\",\"role\":\".owner\",\"via\":[{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]},{\"permission\":\"interact\",\"from\":\"eth:0xC60919F8Bd128B76E11F4B071C8c38e1391a3e00\",\"description\":\"replace the Chainlink VRF coordinator that delivers the sortition entropy.\",\"role\":\".owner\",\"via\":[{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]},{\"permission\":\"interact\",\"from\":\"eth:0xC927A5B2d8F68697bC28C0670df05178c93df2d7\",\"description\":\"replace the coordinator, bonding, slashing and randomness-provider dependencies; add or remove ciphernodes; change the sortition window and randomness timeout; and update the DKG verifier and accusation-vote validity parameters. DKG-verifier replacement and risk-reducing accusation-window changes use a two-day propose/commit delay, while other changes are immediate. Randomness settings can only change while new requests are paused and no committees are outstanding.\",\"role\":\".owner\",\"via\":[{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]},{\"permission\":\"upgrade\",\"from\":\"eth:0x0ec90465095C21830BEcED07e032809A2Bd2915F\",\"role\":\"admin\",\"via\":[{\"address\":\"eth:0xf1511Fc32abf7Bd3a3213ddCF08C07259b53972b\"},{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]},{\"permission\":\"upgrade\",\"from\":\"eth:0x1940eF168f4E0B3dA24BEca539856684793B0F6e\",\"role\":\"admin\",\"via\":[{\"address\":\"eth:0x9393573a9EF85c9A37d91E32702a340084A48b6E\"},{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]},{\"permission\":\"upgrade\",\"from\":\"eth:0x28cF63B459e6218C69EA97ea7D90541cf648c715\",\"role\":\"admin\",\"via\":[{\"address\":\"eth:0xB3985D7fF844FA0F5E0aaC5feb5DD8BE15e88580\"},{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]},{\"permission\":\"upgrade\",\"from\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\",\"role\":\".daoUpgraders\",\"via\":[{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]},{\"permission\":\"upgrade\",\"from\":\"eth:0x9e9617418DFb9E4daD00E2D1e8f21e214901989B\",\"role\":\".clockAdmins\",\"via\":[{\"address\":\"eth:0x9e9617418DFb9E4daD00E2D1e8f21e214901989B\"},{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]},{\"permission\":\"upgrade\",\"from\":\"eth:0x9e9617418DFb9E4daD00E2D1e8f21e214901989B\",\"role\":\".curveAdmins\",\"via\":[{\"address\":\"eth:0x9e9617418DFb9E4daD00E2D1e8f21e214901989B\"},{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]},{\"permission\":\"upgrade\",\"from\":\"eth:0x9e9617418DFb9E4daD00E2D1e8f21e214901989B\",\"role\":\".exitQueueAdmins\",\"via\":[{\"address\":\"eth:0x9e9617418DFb9E4daD00E2D1e8f21e214901989B\"},{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]},{\"permission\":\"upgrade\",\"from\":\"eth:0x9e9617418DFb9E4daD00E2D1e8f21e214901989B\",\"role\":\".gaugeUpgraders\",\"via\":[{\"address\":\"eth:0x9e9617418DFb9E4daD00E2D1e8f21e214901989B\"},{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]},{\"permission\":\"upgrade\",\"from\":\"eth:0x9e9617418DFb9E4daD00E2D1e8f21e214901989B\",\"role\":\".lockAdmins\",\"via\":[{\"address\":\"eth:0x9e9617418DFb9E4daD00E2D1e8f21e214901989B\"},{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]},{\"permission\":\"upgrade\",\"from\":\"eth:0x9e9617418DFb9E4daD00E2D1e8f21e214901989B\",\"role\":\".veDaoUpgraders\",\"via\":[{\"address\":\"eth:0x9e9617418DFb9E4daD00E2D1e8f21e214901989B\"},{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]},{\"permission\":\"upgrade\",\"from\":\"eth:0x9e9617418DFb9E4daD00E2D1e8f21e214901989B\",\"role\":\".votesAdapterAdmins\",\"via\":[{\"address\":\"eth:0x9e9617418DFb9E4daD00E2D1e8f21e214901989B\"},{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]},{\"permission\":\"upgrade\",\"from\":\"eth:0x9e9617418DFb9E4daD00E2D1e8f21e214901989B\",\"role\":\".votingEscrowAdmins\",\"via\":[{\"address\":\"eth:0x9e9617418DFb9E4daD00E2D1e8f21e214901989B\"},{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]},{\"permission\":\"upgrade\",\"from\":\"eth:0xC927A5B2d8F68697bC28C0670df05178c93df2d7\",\"role\":\"admin\",\"via\":[{\"address\":\"eth:0x2DFb93A8C3cE68Be3d8129479d7870646d89aDa7\"},{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]}]\n directlyReceivedPermissions:\n+ [{\"permission\":\"act\",\"from\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\",\"description\":\"execute arbitrary calls from the DAO, including calls to protocol owners and ProxyAdmins.\",\"role\":\".daoExecutors\"}]\n }\n```\n\n```diff\n contract CiphernodeRegistry (eth:0xC927A5B2d8F68697bC28C0670df05178c93df2d7) [interfold/CiphernodeRegistry] {\n +++ description: Registry of ciphernodes and E3 committees. It performs ticket-weighted committee selection (admitting at most one operator key per bond owner, and only when the BondingRegistry counts at least as many distinct active bond owners as the committee size), records DKG (distributed key generation) proof anchors and the committee public key (to which cyphertexts can be encrypted), and tracks committee viability. Sortition entropy is supplied asynchronously by a governance-set randomness provider.\n values.unreleasedCommitteeCount:\n- 0\n+ 2\n }\n```\n\n```diff\n EOA (eth:0xcD34cF9C66F524c91A14e67D3eF68157f809Abf7) {\n +++ description: None\n receivedPermissions.1:\n- {\"permission\":\"member\",\"from\":\"eth:0xC927A5B2d8F68697bC28C0670df05178c93df2d7\",\"description\":\"eligible for ticket-weighted selection into E3 committees, where selected members create key shares and participate in threshold decryption.\",\"role\":\".$members\"}\n }\n```\n\n```diff\n EOA (eth:0xd99672d25e783F245D3E0183581fAae0c154B8b6) {\n +++ description: None\n receivedPermissions.1:\n- {\"permission\":\"member\",\"from\":\"eth:0xC927A5B2d8F68697bC28C0670df05178c93df2d7\",\"description\":\"eligible for ticket-weighted selection into E3 committees, where selected members create key shares and participate in threshold decryption.\",\"role\":\".$members\"}\n }\n```\n\n```diff\n EOA (eth:0xDa1D20efb36e7F3bb47CEDbF471feB099051e717) {\n +++ description: None\n receivedPermissions.1:\n- {\"permission\":\"member\",\"from\":\"eth:0xC927A5B2d8F68697bC28C0670df05178c93df2d7\",\"description\":\"eligible for ticket-weighted selection into E3 committees, where selected members create key shares and participate in threshold decryption.\",\"role\":\".$members\"}\n }\n```\n\n```diff\n- Status: DELETED\n contract DecryptionAggregatorVerifier (eth:0xEB4D0d5FfbDD508d6FF352255DCFc7b13FA28EC0) [interfold/DecryptionAggregatorVerifier]\n +++ description: Immutable generated Honk verifier for the BFV threshold-decryption aggregation circuit.\n```\n\n```diff\n contract CrispTokenVoting (eth:0xf101fB197E38f6b3Ca110D619D845634CD88098c) [interfold/CrispVoting] {\n +++ description: Upgradeable Aragon voting plugin from the interfold-crisp plugin repo. Votes are cast as encrypted CRISP ballots and tallied through an Interfold E3, so individual votes stay confidential to the ciphernode committee threshold. Used as the token-holder voting stage of the Interfold Protocol Proposal path.\n values.getCurrentTargetConfig.target:\n- \"eth:0x0000000000000000000000000000000000000000\"\n+ \"eth:0x56ce4D8006292Abf418291FaE813C1E3769240A4\"\n values.getCurrentTargetConfig.operation:\n- 0\n+ 1\n values.getTargetConfig.target:\n- \"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"\n+ \"eth:0x56ce4D8006292Abf418291FaE813C1E3769240A4\"\n values.getTargetConfig.operation:\n- 0\n+ 1\n receivedPermissions:\n+ [{\"permission\":\"interact\",\"from\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\",\"description\":\"change multisig plugin target execution configuration.\",\"role\":\".multisigTargetConfigAdmins\"}]\n }\n```\n\n```diff\n contract AdminPlugin (eth:0xF21e25455988887EE797050080141eba67B33920) [interfold/AdminPlugin] {\n +++ description: Non-upgradeable Aragon Admin plugin. Holders of its DAO-granted EXECUTE_PROPOSAL permission can submit actions that the plugin forwards immediately, without a vote or onchain delay.\n receivedPermissions.2:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x1EA4dBdec0F2F1E9235915847fc59EF4045EEe28\",\"description\":\"set census roots and replace the application OpenVM receipt verifier, and with it the image ID, immediately. Such replacement cannot change the verifier snapshotted by Interfold, but can make an in-flight round fail.\",\"role\":\".owner\",\"via\":[{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]}\n receivedPermissions.8:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\",\"description\":\"change the settings of the unverified CRISP token-voting plugin used as the IPP voting stage.\",\"role\":\".crispVotingSettingsManagers\",\"via\":[{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]}\n receivedPermissions.11:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\",\"description\":\"redirect passed CRISP vote actions to another executor or target.\",\"role\":\".crispVotingTargetManagers\",\"via\":[{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]}\n receivedPermissions.12:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\",\"description\":\"redirect passed Interfold Protocol Proposal actions to another executor or target.\",\"role\":\".ippTargetManagers\",\"via\":[{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]}\n receivedPermissions.15:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\",\"description\":\"replace the address trusted to append the effective caller to IPP proposal transactions.\",\"role\":\".ippTrustedForwarderManagers\",\"via\":[{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]}\n receivedPermissions.17:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\",\"description\":\"replace the rules that gate creation of Interfold Protocol Proposals.\",\"role\":\".ippConditionRuleManagers\",\"via\":[{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]}\n receivedPermissions.19:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\",\"description\":\"replace the stages, bodies, thresholds and timing rules for future Interfold Protocol Proposals.\",\"role\":\".ippStageManagers\",\"via\":[{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]}\n }\n```\n\n```diff\n- Status: DELETED\n contract BfvDecryptionVerifier (eth:0xf6ed505997d2F572717f5E946b70efd65D55c986) [interfold/BfvDecryptionVerifier]\n +++ description: Threshold-decryption proof wrapper. It checks the generated circuit proof and binds its parties and public-key context to the committee recorded by CiphernodeRegistry.\n```\n\n```diff\n EOA (eth:0xfbe2eEB95eb083F89bBb1C9c384328d9cfE43d47) {\n +++ description: None\n receivedPermissions.1:\n- {\"permission\":\"member\",\"from\":\"eth:0xC927A5B2d8F68697bC28C0670df05178c93df2d7\",\"description\":\"eligible for ticket-weighted selection into E3 committees, where selected members create key shares and participate in threshold decryption.\",\"role\":\".$members\"}\n }\n```\n\n```diff\n EOA (eth:0xfC16c9513bB6b4FE7978723bB2468E99D8A34d70) {\n +++ description: None\n receivedPermissions.1:\n- {\"permission\":\"member\",\"from\":\"eth:0xC927A5B2d8F68697bC28C0670df05178c93df2d7\",\"description\":\"eligible for ticket-weighted selection into E3 committees, where selected members create key shares and participate in threshold decryption.\",\"role\":\".$members\"}\n }\n```\n\n```diff\n EOA (eth:0xFcEdB9Af33A338A80DA84785023BfDb988CaAd6E) {\n +++ description: None\n receivedPermissions.1:\n- {\"permission\":\"member\",\"from\":\"eth:0xC927A5B2d8F68697bC28C0670df05178c93df2d7\",\"description\":\"eligible for ticket-weighted selection into E3 committees, where selected members create key shares and participate in threshold decryption.\",\"role\":\".$members\"}\n }\n```\n\n```diff\n EOA (eth:0xFD97D727CdF9867944de554E45499D5162bDBfAc) {\n +++ description: None\n receivedPermissions.1:\n- {\"permission\":\"member\",\"from\":\"eth:0xC927A5B2d8F68697bC28C0670df05178c93df2d7\",\"description\":\"eligible for ticket-weighted selection into E3 committees, where selected members create key shares and participate in threshold decryption.\",\"role\":\".$members\"}\n }\n```\n\n```diff\n EOA (eth:0xFF79709339F5dBCA606c8b9D4940390d61cB4B29) {\n +++ description: None\n receivedPermissions.1:\n- {\"permission\":\"member\",\"from\":\"eth:0xC927A5B2d8F68697bC28C0670df05178c93df2d7\",\"description\":\"eligible for ticket-weighted selection into E3 committees, where selected members create key shares and participate in threshold decryption.\",\"role\":\".$members\"}\n }\n```\n\n```diff\n+ Status: CREATED\n contract DkgAggregatorVerifier (eth:0x0a4D70bBD4e71b9e515Efc417F423c64D85197cb) [interfold/DkgAggregatorVerifier]\n +++ description: Immutable generated Honk verifier for the BFV distributed-key-generation aggregation circuit.\n```\n\n```diff\n+ Status: CREATED\n contract BfvDecryptionVerifier (eth:0x194A489c918b74F11C6b03e12Ea26F198110f9A5) [interfold/BfvDecryptionVerifier]\n +++ description: Threshold-decryption proof wrapper. It checks the generated circuit proof and binds its parties and public-key context to the committee recorded by CiphernodeRegistry.\n```\n\n```diff\n+ Status: CREATED\n contract CRISPProgram (eth:0x1EA4dBdec0F2F1E9235915847fc59EF4045EEe28) [interfold/CRISPProgramOpenVm]\n +++ description: CRISP encrypted-ballot E3 application. It verifies ballot eligibility and encryption proofs, commits ciphertext inputs, checks that an OpenVM tally proof is bound to its input root and parameters, and decodes the threshold-decrypted tally.\n```\n\n```diff\n+ Status: CREATED\n contract BfvDecryptionVerifier (eth:0x31715a243b80484629040592Eaff619729E98B39) [interfold/BfvDecryptionVerifier]\n +++ description: Threshold-decryption proof wrapper. It checks the generated circuit proof and binds its parties and public-key context to the committee recorded by CiphernodeRegistry.\n```\n\n```diff\n+ Status: CREATED\n contract BfvPkVerifierRouter (eth:0x3E9614e711ee301DAC3FeF7D86031ED015bc406b) [interfold/BfvPkVerifierRouter]\n +++ description: Immutable router for BFV distributed-key-generation proofs. It forwards each proof to the per-committee-size BfvPkVerifier whose public-input length and circuit verification-key hashes match, so committees of every supported size share one verifier entry point.\n```\n\n```diff\n+ Status: CREATED\n contract BfvDecryptionVerifier (eth:0x43c65d641A693962c942407A2834A7d923cEE1d8) [interfold/BfvDecryptionVerifier]\n +++ description: Threshold-decryption proof wrapper. It checks the generated circuit proof and binds its parties and public-key context to the committee recorded by CiphernodeRegistry.\n```\n\n```diff\n+ Status: CREATED\n contract BfvPkVerifier (eth:0x5b93A3D59f8D65548748fc303f75a21b082EB2f4) [interfold/BfvPkVerifier]\n +++ description: BFV public-key proof wrapper. It binds the generated circuit verifier to the expected DKG-fold and C5 verification-key hashes.\n```\n\n```diff\n+ Status: CREATED\n contract BfvPkVerifier (eth:0x5CcE227e613A41239b7E07764ad8b5a1cCA0a2CE) [interfold/BfvPkVerifier]\n +++ description: BFV public-key proof wrapper. It binds the generated circuit verifier to the expected DKG-fold and C5 verification-key hashes.\n```\n\n```diff\n+ Status: CREATED\n contract DecryptionAggregatorVerifier (eth:0x769C243b712aD4D844bCbAed3981F7C24fA64Ada) [interfold/DecryptionAggregatorVerifier]\n +++ description: Immutable generated Honk verifier for the BFV threshold-decryption aggregation circuit.\n```\n\n```diff\n+ Status: CREATED\n contract DkgAggregatorVerifier (eth:0x7987EF7cd79478Ee1ed51A279eEF46D2996a793c) [interfold/DkgAggregatorVerifier]\n +++ description: Immutable generated Honk verifier for the BFV distributed-key-generation aggregation circuit.\n```\n\n```diff\n+ Status: CREATED\n contract BfvPkVerifier (eth:0x8d4c0bd5c796a5FEd7C419deA56f6A88EdB51023) [interfold/BfvPkVerifier]\n +++ description: BFV public-key proof wrapper. It binds the generated circuit verifier to the expected DKG-fold and C5 verification-key hashes.\n```\n\n```diff\n+ Status: CREATED\n contract AvailVectorXDataAvailabilityVerifier (eth:0x9B5088112Ae1D682782236486290120E27Eb32e3) [interfold/AvailVectorXDataAvailabilityVerifier]\n +++ description: Immutable verifier of Avail blob inclusion used by the CRISP program to attest that encrypted ballot inputs were published. It checks inclusion proofs against the Avail bridge and VectorX light-client contracts fixed at deployment.\n```\n\n```diff\n+ Status: CREATED\n contract DkgAggregatorVerifier (eth:0xBb643dC305794364E435C883B6DC1E7666dA4fEc) [interfold/DkgAggregatorVerifier]\n +++ description: Immutable generated Honk verifier for the BFV distributed-key-generation aggregation circuit.\n```\n\n```diff\n+ Status: CREATED\n contract BfvDecryptionVerifierRouter (eth:0xbbFF7101A3Be43e06b64B00e2e656529E6aDf2eE) [interfold/BfvDecryptionVerifierRouter]\n +++ description: Immutable router for BFV threshold-decryption proofs. It forwards each proof to the per-committee-size BfvDecryptionVerifier whose public-input length and circuit verification-key hashes match, so committees of every supported size share one verifier entry point.\n```\n\n```diff\n+ Status: CREATED\n contract DecryptionAggregatorVerifier (eth:0xbe012465a45179170cFb863405427f8ecAcb5C80) [interfold/DecryptionAggregatorVerifier]\n +++ description: Immutable generated Honk verifier for the BFV threshold-decryption aggregation circuit.\n```\n\n```diff\n+ Status: CREATED\n contract DecryptionAggregatorVerifier (eth:0xC590b979c9BDA89f87443EBE134321272a5dD013) [interfold/DecryptionAggregatorVerifier]\n +++ description: Immutable generated Honk verifier for the BFV threshold-decryption aggregation circuit.\n```"
},
{
"kind": "config-related-changes",
"body": "```diff\n+ Status: CREATED\n contract OpenVmReceiptVerifier (eth:0x0dd5E45414629F0f7D757cbb0310A9cfdc5B400b) [interfold/OpenVmReceiptVerifier]\n +++ description: Immutable OpenVM receipt verifier. It checks a Halo2 proof whose only public value is the journal digest, bound to one OpenVM executable and VM commitment.\n```\n\n```diff\n+ Status: CREATED\n contract ProtocolProposalCondition (eth:0x4c9D0A2B8E5917c480bdF3E42F1b1c9365EF2115) [interfold/SPPRuleCondition]\n +++ description: Aragon condition attached to the public CREATE_PROPOSAL permission. Its mutable rule program determines which callers and proposal calls qualify for the otherwise-public grant.\n```\n\n```diff\n+ Status: CREATED\n contract OpenVmBfvCiphertextVerifier (eth:0x6cD258E0a893612Aea41c42dC47450ac1A6E2dD1) [interfold/OpenVmBfvCiphertextVerifier]\n +++ description: Ciphertext-output verifier for BFV E3s. It accepts an OpenVM proof for the immutable guest image ID against the E3-specific journal constructed by Interfold.\n```\n\n```diff\n+ Status: CREATED\n contract BondedVotes (eth:0x6Cd2976AD3d908E503c6D93A5E010392E25DcFB6) [interfold/BondedVotes]\n +++ description: Voting-power adapter used by PublicTokenVoting. It counts voting-escrow power, FOLD bonded to ciphernode operators, and eligible vesting-locked wallet FOLD while using FOLD total supply as the quorum denominator.\n```\n\n```diff\n+ Status: CREATED\n contract OpenVmHalo2Verifier (eth:0x75cECF62f1ADe2C7b95d5a93460f450c6885F904) [interfold/OpenVmHalo2Verifier]\n +++ description: Immutable Halo2 verifier generated by the OpenVM 2.0 SDK. It checks the final proof of an OpenVM execution against the app executable and VM commitments passed by the caller.\n```\n\n```diff\n+ Status: CREATED\n contract ProtocolProposalProcessor (eth:0xc19635aD8De0a0D6430025fC5ed212CA8216bab3) [interfold/StagedProposalProcessor]\n +++ description: Upgradeable Aragon staged-proposal plugin that executes DAO actions after proposals pass its configured sequence of voting or manual bodies, thresholds and timing windows.\n```\n\n```diff\n+ Status: CREATED\n contract CrispTokenVoting (eth:0xf101fB197E38f6b3Ca110D619D845634CD88098c) [interfold/CrispVoting]\n +++ description: Upgradeable Aragon voting plugin from the interfold-crisp plugin repo. Votes are cast as encrypted CRISP ballots and tallied through an Interfold E3, so individual votes stay confidential to the ciphernode committee threshold. Used as the token-holder voting stage of the Interfold Protocol Proposal path.\n```"
}
]
},
{
"id": "9821718a",
"date": "Mon, 12 Oct 2026 07:20:28 GMT",
"timestamp": 1791789528,
"description": "Three operator keys joined the registries. The valid active-operator count rose from 70 to 74.",
"isHighSeverity": false,
"changeCount": 8,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract BondingRegistry (eth:0x0ec90465095C21830BEcED07e032809A2Bd2915F) [interfold/BondingRegistry] {\n +++ description: Collateral registry for ciphernode operators. Operators become eligible by depositing ticket collateral backed by sUSDS and a FOLD bond, and by attesting a current software release in the NodeReleaseRegistry; the contract also enforces exits, committee obligations, bans and slashing debits. It checkpoints bond ownership so that committee sortition admits at most one operator key per bond owner, and applies an owner-set admission policy (cooldown and pause) to future committees.\n+++ description: Operator keys currently active under the collateral, release-attestation and ban rules, reconstructed from activation events. Eligibility-configuration bumps invalidate all cached statuses without emitting events, so entries here may still await re-activation.\n values.activeOperators.72:\n+ \"eth:0xDb78ebaB8597AF977B686E540DCe734E613Eba88\"\n+++ description: Operator keys currently active under the collateral, release-attestation and ban rules, reconstructed from activation events. Eligibility-configuration bumps invalidate all cached statuses without emitting events, so entries here may still await re-activation.\n values.activeOperators.73:\n+ \"eth:0x86Ab0b3C4A36cAB3037d750C850D660cE710e2a1\"\n+++ description: Operator keys currently active under the collateral, release-attestation and ban rules, reconstructed from activation events. Eligibility-configuration bumps invalidate all cached statuses without emitting events, so entries here may still await re-activation.\n values.activeOperators.74:\n+ \"eth:0x516C12B6D622A62166bDe3580628d6d23ae5b310\"\n+++ description: Number of operators whose active status is valid under the current eligibility-configuration version. Unlike activeOperators, this drops immediately when the version is bumped, so it is the signal for a mass invalidation.\n values.numActiveOperators:\n- 70\n+ 74\n }\n```\n\n```diff\n contract CiphernodeRegistry (eth:0xC927A5B2d8F68697bC28C0670df05178c93df2d7) [interfold/CiphernodeRegistry] {\n +++ description: Registry of ciphernodes and E3 committees. It performs ticket-weighted committee selection (admitting at most one operator key per bond owner, and only when the BondingRegistry counts at least as many distinct active bond owners as the committee size), records DKG (distributed key generation) proof anchors and the committee public key (to which cyphertexts can be encrypted), and tracks committee viability. Sortition entropy is supplied asynchronously by a governance-set randomness provider.\n+++ description: Current registered ciphernode operator keys reconstructed from add and remove events. For each E3 a committee of up to the coordinator's MAX_COMMITTEE_SIZE is selected from these keys by ticket-weighted sortition, with at most one key per request-time bond owner.\n values.$members.72:\n+ \"eth:0xDb78ebaB8597AF977B686E540DCe734E613Eba88\"\n+++ description: Current registered ciphernode operator keys reconstructed from add and remove events. For each E3 a committee of up to the coordinator's MAX_COMMITTEE_SIZE is selected from these keys by ticket-weighted sortition, with at most one key per request-time bond owner.\n values.$members.73:\n+ \"eth:0x86Ab0b3C4A36cAB3037d750C850D660cE710e2a1\"\n+++ description: Current registered ciphernode operator keys reconstructed from add and remove events. For each E3 a committee of up to the coordinator's MAX_COMMITTEE_SIZE is selected from these keys by ticket-weighted sortition, with at most one key per request-time bond owner.\n values.$members.74:\n+ \"eth:0x516C12B6D622A62166bDe3580628d6d23ae5b310\"\n values.unreleasedCommitteeCount:\n- 2\n+ 0\n }\n```"
}
]
},
{
"id": "7e4e9584",
"date": "Thu, 01 Oct 2026 11:10:36 GMT",
"timestamp": 1790850461,
"description": "BondingRegistry and CiphernodeRegistry upgraded. The same tx enabled a 3-day admission cooldown.\n\n- BondingRegistry: checkpoints bond-owner history and counts distinct active bond owners. New owner-set admission policy: a cooldown for newly registered or re-owned keys, and an admission pause. New E3 requests are blocked until all operators have refreshed after an eligibility bump. [diff](https://disco.l2beat.com/diff/eth:0x290d5156AAa23cbEb458751A73688d2375220Ad2/eth:0x3Bb4420311fe1AD580a6971B0731Cf1825b914db)\n- CiphernodeRegistry: sortition admits at most one key per bond owner, and new requests need at least N distinct active bond owners. [diff](https://disco.l2beat.com/diff/eth:0xD9A3224D829a4ac8b55A75C539fD447AC4B05Bf2/eth:0x8354E51d14C118f6386C3F6F73E79190D71FFA3A)\n- 12 new ciphernode operators (72 registered).\n- The protocol was unpaused by InterfoldSafeB (via AdminPlugin, no delay) on 2026-09-25 right after the upgrade and paused again on 2026-09-29, after one new E3 was requested (earlier window 2026-09-19 to 09-22). Requests are currently paused.",
"isHighSeverity": true,
"changeCount": 44,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract BondingRegistry (eth:0x0ec90465095C21830BEcED07e032809A2Bd2915F) [interfold/BondingRegistry] {\n +++ description: Collateral registry for ciphernode operators. Operators become eligible by depositing ticket collateral backed by sUSDS and a FOLD bond, and by attesting a current software release in the NodeReleaseRegistry; the contract also enforces exits, committee obligations, bans and slashing debits. It checkpoints bond ownership so that committee sortition admits at most one operator key per bond owner, and applies an owner-set admission policy (cooldown and pause) to future committees.\n sourceHashes.1:\n- \"0xb97dc60ab9865caddf8025162df9c53ea501692873fbef50c57733bea73c86ab\"\n+ \"0x80851d52a1fd2a24e68aaf0931069f80c737f25dcfb52c3a02aec5a6d6b3f155\"\n values.$implementation:\n- \"eth:0x290d5156AAa23cbEb458751A73688d2375220Ad2\"\n+ \"eth:0x3Bb4420311fe1AD580a6971B0731Cf1825b914db\"\n values.$pastUpgrades.4:\n+ [\"2026-09-24T18:43:35.000Z\",\"0x8e6d53a9137ad0cb441aef11b4752abfa936258661668d1b2692bf6c2678b4a2\",[\"eth:0x3Bb4420311fe1AD580a6971B0731Cf1825b914db\"]]\n values.$upgradeCount:\n- 4\n+ 5\n+++ description: Operator keys currently active under the collateral, release-attestation and ban rules, reconstructed from activation events. Eligibility-configuration bumps invalidate all cached statuses without emitting events, so entries here may still await re-activation.\n values.activeOperators.58:\n+ \"eth:0x88ED57A03E98931a81dBa7A9Bc2dc95B48929E45\"\n+++ description: Operator keys currently active under the collateral, release-attestation and ban rules, reconstructed from activation events. Eligibility-configuration bumps invalidate all cached statuses without emitting events, so entries here may still await re-activation.\n values.activeOperators.59:\n+ \"eth:0xA2bA6A63335cdB2789b0e636987Ce12C3D44662a\"\n+++ description: Operator keys currently active under the collateral, release-attestation and ban rules, reconstructed from activation events. Eligibility-configuration bumps invalidate all cached statuses without emitting events, so entries here may still await re-activation.\n values.activeOperators.60:\n+ \"eth:0x1d4205bc727E4f3799B25d0FEAe8e45d365858b1\"\n+++ description: Operator keys currently active under the collateral, release-attestation and ban rules, reconstructed from activation events. Eligibility-configuration bumps invalidate all cached statuses without emitting events, so entries here may still await re-activation.\n values.activeOperators.61:\n+ \"eth:0xAF062fC363c3AE910ec76676346f798792bEB851\"\n+++ description: Operator keys currently active under the collateral, release-attestation and ban rules, reconstructed from activation events. Eligibility-configuration bumps invalidate all cached statuses without emitting events, so entries here may still await re-activation.\n values.activeOperators.62:\n+ \"eth:0xba7254CC6c70AE1D99aEa3ecA705E81635aaA988\"\n+++ description: Operator keys currently active under the collateral, release-attestation and ban rules, reconstructed from activation events. Eligibility-configuration bumps invalidate all cached statuses without emitting events, so entries here may still await re-activation.\n values.activeOperators.63:\n+ \"eth:0x60cd23981430e4909957EA1fB214E9A21468175A\"\n+++ description: Operator keys currently active under the collateral, release-attestation and ban rules, reconstructed from activation events. Eligibility-configuration bumps invalidate all cached statuses without emitting events, so entries here may still await re-activation.\n values.activeOperators.64:\n+ \"eth:0x73F8511492fE99B1d3b230B1015e22db53DaA9a1\"\n+++ description: Operator keys currently active under the collateral, release-attestation and ban rules, reconstructed from activation events. Eligibility-configuration bumps invalidate all cached statuses without emitting events, so entries here may still await re-activation.\n values.activeOperators.65:\n+ \"eth:0x29a540E858500fd6ee2B68EE63769b0bB0A05CF4\"\n+++ description: Operator keys currently active under the collateral, release-attestation and ban rules, reconstructed from activation events. Eligibility-configuration bumps invalidate all cached statuses without emitting events, so entries here may still await re-activation.\n values.activeOperators.66:\n+ \"eth:0x3Dedb602A8997B89685803Dff207566C9883FE0F\"\n+++ description: Operator keys currently active under the collateral, release-attestation and ban rules, reconstructed from activation events. Eligibility-configuration bumps invalidate all cached statuses without emitting events, so entries here may still await re-activation.\n values.activeOperators.67:\n+ \"eth:0x856F8E59dEd8386C57f48a55b007F21F89724CFC\"\n+++ description: Operator keys currently active under the collateral, release-attestation and ban rules, reconstructed from activation events. Eligibility-configuration bumps invalidate all cached statuses without emitting events, so entries here may still await re-activation.\n values.activeOperators.68:\n+ \"eth:0xd333232f08d6a8A4f7Cee8327476DbeDDDF20554\"\n+++ description: Operator keys currently active under the collateral, release-attestation and ban rules, reconstructed from activation events. Eligibility-configuration bumps invalidate all cached statuses without emitting events, so entries here may still await re-activation.\n values.activeOperators.69:\n+ \"eth:0xb8d9Bf1b6C283D29dC3dC5711C9036F6896a963A\"\n+++ description: Operator keys currently active under the collateral, release-attestation and ban rules, reconstructed from activation events. Eligibility-configuration bumps invalidate all cached statuses without emitting events, so entries here may still await re-activation.\n values.activeOperators.70:\n+ \"eth:0x9E2558B76c7D7CF169556A1a729C2CB0324f0E61\"\n+++ description: Operator keys currently active under the collateral, release-attestation and ban rules, reconstructed from activation events. Eligibility-configuration bumps invalidate all cached statuses without emitting events, so entries here may still await re-activation.\n values.activeOperators.71:\n+ \"eth:0x15de07b6280ae5F5D37F6d77dF88c37875ef2877\"\n+++ description: Number of operators whose active status is valid under the current eligibility-configuration version. Unlike activeOperators, this drops immediately when the version is bumped, so it is the signal for a mass invalidation.\n values.numActiveOperators:\n- 56\n+ 70\n+++ description: Latest admission policy for future committees. With the cooldown enabled, an operator key that registers or changes bond owner is not eligible for sortition until cooldownDuration (unbounded) has passed; keys registered before the upgrade and not re-owned since are exempt. Pausing admissions freezes the eligible pool (and the cooldown settings applied to it) at the pause time. Every change resets the bond-owner capacity count, which blocks new E3 requests until enough operators refresh their status.\n values.admissionPolicy:\n+ {\"cooldownEnabled\":true,\"admissionsPaused\":false,\"cooldownDuration\":259200,\"pauseTimepoint\":0,\"pauseCooldownEnabled\":false,\"pauseCooldownDuration\":0}\n errors:\n- {\"admissionPolicy\":\"Processing error occurred.\",\"committeeOwnerCapacity\":\"Processing error occurred.\"}\n implementationNames.eth:0x290d5156AAa23cbEb458751A73688d2375220Ad2:\n- \"BondingRegistry\"\n implementationNames.eth:0x3Bb4420311fe1AD580a6971B0731Cf1825b914db:\n+ \"BondingRegistry\"\n }\n```\n\n```diff\n EOA (eth:0x88ED57A03E98931a81dBa7A9Bc2dc95B48929E45) {\n +++ description: None\n receivedPermissions.0:\n+ {\"permission\":\"member\",\"from\":\"eth:0x0ec90465095C21830BEcED07e032809A2Bd2915F\",\"description\":\"submit one chosen eligible ticket per E3 sortition and be selected for ciphernode committee duties.\",\"role\":\".activeOperators\"}\n }\n```\n\n```diff\n EOA (eth:0xA2bA6A63335cdB2789b0e636987Ce12C3D44662a) {\n +++ description: None\n receivedPermissions.0:\n+ {\"permission\":\"member\",\"from\":\"eth:0x0ec90465095C21830BEcED07e032809A2Bd2915F\",\"description\":\"submit one chosen eligible ticket per E3 sortition and be selected for ciphernode committee duties.\",\"role\":\".activeOperators\"}\n }\n```\n\n```diff\n contract CiphernodeRegistry (eth:0xC927A5B2d8F68697bC28C0670df05178c93df2d7) [interfold/CiphernodeRegistry] {\n +++ description: Registry of ciphernodes and E3 committees. It performs ticket-weighted committee selection (admitting at most one operator key per bond owner, and only when the BondingRegistry counts at least as many distinct active bond owners as the committee size), records DKG (distributed key generation) proof anchors and the committee public key (to which cyphertexts can be encrypted), and tracks committee viability. Sortition entropy is supplied asynchronously by a governance-set randomness provider.\n sourceHashes.1:\n- \"0xaaf0cc5a82e6d85f4cb4d4b1cdfe655456ddfd34d6a347cf23f5f5acb505fd7c\"\n+ \"0x15fc7691fe2aef9e081c0a4c84c36701c7f1777903a9cd07d2598b200a683055\"\n values.$implementation:\n- \"eth:0xD9A3224D829a4ac8b55A75C539fD447AC4B05Bf2\"\n+ \"eth:0x8354E51d14C118f6386C3F6F73E79190D71FFA3A\"\n+++ description: Current registered ciphernode operator keys reconstructed from add and remove events. For each E3 a committee of up to the coordinator's MAX_COMMITTEE_SIZE is selected from these keys by ticket-weighted sortition, with at most one key per request-time bond owner.\n values.$members.60:\n+ \"eth:0x1d4205bc727E4f3799B25d0FEAe8e45d365858b1\"\n+++ description: Current registered ciphernode operator keys reconstructed from add and remove events. For each E3 a committee of up to the coordinator's MAX_COMMITTEE_SIZE is selected from these keys by ticket-weighted sortition, with at most one key per request-time bond owner.\n values.$members.61:\n+ \"eth:0xAF062fC363c3AE910ec76676346f798792bEB851\"\n+++ description: Current registered ciphernode operator keys reconstructed from add and remove events. For each E3 a committee of up to the coordinator's MAX_COMMITTEE_SIZE is selected from these keys by ticket-weighted sortition, with at most one key per request-time bond owner.\n values.$members.62:\n+ \"eth:0xba7254CC6c70AE1D99aEa3ecA705E81635aaA988\"\n+++ description: Current registered ciphernode operator keys reconstructed from add and remove events. For each E3 a committee of up to the coordinator's MAX_COMMITTEE_SIZE is selected from these keys by ticket-weighted sortition, with at most one key per request-time bond owner.\n values.$members.63:\n+ \"eth:0x60cd23981430e4909957EA1fB214E9A21468175A\"\n+++ description: Current registered ciphernode operator keys reconstructed from add and remove events. For each E3 a committee of up to the coordinator's MAX_COMMITTEE_SIZE is selected from these keys by ticket-weighted sortition, with at most one key per request-time bond owner.\n values.$members.64:\n+ \"eth:0x73F8511492fE99B1d3b230B1015e22db53DaA9a1\"\n+++ description: Current registered ciphernode operator keys reconstructed from add and remove events. For each E3 a committee of up to the coordinator's MAX_COMMITTEE_SIZE is selected from these keys by ticket-weighted sortition, with at most one key per request-time bond owner.\n values.$members.65:\n+ \"eth:0x29a540E858500fd6ee2B68EE63769b0bB0A05CF4\"\n+++ description: Current registered ciphernode operator keys reconstructed from add and remove events. For each E3 a committee of up to the coordinator's MAX_COMMITTEE_SIZE is selected from these keys by ticket-weighted sortition, with at most one key per request-time bond owner.\n values.$members.66:\n+ \"eth:0x3Dedb602A8997B89685803Dff207566C9883FE0F\"\n+++ description: Current registered ciphernode operator keys reconstructed from add and remove events. For each E3 a committee of up to the coordinator's MAX_COMMITTEE_SIZE is selected from these keys by ticket-weighted sortition, with at most one key per request-time bond owner.\n values.$members.67:\n+ \"eth:0x856F8E59dEd8386C57f48a55b007F21F89724CFC\"\n+++ description: Current registered ciphernode operator keys reconstructed from add and remove events. For each E3 a committee of up to the coordinator's MAX_COMMITTEE_SIZE is selected from these keys by ticket-weighted sortition, with at most one key per request-time bond owner.\n values.$members.68:\n+ \"eth:0xd333232f08d6a8A4f7Cee8327476DbeDDDF20554\"\n+++ description: Current registered ciphernode operator keys reconstructed from add and remove events. For each E3 a committee of up to the coordinator's MAX_COMMITTEE_SIZE is selected from these keys by ticket-weighted sortition, with at most one key per request-time bond owner.\n values.$members.69:\n+ \"eth:0xb8d9Bf1b6C283D29dC3dC5711C9036F6896a963A\"\n+++ description: Current registered ciphernode operator keys reconstructed from add and remove events. For each E3 a committee of up to the coordinator's MAX_COMMITTEE_SIZE is selected from these keys by ticket-weighted sortition, with at most one key per request-time bond owner.\n values.$members.70:\n+ \"eth:0x9E2558B76c7D7CF169556A1a729C2CB0324f0E61\"\n+++ description: Current registered ciphernode operator keys reconstructed from add and remove events. For each E3 a committee of up to the coordinator's MAX_COMMITTEE_SIZE is selected from these keys by ticket-weighted sortition, with at most one key per request-time bond owner.\n values.$members.71:\n+ \"eth:0x15de07b6280ae5F5D37F6d77dF88c37875ef2877\"\n values.$pastUpgrades.3:\n+ [\"2026-09-24T18:43:35.000Z\",\"0x8e6d53a9137ad0cb441aef11b4752abfa936258661668d1b2692bf6c2678b4a2\",[\"eth:0x8354E51d14C118f6386C3F6F73E79190D71FFA3A\"]]\n values.$upgradeCount:\n- 3\n+ 4\n values.unreleasedCommitteeCount:\n- 1\n+ 2\n implementationNames.eth:0xD9A3224D829a4ac8b55A75C539fD447AC4B05Bf2:\n- \"CiphernodeRegistryOwnable\"\n implementationNames.eth:0x8354E51d14C118f6386C3F6F73E79190D71FFA3A:\n+ \"CiphernodeRegistryOwnable\"\n }\n```"
}
]
},
{
"id": "97731afc",
"date": "Tue, 22 Sep 2026 15:13:21 GMT",
"timestamp": 1790089928,
"description": "Upgraded all Interfold contracts across the board to unverified implementations. We went ahead and verified them for you on etherscan. The protocol was shortly unpaused to test it and then re-paused.\n\nChanges look like incremental small in-prod development of their protocol. Read on for detailed AI change descriptions and diff links.\n\n- https://disco.l2beat.com/diff/eth:0xA7e1f2693b3b5038e505396Dbd21d6c26ECa8aA2/eth:0xad5C8CA4bd0d086272039400Fa532019A920dD43 Interfold: the BFV parameter set, committee sizes and thresholds become compiled-in constants of the ActiveCryptoConfig library (removing the owner-settable committee thresholds and param-set registry), with the lifecycle and pricing logic in external libraries.\n- https://disco.l2beat.com/diff/eth:0xFff476751949a7e1B784b5c88648833c1e8dD69c/eth:0xD9A3224D829a4ac8b55A75C539fD447AC4B05Bf2 CiphernodeRegistry: exposes the randomness circuit-breaker state (randomnessDegraded) and relinks the sortition library.\n- https://disco.l2beat.com/diff/eth:0xd89D3fE1b53eF95111c0E68A8CeFDfd20EcCA53a/eth:0x290d5156AAa23cbEb458751A73688d2375220Ad2 BondingRegistry: identical source redeployed against freshly deployed bonding libraries.\n- https://disco.l2beat.com/diff/eth:0xE506249Ba5ede04A68b702b92704a0b88054f86A/eth:0x7C85D6C39EdAfCE6398fF1299b2a1eaBa0645870 E3RefundManager: drops the MAX_PROTOCOL_BPS constant and relinks the refund-claim library.\n- https://disco.l2beat.com/diff/eth:0x974E865B1BB24AF2a9ef8204AdEA9251Cc7C5FD9/eth:0x753109Ee36Dc65cC178875AddA30C6433e5bEEe4 SlashingManager: new deployment authorized in the BondingRegistry in place of the old manager, which was deauthorized; the DAO holds its default-admin and governance roles.\n- https://disco.l2beat.com/diff/eth:0xa0273f884816dfF0BE9B5ED50aB3AA29D6AaA712/eth:0xC60919F8Bd128B76E11F4B071C8c38e1391a3e00 RandomnessProvider: new Chainlink VRF v2.5 consumer on a new subscription, with the CiphernodeRegistry as its only requester and the DAO as owner.\n- https://disco.l2beat.com/diff/eth:0xBA1854fDA7A5c127606572e43Dc7B37b7A15bdFf/eth:0x7CD10057c25674bd5666A9deEE3193f1b29563d1 BFV public-key verifier: single-committee wrapper replaced by a router over three per-committee-size verifiers with new Honk circuit verifiers and verification keys.\n- https://disco.l2beat.com/diff/eth:0xf143b969ea481Ccf251194D15F82007C67AABc53/eth:0xA66CAb7AE230698b2a9ee1E0E967BaD4651FeEa7 BFV decryption verifier: single-committee wrapper replaced by a router over three per-committee-size verifiers with new Honk circuit verifiers and verification keys.\n- https://disco.l2beat.com/diff/eth:0x40a18Fc27ac4a4d86fA70385c6814e453b6BFF2c/eth:0x80D217d3b2e16fF2ecc178cC75655C773895c549 Ciphertext verifier: same RISC Zero wrapper redeployed with a new guest image ID against a new RISC Zero verifier.",
"isHighSeverity": true,
"changeCount": 305,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract BondingRegistry (eth:0x0ec90465095C21830BEcED07e032809A2Bd2915F) [interfold/BondingRegistry] {\n +++ description: Collateral registry for ciphernode operators. Operators become eligible by depositing ticket collateral backed by sUSDS and a FOLD bond, and by attesting a current software release in the NodeReleaseRegistry; the contract also enforces exits, committee obligations, bans and slashing debits.\n values.$implementation:\n- \"eth:0xd89D3fE1b53eF95111c0E68A8CeFDfd20EcCA53a\"\n+ \"eth:0x290d5156AAa23cbEb458751A73688d2375220Ad2\"\n values.$pastUpgrades.3:\n+ [\"2026-09-18T13:15:47.000Z\",\"0x975b5104729480bdf914304ce81726041e27450580fab4cd2f2750b7f0848047\",[\"eth:0x290d5156AAa23cbEb458751A73688d2375220Ad2\"]]\n values.$upgradeCount:\n- 3\n+ 4\n+++ description: Operator keys currently active under the collateral, release-attestation and ban rules, reconstructed from activation events. Eligibility-configuration bumps invalidate all cached statuses without emitting events, so entries here may still await re-activation.\n values.activeOperators.21:\n+ \"eth:0xc6E48712E56F6E9548c54a0A983eBe992eFA26Bd\"\n+++ description: Operator keys currently active under the collateral, release-attestation and ban rules, reconstructed from activation events. Eligibility-configuration bumps invalidate all cached statuses without emitting events, so entries here may still await re-activation.\n values.activeOperators.22:\n+ \"eth:0x1fD2b3d4a9f4Aeb62877cab9dF70A5a6e976b118\"\n+++ description: Operator keys currently active under the collateral, release-attestation and ban rules, reconstructed from activation events. Eligibility-configuration bumps invalidate all cached statuses without emitting events, so entries here may still await re-activation.\n values.activeOperators.23:\n+ \"eth:0x9EC16384b956D7B2A71284711FD32d156e6b33c6\"\n+++ description: Operator keys currently active under the collateral, release-attestation and ban rules, reconstructed from activation events. Eligibility-configuration bumps invalidate all cached statuses without emitting events, so entries here may still await re-activation.\n values.activeOperators.24:\n+ \"eth:0xd2b46ceC7b4d8046eF2D7bCb32aF3220Ef7bc1dd\"\n+++ description: Operator keys currently active under the collateral, release-attestation and ban rules, reconstructed from activation events. Eligibility-configuration bumps invalidate all cached statuses without emitting events, so entries here may still await re-activation.\n values.activeOperators.25:\n+ \"eth:0xd3336047DCf4d7C7393b3BF5Fa47A31478C22d47\"\n+++ description: Operator keys currently active under the collateral, release-attestation and ban rules, reconstructed from activation events. Eligibility-configuration bumps invalidate all cached statuses without emitting events, so entries here may still await re-activation.\n values.activeOperators.26:\n+ \"eth:0xd698bC33a4A98a019881c6e2664f1dAc62c4B3B5\"\n+++ description: Operator keys currently active under the collateral, release-attestation and ban rules, reconstructed from activation events. Eligibility-configuration bumps invalidate all cached statuses without emitting events, so entries here may still await re-activation.\n values.activeOperators.27:\n+ \"eth:0x76f3491D36138450F957b03F657dDa258Ad4c0E7\"\n+++ description: Operator keys currently active under the collateral, release-attestation and ban rules, reconstructed from activation events. Eligibility-configuration bumps invalidate all cached statuses without emitting events, so entries here may still await re-activation.\n values.activeOperators.28:\n+ \"eth:0x2048E0750655298E628155Ca5024F0b30D896e51\"\n+++ description: Operator keys currently active under the collateral, release-attestation and ban rules, reconstructed from activation events. Eligibility-configuration bumps invalidate all cached statuses without emitting events, so entries here may still await re-activation.\n values.activeOperators.29:\n+ \"eth:0x69760AF47771F8F763B5E3cb88601C197b0ee235\"\n+++ description: Operator keys currently active under the collateral, release-attestation and ban rules, reconstructed from activation events. Eligibility-configuration bumps invalidate all cached statuses without emitting events, so entries here may still await re-activation.\n values.activeOperators.30:\n+ \"eth:0xAF92b142F15eb873f7D1d9F05c8c9b1855698249\"\n+++ description: Operator keys currently active under the collateral, release-attestation and ban rules, reconstructed from activation events. Eligibility-configuration bumps invalidate all cached statuses without emitting events, so entries here may still await re-activation.\n values.activeOperators.31:\n+ \"eth:0xBf11E6B5be2ff90CDC6860BAe7941e44aa52DEc3\"\n+++ description: Operator keys currently active under the collateral, release-attestation and ban rules, reconstructed from activation events. Eligibility-configuration bumps invalidate all cached statuses without emitting events, so entries here may still await re-activation.\n values.activeOperators.32:\n+ \"eth:0x8DEeF8799921D549BAC469aD6d37912DBeB2432a\"\n+++ description: Operator keys currently active under the collateral, release-attestation and ban rules, reconstructed from activation events. Eligibility-configuration bumps invalidate all cached statuses without emitting events, so entries here may still await re-activation.\n values.activeOperators.33:\n+ \"eth:0xfbe2eEB95eb083F89bBb1C9c384328d9cfE43d47\"\n+++ description: Operator keys currently active under the collateral, release-attestation and ban rules, reconstructed from activation events. Eligibility-configuration bumps invalidate all cached statuses without emitting events, so entries here may still await re-activation.\n values.activeOperators.34:\n+ \"eth:0x3394971Ee0cb5bc6336F8C36bc8807CDAA8BB017\"\n+++ description: Operator keys currently active under the collateral, release-attestation and ban rules, reconstructed from activation events. Eligibility-configuration bumps invalidate all cached statuses without emitting events, so entries here may still await re-activation.\n values.activeOperators.35:\n+ \"eth:0x9D129a1733ab0f56460cCCfdC807C797b5a1a53c\"\n+++ description: Operator keys currently active under the collateral, release-attestation and ban rules, reconstructed from activation events. Eligibility-configuration bumps invalidate all cached statuses without emitting events, so entries here may still await re-activation.\n values.activeOperators.36:\n+ \"eth:0x160AC642aC8Ef8bd4491d22A46772B773960B4b5\"\n+++ description: Operator keys currently active under the collateral, release-attestation and ban rules, reconstructed from activation events. Eligibility-configuration bumps invalidate all cached statuses without emitting events, so entries here may still await re-activation.\n values.activeOperators.37:\n+ \"eth:0x0dB1A5DA3481Ce66B81FC7A48dD982FA0AcFCC99\"\n+++ description: Operator keys currently active under the collateral, release-attestation and ban rules, reconstructed from activation events. Eligibility-configuration bumps invalidate all cached statuses without emitting events, so entries here may still await re-activation.\n values.activeOperators.38:\n+ \"eth:0x4429dB606a7c476762E4c7003963603f97a3C031\"\n+++ description: Operator keys currently active under the collateral, release-attestation and ban rules, reconstructed from activation events. Eligibility-configuration bumps invalidate all cached statuses without emitting events, so entries here may still await re-activation.\n values.activeOperators.39:\n+ \"eth:0xd99672d25e783F245D3E0183581fAae0c154B8b6\"\n+++ description: Operator keys currently active under the collateral, release-attestation and ban rules, reconstructed from activation events. Eligibility-configuration bumps invalidate all cached statuses without emitting events, so entries here may still await re-activation.\n values.activeOperators.40:\n+ \"eth:0x62b2dF039198096259F8dc619cE5E79507806A00\"\n+++ description: Operator keys currently active under the collateral, release-attestation and ban rules, reconstructed from activation events. Eligibility-configuration bumps invalidate all cached statuses without emitting events, so entries here may still await re-activation.\n values.activeOperators.41:\n+ \"eth:0x5BA3ef7913D6dD46e2b4EBd8A05eF4615ae8Be5B\"\n+++ description: Operator keys currently active under the collateral, release-attestation and ban rules, reconstructed from activation events. Eligibility-configuration bumps invalidate all cached statuses without emitting events, so entries here may still await re-activation.\n values.activeOperators.42:\n+ \"eth:0x780c1bB4Abc6F4324813e58a52C9d2FEF055ef78\"\n+++ description: Operator keys currently active under the collateral, release-attestation and ban rules, reconstructed from activation events. Eligibility-configuration bumps invalidate all cached statuses without emitting events, so entries here may still await re-activation.\n values.activeOperators.43:\n+ \"eth:0xfC16c9513bB6b4FE7978723bB2468E99D8A34d70\"\n+++ description: Operator keys currently active under the collateral, release-attestation and ban rules, reconstructed from activation events. Eligibility-configuration bumps invalidate all cached statuses without emitting events, so entries here may still await re-activation.\n values.activeOperators.44:\n+ \"eth:0x9aCc89CCD297064779C4e0f1c353079975C731b6\"\n+++ description: Operator keys currently active under the collateral, release-attestation and ban rules, reconstructed from activation events. Eligibility-configuration bumps invalidate all cached statuses without emitting events, so entries here may still await re-activation.\n values.activeOperators.45:\n+ \"eth:0xFD97D727CdF9867944de554E45499D5162bDBfAc\"\n+++ description: Operator keys currently active under the collateral, release-attestation and ban rules, reconstructed from activation events. Eligibility-configuration bumps invalidate all cached statuses without emitting events, so entries here may still await re-activation.\n values.activeOperators.46:\n+ \"eth:0x5cFc8841C3fBb3CA8dCb2BfBD3a39a98dE5B942a\"\n+++ description: Operator keys currently active under the collateral, release-attestation and ban rules, reconstructed from activation events. Eligibility-configuration bumps invalidate all cached statuses without emitting events, so entries here may still await re-activation.\n values.activeOperators.47:\n+ \"eth:0xcD34cF9C66F524c91A14e67D3eF68157f809Abf7\"\n+++ description: Operator keys currently active under the collateral, release-attestation and ban rules, reconstructed from activation events. Eligibility-configuration bumps invalidate all cached statuses without emitting events, so entries here may still await re-activation.\n values.activeOperators.48:\n+ \"eth:0x6B035c1b0B099555284C8676e48e2C3CB8b3d4B0\"\n+++ description: Operator keys currently active under the collateral, release-attestation and ban rules, reconstructed from activation events. Eligibility-configuration bumps invalidate all cached statuses without emitting events, so entries here may still await re-activation.\n values.activeOperators.49:\n+ \"eth:0x86FBE1027577A343c1C9DcCAEc470d2B613cB347\"\n+++ description: Operator keys currently active under the collateral, release-attestation and ban rules, reconstructed from activation events. Eligibility-configuration bumps invalidate all cached statuses without emitting events, so entries here may still await re-activation.\n values.activeOperators.50:\n+ \"eth:0x2358424b1E347f1FAADB7F54C5eB57eeA3A2738d\"\n+++ description: Operator keys currently active under the collateral, release-attestation and ban rules, reconstructed from activation events. Eligibility-configuration bumps invalidate all cached statuses without emitting events, so entries here may still await re-activation.\n values.activeOperators.51:\n+ \"eth:0xFcEdB9Af33A338A80DA84785023BfDb988CaAd6E\"\n+++ description: Operator keys currently active under the collateral, release-attestation and ban rules, reconstructed from activation events. Eligibility-configuration bumps invalidate all cached statuses without emitting events, so entries here may still await re-activation.\n values.activeOperators.52:\n+ \"eth:0x7E94eEd05e81679F69dA44157a45F0528DA9Ce66\"\n+++ description: Operator keys currently active under the collateral, release-attestation and ban rules, reconstructed from activation events. Eligibility-configuration bumps invalidate all cached statuses without emitting events, so entries here may still await re-activation.\n values.activeOperators.53:\n+ \"eth:0xFF79709339F5dBCA606c8b9D4940390d61cB4B29\"\n+++ description: Operator keys currently active under the collateral, release-attestation and ban rules, reconstructed from activation events. Eligibility-configuration bumps invalidate all cached statuses without emitting events, so entries here may still await re-activation.\n values.activeOperators.54:\n+ \"eth:0x2A2Df1e79ec3be51c0B050175E3D897e3911dC42\"\n+++ description: Operator keys currently active under the collateral, release-attestation and ban rules, reconstructed from activation events. Eligibility-configuration bumps invalidate all cached statuses without emitting events, so entries here may still await re-activation.\n values.activeOperators.55:\n+ \"eth:0xDa1D20efb36e7F3bb47CEDbF471feB099051e717\"\n+++ description: Operator keys currently active under the collateral, release-attestation and ban rules, reconstructed from activation events. Eligibility-configuration bumps invalidate all cached statuses without emitting events, so entries here may still await re-activation.\n values.activeOperators.56:\n+ \"eth:0x58C40cEC1ebAc2e383B5091ed47fa719a29f00A4\"\n+++ description: Operator keys currently active under the collateral, release-attestation and ban rules, reconstructed from activation events. Eligibility-configuration bumps invalidate all cached statuses without emitting events, so entries here may still await re-activation.\n values.activeOperators.57:\n+ \"eth:0x5Fb0854aB8fb2810b80d3DE276b3107a9e5281b1\"\n+++ description: Contracts currently authorized to debit ticket collateral and FOLD bonds, ban operators and manage slash-routing state.\n values.authorizedSlashingManagerAt.0:\n- \"eth:0x974E865B1BB24AF2a9ef8204AdEA9251Cc7C5FD9\"\n+ \"eth:0x753109Ee36Dc65cC178875AddA30C6433e5bEEe4\"\n+++ description: Number of operators whose active status is valid under the current eligibility-configuration version. Unlike activeOperators, this drops immediately when the version is bumped, so it is the signal for a mass invalidation.\n values.numActiveOperators:\n- 19\n+ 56\n values.slashingManager:\n- \"eth:0x974E865B1BB24AF2a9ef8204AdEA9251Cc7C5FD9\"\n+ \"eth:0x753109Ee36Dc65cC178875AddA30C6433e5bEEe4\"\n implementationNames.eth:0xd89D3fE1b53eF95111c0E68A8CeFDfd20EcCA53a:\n- \"BondingRegistry\"\n implementationNames.eth:0x290d5156AAa23cbEb458751A73688d2375220Ad2:\n+ \"BondingRegistry\"\n }\n```\n\n```diff\n contract E3RefundManager (eth:0x1940eF168f4E0B3dA24BEca539856684793B0F6e) [interfold/E3RefundManager] {\n +++ description: Upgradeable accounting contract that snapshots the refund policy for each E3 and distributes request fees and routed slashed funds between the requester, honest committee members, protocol treasury and reserve.\n sourceHashes.1:\n- \"0x9a5f2a5ae202a5a570f526127420fdcc919af6dc90b48df309bb1b7cfaa9ec7d\"\n+ \"0xd28721fb9cf579c4c833f3afdb1da2f3bc70caa34698f245340fc5f4e44376cf\"\n values.$implementation:\n- \"eth:0xE506249Ba5ede04A68b702b92704a0b88054f86A\"\n+ \"eth:0x7C85D6C39EdAfCE6398fF1299b2a1eaBa0645870\"\n values.$pastUpgrades.1:\n+ [\"2026-09-18T13:15:47.000Z\",\"0x975b5104729480bdf914304ce81726041e27450580fab4cd2f2750b7f0848047\",[\"eth:0x7C85D6C39EdAfCE6398fF1299b2a1eaBa0645870\"]]\n values.$upgradeCount:\n- 1\n+ 2\n implementationNames.eth:0xE506249Ba5ede04A68b702b92704a0b88054f86A:\n- \"E3RefundManager\"\n implementationNames.eth:0x7C85D6C39EdAfCE6398fF1299b2a1eaBa0645870:\n+ \"E3RefundManager\"\n }\n```\n\n```diff\n contract CrispTokenVoting (eth:0x197be4E09614285Abb4b74b672377c404FD44d54) [interfold/CrispVoting] {\n +++ description: Upgradeable Aragon voting plugin from the interfold-crisp plugin repo. Votes are cast as encrypted CRISP ballots and tallied through an Interfold E3, so individual votes stay confidential to the ciphernode committee threshold. Used as the token-holder voting stage of the Interfold Protocol Proposal path.\n type:\n- \"EOA\"\n+ \"Contract\"\n proxyType:\n- \"EOA\"\n+ \"EIP1967 proxy\"\n template:\n+ \"interfold/CrispVoting\"\n sourceHashes:\n+ [\"0xe38a79e097149d54c3a08cd674ba5ffe929d1e8fc3c0c6c436ab5df7efcb1858\",\"0xecff8c39cdcec83b40ee88c043bf1143a72e9b910e8114977165e96405acc736\"]\n description:\n+ \"Upgradeable Aragon voting plugin from the interfold-crisp plugin repo. Votes are cast as encrypted CRISP ballots and tallied through an Interfold E3, so individual votes stay confidential to the ciphernode committee threshold. Used as the token-holder voting stage of the Interfold Protocol Proposal path.\"\n deployerAddress:\n+ \"eth:0x34655732dB9BBfA627021D18d786EfF7Bde211F7\"\n sinceTimestamp:\n+ 1789746143\n sinceBlock:\n+ 26005353\n values:\n+ {\"$admin\":\"eth:0x0000000000000000000000000000000000000000\",\"$implementation\":\"eth:0xb3d51BDe9cB8401cE9C630448Da2619279eF97DA\",\"$pastUpgrades\":[[\"2026-09-18T15:42:23.000Z\",\"0x14398bbef18acce0287611f2ca745ea56d594f1554d5fc868aeadbabcb220c48\",[\"eth:0xb3d51BDe9cB8401cE9C630448Da2619279eF97DA\"]]],\"$upgradeCount\":1,\"availabilityFinalizationWindow\":10800,\"CREATE_PROPOSAL_PERMISSION_ID\":\"0x8c433a4cd6b51969eca37f974940894297b9fcf4b282a213fea5cd8f85289c90\",\"customProposalParamsABI\":\"(uint256 allowFailureMap)\",\"dao\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\",\"earliestVotingStart\":1790115719,\"getCurrentTargetConfig\":{\"target\":\"eth:0x56ce4D8006292Abf418291FaE813C1E3769240A4\",\"operation\":1},\"getE3Settings\":[2,1,\"0x7b226e616d65223a225249534330222c22706172616c6c656c223a66616c73652c2262617463685f73697a65223a347d\"],\"getMetadata\":\"0x\",\"getTargetConfig\":{\"target\":\"eth:0x56ce4D8006292Abf418291FaE813C1E3769240A4\",\"operation\":1},\"getVotingToken\":\"eth:0x028deEA644258c78b1B5B2eacF469F5D781Fb43E\",\"implementation\":\"eth:0xb3d51BDe9cB8401cE9C630448Da2619279eF97DA\",\"interfold\":\"eth:0x28cF63B459e6218C69EA97ea7D90541cf648c715\",\"interfoldFeeToken\":\"eth:0xdC035D45d973E3EC169d2276DDab16f1e407384F\",\"MANAGER_PERMISSION_ID\":\"0x2cf8b99554b63927353c04c2e1cee7fe05352aeb3c52d2576a2f7fd7fb8e180a\",\"minDuration\":432000,\"minParticipation\":2,\"minProposerVotingPower\":0,\"minVoterVotingPower\":1,\"pluginType\":0,\"protocolVersion\":[1,4,0],\"SET_METADATA_PERMISSION_ID\":\"0x4707e94b25cfce1a7c363508fbb838c35864388ad77284b248282b9746982b9b\",\"SET_TARGET_CONFIG_PERMISSION_ID\":\"0x568cc693d84eb1901f8bcecba154cbdef23ca3cf67efc0a0b698528a06c660f7\",\"supportThreshold\":51,\"UPGRADE_PLUGIN_PERMISSION_ID\":\"0x821b6e3a557148015a918c89e5d092e878a69854a2d1a410635f771bd5a8a3f5\"}\n fieldMeta:\n+ {\"dao\":{\"description\":\"Aragon DAO whose permission manager controls the plugin's settings, target and upgrades.\"},\"interfold\":{\"description\":\"E3 coordinator that runs the encrypted tally.\"},\"interfoldFeeToken\":{\"description\":\"ERC-20 in which E3 request fees for each vote are paid to Interfold. Its own protocol is outside this discovery perimeter.\"},\"getVotingToken\":{\"description\":\"IVotes source used for proposal snapshots and vote weights.\"},\"getE3Settings\":{\"description\":\"Committee size class, BFV parameter set and program parameters requested for each vote's E3.\",\"type\":\"RISK_PARAMETER\"},\"supportThreshold\":{\"description\":\"Required yes-vote share for a proposal to pass, in the plugin's ratio base.\",\"type\":\"RISK_PARAMETER\"},\"minParticipation\":{\"description\":\"Minimum participating voting power relative to the snapshotted total supply, in the plugin's ratio base.\",\"type\":\"RISK_PARAMETER\"},\"minDuration\":{\"description\":\"Minimum voting duration in seconds.\",\"type\":\"RISK_PARAMETER\"},\"minProposerVotingPower\":{\"description\":\"Minimum voting power the creator must hold at the proposal snapshot.\",\"type\":\"RISK_PARAMETER\"},\"minVoterVotingPower\":{\"description\":\"Minimum voting power required to cast a ballot.\",\"type\":\"RISK_PARAMETER\"},\"availabilityFinalizationWindow\":{\"description\":\"Time after voting ends reserved for finalizing ballot data availability before the tally.\",\"type\":\"RISK_PARAMETER\"},\"getTargetConfig\":{\"description\":\"Execution target and call operation for passed votes.\",\"type\":\"CODE_CHANGE\"}}\n implementationNames:\n+ {\"eth:0x197be4E09614285Abb4b74b672377c404FD44d54\":\"ERC1967Proxy\",\"eth:0xb3d51BDe9cB8401cE9C630448Da2619279eF97DA\":\"CrispVoting\"}\n category:\n+ {\"name\":\"Governance\",\"priority\":3}\n receivedPermissions:\n+ [{\"permission\":\"interact\",\"from\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\",\"description\":\"change multisig plugin target execution configuration.\",\"role\":\".multisigTargetConfigAdmins\"}]\n }\n```\n\n```diff\n contract Interfold (eth:0x28cF63B459e6218C69EA97ea7D90541cf648c715) [interfold/Interfold] {\n +++ description: Coordinator for Encrypted Execution Environments (E3s). It accepts requests for allowlisted programs, selects a ciphernode committee, snapshots the configured proof system, and verifies the encrypted result and threshold decryption before publishing plaintext output.\n sourceHashes.1:\n- \"0xd3737346baa5d40f73aea8a15668e65fc210c6fbb56ddf2c8d8f6a0386d0a6f9\"\n+ \"0x2df58a27c4061f9543d01a5d32f6f88aefd401d25a50c1c574ecae4a01236915\"\n values.$implementation:\n- \"eth:0xA7e1f2693b3b5038e505396Dbd21d6c26ECa8aA2\"\n+ \"eth:0xad5C8CA4bd0d086272039400Fa532019A920dD43\"\n values.$pastUpgrades.2:\n+ [\"2026-09-18T13:15:47.000Z\",\"0x975b5104729480bdf914304ce81726041e27450580fab4cd2f2750b7f0848047\",[\"eth:0xad5C8CA4bd0d086272039400Fa532019A920dD43\"]]\n values.$upgradeCount:\n- 2\n+ 3\n+++ description: Compiled-in identifier of the BFV parameter set and circuit configuration accepted for new requests. Changing it requires a new implementation.\n+++ severity: HIGH\n values.activeCryptoConfigId:\n- \"0x04f3677e73b0f5066d6caf5cbd92e3fb2e38338edaf5cfc971ab28f7b684da78\"\n+ \"0xd9c86e581f8291ffb5b63595600e8d096ed30b16e2e0a6634a76c22b1f58fb4e\"\n+++ description: Verifier used for the encrypted computation output of future BFV E3s.\n+++ severity: HIGH\n values.bfvCiphertextVerifier:\n- \"eth:0x40a18Fc27ac4a4d86fA70385c6814e453b6BFF2c\"\n+ \"eth:0x80D217d3b2e16fF2ecc178cC75655C773895c549\"\n+++ description: Verifier used for BFV threshold-decryption proofs for future E3s.\n+++ severity: HIGH\n values.bfvDecryptionVerifier:\n- \"eth:0xf143b969ea481Ccf251194D15F82007C67AABc53\"\n+ \"eth:0xA66CAb7AE230698b2a9ee1E0E967BaD4651FeEa7\"\n+++ description: Verifier used for BFV distributed-key-generation proofs for future E3s.\n+++ severity: HIGH\n values.bfvPkVerifier:\n- \"eth:0xBA1854fDA7A5c127606572e43Dc7B37b7A15bdFf\"\n+ \"eth:0x7CD10057c25674bd5666A9deEE3193f1b29563d1\"\n values.getPricingConfig.minCommitteeSize:\n- 3\n+ 19\n+++ description: Committee size of the compiled-in active BFV configuration; the matching decryption threshold and assumed-honest count are constants of the ActiveCryptoConfig library in the verified source and are not readable onchain.\n+++ severity: HIGH\n values.MAX_COMMITTEE_SIZE:\n- 3\n+ 19\n+++ description: E3 application contracts permanently allowlisted by governance. Registration cannot be revoked in the current implementation.\n values.registeredE3Programs.2:\n+ \"eth:0x53FCdb21E73A461CfE6c64B19855204384B91BA3\"\n values.slashingManager:\n- \"eth:0x974E865B1BB24AF2a9ef8204AdEA9251Cc7C5FD9\"\n+ \"eth:0x753109Ee36Dc65cC178875AddA30C6433e5bEEe4\"\n implementationNames.eth:0xA7e1f2693b3b5038e505396Dbd21d6c26ECa8aA2:\n- \"Interfold\"\n implementationNames.eth:0xad5C8CA4bd0d086272039400Fa532019A920dD43:\n+ \"Interfold\"\n }\n```\n\n```diff\n contract ProtocolProposalProcessor (eth:0x364686f83d7cCEdf88B881B23d4437D1652A8FfB) [interfold/StagedProposalProcessor] {\n +++ description: Upgradeable Aragon staged-proposal plugin that executes DAO actions after proposals pass its configured sequence of voting or manual bodies, thresholds and timing windows.\n type:\n- \"EOA\"\n+ \"Contract\"\n proxyType:\n- \"EOA\"\n+ \"EIP1967 proxy\"\n template:\n+ \"interfold/StagedProposalProcessor\"\n sourceHashes:\n+ [\"0xe38a79e097149d54c3a08cd674ba5ffe929d1e8fc3c0c6c436ab5df7efcb1858\",\"0x001b18ae4604ab644ca37dc856974c6b97fb66cfbff5f17ade7109694d1ee295\"]\n description:\n+ \"Upgradeable Aragon staged-proposal plugin that executes DAO actions after proposals pass its configured sequence of voting or manual bodies, thresholds and timing windows.\"\n deployerAddress:\n+ \"eth:0x34655732dB9BBfA627021D18d786EfF7Bde211F7\"\n sinceTimestamp:\n+ 1789739891\n sinceBlock:\n+ 26004832\n values:\n+ {\"$admin\":\"eth:0x0000000000000000000000000000000000000000\",\"$implementation\":\"eth:0xCB895791C84484530d9fC9f68652b9bCC9D5288d\",\"$pastUpgrades\":[[\"2026-09-18T13:58:11.000Z\",\"0xfd3ee0f421e7a4249d48359bf6219ae42c60e0898e0b907887c4c314bb4154a6\",[\"eth:0xCB895791C84484530d9fC9f68652b9bCC9D5288d\"]]],\"$upgradeCount\":1,\"currentStages\":[[[[\"eth:0x197be4E09614285Abb4b74b672377c404FD44d54\",false,true,1]],1036800,0,432000,1,0,false,false],[[[\"eth:0x8B43b2852fc5031D01DDfCDF702973D93A2FF593\",true,false,1]],432000,0,0,1,0,false,false]],\"customProposalParamsABI\":\"(bytes[][] subBodiesCustomProposalParamsABI)\",\"dao\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\",\"getCurrentConfigIndex\":1,\"getCurrentTargetConfig\":{\"target\":\"eth:0x0000000000000000000000000000000000000000\",\"operation\":0},\"getMetadata\":\"0x697066733a2f2f516d534559616f58524c753275743261426b4342353237634c5156356f77314a55696a3448786b52595842643259\",\"getTargetConfig\":{\"target\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\",\"operation\":0},\"getTrustedForwarder\":\"eth:0x0000000000000000000000000000000000000000\",\"implementation\":\"eth:0xCB895791C84484530d9fC9f68652b9bCC9D5288d\",\"pluginType\":0,\"protocolVersion\":[1,4,0],\"SET_METADATA_PERMISSION_ID\":\"0x4707e94b25cfce1a7c363508fbb838c35864388ad77284b248282b9746982b9b\",\"SET_TARGET_CONFIG_PERMISSION_ID\":\"0x568cc693d84eb1901f8bcecba154cbdef23ca3cf67efc0a0b698528a06c660f7\",\"UPGRADE_PLUGIN_PERMISSION_ID\":\"0x821b6e3a557148015a918c89e5d092e878a69854a2d1a410635f771bd5a8a3f5\"}\n fieldMeta:\n+ {\"dao\":{\"description\":\"Aragon DAO whose permission manager controls proposal creation, configuration, advancement and upgrades.\"},\"currentStages\":{\"description\":\"Latest proposal-stage configuration reconstructed from events, including voting bodies, approval and veto thresholds, timing windows, and edit/cancel flags.\",\"type\":\"RISK_PARAMETER\"},\"getCurrentConfigIndex\":{\"description\":\"Index of the stage configuration used by newly created proposals. Existing proposals retain their earlier snapshot.\"},\"getCurrentTargetConfig\":{\"description\":\"Stored target and call operation for passed proposal actions. A zero target resolves to the DAO; delegatecall changes the security context.\",\"type\":\"CODE_CHANGE\"},\"getTrustedForwarder\":{\"description\":\"Address trusted to append the effective caller to proposal transactions.\"}}\n implementationNames:\n+ {\"eth:0x364686f83d7cCEdf88B881B23d4437D1652A8FfB\":\"ERC1967Proxy\",\"eth:0xCB895791C84484530d9fC9f68652b9bCC9D5288d\":\"StagedProposalProcessor\"}\n category:\n+ {\"name\":\"Governance\",\"priority\":3}\n receivedPermissions:\n+ [{\"permission\":\"interact\",\"from\":\"eth:0x0ec90465095C21830BEcED07e032809A2Bd2915F\",\"description\":\"replace collateral assets and protocol dependencies; change bond, ticket, eligibility and exit parameters; authorize slashing managers and reward distributors; clear bans from old managers; withdraw slashed funds; and replace the slashed-funds treasury.\",\"role\":\".owner\",\"via\":[{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]},{\"permission\":\"interact\",\"from\":\"eth:0x1940eF168f4E0B3dA24BEca539856684793B0F6e\",\"description\":\"change the work-allocation split, coordinator and treasury without an onchain delay.\",\"role\":\".owner\",\"via\":[{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]},{\"permission\":\"interact\",\"from\":\"eth:0x28cF63B459e6218C69EA97ea7D90541cf648c715\",\"description\":\"pause or unpause new requests; replace the registry, bonding, slashing, refund and node-release dependencies; allow fee assets and E3 programs; replace proof verifiers; and change pricing (including the flat randomness fee), timeouts, parameter sets and committee thresholds without an onchain delay.\",\"role\":\".owner\",\"via\":[{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]},{\"permission\":\"interact\",\"from\":\"eth:0x53FCdb21E73A461CfE6c64B19855204384B91BA3\",\"description\":\"set census roots and replace the application RISC Zero verifier or guest image ID immediately. Such replacement cannot change the verifier snapshotted by Interfold, but can make an in-flight round fail.\",\"role\":\".owner\",\"via\":[{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]},{\"permission\":\"interact\",\"from\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\",\"description\":\"change multisig plugin target execution configuration.\",\"role\":\".multisigTargetConfigAdmins\",\"via\":[{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]},{\"permission\":\"interact\",\"from\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\",\"description\":\"change multisig plugin target execution configuration.\",\"role\":\".multisigTargetConfigAdmins\"},{\"permission\":\"interact\",\"from\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\",\"description\":\"change support, participation, duration, proposer-power and minimum-approval requirements for future votes.\",\"role\":\".tokenVotingSettingsManagers\",\"via\":[{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]},{\"permission\":\"interact\",\"from\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\",\"description\":\"change the settings of the unverified CRISP token-voting plugin used as the IPP voting stage.\",\"role\":\".crispVotingSettingsManagers\",\"via\":[{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]},{\"permission\":\"interact\",\"from\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\",\"description\":\"grant and revoke permissions in the DAO.\",\"role\":\".daoRootHolders\",\"via\":[{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]},{\"permission\":\"interact\",\"from\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\",\"description\":\"open a CRISP token vote using the caller-supplied proposal payload.\",\"role\":\".crispVotingProposalCreators\"},{\"permission\":\"interact\",\"from\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\",\"description\":\"redirect calls made by the Admin plugin to another executor or target.\",\"role\":\".adminTargetManagers\",\"via\":[{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]},{\"permission\":\"interact\",\"from\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\",\"description\":\"redirect passed CRISP vote actions to another executor or target.\",\"role\":\".crispVotingTargetManagers\",\"via\":[{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]},{\"permission\":\"interact\",\"from\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\",\"description\":\"redirect passed Interfold Protocol Proposal actions to another executor or target.\",\"role\":\".ippTargetManagers\",\"via\":[{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]},{\"permission\":\"interact\",\"from\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\",\"description\":\"redirect passed proposal actions to another executor or target.\",\"role\":\".sppTargetManagers\",\"via\":[{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]},{\"permission\":\"interact\",\"from\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\",\"description\":\"redirect passed vote actions to another executor or target.\",\"role\":\".tokenVotingTargetManagers\",\"via\":[{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]},{\"permission\":\"interact\",\"from\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\",\"description\":\"replace the address trusted to append the effective caller to IPP proposal transactions.\",\"role\":\".ippTrustedForwarderManagers\",\"via\":[{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]},{\"permission\":\"interact\",\"from\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\",\"description\":\"replace the address trusted to append the effective caller to proposal transactions.\",\"role\":\".sppTrustedForwarderManagers\",\"via\":[{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]},{\"permission\":\"interact\",\"from\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\",\"description\":\"replace the rules that gate creation of Interfold Protocol Proposals.\",\"role\":\".ippConditionRuleManagers\",\"via\":[{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]},{\"permission\":\"interact\",\"from\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\",\"description\":\"replace the rules that gate public creation of staged proposals.\",\"role\":\".conditionRuleManagers\",\"via\":[{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]},{\"permission\":\"interact\",\"from\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\",\"description\":\"replace the stages, bodies, thresholds and timing rules for future Interfold Protocol Proposals.\",\"role\":\".ippStageManagers\",\"via\":[{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]},{\"permission\":\"interact\",\"from\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\",\"description\":\"replace the stages, bodies, thresholds and timing rules for future public proposals.\",\"role\":\".sppStageManagers\",\"via\":[{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]},{\"permission\":\"interact\",\"from\":\"eth:0x753109Ee36Dc65cC178875AddA30C6433e5bEEe4\",\"description\":\"create or disable slash policies, grant or revoke evidence slashers, resolve appeals, close E3 assignments and propose, confirm or remove operator bans.\",\"role\":\".governanceMembers\",\"via\":[{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]},{\"permission\":\"interact\",\"from\":\"eth:0x753109Ee36Dc65cC178875AddA30C6433e5bEEe4\",\"description\":\"replace the coordinator, bonding registry, ciphernode registry and refund manager, and grant or revoke governance membership. A transfer of the default-admin role itself has the configured delay.\",\"role\":\".defaultAdmins\",\"via\":[{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]},{\"permission\":\"interact\",\"from\":\"eth:0x847A22303639017bcDB7F7E49EEa4a4629c1169f\",\"description\":\"set census roots and replace the application RISC Zero verifier or guest image ID immediately. Such replacement cannot change the verifier snapshotted by Interfold, but can make an in-flight round fail.\",\"role\":\".owner\",\"via\":[{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]},{\"permission\":\"interact\",\"from\":\"eth:0x9E1C6B433CFbC8f28d80EAB583C428B01d083b0A\",\"description\":\"raise the required ciphernode protocol version and node generation, which instantly invalidates every operator's cached eligibility until they attest the new release. The requirement can only increase, and only while new E3 requests are paused and no E3s or committees are active.\",\"role\":\".owner\",\"via\":[{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]},{\"permission\":\"interact\",\"from\":\"eth:0x9e9617418DFb9E4daD00E2D1e8f21e214901989B\",\"description\":\"change cooldowns and exit fees and upgrade the voting-escrow exit queue.\",\"role\":\".exitQueueAdmins\",\"via\":[{\"address\":\"eth:0x9e9617418DFb9E4daD00E2D1e8f21e214901989B\"},{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]},{\"permission\":\"interact\",\"from\":\"eth:0x9e9617418DFb9E4daD00E2D1e8f21e214901989B\",\"description\":\"change multisig plugin settings.\",\"role\":\".multisigSettingsAdmins\",\"via\":[{\"address\":\"eth:0x9e9617418DFb9E4daD00E2D1e8f21e214901989B\"},{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]},{\"permission\":\"interact\",\"from\":\"eth:0x9e9617418DFb9E4daD00E2D1e8f21e214901989B\",\"description\":\"change multisig plugin target execution configuration.\",\"role\":\".multisigTargetConfigAdmins\",\"via\":[{\"address\":\"eth:0x9e9617418DFb9E4daD00E2D1e8f21e214901989B\"},{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]},{\"permission\":\"interact\",\"from\":\"eth:0x9e9617418DFb9E4daD00E2D1e8f21e214901989B\",\"description\":\"change transfer whitelist settings and upgrade the voting-lock NFT.\",\"role\":\".lockAdmins\",\"via\":[{\"address\":\"eth:0x9e9617418DFb9E4daD00E2D1e8f21e214901989B\"},{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]},{\"permission\":\"interact\",\"from\":\"eth:0x9e9617418DFb9E4daD00E2D1e8f21e214901989B\",\"description\":\"change voting epochs and upgrade the voting-escrow Clock.\",\"role\":\".clockAdmins\",\"via\":[{\"address\":\"eth:0x9e9617418DFb9E4daD00E2D1e8f21e214901989B\"},{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]},{\"permission\":\"interact\",\"from\":\"eth:0x9e9617418DFb9E4daD00E2D1e8f21e214901989B\",\"description\":\"change voting-power curve parameters and upgrade the Curve implementation.\",\"role\":\".curveAdmins\",\"via\":[{\"address\":\"eth:0x9e9617418DFb9E4daD00E2D1e8f21e214901989B\"},{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]},{\"permission\":\"interact\",\"from\":\"eth:0x9e9617418DFb9E4daD00E2D1e8f21e214901989B\",\"description\":\"complete queued voting-escrow withdrawals.\",\"role\":\".exitQueueWithdrawers\",\"via\":[{\"address\":\"eth:0x9e9617418DFb9E4daD00E2D1e8f21e214901989B\"},{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]},{\"permission\":\"interact\",\"from\":\"eth:0x9e9617418DFb9E4daD00E2D1e8f21e214901989B\",\"description\":\"grant and revoke permissions in the voting-escrow DAO.\",\"role\":\".veDaoRootHolders\",\"via\":[{\"address\":\"eth:0x9e9617418DFb9E4daD00E2D1e8f21e214901989B\"},{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]},{\"permission\":\"interact\",\"from\":\"eth:0x9e9617418DFb9E4daD00E2D1e8f21e214901989B\",\"description\":\"manage gauge metadata and the voting-power update hook.\",\"role\":\".gaugeAdmins\",\"via\":[{\"address\":\"eth:0x9e9617418DFb9E4daD00E2D1e8f21e214901989B\"},{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]},{\"permission\":\"interact\",\"from\":\"eth:0x9e9617418DFb9E4daD00E2D1e8f21e214901989B\",\"description\":\"pause and unpause voting-escrow operations.\",\"role\":\".votingEscrowPausers\",\"via\":[{\"address\":\"eth:0x9e9617418DFb9E4daD00E2D1e8f21e214901989B\"},{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]},{\"permission\":\"interact\",\"from\":\"eth:0x9e9617418DFb9E4daD00E2D1e8f21e214901989B\",\"description\":\"pause the escrow voting-power adapter, manage delegation settings and upgrade its implementation.\",\"role\":\".votesAdapterAdmins\",\"via\":[{\"address\":\"eth:0x9e9617418DFb9E4daD00E2D1e8f21e214901989B\"},{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]},{\"permission\":\"interact\",\"from\":\"eth:0x9e9617418DFb9E4daD00E2D1e8f21e214901989B\",\"description\":\"replace voting-power dependencies, change minimum deposits and split rules, and upgrade VotingEscrow.\",\"role\":\".votingEscrowAdmins\",\"via\":[{\"address\":\"eth:0x9e9617418DFb9E4daD00E2D1e8f21e214901989B\"},{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]},{\"permission\":\"interact\",\"from\":\"eth:0x9e9617418DFb9E4daD00E2D1e8f21e214901989B\",\"description\":\"sweep unaccounted tokens and NFTs from VotingEscrow.\",\"role\":\".votingEscrowSweepers\",\"via\":[{\"address\":\"eth:0x9e9617418DFb9E4daD00E2D1e8f21e214901989B\"},{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]},{\"permission\":\"interact\",\"from\":\"eth:0x9e9617418DFb9E4daD00E2D1e8f21e214901989B\",\"description\":\"update delegated voting power through the escrow voting adapter.\",\"role\":\".delegationTokenManagers\",\"via\":[{\"address\":\"eth:0x9e9617418DFb9E4daD00E2D1e8f21e214901989B\"},{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]},{\"permission\":\"interact\",\"from\":\"eth:0xC0B5b49a3949eC4B520eF21BaCFE16e3695F3B5D\",\"description\":\"schedule and activate a registry replacement after one day when all ticket liabilities are zero, and rescue ERC-20s other than the underlying sUSDS.\",\"role\":\".owner\",\"via\":[{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]},{\"permission\":\"interact\",\"from\":\"eth:0xC60919F8Bd128B76E11F4B071C8c38e1391a3e00\",\"description\":\"replace the Chainlink VRF coordinator that delivers the sortition entropy.\",\"role\":\".owner\",\"via\":[{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]},{\"permission\":\"interact\",\"from\":\"eth:0xC927A5B2d8F68697bC28C0670df05178c93df2d7\",\"description\":\"replace the coordinator, bonding, slashing and randomness-provider dependencies; add or remove ciphernodes; change the sortition window and randomness timeout; and update the DKG verifier and accusation-vote validity parameters. DKG-verifier replacement and risk-reducing accusation-window changes use a two-day propose/commit delay, while other changes are immediate. Randomness settings can only change while new requests are paused and no committees are outstanding.\",\"role\":\".owner\",\"via\":[{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]},{\"permission\":\"upgrade\",\"from\":\"eth:0x0ec90465095C21830BEcED07e032809A2Bd2915F\",\"role\":\"admin\",\"via\":[{\"address\":\"eth:0xf1511Fc32abf7Bd3a3213ddCF08C07259b53972b\"},{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]},{\"permission\":\"upgrade\",\"from\":\"eth:0x1940eF168f4E0B3dA24BEca539856684793B0F6e\",\"role\":\"admin\",\"via\":[{\"address\":\"eth:0x9393573a9EF85c9A37d91E32702a340084A48b6E\"},{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]},{\"permission\":\"upgrade\",\"from\":\"eth:0x28cF63B459e6218C69EA97ea7D90541cf648c715\",\"role\":\"admin\",\"via\":[{\"address\":\"eth:0xB3985D7fF844FA0F5E0aaC5feb5DD8BE15e88580\"},{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]},{\"permission\":\"upgrade\",\"from\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\",\"role\":\".daoUpgraders\",\"via\":[{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]},{\"permission\":\"upgrade\",\"from\":\"eth:0x9e9617418DFb9E4daD00E2D1e8f21e214901989B\",\"role\":\".clockAdmins\",\"via\":[{\"address\":\"eth:0x9e9617418DFb9E4daD00E2D1e8f21e214901989B\"},{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]},{\"permission\":\"upgrade\",\"from\":\"eth:0x9e9617418DFb9E4daD00E2D1e8f21e214901989B\",\"role\":\".curveAdmins\",\"via\":[{\"address\":\"eth:0x9e9617418DFb9E4daD00E2D1e8f21e214901989B\"},{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]},{\"permission\":\"upgrade\",\"from\":\"eth:0x9e9617418DFb9E4daD00E2D1e8f21e214901989B\",\"role\":\".exitQueueAdmins\",\"via\":[{\"address\":\"eth:0x9e9617418DFb9E4daD00E2D1e8f21e214901989B\"},{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]},{\"permission\":\"upgrade\",\"from\":\"eth:0x9e9617418DFb9E4daD00E2D1e8f21e214901989B\",\"role\":\".gaugeUpgraders\",\"via\":[{\"address\":\"eth:0x9e9617418DFb9E4daD00E2D1e8f21e214901989B\"},{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]},{\"permission\":\"upgrade\",\"from\":\"eth:0x9e9617418DFb9E4daD00E2D1e8f21e214901989B\",\"role\":\".lockAdmins\",\"via\":[{\"address\":\"eth:0x9e9617418DFb9E4daD00E2D1e8f21e214901989B\"},{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]},{\"permission\":\"upgrade\",\"from\":\"eth:0x9e9617418DFb9E4daD00E2D1e8f21e214901989B\",\"role\":\".veDaoUpgraders\",\"via\":[{\"address\":\"eth:0x9e9617418DFb9E4daD00E2D1e8f21e214901989B\"},{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]},{\"permission\":\"upgrade\",\"from\":\"eth:0x9e9617418DFb9E4daD00E2D1e8f21e214901989B\",\"role\":\".votesAdapterAdmins\",\"via\":[{\"address\":\"eth:0x9e9617418DFb9E4daD00E2D1e8f21e214901989B\"},{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]},{\"permission\":\"upgrade\",\"from\":\"eth:0x9e9617418DFb9E4daD00E2D1e8f21e214901989B\",\"role\":\".votingEscrowAdmins\",\"via\":[{\"address\":\"eth:0x9e9617418DFb9E4daD00E2D1e8f21e214901989B\"},{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]},{\"permission\":\"upgrade\",\"from\":\"eth:0xC927A5B2d8F68697bC28C0670df05178c93df2d7\",\"role\":\"admin\",\"via\":[{\"address\":\"eth:0x2DFb93A8C3cE68Be3d8129479d7870646d89aDa7\"},{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]}]\n directlyReceivedPermissions:\n+ [{\"permission\":\"act\",\"from\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\",\"description\":\"execute arbitrary calls from the DAO, including calls to protocol owners and ProxyAdmins.\",\"role\":\".daoExecutors\"}]\n }\n```\n\n```diff\n- Status: DELETED\n contract DecryptionAggregatorVerifier (eth:0x53Fc34b412E16A1aE05A86934b821F82ca2a10da) [interfold/DecryptionAggregatorVerifier]\n +++ description: Immutable generated Honk verifier for the BFV threshold-decryption aggregation circuit.\n```\n\n```diff\n contract InterfoldSafeA (eth:0x5429D8c7fD14023f3c414126F94BbE25A05fC018) [GnosisSafe] {\n +++ description: None\n receivedPermissions.3:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x53FCdb21E73A461CfE6c64B19855204384B91BA3\",\"description\":\"set census roots and replace the application RISC Zero verifier or guest image ID immediately. Such replacement cannot change the verifier snapshotted by Interfold, but can make an in-flight round fail.\",\"role\":\".owner\",\"via\":[{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]}\n receivedPermissions.6:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\",\"description\":\"change the settings of the unverified CRISP token-voting plugin used as the IPP voting stage.\",\"role\":\".crispVotingSettingsManagers\",\"via\":[{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]}\n receivedPermissions.9:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\",\"description\":\"redirect passed CRISP vote actions to another executor or target.\",\"role\":\".crispVotingTargetManagers\",\"via\":[{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]}\n receivedPermissions.10:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\",\"description\":\"redirect passed Interfold Protocol Proposal actions to another executor or target.\",\"role\":\".ippTargetManagers\",\"via\":[{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]}\n receivedPermissions.13:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\",\"description\":\"replace the address trusted to append the effective caller to IPP proposal transactions.\",\"role\":\".ippTrustedForwarderManagers\",\"via\":[{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]}\n receivedPermissions.15:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\",\"description\":\"replace the rules that gate creation of Interfold Protocol Proposals.\",\"role\":\".ippConditionRuleManagers\",\"via\":[{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]}\n receivedPermissions.17:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\",\"description\":\"replace the stages, bodies, thresholds and timing rules for future Interfold Protocol Proposals.\",\"role\":\".ippStageManagers\",\"via\":[{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]}\n receivedPermissions.19:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x753109Ee36Dc65cC178875AddA30C6433e5bEEe4\",\"description\":\"create or disable slash policies, grant or revoke evidence slashers, resolve appeals, close E3 assignments and propose, confirm or remove operator bans.\",\"role\":\".governanceMembers\",\"via\":[{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]}\n receivedPermissions.20:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x753109Ee36Dc65cC178875AddA30C6433e5bEEe4\",\"description\":\"replace the coordinator, bonding registry, ciphernode registry and refund manager, and grant or revoke governance membership. A transfer of the default-admin role itself has the configured delay.\",\"role\":\".defaultAdmins\",\"via\":[{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]}\n receivedPermissions.13:\n- {\"permission\":\"interact\",\"from\":\"eth:0x974E865B1BB24AF2a9ef8204AdEA9251Cc7C5FD9\",\"description\":\"create or disable slash policies, grant or revoke evidence slashers, resolve appeals, close E3 assignments and propose, confirm or remove operator bans.\",\"role\":\".governanceMembers\",\"via\":[{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]}\n receivedPermissions.14:\n- {\"permission\":\"interact\",\"from\":\"eth:0x974E865B1BB24AF2a9ef8204AdEA9251Cc7C5FD9\",\"description\":\"replace the coordinator, bonding registry, ciphernode registry and refund manager, and grant or revoke governance membership. A transfer of the default-admin role itself has the configured delay.\",\"role\":\".defaultAdmins\",\"via\":[{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]}\n receivedPermissions.30:\n- {\"permission\":\"interact\",\"from\":\"eth:0xa0273f884816dfF0BE9B5ED50aB3AA29D6AaA712\",\"description\":\"replace the Chainlink VRF coordinator that delivers the sortition entropy.\",\"role\":\".owner\",\"via\":[{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]}\n receivedPermissions.38:\n+ {\"permission\":\"interact\",\"from\":\"eth:0xC60919F8Bd128B76E11F4B071C8c38e1391a3e00\",\"description\":\"replace the Chainlink VRF coordinator that delivers the sortition entropy.\",\"role\":\".owner\",\"via\":[{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]}\n }\n```\n\n```diff\n contract InterfoldDAO (eth:0x652a31c669f9AB37f6040f279139a75D04F2679e) [zama/ZamaDAO] {\n +++ description: Aragon DAO that stores governance state and executes proposal action batches.\n+++ description: Active Aragon grants reconstructed from Granted and Revoked events. The permissionId, target contract (where), grantee (who), and optional condition are preserved.\n+++ severity: HIGH\n values.$activePermissions.23:\n+ {\"permissionId\":\"0x568cc693d84eb1901f8bcecba154cbdef23ca3cf67efc0a0b698528a06c660f7\",\"where\":\"eth:0x197be4E09614285Abb4b74b672377c404FD44d54\",\"who\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\",\"condition\":\"eth:0x0000000000000000000000000000000000000002\"}\n+++ description: Active Aragon grants reconstructed from Granted and Revoked events. The permissionId, target contract (where), grantee (who), and optional condition are preserved.\n+++ severity: HIGH\n values.$activePermissions.24:\n+ {\"permissionId\":\"0x2cf8b99554b63927353c04c2e1cee7fe05352aeb3c52d2576a2f7fd7fb8e180a\",\"where\":\"eth:0x197be4E09614285Abb4b74b672377c404FD44d54\",\"who\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\",\"condition\":\"eth:0x0000000000000000000000000000000000000002\"}\n+++ description: Active Aragon grants reconstructed from Granted and Revoked events. The permissionId, target contract (where), grantee (who), and optional condition are preserved.\n+++ severity: HIGH\n values.$activePermissions.25:\n+ {\"permissionId\":\"0x4707e94b25cfce1a7c363508fbb838c35864388ad77284b248282b9746982b9b\",\"where\":\"eth:0x197be4E09614285Abb4b74b672377c404FD44d54\",\"who\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\",\"condition\":\"eth:0x0000000000000000000000000000000000000002\"}\n+++ description: Active Aragon grants reconstructed from Granted and Revoked events. The permissionId, target contract (where), grantee (who), and optional condition are preserved.\n+++ severity: HIGH\n values.$activePermissions.26:\n+ {\"permissionId\":\"0x6f36f8bf0398781285f5a40c489dbf3268ce3e205aba87f21e49e6805391b5a1\",\"where\":\"eth:0x364686f83d7cCEdf88B881B23d4437D1652A8FfB\",\"who\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\",\"condition\":\"eth:0x0000000000000000000000000000000000000002\"}\n+++ description: Active Aragon grants reconstructed from Granted and Revoked events. The permissionId, target contract (where), grantee (who), and optional condition are preserved.\n+++ severity: HIGH\n values.$activePermissions.27:\n+ {\"permissionId\":\"0xf281525e53675515a6ba7cc7bea8a81e649b3608423ee2d73be1752cea887889\",\"where\":\"eth:0x364686f83d7cCEdf88B881B23d4437D1652A8FfB\",\"who\":\"eth:0xFFfFfFffFFfffFFfFFfFFFFFffFFFffffFfFFFfF\",\"condition\":\"eth:0x0000000000000000000000000000000000000002\"}\n+++ description: Active Aragon grants reconstructed from Granted and Revoked events. The permissionId, target contract (where), grantee (who), and optional condition are preserved.\n+++ severity: HIGH\n values.$activePermissions.28:\n+ {\"permissionId\":\"0x06d294bc8cbad2e393408b20dd019a772661f60b8d633e56761157cb1ec85f8c\",\"where\":\"eth:0x364686f83d7cCEdf88B881B23d4437D1652A8FfB\",\"who\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\",\"condition\":\"eth:0x0000000000000000000000000000000000000002\"}\n+++ description: Active Aragon grants reconstructed from Granted and Revoked events. The permissionId, target contract (where), grantee (who), and optional condition are preserved.\n+++ severity: HIGH\n values.$activePermissions.29:\n+ {\"permissionId\":\"0x568cc693d84eb1901f8bcecba154cbdef23ca3cf67efc0a0b698528a06c660f7\",\"where\":\"eth:0x364686f83d7cCEdf88B881B23d4437D1652A8FfB\",\"who\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\",\"condition\":\"eth:0x0000000000000000000000000000000000000002\"}\n+++ description: Active Aragon grants reconstructed from Granted and Revoked events. The permissionId, target contract (where), grantee (who), and optional condition are preserved.\n+++ severity: HIGH\n values.$activePermissions.30:\n+ {\"permissionId\":\"0x4707e94b25cfce1a7c363508fbb838c35864388ad77284b248282b9746982b9b\",\"where\":\"eth:0x364686f83d7cCEdf88B881B23d4437D1652A8FfB\",\"who\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\",\"condition\":\"eth:0x0000000000000000000000000000000000000002\"}\n+++ description: Active Aragon grants reconstructed from Granted and Revoked events. The permissionId, target contract (where), grantee (who), and optional condition are preserved.\n+++ severity: HIGH\n values.$activePermissions.31:\n+ {\"permissionId\":\"0x8c433a4cd6b51969eca37f974940894297b9fcf4b282a213fea5cd8f85289c90\",\"where\":\"eth:0x364686f83d7cCEdf88B881B23d4437D1652A8FfB\",\"who\":\"eth:0xFFfFfFffFFfffFFfFFfFFFFFffFFFffffFfFFFfF\",\"condition\":\"eth:0xaE0F1082039E715609495Fdb2265b3B53f1296C9\"}\n+++ description: Active Aragon grants reconstructed from Granted and Revoked events. The permissionId, target contract (where), grantee (who), and optional condition are preserved.\n+++ severity: HIGH\n values.$activePermissions.32:\n+ {\"permissionId\":\"0xb014ce248804cab6a144581acce1eeb70ce5d54f08433b989d73bb0ccee3d3f9\",\"where\":\"eth:0x364686f83d7cCEdf88B881B23d4437D1652A8FfB\",\"who\":\"eth:0xFFfFfFffFFfffFFfFFfFFFFFffFFFffffFfFFFfF\",\"condition\":\"eth:0x0000000000000000000000000000000000000002\"}\n+++ description: Active Aragon grants reconstructed from Granted and Revoked events. The permissionId, target contract (where), grantee (who), and optional condition are preserved.\n+++ severity: HIGH\n values.$activePermissions.33:\n+ {\"permissionId\":\"0xbf04b4486c9663d805744005c3da000eda93de6e3308a4a7a812eb565327b78d\",\"where\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\",\"who\":\"eth:0x364686f83d7cCEdf88B881B23d4437D1652A8FfB\",\"condition\":\"eth:0x0000000000000000000000000000000000000002\"}\n+++ description: Active Aragon grants reconstructed from Granted and Revoked events. The permissionId, target contract (where), grantee (who), and optional condition are preserved.\n+++ severity: HIGH\n values.$activePermissions.34:\n+ {\"permissionId\":\"0xd3d98e95f3486fc234d80c098cf0d2a0a3fb187833d7e9cc930f8c4f8335a0e7\",\"where\":\"eth:0xaE0F1082039E715609495Fdb2265b3B53f1296C9\",\"who\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\",\"condition\":\"eth:0x0000000000000000000000000000000000000002\"}\n+++ description: Active Aragon grants reconstructed from Granted and Revoked events. The permissionId, target contract (where), grantee (who), and optional condition are preserved.\n+++ severity: HIGH\n values.$activePermissions.35:\n+ {\"permissionId\":\"0x8c433a4cd6b51969eca37f974940894297b9fcf4b282a213fea5cd8f85289c90\",\"where\":\"eth:0x197be4E09614285Abb4b74b672377c404FD44d54\",\"who\":\"eth:0x364686f83d7cCEdf88B881B23d4437D1652A8FfB\",\"condition\":\"eth:0x0000000000000000000000000000000000000002\"}\n+++ description: Current grantees allowed to open votes in the CRISP token-voting plugin.\n values.crispVotingProposalCreators.0:\n+ \"eth:0x364686f83d7cCEdf88B881B23d4437D1652A8FfB\"\n+++ description: Current grantees of the settings-update permission (id 0x2cf8b995...) on the CRISP token-voting plugin.\n values.crispVotingSettingsManagers.0:\n+ \"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"\n+++ description: Current grantees allowed to redirect the CRISP token-voting plugin's execution target.\n values.crispVotingTargetManagers.0:\n+ \"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"\n+++ description: Current grantees of Aragon's EXECUTE_PERMISSION on this DAO, reconstructed from grant and revoke events.\n values.daoExecutors.2:\n+ \"eth:0x364686f83d7cCEdf88B881B23d4437D1652A8FfB\"\n+++ description: Current grantees allowed to advance Interfold Protocol Proposals whose stage conditions have passed.\n values.ippAdvancers.0:\n+ \"eth:0xFFfFfFffFFfffFFfFFfFFFFFffFFFffffFfFFFfF\"\n+++ description: Current grantees allowed to replace the IPP proposal-creation condition rules.\n values.ippConditionRuleManagers.0:\n+ \"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"\n+++ description: Current grantees allowed to execute an Interfold Protocol Proposal after its stages have passed.\n values.ippExecutors.0:\n+ \"eth:0xFFfFfFffFFfffFFfFFfFFFFFffFFFffffFfFFFfF\"\n+++ description: Current grantees allowed to create Interfold Protocol Proposals. Conditional grants remain visible in $activePermissions.\n values.ippProposalCreators.0:\n+ \"eth:0xFFfFfFffFFfffFFfFFfFFFFFffFFFffffFfFFFfF\"\n+++ description: Current grantees allowed to replace the Interfold Protocol Proposal (IPP) staged process.\n values.ippStageManagers.0:\n+ \"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"\n+++ description: Current grantees allowed to redirect the IPP processor's execution target.\n values.ippTargetManagers.0:\n+ \"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"\n+++ description: Current grantees allowed to replace the IPP processor's trusted meta-transaction forwarder.\n values.ippTrustedForwarderManagers.0:\n+ \"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"\n+++ description: Current multisig target-configuration grantees derived from Aragon grant/revoke events.\n+++ severity: HIGH\n values.multisigTargetConfigAdmins.3:\n+ {\"where\":\"eth:0x197be4E09614285Abb4b74b672377c404FD44d54\",\"who\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}\n+++ description: Current multisig target-configuration grantees derived from Aragon grant/revoke events.\n+++ severity: HIGH\n values.multisigTargetConfigAdmins.4:\n+ {\"where\":\"eth:0x364686f83d7cCEdf88B881B23d4437D1652A8FfB\",\"who\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}\n+++ description: Multisig plugins with public proposal creation configured through Aragon grant/revoke events.\n+++ severity: LOW\n values.publicProposalCreators.1:\n+ \"eth:0x364686f83d7cCEdf88B881B23d4437D1652A8FfB\"\n+++ description: Multisig plugins with public proposal execution configured through Aragon grant/revoke events.\n+++ severity: LOW\n values.publicProposalExecutors.2:\n+ \"eth:0x364686f83d7cCEdf88B881B23d4437D1652A8FfB\"\n directlyReceivedPermissions.8:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x53FCdb21E73A461CfE6c64B19855204384B91BA3\",\"description\":\"set census roots and replace the application RISC Zero verifier or guest image ID immediately. Such replacement cannot change the verifier snapshotted by Interfold, but can make an in-flight round fail.\",\"role\":\".owner\"}\n directlyReceivedPermissions.11:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\",\"description\":\"change the settings of the unverified CRISP token-voting plugin used as the IPP voting stage.\",\"role\":\".crispVotingSettingsManagers\"}\n directlyReceivedPermissions.14:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\",\"description\":\"redirect passed CRISP vote actions to another executor or target.\",\"role\":\".crispVotingTargetManagers\"}\n directlyReceivedPermissions.15:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\",\"description\":\"redirect passed Interfold Protocol Proposal actions to another executor or target.\",\"role\":\".ippTargetManagers\"}\n directlyReceivedPermissions.18:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\",\"description\":\"replace the address trusted to append the effective caller to IPP proposal transactions.\",\"role\":\".ippTrustedForwarderManagers\"}\n directlyReceivedPermissions.20:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\",\"description\":\"replace the rules that gate creation of Interfold Protocol Proposals.\",\"role\":\".ippConditionRuleManagers\"}\n directlyReceivedPermissions.22:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\",\"description\":\"replace the stages, bodies, thresholds and timing rules for future Interfold Protocol Proposals.\",\"role\":\".ippStageManagers\"}\n directlyReceivedPermissions.24:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x753109Ee36Dc65cC178875AddA30C6433e5bEEe4\",\"description\":\"create or disable slash policies, grant or revoke evidence slashers, resolve appeals, close E3 assignments and propose, confirm or remove operator bans.\",\"role\":\".governanceMembers\"}\n directlyReceivedPermissions.25:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x753109Ee36Dc65cC178875AddA30C6433e5bEEe4\",\"description\":\"replace the coordinator, bonding registry, ciphernode registry and refund manager, and grant or revoke governance membership. A transfer of the default-admin role itself has the configured delay.\",\"role\":\".defaultAdmins\"}\n directlyReceivedPermissions.18:\n- {\"permission\":\"interact\",\"from\":\"eth:0x974E865B1BB24AF2a9ef8204AdEA9251Cc7C5FD9\",\"description\":\"create or disable slash policies, grant or revoke evidence slashers, resolve appeals, close E3 assignments and propose, confirm or remove operator bans.\",\"role\":\".governanceMembers\"}\n directlyReceivedPermissions.19:\n- {\"permission\":\"interact\",\"from\":\"eth:0x974E865B1BB24AF2a9ef8204AdEA9251Cc7C5FD9\",\"description\":\"replace the coordinator, bonding registry, ciphernode registry and refund manager, and grant or revoke governance membership. A transfer of the default-admin role itself has the configured delay.\",\"role\":\".defaultAdmins\"}\n directlyReceivedPermissions.21:\n- {\"permission\":\"interact\",\"from\":\"eth:0xa0273f884816dfF0BE9B5ED50aB3AA29D6AaA712\",\"description\":\"replace the Chainlink VRF coordinator that delivers the sortition entropy.\",\"role\":\".owner\"}\n directlyReceivedPermissions.29:\n+ {\"permission\":\"interact\",\"from\":\"eth:0xC60919F8Bd128B76E11F4B071C8c38e1391a3e00\",\"description\":\"replace the Chainlink VRF coordinator that delivers the sortition entropy.\",\"role\":\".owner\"}\n }\n```\n\n```diff\n contract SlashingManager (eth:0x753109Ee36Dc65cC178875AddA30C6433e5bEEe4) [interfold/SlashingManager] {\n +++ description: Policy and evidence router for ciphernode penalties, appeals and bans. Slashing is effective only for reasons with an enabled policy and through a manager authorized by the BondingRegistry.\n type:\n- \"EOA\"\n+ \"Contract\"\n proxyType:\n- \"EOA\"\n+ \"immutable\"\n template:\n+ \"interfold/SlashingManager\"\n sourceHashes:\n+ [\"0xfda124aac8e1ba6b8dd3120a86020fcd3b8b0705b9515051b12f0cc38ba76a0e\"]\n description:\n+ \"Policy and evidence router for ciphernode penalties, appeals and bans. Slashing is effective only for reasons with an enabled policy and through a manager authorized by the BondingRegistry.\"\n deployerAddress:\n+ \"eth:0x34655732dB9BBfA627021D18d786EfF7Bde211F7\"\n sinceTimestamp:\n+ 1789668443\n sinceBlock:\n+ 25998899\n values:\n+ {\"$immutable\":true,\"accessControl\":{\"DEFAULT_ADMIN_ROLE\":{\"adminRole\":\"DEFAULT_ADMIN_ROLE\",\"members\":[\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"]},\"GOVERNANCE_ROLE\":{\"adminRole\":\"DEFAULT_ADMIN_ROLE\",\"members\":[\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"]},\"SLASHER_ROLE\":{\"adminRole\":\"GOVERNANCE_ROLE\",\"members\":[]}},\"ACCUSATION_REPORTING_WINDOW\":86400,\"activeBanCount\":0,\"activeE3Assignments\":2,\"APPEAL_RESOLUTION_GRACE\":604800,\"attestationDomainSeparator\":\"0x3be893a74512f00ecdaa1eb5e6b768b1f181f31134600ac7b7ec1226539b413b\",\"bannedNodes\":[],\"bondingRegistry\":\"eth:0x0ec90465095C21830BEcED07e032809A2Bd2915F\",\"ciphernodeRegistry\":\"eth:0xC927A5B2d8F68697bC28C0670df05178c93df2d7\",\"DEFAULT_ADMIN_ROLE\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"defaultAdmin\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\",\"defaultAdminDelay\":172800,\"defaultAdminDelayIncreaseWait\":432000,\"defaultAdmins\":[\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"],\"DOMAIN_NAME_HASH\":\"0x7095a59edd8cacb738b8513d8813a0b0e354ecb90ee4c98cc0333e8d23ca8966\",\"DOMAIN_VERSION_HASH\":\"0xc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6\",\"e3RefundManager\":\"eth:0x1940eF168f4E0B3dA24BEca539856684793B0F6e\",\"EIP712_DOMAIN_NAME\":\"InterfoldSlashing\",\"EIP712_DOMAIN_TYPEHASH\":\"0x8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f\",\"EIP712_DOMAIN_VERSION\":\"1\",\"eip712Domain\":{\"fields\":\"0x0f\",\"name\":\"InterfoldSlashing\",\"version\":\"1\",\"chainId\":1,\"verifyingContract\":\"eth:0x753109Ee36Dc65cC178875AddA30C6433e5bEEe4\",\"salt\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"extensions\":[]},\"GOVERNANCE_ROLE\":\"0x71840dc4906352362b0cdaf79870196c8e42acafade72d5d5a6d59291253ceb1\",\"governanceMembers\":[\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"],\"interfold\":\"eth:0x28cF63B459e6218C69EA97ea7D90541cf648c715\",\"MAX_APPEAL_WINDOW\":2592000,\"owner\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\",\"pendingDefaultAdmin\":{\"newAdmin\":\"eth:0x0000000000000000000000000000000000000000\",\"schedule\":0},\"pendingDefaultAdminDelay\":{\"newDelay\":0,\"schedule\":0},\"PROOF_PAYLOAD_TYPEHASH\":\"0xab434307b5141420c222a231fb024deb0adb4022d9cb04b4244704ea67b44b51\",\"SLASHER_ROLE\":\"0x12b42e8a160f6064dc959c6f251e3af0750ad213dbecf573b4710d67d6c28e39\",\"slashers\":[],\"SLASHING_MANAGER_API_VERSION\":1,\"slashPolicies\":{},\"totalProposals\":0,\"VOTE_TYPEHASH\":\"0x2e073ee263d4a8f6f1a00cb4c7023460ce671f3dc214fddca4ef3d56e9d4740b\"}\n fieldMeta:\n+ {\"accessControl\":{\"description\":\"Current role administrators and members.\"},\"defaultAdmins\":{\"description\":\"Members of DEFAULT_ADMIN_ROLE.\",\"type\":\"PERMISSION\"},\"governanceMembers\":{\"description\":\"Members of GOVERNANCE_ROLE.\",\"type\":\"PERMISSION\"},\"slashers\":{\"description\":\"Members of SLASHER_ROLE.\",\"type\":\"PERMISSION\"},\"slashPolicies\":{\"description\":\"Latest configured slashing policy for each reason. An empty map means no ticket or FOLD penalty can currently be proposed through this manager.\",\"type\":\"RISK_PARAMETER\"},\"bannedNodes\":{\"description\":\"Currently banned operator keys reconstructed from ban-status events.\"},\"defaultAdminDelay\":{\"description\":\"Delay for transferring DEFAULT_ADMIN_ROLE. It does not delay calls made by the current admin or governance-role members.\",\"type\":\"RISK_PARAMETER\"}}\n implementationNames:\n+ {\"eth:0x753109Ee36Dc65cC178875AddA30C6433e5bEEe4\":\"SlashingManager\"}\n category:\n+ {\"name\":\"Local Infrastructure\",\"priority\":5}\n receivedPermissions:\n+ [{\"permission\":\"interact\",\"from\":\"eth:0x0ec90465095C21830BEcED07e032809A2Bd2915F\",\"description\":\"slash operator ticket collateral and FOLD bonds, ban operators and manage slash-routing state.\",\"role\":\".authorizedSlashingManagerAt\"},{\"permission\":\"interact\",\"from\":\"eth:0xC927A5B2d8F68697bC28C0670df05178c93df2d7\",\"description\":\"expel selected members from active committees.\",\"role\":\".slashingManager\"}]\n }\n```\n\n```diff\n contract InterfoldSafeB (eth:0x8B43b2852fc5031D01DDfCDF702973D93A2FF593) [GnosisSafe] {\n +++ description: None\n receivedPermissions.3:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x53FCdb21E73A461CfE6c64B19855204384B91BA3\",\"description\":\"set census roots and replace the application RISC Zero verifier or guest image ID immediately. Such replacement cannot change the verifier snapshotted by Interfold, but can make an in-flight round fail.\",\"role\":\".owner\",\"via\":[{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]}\n receivedPermissions.6:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\",\"description\":\"change the settings of the unverified CRISP token-voting plugin used as the IPP voting stage.\",\"role\":\".crispVotingSettingsManagers\",\"via\":[{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]}\n receivedPermissions.9:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\",\"description\":\"redirect passed CRISP vote actions to another executor or target.\",\"role\":\".crispVotingTargetManagers\",\"via\":[{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]}\n receivedPermissions.10:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\",\"description\":\"redirect passed Interfold Protocol Proposal actions to another executor or target.\",\"role\":\".ippTargetManagers\",\"via\":[{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]}\n receivedPermissions.13:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\",\"description\":\"replace the address trusted to append the effective caller to IPP proposal transactions.\",\"role\":\".ippTrustedForwarderManagers\",\"via\":[{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]}\n receivedPermissions.15:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\",\"description\":\"replace the rules that gate creation of Interfold Protocol Proposals.\",\"role\":\".ippConditionRuleManagers\",\"via\":[{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]}\n receivedPermissions.17:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\",\"description\":\"replace the stages, bodies, thresholds and timing rules for future Interfold Protocol Proposals.\",\"role\":\".ippStageManagers\",\"via\":[{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]}\n receivedPermissions.19:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x753109Ee36Dc65cC178875AddA30C6433e5bEEe4\",\"description\":\"create or disable slash policies, grant or revoke evidence slashers, resolve appeals, close E3 assignments and propose, confirm or remove operator bans.\",\"role\":\".governanceMembers\",\"via\":[{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]}\n receivedPermissions.20:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x753109Ee36Dc65cC178875AddA30C6433e5bEEe4\",\"description\":\"replace the coordinator, bonding registry, ciphernode registry and refund manager, and grant or revoke governance membership. A transfer of the default-admin role itself has the configured delay.\",\"role\":\".defaultAdmins\",\"via\":[{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]}\n receivedPermissions.13:\n- {\"permission\":\"interact\",\"from\":\"eth:0x974E865B1BB24AF2a9ef8204AdEA9251Cc7C5FD9\",\"description\":\"create or disable slash policies, grant or revoke evidence slashers, resolve appeals, close E3 assignments and propose, confirm or remove operator bans.\",\"role\":\".governanceMembers\",\"via\":[{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]}\n receivedPermissions.14:\n- {\"permission\":\"interact\",\"from\":\"eth:0x974E865B1BB24AF2a9ef8204AdEA9251Cc7C5FD9\",\"description\":\"replace the coordinator, bonding registry, ciphernode registry and refund manager, and grant or revoke governance membership. A transfer of the default-admin role itself has the configured delay.\",\"role\":\".defaultAdmins\",\"via\":[{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]}\n receivedPermissions.30:\n- {\"permission\":\"interact\",\"from\":\"eth:0xa0273f884816dfF0BE9B5ED50aB3AA29D6AaA712\",\"description\":\"replace the Chainlink VRF coordinator that delivers the sortition entropy.\",\"role\":\".owner\",\"via\":[{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]}\n receivedPermissions.38:\n+ {\"permission\":\"interact\",\"from\":\"eth:0xC60919F8Bd128B76E11F4B071C8c38e1391a3e00\",\"description\":\"replace the Chainlink VRF coordinator that delivers the sortition entropy.\",\"role\":\".owner\",\"via\":[{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]}\n }\n```\n\n```diff\n- Status: DELETED\n contract SlashingManager (eth:0x974E865B1BB24AF2a9ef8204AdEA9251Cc7C5FD9) [interfold/SlashingManager]\n +++ description: Policy and evidence router for ciphernode penalties, appeals and bans. Slashing is effective only for reasons with an enabled policy and through a manager authorized by the BondingRegistry.\n```\n\n```diff\n contract PublicStagedProposalProcessor (eth:0x9c0Ff283399Bd1D3111E6c9C689066759b7AccDb) [interfold/StagedProposalProcessor] {\n +++ description: Upgradeable Aragon staged-proposal plugin that executes DAO actions after proposals pass its configured sequence of voting or manual bodies, thresholds and timing windows.\n receivedPermissions.3:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x53FCdb21E73A461CfE6c64B19855204384B91BA3\",\"description\":\"set census roots and replace the application RISC Zero verifier or guest image ID immediately. Such replacement cannot change the verifier snapshotted by Interfold, but can make an in-flight round fail.\",\"role\":\".owner\",\"via\":[{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]}\n receivedPermissions.7:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\",\"description\":\"change the settings of the unverified CRISP token-voting plugin used as the IPP voting stage.\",\"role\":\".crispVotingSettingsManagers\",\"via\":[{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]}\n receivedPermissions.11:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\",\"description\":\"redirect passed CRISP vote actions to another executor or target.\",\"role\":\".crispVotingTargetManagers\",\"via\":[{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]}\n receivedPermissions.12:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\",\"description\":\"redirect passed Interfold Protocol Proposal actions to another executor or target.\",\"role\":\".ippTargetManagers\",\"via\":[{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]}\n receivedPermissions.15:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\",\"description\":\"replace the address trusted to append the effective caller to IPP proposal transactions.\",\"role\":\".ippTrustedForwarderManagers\",\"via\":[{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]}\n receivedPermissions.17:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\",\"description\":\"replace the rules that gate creation of Interfold Protocol Proposals.\",\"role\":\".ippConditionRuleManagers\",\"via\":[{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]}\n receivedPermissions.19:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\",\"description\":\"replace the stages, bodies, thresholds and timing rules for future Interfold Protocol Proposals.\",\"role\":\".ippStageManagers\",\"via\":[{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]}\n receivedPermissions.21:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x753109Ee36Dc65cC178875AddA30C6433e5bEEe4\",\"description\":\"create or disable slash policies, grant or revoke evidence slashers, resolve appeals, close E3 assignments and propose, confirm or remove operator bans.\",\"role\":\".governanceMembers\",\"via\":[{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]}\n receivedPermissions.22:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x753109Ee36Dc65cC178875AddA30C6433e5bEEe4\",\"description\":\"replace the coordinator, bonding registry, ciphernode registry and refund manager, and grant or revoke governance membership. A transfer of the default-admin role itself has the configured delay.\",\"role\":\".defaultAdmins\",\"via\":[{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]}\n receivedPermissions.15:\n- {\"permission\":\"interact\",\"from\":\"eth:0x974E865B1BB24AF2a9ef8204AdEA9251Cc7C5FD9\",\"description\":\"create or disable slash policies, grant or revoke evidence slashers, resolve appeals, close E3 assignments and propose, confirm or remove operator bans.\",\"role\":\".governanceMembers\",\"via\":[{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]}\n receivedPermissions.16:\n- {\"permission\":\"interact\",\"from\":\"eth:0x974E865B1BB24AF2a9ef8204AdEA9251Cc7C5FD9\",\"description\":\"replace the coordinator, bonding registry, ciphernode registry and refund manager, and grant or revoke governance membership. A transfer of the default-admin role itself has the configured delay.\",\"role\":\".defaultAdmins\",\"via\":[{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]}\n receivedPermissions.32:\n- {\"permission\":\"interact\",\"from\":\"eth:0xa0273f884816dfF0BE9B5ED50aB3AA29D6AaA712\",\"description\":\"replace the Chainlink VRF coordinator that delivers the sortition entropy.\",\"role\":\".owner\",\"via\":[{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]}\n receivedPermissions.40:\n+ {\"permission\":\"interact\",\"from\":\"eth:0xC60919F8Bd128B76E11F4B071C8c38e1391a3e00\",\"description\":\"replace the Chainlink VRF coordinator that delivers the sortition entropy.\",\"role\":\".owner\",\"via\":[{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]}\n }\n```\n\n```diff\n contract NodeReleaseRegistry (eth:0x9E1C6B433CFbC8f28d80EAB583C428B01d083b0A) [interfold/NodeReleaseRegistry] {\n +++ description: Registry of ciphernode software releases. Operators self-attest the release they run; staying eligible for new E3 committees requires an attestation matching the exact governance-set protocol version and at least the required node generation. Raising the requirement instantly invalidates every operator's cached eligibility until they re-attest.\n+++ description: Exact ciphernode protocol version operators must attest to remain eligible.\n values.requiredProtocolVersion:\n- 1\n+ 4\n }\n```\n\n```diff\n- Status: DELETED\n contract DkgAggregatorVerifier (eth:0x9e58443eB40A1B08D07f89D36bf69909d401a542) [interfold/DkgAggregatorVerifier]\n +++ description: Immutable generated Honk verifier for the BFV distributed-key-generation aggregation circuit.\n```\n\n```diff\n- Status: DELETED\n contract ChainlinkVrfRandomnessProvider (eth:0xa0273f884816dfF0BE9B5ED50aB3AA29D6AaA712) [interfold/ChainlinkVrfRandomnessProvider]\n +++ description: Supplies committee-sortition entropy as a Chainlink VRF v2.5 subscription consumer. Only its fixed requester (the CiphernodeRegistry) can request randomness, each E3 can be served exactly once, and requests revert while the funding subscription balance is below the configured minimum. All VRF parameters are immutable.\n```\n\n```diff\n contract ProtocolProposalCondition (eth:0xaE0F1082039E715609495Fdb2265b3B53f1296C9) [interfold/SPPRuleCondition] {\n +++ description: Aragon condition attached to the public CREATE_PROPOSAL permission. Its mutable rule program determines which callers and proposal calls qualify for the otherwise-public grant.\n type:\n- \"EOA\"\n+ \"Contract\"\n proxyType:\n- \"EOA\"\n+ \"EIP1167 proxy\"\n template:\n+ \"interfold/SPPRuleCondition\"\n sourceHashes:\n+ [\"0x820364f6b02461f786e2dfaa81e0059689349246f89bf5b49bf33424d05d117e\",\"0x820364f6b02461f786e2dfaa81e0059689349246f89bf5b49bf33424d05d117e\"]\n description:\n+ \"Aragon condition attached to the public CREATE_PROPOSAL permission. Its mutable rule program determines which callers and proposal calls qualify for the otherwise-public grant.\"\n deployerAddress:\n+ \"eth:0x34655732dB9BBfA627021D18d786EfF7Bde211F7\"\n sinceTimestamp:\n+ 1789739891\n sinceBlock:\n+ 26004832\n values:\n+ {\"$implementation\":\"eth:0xE437E5c7EeB0D49F97CfD040fb8a02A60a61c0f0\",\"dao\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\",\"getRules\":[],\"protocolVersion\":[1,4,0],\"UPDATE_RULES_PERMISSION_ID\":\"0xd3d98e95f3486fc234d80c098cf0d2a0a3fb187833d7e9cc930f8c4f8335a0e7\"}\n fieldMeta:\n+ {\"dao\":{\"description\":\"Aragon DAO whose permission manager controls updates to the condition's rule program.\"},\"getRules\":{\"description\":\"Current ordered rule program evaluated for public proposal creation.\",\"type\":\"RISK_PARAMETER\"}}\n implementationNames:\n+ {\"eth:0xaE0F1082039E715609495Fdb2265b3B53f1296C9\":\"SPPRuleCondition\",\"eth:0xE437E5c7EeB0D49F97CfD040fb8a02A60a61c0f0\":\"SPPRuleCondition\"}\n category:\n+ {\"name\":\"Governance\",\"priority\":3}\n }\n```\n\n```diff\n- Status: DELETED\n contract BfvPkVerifier (eth:0xBA1854fDA7A5c127606572e43Dc7B37b7A15bdFf) [interfold/BfvPkVerifier]\n +++ description: BFV public-key proof wrapper. It binds the generated circuit verifier to the expected DKG-fold and C5 verification-key hashes.\n```\n\n```diff\n contract CiphernodeRegistry (eth:0xC927A5B2d8F68697bC28C0670df05178c93df2d7) [interfold/CiphernodeRegistry] {\n +++ description: Registry of ciphernodes and E3 committees. It performs ticket-weighted committee selection, records DKG (distributed key generation) proof anchors and the committee public key (to which cyphertexts can be encrypted), and tracks committee viability. Sortition entropy is supplied asynchronously by a governance-set randomness provider.\n sourceHashes.1:\n- \"0x993dbb9f6f7d08758f2b721cf9a1c301f9a7234933ca34d0430901203f34f1cf\"\n+ \"0xaaf0cc5a82e6d85f4cb4d4b1cdfe655456ddfd34d6a347cf23f5f5acb505fd7c\"\n values.$implementation:\n- \"eth:0xFff476751949a7e1B784b5c88648833c1e8dD69c\"\n+ \"eth:0xD9A3224D829a4ac8b55A75C539fD447AC4B05Bf2\"\n+++ description: Current registered ciphernode operator keys reconstructed from add and remove events. For each E3 a committee of the coordinator's MAX_COMMITTEE_SIZE is selected from these keys by ticket-weighted sortition.\n values.$members.21:\n+ \"eth:0xc6E48712E56F6E9548c54a0A983eBe992eFA26Bd\"\n+++ description: Current registered ciphernode operator keys reconstructed from add and remove events. For each E3 a committee of the coordinator's MAX_COMMITTEE_SIZE is selected from these keys by ticket-weighted sortition.\n values.$members.22:\n+ \"eth:0x1fD2b3d4a9f4Aeb62877cab9dF70A5a6e976b118\"\n+++ description: Current registered ciphernode operator keys reconstructed from add and remove events. For each E3 a committee of the coordinator's MAX_COMMITTEE_SIZE is selected from these keys by ticket-weighted sortition.\n values.$members.23:\n+ \"eth:0x9EC16384b956D7B2A71284711FD32d156e6b33c6\"\n+++ description: Current registered ciphernode operator keys reconstructed from add and remove events. For each E3 a committee of the coordinator's MAX_COMMITTEE_SIZE is selected from these keys by ticket-weighted sortition.\n values.$members.24:\n+ \"eth:0xd2b46ceC7b4d8046eF2D7bCb32aF3220Ef7bc1dd\"\n+++ description: Current registered ciphernode operator keys reconstructed from add and remove events. For each E3 a committee of the coordinator's MAX_COMMITTEE_SIZE is selected from these keys by ticket-weighted sortition.\n values.$members.25:\n+ \"eth:0xd3336047DCf4d7C7393b3BF5Fa47A31478C22d47\"\n+++ description: Current registered ciphernode operator keys reconstructed from add and remove events. For each E3 a committee of the coordinator's MAX_COMMITTEE_SIZE is selected from these keys by ticket-weighted sortition.\n values.$members.26:\n+ \"eth:0xA2bA6A63335cdB2789b0e636987Ce12C3D44662a\"\n+++ description: Current registered ciphernode operator keys reconstructed from add and remove events. For each E3 a committee of the coordinator's MAX_COMMITTEE_SIZE is selected from these keys by ticket-weighted sortition.\n values.$members.27:\n+ \"eth:0xd698bC33a4A98a019881c6e2664f1dAc62c4B3B5\"\n+++ description: Current registered ciphernode operator keys reconstructed from add and remove events. For each E3 a committee of the coordinator's MAX_COMMITTEE_SIZE is selected from these keys by ticket-weighted sortition.\n values.$members.28:\n+ \"eth:0x76f3491D36138450F957b03F657dDa258Ad4c0E7\"\n+++ description: Current registered ciphernode operator keys reconstructed from add and remove events. For each E3 a committee of the coordinator's MAX_COMMITTEE_SIZE is selected from these keys by ticket-weighted sortition.\n values.$members.29:\n+ \"eth:0x2048E0750655298E628155Ca5024F0b30D896e51\"\n+++ description: Current registered ciphernode operator keys reconstructed from add and remove events. For each E3 a committee of the coordinator's MAX_COMMITTEE_SIZE is selected from these keys by ticket-weighted sortition.\n values.$members.30:\n+ \"eth:0x69760AF47771F8F763B5E3cb88601C197b0ee235\"\n+++ description: Current registered ciphernode operator keys reconstructed from add and remove events. For each E3 a committee of the coordinator's MAX_COMMITTEE_SIZE is selected from these keys by ticket-weighted sortition.\n values.$members.31:\n+ \"eth:0xAF92b142F15eb873f7D1d9F05c8c9b1855698249\"\n+++ description: Current registered ciphernode operator keys reconstructed from add and remove events. For each E3 a committee of the coordinator's MAX_COMMITTEE_SIZE is selected from these keys by ticket-weighted sortition.\n values.$members.32:\n+ \"eth:0xBf11E6B5be2ff90CDC6860BAe7941e44aa52DEc3\"\n+++ description: Current registered ciphernode operator keys reconstructed from add and remove events. For each E3 a committee of the coordinator's MAX_COMMITTEE_SIZE is selected from these keys by ticket-weighted sortition.\n values.$members.33:\n+ \"eth:0x8DEeF8799921D549BAC469aD6d37912DBeB2432a\"\n+++ description: Current registered ciphernode operator keys reconstructed from add and remove events. For each E3 a committee of the coordinator's MAX_COMMITTEE_SIZE is selected from these keys by ticket-weighted sortition.\n values.$members.34:\n+ \"eth:0xfbe2eEB95eb083F89bBb1C9c384328d9cfE43d47\"\n+++ description: Current registered ciphernode operator keys reconstructed from add and remove events. For each E3 a committee of the coordinator's MAX_COMMITTEE_SIZE is selected from these keys by ticket-weighted sortition.\n values.$members.35:\n+ \"eth:0x3394971Ee0cb5bc6336F8C36bc8807CDAA8BB017\"\n+++ description: Current registered ciphernode operator keys reconstructed from add and remove events. For each E3 a committee of the coordinator's MAX_COMMITTEE_SIZE is selected from these keys by ticket-weighted sortition.\n values.$members.36:\n+ \"eth:0x9D129a1733ab0f56460cCCfdC807C797b5a1a53c\"\n+++ description: Current registered ciphernode operator keys reconstructed from add and remove events. For each E3 a committee of the coordinator's MAX_COMMITTEE_SIZE is selected from these keys by ticket-weighted sortition.\n values.$members.37:\n+ \"eth:0x160AC642aC8Ef8bd4491d22A46772B773960B4b5\"\n+++ description: Current registered ciphernode operator keys reconstructed from add and remove events. For each E3 a committee of the coordinator's MAX_COMMITTEE_SIZE is selected from these keys by ticket-weighted sortition.\n values.$members.38:\n+ \"eth:0x0dB1A5DA3481Ce66B81FC7A48dD982FA0AcFCC99\"\n+++ description: Current registered ciphernode operator keys reconstructed from add and remove events. For each E3 a committee of the coordinator's MAX_COMMITTEE_SIZE is selected from these keys by ticket-weighted sortition.\n values.$members.39:\n+ \"eth:0x4429dB606a7c476762E4c7003963603f97a3C031\"\n+++ description: Current registered ciphernode operator keys reconstructed from add and remove events. For each E3 a committee of the coordinator's MAX_COMMITTEE_SIZE is selected from these keys by ticket-weighted sortition.\n values.$members.40:\n+ \"eth:0xd99672d25e783F245D3E0183581fAae0c154B8b6\"\n+++ description: Current registered ciphernode operator keys reconstructed from add and remove events. For each E3 a committee of the coordinator's MAX_COMMITTEE_SIZE is selected from these keys by ticket-weighted sortition.\n values.$members.41:\n+ \"eth:0x62b2dF039198096259F8dc619cE5E79507806A00\"\n+++ description: Current registered ciphernode operator keys reconstructed from add and remove events. For each E3 a committee of the coordinator's MAX_COMMITTEE_SIZE is selected from these keys by ticket-weighted sortition.\n values.$members.42:\n+ \"eth:0x5BA3ef7913D6dD46e2b4EBd8A05eF4615ae8Be5B\"\n+++ description: Current registered ciphernode operator keys reconstructed from add and remove events. For each E3 a committee of the coordinator's MAX_COMMITTEE_SIZE is selected from these keys by ticket-weighted sortition.\n values.$members.43:\n+ \"eth:0x780c1bB4Abc6F4324813e58a52C9d2FEF055ef78\"\n+++ description: Current registered ciphernode operator keys reconstructed from add and remove events. For each E3 a committee of the coordinator's MAX_COMMITTEE_SIZE is selected from these keys by ticket-weighted sortition.\n values.$members.44:\n+ \"eth:0xfC16c9513bB6b4FE7978723bB2468E99D8A34d70\"\n+++ description: Current registered ciphernode operator keys reconstructed from add and remove events. For each E3 a committee of the coordinator's MAX_COMMITTEE_SIZE is selected from these keys by ticket-weighted sortition.\n values.$members.45:\n+ \"eth:0x9aCc89CCD297064779C4e0f1c353079975C731b6\"\n+++ description: Current registered ciphernode operator keys reconstructed from add and remove events. For each E3 a committee of the coordinator's MAX_COMMITTEE_SIZE is selected from these keys by ticket-weighted sortition.\n values.$members.46:\n+ \"eth:0xFD97D727CdF9867944de554E45499D5162bDBfAc\"\n+++ description: Current registered ciphernode operator keys reconstructed from add and remove events. For each E3 a committee of the coordinator's MAX_COMMITTEE_SIZE is selected from these keys by ticket-weighted sortition.\n values.$members.47:\n+ \"eth:0x5cFc8841C3fBb3CA8dCb2BfBD3a39a98dE5B942a\"\n+++ description: Current registered ciphernode operator keys reconstructed from add and remove events. For each E3 a committee of the coordinator's MAX_COMMITTEE_SIZE is selected from these keys by ticket-weighted sortition.\n values.$members.48:\n+ \"eth:0xcD34cF9C66F524c91A14e67D3eF68157f809Abf7\"\n+++ description: Current registered ciphernode operator keys reconstructed from add and remove events. For each E3 a committee of the coordinator's MAX_COMMITTEE_SIZE is selected from these keys by ticket-weighted sortition.\n values.$members.49:\n+ \"eth:0x6B035c1b0B099555284C8676e48e2C3CB8b3d4B0\"\n+++ description: Current registered ciphernode operator keys reconstructed from add and remove events. For each E3 a committee of the coordinator's MAX_COMMITTEE_SIZE is selected from these keys by ticket-weighted sortition.\n values.$members.50:\n+ \"eth:0x86FBE1027577A343c1C9DcCAEc470d2B613cB347\"\n+++ description: Current registered ciphernode operator keys reconstructed from add and remove events. For each E3 a committee of the coordinator's MAX_COMMITTEE_SIZE is selected from these keys by ticket-weighted sortition.\n values.$members.51:\n+ \"eth:0x2358424b1E347f1FAADB7F54C5eB57eeA3A2738d\"\n+++ description: Current registered ciphernode operator keys reconstructed from add and remove events. For each E3 a committee of the coordinator's MAX_COMMITTEE_SIZE is selected from these keys by ticket-weighted sortition.\n values.$members.52:\n+ \"eth:0xFcEdB9Af33A338A80DA84785023BfDb988CaAd6E\"\n+++ description: Current registered ciphernode operator keys reconstructed from add and remove events. For each E3 a committee of the coordinator's MAX_COMMITTEE_SIZE is selected from these keys by ticket-weighted sortition.\n values.$members.53:\n+ \"eth:0x7E94eEd05e81679F69dA44157a45F0528DA9Ce66\"\n+++ description: Current registered ciphernode operator keys reconstructed from add and remove events. For each E3 a committee of the coordinator's MAX_COMMITTEE_SIZE is selected from these keys by ticket-weighted sortition.\n values.$members.54:\n+ \"eth:0xFF79709339F5dBCA606c8b9D4940390d61cB4B29\"\n+++ description: Current registered ciphernode operator keys reconstructed from add and remove events. For each E3 a committee of the coordinator's MAX_COMMITTEE_SIZE is selected from these keys by ticket-weighted sortition.\n values.$members.55:\n+ \"eth:0x2A2Df1e79ec3be51c0B050175E3D897e3911dC42\"\n+++ description: Current registered ciphernode operator keys reconstructed from add and remove events. For each E3 a committee of the coordinator's MAX_COMMITTEE_SIZE is selected from these keys by ticket-weighted sortition.\n values.$members.56:\n+ \"eth:0xDa1D20efb36e7F3bb47CEDbF471feB099051e717\"\n+++ description: Current registered ciphernode operator keys reconstructed from add and remove events. For each E3 a committee of the coordinator's MAX_COMMITTEE_SIZE is selected from these keys by ticket-weighted sortition.\n values.$members.57:\n+ \"eth:0x58C40cEC1ebAc2e383B5091ed47fa719a29f00A4\"\n+++ description: Current registered ciphernode operator keys reconstructed from add and remove events. For each E3 a committee of the coordinator's MAX_COMMITTEE_SIZE is selected from these keys by ticket-weighted sortition.\n values.$members.58:\n+ \"eth:0x5Fb0854aB8fb2810b80d3DE276b3107a9e5281b1\"\n+++ description: Current registered ciphernode operator keys reconstructed from add and remove events. For each E3 a committee of the coordinator's MAX_COMMITTEE_SIZE is selected from these keys by ticket-weighted sortition.\n values.$members.59:\n+ \"eth:0x88ED57A03E98931a81dBa7A9Bc2dc95B48929E45\"\n values.$pastUpgrades.2:\n+ [\"2026-09-18T13:15:47.000Z\",\"0x975b5104729480bdf914304ce81726041e27450580fab4cd2f2750b7f0848047\",[\"eth:0xD9A3224D829a4ac8b55A75C539fD447AC4B05Bf2\"]]\n values.$upgradeCount:\n- 2\n+ 3\n values.MAX_CIPHERNODE_LEAVES:\n- 1048576\n+ 1048575\n values.MAX_COMMITTEE_PUBLIC_KEY_BYTES:\n- 262144\n+ 524288\n+++ description: Contract that supplies the asynchronous sortition entropy for committee selection. Automatically reset to zero, which disables new E3 requests, if a randomness request expires without a usable response (circuit breaker). Replacing it requires paused requests, no outstanding committees, and that the new provider names this registry as its only requester.\n+++ severity: HIGH\n values.randomnessProvider:\n- \"eth:0xa0273f884816dfF0BE9B5ED50aB3AA29D6AaA712\"\n+ \"eth:0xC60919F8Bd128B76E11F4B071C8c38e1391a3e00\"\n values.slashingManager:\n- \"eth:0x974E865B1BB24AF2a9ef8204AdEA9251Cc7C5FD9\"\n+ \"eth:0x753109Ee36Dc65cC178875AddA30C6433e5bEEe4\"\n values.unreleasedCommitteeCount:\n- 0\n+ 1\n+++ description: Whether the randomness circuit breaker has tripped, which blocks new E3 requests until governance resets the provider.\n values.randomnessDegraded:\n+ false\n implementationNames.eth:0xFff476751949a7e1B784b5c88648833c1e8dD69c:\n- \"CiphernodeRegistryOwnable\"\n implementationNames.eth:0xD9A3224D829a4ac8b55A75C539fD447AC4B05Bf2:\n+ \"CiphernodeRegistryOwnable\"\n }\n```\n\n```diff\n- Status: DELETED\n contract BfvDecryptionVerifier (eth:0xf143b969ea481Ccf251194D15F82007C67AABc53) [interfold/BfvDecryptionVerifier]\n +++ description: Threshold-decryption proof wrapper. It checks the generated circuit proof and binds its parties and public-key context to the committee recorded by CiphernodeRegistry.\n```\n\n```diff\n contract AdminPlugin (eth:0xF21e25455988887EE797050080141eba67B33920) [interfold/AdminPlugin] {\n +++ description: Non-upgradeable Aragon Admin plugin. Holders of its DAO-granted EXECUTE_PROPOSAL permission can submit actions that the plugin forwards immediately, without a vote or onchain delay.\n receivedPermissions.3:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x53FCdb21E73A461CfE6c64B19855204384B91BA3\",\"description\":\"set census roots and replace the application RISC Zero verifier or guest image ID immediately. Such replacement cannot change the verifier snapshotted by Interfold, but can make an in-flight round fail.\",\"role\":\".owner\",\"via\":[{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]}\n receivedPermissions.7:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\",\"description\":\"change the settings of the unverified CRISP token-voting plugin used as the IPP voting stage.\",\"role\":\".crispVotingSettingsManagers\",\"via\":[{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]}\n receivedPermissions.10:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\",\"description\":\"redirect passed CRISP vote actions to another executor or target.\",\"role\":\".crispVotingTargetManagers\",\"via\":[{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]}\n receivedPermissions.11:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\",\"description\":\"redirect passed Interfold Protocol Proposal actions to another executor or target.\",\"role\":\".ippTargetManagers\",\"via\":[{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]}\n receivedPermissions.14:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\",\"description\":\"replace the address trusted to append the effective caller to IPP proposal transactions.\",\"role\":\".ippTrustedForwarderManagers\",\"via\":[{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]}\n receivedPermissions.16:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\",\"description\":\"replace the rules that gate creation of Interfold Protocol Proposals.\",\"role\":\".ippConditionRuleManagers\",\"via\":[{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]}\n receivedPermissions.18:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\",\"description\":\"replace the stages, bodies, thresholds and timing rules for future Interfold Protocol Proposals.\",\"role\":\".ippStageManagers\",\"via\":[{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]}\n receivedPermissions.20:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x753109Ee36Dc65cC178875AddA30C6433e5bEEe4\",\"description\":\"create or disable slash policies, grant or revoke evidence slashers, resolve appeals, close E3 assignments and propose, confirm or remove operator bans.\",\"role\":\".governanceMembers\",\"via\":[{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]}\n receivedPermissions.21:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x753109Ee36Dc65cC178875AddA30C6433e5bEEe4\",\"description\":\"replace the coordinator, bonding registry, ciphernode registry and refund manager, and grant or revoke governance membership. A transfer of the default-admin role itself has the configured delay.\",\"role\":\".defaultAdmins\",\"via\":[{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]}\n receivedPermissions.14:\n- {\"permission\":\"interact\",\"from\":\"eth:0x974E865B1BB24AF2a9ef8204AdEA9251Cc7C5FD9\",\"description\":\"create or disable slash policies, grant or revoke evidence slashers, resolve appeals, close E3 assignments and propose, confirm or remove operator bans.\",\"role\":\".governanceMembers\",\"via\":[{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]}\n receivedPermissions.15:\n- {\"permission\":\"interact\",\"from\":\"eth:0x974E865B1BB24AF2a9ef8204AdEA9251Cc7C5FD9\",\"description\":\"replace the coordinator, bonding registry, ciphernode registry and refund manager, and grant or revoke governance membership. A transfer of the default-admin role itself has the configured delay.\",\"role\":\".defaultAdmins\",\"via\":[{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]}\n receivedPermissions.31:\n- {\"permission\":\"interact\",\"from\":\"eth:0xa0273f884816dfF0BE9B5ED50aB3AA29D6AaA712\",\"description\":\"replace the Chainlink VRF coordinator that delivers the sortition entropy.\",\"role\":\".owner\",\"via\":[{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]}\n receivedPermissions.39:\n+ {\"permission\":\"interact\",\"from\":\"eth:0xC60919F8Bd128B76E11F4B071C8c38e1391a3e00\",\"description\":\"replace the Chainlink VRF coordinator that delivers the sortition entropy.\",\"role\":\".owner\",\"via\":[{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]}\n }\n```\n\n```diff\n+ Status: CREATED\n contract DkgAggregatorVerifier (eth:0x00a586aB1E533e2544daAF4BB7388e176320572F) [interfold/DkgAggregatorVerifier]\n +++ description: Immutable generated Honk verifier for the BFV distributed-key-generation aggregation circuit.\n```\n\n```diff\n+ Status: CREATED\n contract BfvDecryptionVerifier (eth:0x0Be6f92594ee8776C7c658eFA1ec6Ca12F5D9701) [interfold/BfvDecryptionVerifier]\n +++ description: Threshold-decryption proof wrapper. It checks the generated circuit proof and binds its parties and public-key context to the committee recorded by CiphernodeRegistry.\n```\n\n```diff\n+ Status: CREATED\n contract DkgAggregatorVerifier (eth:0x1Eba833dd9CBC32c925B4a54DBC7682Ac276f302) [interfold/DkgAggregatorVerifier]\n +++ description: Immutable generated Honk verifier for the BFV distributed-key-generation aggregation circuit.\n```\n\n```diff\n+ Status: CREATED\n contract BfvPkVerifier (eth:0x3C1C772B1D800ff4E6F8d0c02E1e6D07293c0059) [interfold/BfvPkVerifier]\n +++ description: BFV public-key proof wrapper. It binds the generated circuit verifier to the expected DKG-fold and C5 verification-key hashes.\n```\n\n```diff\n+ Status: CREATED\n contract CRISPProgramV2 (eth:0x53FCdb21E73A461CfE6c64B19855204384B91BA3) [interfold/CRISPProgram]\n +++ description: CRISP encrypted-ballot E3 application. It verifies ballot eligibility and encryption proofs, commits ciphertext inputs, checks that a RISC Zero tally is bound to its input root and parameters, and decodes the threshold-decrypted tally.\n```\n\n```diff\n+ Status: CREATED\n contract BfvPkVerifier (eth:0x55F7379898512dEdCc994109a590e7d6a6eB50D8) [interfold/BfvPkVerifier]\n +++ description: BFV public-key proof wrapper. It binds the generated circuit verifier to the expected DKG-fold and C5 verification-key hashes.\n```\n\n```diff\n+ Status: CREATED\n contract BfvPkVerifier (eth:0x67DDfB579EB5dC7df9B3f7Cfd942f325a792Afc3) [interfold/BfvPkVerifier]\n +++ description: BFV public-key proof wrapper. It binds the generated circuit verifier to the expected DKG-fold and C5 verification-key hashes.\n```\n\n```diff\n+ Status: CREATED\n contract BfvPkVerifierRouter (eth:0x7CD10057c25674bd5666A9deEE3193f1b29563d1) [interfold/BfvPkVerifierRouter]\n +++ description: Immutable router for BFV distributed-key-generation proofs. It forwards each proof to the per-committee-size BfvPkVerifier whose public-input length and circuit verification-key hashes match, so committees of every supported size share one verifier entry point.\n```\n\n```diff\n+ Status: CREATED\n contract Risc0BfvCiphertextVerifier (eth:0x80D217d3b2e16fF2ecc178cC75655C773895c549) [interfold/Risc0BfvCiphertextVerifier]\n +++ description: Ciphertext-output verifier for BFV E3s. It accepts a RISC Zero receipt for the immutable guest image ID against the E3-specific journal constructed by Interfold.\n```\n\n```diff\n+ Status: CREATED\n contract BfvDecryptionVerifier (eth:0x86ba053b37a844FcD2dd52aBC69fc4D69D965Ad8) [interfold/BfvDecryptionVerifier]\n +++ description: Threshold-decryption proof wrapper. It checks the generated circuit proof and binds its parties and public-key context to the committee recorded by CiphernodeRegistry.\n```\n\n```diff\n+ Status: CREATED\n contract BfvDecryptionVerifierRouter (eth:0xA66CAb7AE230698b2a9ee1E0E967BaD4651FeEa7) [interfold/BfvDecryptionVerifierRouter]\n +++ description: Immutable router for BFV threshold-decryption proofs. It forwards each proof to the per-committee-size BfvDecryptionVerifier whose public-input length and circuit verification-key hashes match, so committees of every supported size share one verifier entry point.\n```\n\n```diff\n+ Status: CREATED\n contract DkgAggregatorVerifier (eth:0xaC784625D32Ce7840D3f0EBD7E5832ea34C188C0) [interfold/DkgAggregatorVerifier]\n +++ description: Immutable generated Honk verifier for the BFV distributed-key-generation aggregation circuit.\n```\n\n```diff\n+ Status: CREATED\n contract DecryptionAggregatorVerifier (eth:0xbeF207838845b227394Eb46579372FEE5E2a95fd) [interfold/DecryptionAggregatorVerifier]\n +++ description: Immutable generated Honk verifier for the BFV threshold-decryption aggregation circuit.\n```\n\n```diff\n+ Status: CREATED\n contract DecryptionAggregatorVerifier (eth:0xBFAE594dc43f4b910F478ec00D285B8daC66855F) [interfold/DecryptionAggregatorVerifier]\n +++ description: Immutable generated Honk verifier for the BFV threshold-decryption aggregation circuit.\n```\n\n```diff\n+ Status: CREATED\n contract AvailVectorXDataAvailabilityVerifier (eth:0xC038C7ba5717bDa886115e5d954085bce069069E) [interfold/AvailVectorXDataAvailabilityVerifier]\n +++ description: Immutable verifier of Avail blob inclusion used by the CRISP program to attest that encrypted ballot inputs were published. It checks inclusion proofs against the Avail bridge and VectorX light-client contracts fixed at deployment.\n```\n\n```diff\n+ Status: CREATED\n contract RandomnessProvider (eth:0xC60919F8Bd128B76E11F4B071C8c38e1391a3e00) [interfold/ChainlinkVrfRandomnessProvider]\n +++ description: Supplies committee-sortition entropy as a Chainlink VRF v2.5 subscription consumer. Only its fixed requester (the CiphernodeRegistry) can request randomness, each E3 can be served exactly once, and requests revert while the funding subscription balance is below the configured minimum. All VRF parameters are immutable.\n```\n\n```diff\n+ Status: CREATED\n EOA (eth:0xd698bC33a4A98a019881c6e2664f1dAc62c4B3B5)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract DecryptionAggregatorVerifier (eth:0xEB4D0d5FfbDD508d6FF352255DCFc7b13FA28EC0) [interfold/DecryptionAggregatorVerifier]\n +++ description: Immutable generated Honk verifier for the BFV threshold-decryption aggregation circuit.\n```\n\n```diff\n+ Status: CREATED\n contract BfvDecryptionVerifier (eth:0xf6ed505997d2F572717f5E946b70efd65D55c986) [interfold/BfvDecryptionVerifier]\n +++ description: Threshold-decryption proof wrapper. It checks the generated circuit proof and binds its parties and public-key context to the committee recorded by CiphernodeRegistry.\n```"
},
{
"kind": "config-related-changes",
"body": "```diff\n contract Risc0BfvCiphertextVerifier (eth:0x40a18Fc27ac4a4d86fA70385c6814e453b6BFF2c) [interfold/Risc0BfvCiphertextVerifier] {\n +++ description: Ciphertext-output verifier for BFV E3s. It accepts a RISC Zero receipt for the immutable guest image ID against the E3-specific journal constructed by Interfold.\n unverified:\n- true\n description:\n- \"Unverified wrapper that accepts a RISC Zero receipt for the immutable guest image ID and the E3-specific journal constructed by Interfold.\"\n+ \"Ciphertext-output verifier for BFV E3s. It accepts a RISC Zero receipt for the immutable guest image ID against the E3-specific journal constructed by Interfold.\"\n fieldMeta.risc0Verifier.description:\n- \"Immutable RISC Zero verifier used to validate computation receipts.\"\n+ \"Immutable RISC Zero verifier used to validate computation receipts. The external RISC Zero deployment is outside this discovery perimeter.\"\n implementationNames.eth:0x40a18Fc27ac4a4d86fA70385c6814e453b6BFF2c:\n- \"\"\n+ \"Risc0BfvCiphertextVerifier\"\n template:\n+ \"interfold/Risc0BfvCiphertextVerifier\"\n sourceHashes:\n+ [\"0x52029d94ccab4c67a4566736cf4e3514382d38b2024aa5380365898569c32d98\"]\n }\n```\n\n```diff\n contract CRISPProgram (eth:0x847A22303639017bcDB7F7E49EEa4a4629c1169f) [interfold/CRISPProgram] {\n +++ description: CRISP encrypted-ballot E3 application. It verifies ballot eligibility and encryption proofs, commits ciphertext inputs, checks that a RISC Zero tally is bound to its input root and parameters, and decodes the threshold-decrypted tally.\n unverified:\n- true\n description:\n- \"CRISP encrypted-ballot application. It verifies ballot eligibility and encryption proofs, commits ciphertext inputs, checks that a RISC Zero tally is bound to its input root and parameters, and decodes the threshold-decrypted tally.\"\n+ \"CRISP encrypted-ballot E3 application. It verifies ballot eligibility and encryption proofs, commits ciphertext inputs, checks that a RISC Zero tally is bound to its input root and parameters, and decodes the threshold-decrypted tally.\"\n values.eip712Domain:\n+ {\"fields\":\"0x0f\",\"name\":\"CRISP\",\"version\":\"1\",\"chainId\":1,\"verifyingContract\":\"eth:0x847A22303639017bcDB7F7E49EEa4a4629c1169f\",\"salt\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"extensions\":[]}\n values.ENCRYPTION_SCHEME_ID:\n+ \"0x2c2a814a0495f913a3a312fc4771e37552bc14f8a2d4075a08122d356f0849c6\"\n values.TREE_DEPTH:\n+ 20\n fieldMeta.interfold.description:\n- \"Permanently bound E3 coordinator.\"\n+ \"Bound E3 coordinator.\"\n fieldMeta.dataAvailabilityVerifier:\n+ {\"description\":\"Immutable verifier of the proof-backed data availability attestation for ballot inputs.\",\"type\":\"CODE_CHANGE\"}\n fieldMeta.inputAvailabilitySigner:\n+ {\"description\":\"Immutable signer whose attestations vouch for ballot input availability.\",\"type\":\"PERMISSION\"}\n fieldMeta.availabilityFinalizationWindow:\n+ {\"description\":\"Immutable window after voting in which input availability must be finalized.\",\"type\":\"RISK_PARAMETER\"}\n implementationNames.eth:0x847A22303639017bcDB7F7E49EEa4a4629c1169f:\n- \"\"\n+ \"CRISPProgram\"\n template:\n+ \"interfold/CRISPProgram\"\n sourceHashes:\n+ [\"0x3649deb6f04282f42e1920d5db900615f2452d03163421de0763f9849233a388\"]\n }\n```"
}
]
},
{
"id": "c44692d1",
"date": "Tue, 15 Sep 2026 12:11:52 GMT",
"timestamp": 1789471922,
"description": "Three new ciphernodes registered and four operators activated in the bonding registry, each new operator posting the standard 32k FOLD bond. numActiveOperators 14 -> 19 out of 21 registered.",
"isHighSeverity": false,
"changeCount": 9,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract BondingRegistry (eth:0x0ec90465095C21830BEcED07e032809A2Bd2915F) [interfold/BondingRegistry] {\n +++ description: Collateral registry for ciphernode operators. Operators become eligible by depositing ticket collateral backed by sUSDS and a FOLD bond, and by attesting a current software release in the NodeReleaseRegistry; the contract also enforces exits, committee obligations, bans and slashing debits.\n+++ description: Operator keys currently active under the collateral, release-attestation and ban rules, reconstructed from activation events. Eligibility-configuration bumps invalidate all cached statuses without emitting events, so entries here may still await re-activation.\n values.activeOperators.17:\n+ \"eth:0x630B9c418aCb02829E34F2E0B7948b4A9c92e05F\"\n+++ description: Operator keys currently active under the collateral, release-attestation and ban rules, reconstructed from activation events. Eligibility-configuration bumps invalidate all cached statuses without emitting events, so entries here may still await re-activation.\n values.activeOperators.18:\n+ \"eth:0xdBEd503093A01EA08f21144114542E53594536D6\"\n+++ description: Operator keys currently active under the collateral, release-attestation and ban rules, reconstructed from activation events. Eligibility-configuration bumps invalidate all cached statuses without emitting events, so entries here may still await re-activation.\n values.activeOperators.19:\n+ \"eth:0x12c75ce176D5a58d2a72e85Af158Cbd8749fE1D8\"\n+++ description: Operator keys currently active under the collateral, release-attestation and ban rules, reconstructed from activation events. Eligibility-configuration bumps invalidate all cached statuses without emitting events, so entries here may still await re-activation.\n values.activeOperators.20:\n+ \"eth:0x222D696D0242194457eD491b0c52aBbF9250342F\"\n+++ description: Number of operators whose active status is valid under the current eligibility-configuration version. Unlike activeOperators, this drops immediately when the version is bumped, so it is the signal for a mass invalidation.\n values.numActiveOperators:\n- 14\n+ 19\n }\n```\n\n```diff\n EOA (eth:0x12c75ce176D5a58d2a72e85Af158Cbd8749fE1D8) {\n +++ description: None\n receivedPermissions.0:\n+ {\"permission\":\"member\",\"from\":\"eth:0x0ec90465095C21830BEcED07e032809A2Bd2915F\",\"description\":\"submit one chosen eligible ticket per E3 sortition and be selected for ciphernode committee duties.\",\"role\":\".activeOperators\"}\n }\n```\n\n```diff\n contract CiphernodeRegistry (eth:0xC927A5B2d8F68697bC28C0670df05178c93df2d7) [interfold/CiphernodeRegistry] {\n +++ description: Registry of ciphernodes and E3 committees. It performs ticket-weighted committee selection, records DKG (distributed key generation) proof anchors and the committee public key (to which cyphertexts can be encrypted), and tracks committee viability. Sortition entropy is supplied asynchronously by a governance-set randomness provider.\n+++ description: Current registered ciphernode operator keys reconstructed from add and remove events. For each E3, the active configuration selects three of these keys; $threshold applies to that selected committee, not to the full registry.\n values.$members.18:\n+ \"eth:0x630B9c418aCb02829E34F2E0B7948b4A9c92e05F\"\n+++ description: Current registered ciphernode operator keys reconstructed from add and remove events. For each E3, the active configuration selects three of these keys; $threshold applies to that selected committee, not to the full registry.\n values.$members.19:\n+ \"eth:0xdBEd503093A01EA08f21144114542E53594536D6\"\n+++ description: Current registered ciphernode operator keys reconstructed from add and remove events. For each E3, the active configuration selects three of these keys; $threshold applies to that selected committee, not to the full registry.\n values.$members.20:\n+ \"eth:0x222D696D0242194457eD491b0c52aBbF9250342F\"\n }\n```"
}
]
},
{
"id": "b85919fb",
"date": "Mon, 07 Sep 2026 14:03:32 GMT",
"timestamp": 1788789718,
"description": "Operator changes only. The protocol is still paused, while ciphernodes are bonding and registering. No request has been processed yet.",
"isHighSeverity": false,
"changeCount": 11,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract BondingRegistry (eth:0x0ec90465095C21830BEcED07e032809A2Bd2915F) [interfold/BondingRegistry] {\n +++ description: Collateral registry for ciphernode operators. Operators become eligible by depositing ticket collateral backed by sUSDS and a FOLD bond, and by attesting a current software release in the NodeReleaseRegistry; the contract also enforces exits, committee obligations, bans and slashing debits.\n+++ description: Operator keys currently active under the collateral, release-attestation and ban rules, reconstructed from activation events. Eligibility-configuration bumps invalidate all cached statuses without emitting events, so entries here may still await re-activation.\n values.activeOperators.13:\n+ \"eth:0xcb6ce8C3a16DeF797167e8A2aED7998A065f2513\"\n+++ description: Operator keys currently active under the collateral, release-attestation and ban rules, reconstructed from activation events. Eligibility-configuration bumps invalidate all cached statuses without emitting events, so entries here may still await re-activation.\n values.activeOperators.14:\n+ \"eth:0x59461947EC279863138fae477C35B0c551A5c3a6\"\n+++ description: Operator keys currently active under the collateral, release-attestation and ban rules, reconstructed from activation events. Eligibility-configuration bumps invalidate all cached statuses without emitting events, so entries here may still await re-activation.\n values.activeOperators.15:\n+ \"eth:0xBB3f49DED0EdE92ba3C9247A93E925770ac68671\"\n+++ description: Operator keys currently active under the collateral, release-attestation and ban rules, reconstructed from activation events. Eligibility-configuration bumps invalidate all cached statuses without emitting events, so entries here may still await re-activation.\n values.activeOperators.16:\n+ \"eth:0xe603c63ee0e97DA5a833B7498C366E88B9a5EBFe\"\n+++ description: Number of operators whose active status is valid under the current eligibility-configuration version. Unlike activeOperators, this drops immediately when the version is bumped, so it is the signal for a mass invalidation.\n values.numActiveOperators:\n- 9\n+ 14\n }\n```\n\n```diff\n EOA (eth:0x2179a7A0bE3EB10c45A9aeec11F260E2bC4B1A7C) {\n +++ description: None\n receivedPermissions.1:\n- {\"permission\":\"member\",\"from\":\"eth:0xC927A5B2d8F68697bC28C0670df05178c93df2d7\",\"description\":\"eligible for ticket-weighted selection into E3 committees, where selected members create key shares and participate in threshold decryption.\",\"role\":\".$members\"}\n }\n```\n\n```diff\n contract CiphernodeRegistry (eth:0xC927A5B2d8F68697bC28C0670df05178c93df2d7) [interfold/CiphernodeRegistry] {\n +++ description: Registry of ciphernodes and E3 committees. It performs ticket-weighted committee selection, records DKG (distributed key generation) proof anchors and the committee public key (to which cyphertexts can be encrypted), and tracks committee viability. Sortition entropy is supplied asynchronously by a governance-set randomness provider.\n+++ description: Current registered ciphernode operator keys reconstructed from add and remove events. For each E3, the active configuration selects three of these keys; $threshold applies to that selected committee, not to the full registry.\n values.$members.7:\n- \"eth:0x2179a7A0bE3EB10c45A9aeec11F260E2bC4B1A7C\"\n+++ description: Current registered ciphernode operator keys reconstructed from add and remove events. For each E3, the active configuration selects three of these keys; $threshold applies to that selected committee, not to the full registry.\n values.$members.15:\n+ \"eth:0x59461947EC279863138fae477C35B0c551A5c3a6\"\n+++ description: Current registered ciphernode operator keys reconstructed from add and remove events. For each E3, the active configuration selects three of these keys; $threshold applies to that selected committee, not to the full registry.\n values.$members.16:\n+ \"eth:0xe603c63ee0e97DA5a833B7498C366E88B9a5EBFe\"\n+++ description: Current registered ciphernode operator keys reconstructed from add and remove events. For each E3, the active configuration selects three of these keys; $threshold applies to that selected committee, not to the full registry.\n values.$members.17:\n+ \"eth:0xBB3f49DED0EdE92ba3C9247A93E925770ac68671\"\n }\n```\n\n```diff\n EOA (eth:0xcb6ce8C3a16DeF797167e8A2aED7998A065f2513) {\n +++ description: None\n receivedPermissions.0:\n+ {\"permission\":\"member\",\"from\":\"eth:0x0ec90465095C21830BEcED07e032809A2Bd2915F\",\"description\":\"submit one chosen eligible ticket per E3 sortition and be selected for ciphernode committee duties.\",\"role\":\".activeOperators\"}\n }\n```"
}
]
},
{
"id": "03c16e87",
"date": "Tue, 01 Sep 2026 14:42:58 GMT",
"timestamp": 1788273501,
"description": "2026-08-28 upgrade of the Interfold, CiphernodeRegistry and BondingRegistry proxies, now fully reviewed from verified source. Discovery is back on templates: new shapes for the three upgraded implementations and new ChainlinkVrfRandomnessProvider and NodeReleaseRegistry templates replace the interim explicit-handler overrides in config.jsonc.\n\n- Sortition entropy now comes from a Chainlink VRF v2.5 subscription consumer (RandomnessProvider) instead of EIP-2935 blockhashes. All its VRF parameters are immutable (native-ETH-paid subscription, 1 ETH minimum balance, 64 confirmations); the DAO owner can only replace the coordinator. The registry accepts a response only within a 1h timeout window bound to the request, and a timed-out request permissionlessly trips a circuit breaker that zeroes the provider, disabling new E3 requests until governance re-sets it (only possible while requests are paused and no committees are outstanding).\n- The formerly unknown 16th pricing parameter is randomnessFlatFee (5 USDS): a non-refundable request-time fee credited to the protocol treasury to reimburse the VRF subscription, exempt from the margin markup and required to be nonzero.\n- NodeReleaseRegistry (DAO-owned, Ownable2Step, renounce disabled) gates operator eligibility on self-attested software releases: operators must attest the exact required protocol version (currently 1) and at least the required node generation (currently 1). The DAO can only raise the requirement, only while paused and drained, and each raise (like the wiring-in itself, which bumped the eligibility-configuration version 4 -> 5) instantly invalidates every operator's cached active status.\n- Requester cancellation was narrowed: an E3 can now only be cancelled after its randomness request times out without a result (classified as CommitteeFormationTimeout); mid-flight cancellation of active E3s was removed.\n- BondingRegistry's external interface is unchanged (internal refactor into libraries plus the node-release eligibility hook); requestsPaused remains true.",
"isHighSeverity": true,
"changeCount": 59,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n- Status: DELETED\n contract (eth:0x0000F90827F1C53a10cb7A02335B175320002935) [N/A]\n +++ description: None\n```\n\n```diff\n contract BondingRegistry (eth:0x0ec90465095C21830BEcED07e032809A2Bd2915F) [interfold/BondingRegistry] {\n +++ description: Collateral registry for ciphernode operators. Operators become eligible by depositing ticket collateral backed by sUSDS and a FOLD bond, and by attesting a current software release in the NodeReleaseRegistry; the contract also enforces exits, committee obligations, bans and slashing debits.\n sourceHashes.1:\n- \"0x2f4ffa441ee6931aaf10dc75ea17d88ac1e02780b5802234253f4732f19706ae\"\n+ \"0xb97dc60ab9865caddf8025162df9c53ea501692873fbef50c57733bea73c86ab\"\n values.$implementation:\n- \"eth:0x4FF6e77A10E8f06C11a4DD2A71b6AB55394640e4\"\n+ \"eth:0xd89D3fE1b53eF95111c0E68A8CeFDfd20EcCA53a\"\n values.$pastUpgrades.2:\n+ [\"2026-08-28T00:23:35.000Z\",\"0xb72b8bc214a3416a90f0d84cf34dc833251a669b1e0201f70924805f7fa18b58\",[\"eth:0xd89D3fE1b53eF95111c0E68A8CeFDfd20EcCA53a\"]]\n values.$upgradeCount:\n- 2\n+ 3\n+++ description: Operator keys currently active under the collateral, release-attestation and ban rules, reconstructed from activation events. Eligibility-configuration bumps invalidate all cached statuses without emitting events, so entries here may still await re-activation.\n values.activeOperators.11:\n+ \"eth:0xc798b5f60150FbB2Db9b061817831DF62D2b269C\"\n+++ description: Operator keys currently active under the collateral, release-attestation and ban rules, reconstructed from activation events. Eligibility-configuration bumps invalidate all cached statuses without emitting events, so entries here may still await re-activation.\n values.activeOperators.12:\n+ \"eth:0xB6Bb517ca0bD9a8b0eD2817e604b327d31626190\"\n values.bondOwners.eth:0xc798b5f60150FbB2Db9b061817831DF62D2b269C:\n+ \"eth:0x97843608a00e2bbc75ab0C1911387E002565DEDE\"\n values.bondOwners.eth:0x12c75ce176D5a58d2a72e85Af158Cbd8749fE1D8:\n+ \"eth:0x0b304924fAa64b0f040dcA67bC5175Dd6078db52\"\n values.bondOwners.eth:0xcb6ce8C3a16DeF797167e8A2aED7998A065f2513:\n+ \"eth:0xcb6ce8C3a16DeF797167e8A2aED7998A065f2513\"\n values.bondOwners.eth:0x819a1D34873eC46e8DD6c7DE14429F5a07E47Ff9:\n+ \"eth:0x819a1D34873eC46e8DD6c7DE14429F5a07E47Ff9\"\n values.bondOwners.eth:0xB6Bb517ca0bD9a8b0eD2817e604b327d31626190:\n+ \"eth:0x8Dcb4a4e9621C492A82c0e3E105aB69124c401a2\"\n values.bondOwners.eth:0x1dF428833f2C9FB1eF098754e5D710432450d706:\n+ \"eth:0x1dF428833f2C9FB1eF098754e5D710432450d706\"\n+++ description: Number of operators whose active status is valid under the current eligibility-configuration version.\n values.numActiveOperators:\n- 11\n+ 9\n values.numRegisteredOperators:\n- 11\n+ 16\n implementationNames.eth:0x4FF6e77A10E8f06C11a4DD2A71b6AB55394640e4:\n- \"BondingRegistry\"\n implementationNames.eth:0xd89D3fE1b53eF95111c0E68A8CeFDfd20EcCA53a:\n+ \"BondingRegistry\"\n }\n```\n\n```diff\n contract Interfold (eth:0x28cF63B459e6218C69EA97ea7D90541cf648c715) [interfold/Interfold] {\n +++ description: Coordinator for Encrypted Execution Environments (E3s). It accepts requests for allowlisted programs, selects a ciphernode committee, snapshots the configured proof system, and verifies the encrypted result and threshold decryption before publishing plaintext output.\n sourceHashes.1:\n- \"0x25830faa7c9d8c4aecf3d78f04ce54c52aae87769713d3e9ad951ca08abd4277\"\n+ \"0xd3737346baa5d40f73aea8a15668e65fc210c6fbb56ddf2c8d8f6a0386d0a6f9\"\n values.$implementation:\n- \"eth:0x8AcBf712513C802eFFc255FEa588ED21DC7A61bA\"\n+ \"eth:0xA7e1f2693b3b5038e505396Dbd21d6c26ECa8aA2\"\n values.$pastUpgrades.1:\n+ [\"2026-08-28T00:23:35.000Z\",\"0xb72b8bc214a3416a90f0d84cf34dc833251a669b1e0201f70924805f7fa18b58\",[\"eth:0xA7e1f2693b3b5038e505396Dbd21d6c26ECa8aA2\"]]\n values.$upgradeCount:\n- 1\n+ 2\n values.getPricingConfig.randomnessFlatFee:\n+ \"5000000000000000000\"\n+++ description: Registry controlling which self-attested ciphernode software releases remain eligible for new E3s. Replacing it requires paused requests and no active E3s, and instantly invalidates every operator's cached eligibility.\n values.nodeReleaseRegistry:\n+ \"eth:0x9E1C6B433CFbC8f28d80EAB583C428B01d083b0A\"\n implementationNames.eth:0x8AcBf712513C802eFFc255FEa588ED21DC7A61bA:\n- \"Interfold\"\n implementationNames.eth:0xA7e1f2693b3b5038e505396Dbd21d6c26ECa8aA2:\n+ \"Interfold\"\n }\n```\n\n```diff\n contract InterfoldSafeA (eth:0x5429D8c7fD14023f3c414126F94BbE25A05fC018) [GnosisSafe] {\n +++ description: None\n receivedPermissions.15:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x9E1C6B433CFbC8f28d80EAB583C428B01d083b0A\",\"description\":\"raise the required ciphernode protocol version and node generation, which instantly invalidates every operator's cached eligibility until they attest the new release. The requirement can only increase, and only while new E3 requests are paused and no E3s or committees are active.\",\"role\":\".owner\",\"via\":[{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]}\n receivedPermissions.30:\n+ {\"permission\":\"interact\",\"from\":\"eth:0xa0273f884816dfF0BE9B5ED50aB3AA29D6AaA712\",\"description\":\"replace the Chainlink VRF coordinator that delivers the sortition entropy.\",\"role\":\".owner\",\"via\":[{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]}\n }\n```\n\n```diff\n contract InterfoldDAO (eth:0x652a31c669f9AB37f6040f279139a75D04F2679e) [zama/ZamaDAO] {\n +++ description: Aragon DAO that stores governance state and executes proposal action batches.\n directlyReceivedPermissions.20:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x9E1C6B433CFbC8f28d80EAB583C428B01d083b0A\",\"description\":\"raise the required ciphernode protocol version and node generation, which instantly invalidates every operator's cached eligibility until they attest the new release. The requirement can only increase, and only while new E3 requests are paused and no E3s or committees are active.\",\"role\":\".owner\"}\n directlyReceivedPermissions.21:\n+ {\"permission\":\"interact\",\"from\":\"eth:0xa0273f884816dfF0BE9B5ED50aB3AA29D6AaA712\",\"description\":\"replace the Chainlink VRF coordinator that delivers the sortition entropy.\",\"role\":\".owner\"}\n }\n```\n\n```diff\n contract InterfoldSafeB (eth:0x8B43b2852fc5031D01DDfCDF702973D93A2FF593) [GnosisSafe] {\n +++ description: None\n receivedPermissions.15:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x9E1C6B433CFbC8f28d80EAB583C428B01d083b0A\",\"description\":\"raise the required ciphernode protocol version and node generation, which instantly invalidates every operator's cached eligibility until they attest the new release. The requirement can only increase, and only while new E3 requests are paused and no E3s or committees are active.\",\"role\":\".owner\",\"via\":[{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]}\n receivedPermissions.30:\n+ {\"permission\":\"interact\",\"from\":\"eth:0xa0273f884816dfF0BE9B5ED50aB3AA29D6AaA712\",\"description\":\"replace the Chainlink VRF coordinator that delivers the sortition entropy.\",\"role\":\".owner\",\"via\":[{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]}\n }\n```\n\n```diff\n contract PublicStagedProposalProcessor (eth:0x9c0Ff283399Bd1D3111E6c9C689066759b7AccDb) [interfold/StagedProposalProcessor] {\n +++ description: Upgradeable Aragon staged-proposal plugin that executes DAO actions after proposals pass its configured sequence of voting or manual bodies, thresholds and timing windows.\n receivedPermissions.17:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x9E1C6B433CFbC8f28d80EAB583C428B01d083b0A\",\"description\":\"raise the required ciphernode protocol version and node generation, which instantly invalidates every operator's cached eligibility until they attest the new release. The requirement can only increase, and only while new E3 requests are paused and no E3s or committees are active.\",\"role\":\".owner\",\"via\":[{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]}\n receivedPermissions.32:\n+ {\"permission\":\"interact\",\"from\":\"eth:0xa0273f884816dfF0BE9B5ED50aB3AA29D6AaA712\",\"description\":\"replace the Chainlink VRF coordinator that delivers the sortition entropy.\",\"role\":\".owner\",\"via\":[{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]}\n }\n```\n\n```diff\n contract CiphernodeRegistry (eth:0xC927A5B2d8F68697bC28C0670df05178c93df2d7) [interfold/CiphernodeRegistry] {\n +++ description: Registry of ciphernodes and E3 committees. It performs ticket-weighted committee selection, records DKG (distributed key generation) proof anchors and the committee public key (to which cyphertexts can be encrypted), and tracks committee viability. Sortition entropy is supplied asynchronously by a governance-set randomness provider.\n sourceHashes.1:\n- \"0x181143fe8736537b7086ceca31a6731ebb34e2e2612a63c3ff66ef5c7f3816af\"\n+ \"0x993dbb9f6f7d08758f2b721cf9a1c301f9a7234933ca34d0430901203f34f1cf\"\n values.$implementation:\n- \"eth:0xB06Aaf9EF87984192490E947078D2f3563399b7B\"\n+ \"eth:0xFff476751949a7e1B784b5c88648833c1e8dD69c\"\n+++ description: Current registered ciphernode operator keys reconstructed from add and remove events. For each E3, the active configuration selects three of these keys; $threshold applies to that selected committee, not to the full registry.\n values.$members.11:\n+ \"eth:0xc798b5f60150FbB2Db9b061817831DF62D2b269C\"\n+++ description: Current registered ciphernode operator keys reconstructed from add and remove events. For each E3, the active configuration selects three of these keys; $threshold applies to that selected committee, not to the full registry.\n values.$members.12:\n+ \"eth:0x12c75ce176D5a58d2a72e85Af158Cbd8749fE1D8\"\n+++ description: Current registered ciphernode operator keys reconstructed from add and remove events. For each E3, the active configuration selects three of these keys; $threshold applies to that selected committee, not to the full registry.\n values.$members.13:\n+ \"eth:0xcb6ce8C3a16DeF797167e8A2aED7998A065f2513\"\n+++ description: Current registered ciphernode operator keys reconstructed from add and remove events. For each E3, the active configuration selects three of these keys; $threshold applies to that selected committee, not to the full registry.\n values.$members.14:\n+ \"eth:0xB6Bb517ca0bD9a8b0eD2817e604b327d31626190\"\n+++ description: Current registered ciphernode operator keys reconstructed from add and remove events. For each E3, the active configuration selects three of these keys; $threshold applies to that selected committee, not to the full registry.\n values.$members.15:\n+ \"eth:0x1dF428833f2C9FB1eF098754e5D710432450d706\"\n values.$pastUpgrades.1:\n+ [\"2026-08-28T00:23:35.000Z\",\"0xb72b8bc214a3416a90f0d84cf34dc833251a669b1e0201f70924805f7fa18b58\",[\"eth:0xFff476751949a7e1B784b5c88648833c1e8dD69c\"]]\n values.$upgradeCount:\n- 1\n+ 2\n values.BLOCKHASH_HISTORY:\n- \"eth:0x0000F90827F1C53a10cb7A02335B175320002935\"\n values.exitDelayFloor:\n- 600\n+ 4200\n+++ description: Number of currently registered ciphernode keys.\n values.numCiphernodes:\n- 11\n+ 16\n values.sortitionEntropyBlocks:\n- [0,0,0,0,0]\n values.sortitionSeedResolved:\n- [false,false,false,false,false]\n+++ description: Contract that supplies the asynchronous sortition entropy for committee selection. Automatically reset to zero, which disables new E3 requests, if a randomness request expires without a usable response (circuit breaker). Replacing it requires paused requests, no outstanding committees, and that the new provider names this registry as its only requester.\n+++ severity: HIGH\n values.randomnessProvider:\n+ \"eth:0xa0273f884816dfF0BE9B5ED50aB3AA29D6AaA712\"\n+++ description: Time window in which the randomness provider must deliver sortition entropy for an E3, bounded between 60 seconds and 1 day.\n values.randomnessRequestTimeout:\n+ 3600\n errors:\n- {\"sortitionEntropyBlocks\":\"Processing error occurred.\",\"sortitionSeedResolved\":\"Processing error occurred.\"}\n implementationNames.eth:0xB06Aaf9EF87984192490E947078D2f3563399b7B:\n- \"CiphernodeRegistryOwnable\"\n implementationNames.eth:0xFff476751949a7e1B784b5c88648833c1e8dD69c:\n+ \"CiphernodeRegistryOwnable\"\n }\n```\n\n```diff\n contract AdminPlugin (eth:0xF21e25455988887EE797050080141eba67B33920) [interfold/AdminPlugin] {\n +++ description: Non-upgradeable Aragon Admin plugin. Holders of its DAO-granted EXECUTE_PROPOSAL permission can submit actions that the plugin forwards immediately, without a vote or onchain delay.\n receivedPermissions.16:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x9E1C6B433CFbC8f28d80EAB583C428B01d083b0A\",\"description\":\"raise the required ciphernode protocol version and node generation, which instantly invalidates every operator's cached eligibility until they attest the new release. The requirement can only increase, and only while new E3 requests are paused and no E3s or committees are active.\",\"role\":\".owner\",\"via\":[{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]}\n receivedPermissions.31:\n+ {\"permission\":\"interact\",\"from\":\"eth:0xa0273f884816dfF0BE9B5ED50aB3AA29D6AaA712\",\"description\":\"replace the Chainlink VRF coordinator that delivers the sortition entropy.\",\"role\":\".owner\",\"via\":[{\"address\":\"eth:0x652a31c669f9AB37f6040f279139a75D04F2679e\"}]}\n }\n```\n\n```diff\n+ Status: CREATED\n EOA (eth:0x1dF428833f2C9FB1eF098754e5D710432450d706)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract NodeReleaseRegistry (eth:0x9E1C6B433CFbC8f28d80EAB583C428B01d083b0A) [interfold/NodeReleaseRegistry]\n +++ description: Registry of ciphernode software releases. Operators self-attest the release they run; staying eligible for new E3 committees requires an attestation matching the exact governance-set protocol version and at least the required node generation. Raising the requirement instantly invalidates every operator's cached eligibility until they re-attest.\n```\n\n```diff\n+ Status: CREATED\n contract RandomnessProvider (eth:0xa0273f884816dfF0BE9B5ED50aB3AA29D6AaA712) [interfold/ChainlinkVrfRandomnessProvider]\n +++ description: Supplies committee-sortition entropy as a Chainlink VRF v2.5 subscription consumer. Only its fixed requester (the CiphernodeRegistry) can request randomness, each E3 can be served exactly once, and requests revert while the funding subscription balance is below the configured minimum. All VRF parameters are immutable.\n```\n\n```diff\n+ Status: CREATED\n EOA (eth:0xcb6ce8C3a16DeF797167e8A2aED7998A065f2513)\n +++ description: None\n```"
},
{
"kind": "config-related-changes",
"body": "```diff\n+ Status: CREATED\n contract (eth:0x0000F90827F1C53a10cb7A02335B175320002935) [N/A]\n +++ description: None\n```"
}
]
},
{
"id": "15d44004",
"date": "Thu, 27 Aug 2026 12:19:25 GMT",
"timestamp": 1787833077,
"description": "Operators added, still paused.",
"isHighSeverity": false,
"changeCount": 17,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract BondingRegistry (eth:0x0ec90465095C21830BEcED07e032809A2Bd2915F) [interfold/BondingRegistry] {\n +++ description: Collateral registry for ciphernode operators. Operators become eligible by depositing ticket collateral backed by sUSDS and a FOLD bond; the contract also enforces exits, committee obligations, bans and slashing debits.\n+++ description: Operator keys currently active under the collateral and ban rules, reconstructed from activation events.\n values.activeOperators.7:\n+ \"eth:0x2179a7A0bE3EB10c45A9aeec11F260E2bC4B1A7C\"\n+++ description: Operator keys currently active under the collateral and ban rules, reconstructed from activation events.\n values.activeOperators.8:\n+ \"eth:0xCdc8B4379dDF736f8e34B0A65585E07dE7060A84\"\n+++ description: Operator keys currently active under the collateral and ban rules, reconstructed from activation events.\n values.activeOperators.9:\n+ \"eth:0x18F98f8F44a37d4179888f286191f4F856CB4663\"\n+++ description: Operator keys currently active under the collateral and ban rules, reconstructed from activation events.\n values.activeOperators.10:\n+ \"eth:0x18ddBf8Aa6F72FC4D9E1911527d0CE1E9f3597d8\"\n values.bondOwners.eth:0x2179a7A0bE3EB10c45A9aeec11F260E2bC4B1A7C:\n+ \"eth:0x2179a7A0bE3EB10c45A9aeec11F260E2bC4B1A7C\"\n values.bondOwners.eth:0x18F98f8F44a37d4179888f286191f4F856CB4663:\n+ \"eth:0x2DeB5Ff7d2CdfA92A73f0b0B534e51875c81a5Ed\"\n values.bondOwners.eth:0x9e6d627D60183276Bcd528D634e660f0c56EaDeE:\n+ \"eth:0x9e6d627D60183276Bcd528D634e660f0c56EaDeE\"\n values.bondOwners.eth:0x65eb99fdd2a7508D34c6D17b874da8566d8E19c5:\n+ \"eth:0x65eb99fdd2a7508D34c6D17b874da8566d8E19c5\"\n values.bondOwners.eth:0x0EebbDa2423b58e59Df0F4969e6Ce96af69BEFC3:\n+ \"eth:0x0EebbDa2423b58e59Df0F4969e6Ce96af69BEFC3\"\n values.numActiveOperators:\n- 7\n+ 11\n values.numRegisteredOperators:\n- 7\n+ 11\n }\n```\n\n```diff\n contract CiphernodeRegistry (eth:0xC927A5B2d8F68697bC28C0670df05178c93df2d7) [interfold/CiphernodeRegistry] {\n +++ description: Registry of ciphernodes and E3 committees. It performs ticket-weighted committee selection, records DKG (distributed key generation) proof anchors and the committee public key (to which cyphertexts can be encrypted), and tracks committee viability.\n+++ description: Current registered ciphernode operator keys reconstructed from add and remove events. For each E3, the active configuration selects three of these keys; $threshold applies to that selected committee, not to the full registry.\n values.$members.7:\n+ \"eth:0x2179a7A0bE3EB10c45A9aeec11F260E2bC4B1A7C\"\n+++ description: Current registered ciphernode operator keys reconstructed from add and remove events. For each E3, the active configuration selects three of these keys; $threshold applies to that selected committee, not to the full registry.\n values.$members.8:\n+ \"eth:0xCdc8B4379dDF736f8e34B0A65585E07dE7060A84\"\n+++ description: Current registered ciphernode operator keys reconstructed from add and remove events. For each E3, the active configuration selects three of these keys; $threshold applies to that selected committee, not to the full registry.\n values.$members.9:\n+ \"eth:0x18F98f8F44a37d4179888f286191f4F856CB4663\"\n+++ description: Current registered ciphernode operator keys reconstructed from add and remove events. For each E3, the active configuration selects three of these keys; $threshold applies to that selected committee, not to the full registry.\n values.$members.10:\n+ \"eth:0x18ddBf8Aa6F72FC4D9E1911527d0CE1E9f3597d8\"\n+++ description: Number of currently registered ciphernode keys.\n values.numCiphernodes:\n- 7\n+ 11\n }\n```\n\n```diff\n+ Status: CREATED\n EOA (eth:0x0EebbDa2423b58e59Df0F4969e6Ce96af69BEFC3)\n +++ description: None\n```"
}
]
},
{
"id": "87791bda",
"date": "Tue, 25 Aug 2026 12:24:41 GMT",
"timestamp": 1787653815,
"description": "Interfold coordinates ephemeral encrypted computations on Ethereum using allowlisted application contracts and a ticket-selected committee of bonded ciphernodes (who do offchain execution). Users publish encrypted inputs, an offchain compute provider produces a proof-backed encrypted result, and a 2-of-3 committee of cyphernodes threshold-decrypts it into a publicly posted plaintext output. RISC Zero verifies the application-specific encrypted computation, while Honk proofs bind distributed key generation and threshold decryption to the selected committee and E3. New programs, verifiers and core configuration are DAO-controlled, and confidentiality depends on fewer than two selected committee members colluding. Protocol is paused atm.",
"isHighSeverity": false,
"changeCount": 46,
"sections": [
{
"kind": "initial-discovery",
"body": "```diff\n+ Status: CREATED\n contract BondedVotes (eth:0x028deEA644258c78b1B5B2eacF469F5D781Fb43E) [interfold/BondedVotes]\n +++ description: Voting-power adapter used by PublicTokenVoting. It counts voting-escrow power, FOLD bonded to ciphernode operators, and eligible vesting-locked wallet FOLD while using FOLD total supply as the quorum denominator.\n```\n\n```diff\n+ Status: CREATED\n contract VotingEscrowGaugeVoter (eth:0x0A32454FC578e3CAFeE86F6E03f267b25ad0bAf0) [interfold/VotingEscrowGaugeVoter]\n +++ description: Upgradeable, currently paused gauge-voting plugin connected to VotingEscrow. It can update voting state used by escrow lock operations but is not the Interfold DAO proposal-voting plugin.\n```\n\n```diff\n+ Status: CREATED\n contract BondingRegistry (eth:0x0ec90465095C21830BEcED07e032809A2Bd2915F) [interfold/BondingRegistry]\n +++ description: Collateral registry for ciphernode operators. Operators become eligible by depositing ticket collateral backed by sUSDS and a FOLD bond; the contract also enforces exits, committee obligations, bans and slashing debits.\n```\n\n```diff\n+ Status: CREATED\n EOA (eth:0x11E91FB4793047a68dFff29158387229eA313ffE)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract E3RefundManager (eth:0x1940eF168f4E0B3dA24BEca539856684793B0F6e) [interfold/E3RefundManager]\n +++ description: Upgradeable accounting contract that snapshots the refund policy for each E3 and distributes request fees and routed slashed funds between the requester, honest committee members, protocol treasury and reserve.\n```\n\n```diff\n+ Status: CREATED\n contract Interfold (eth:0x28cF63B459e6218C69EA97ea7D90541cf648c715) [interfold/Interfold]\n +++ description: Coordinator for Encrypted Execution Environments (E3s). It accepts requests for allowlisted programs, selects a ciphernode committee, snapshots the configured proof system, and verifies the encrypted result and threshold decryption before publishing plaintext output.\n```\n\n```diff\n+ Status: CREATED\n contract ProxyAdmin (eth:0x2DFb93A8C3cE68Be3d8129479d7870646d89aDa7) [global/ProxyAdmin]\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n EOA (eth:0x2F3A1d13525748D2e6CC8EEA715CEFCF5B8ff833)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n EOA (eth:0x34aA3F359A9D614239015126635CE7732c18fDF3)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract Risc0BfvCiphertextVerifier (eth:0x40a18Fc27ac4a4d86fA70385c6814e453b6BFF2c) [N/A]\n +++ description: Unverified wrapper that accepts a RISC Zero receipt for the immutable guest image ID and the E3-specific journal constructed by Interfold.\n```\n\n```diff\n+ Status: CREATED\n contract MockE3Program (eth:0x4976E5E47852eFCe6851d35B95A1A2E19456F3D7) [interfold/MockE3Program]\n +++ description: Permanently allowlisted test E3 application. It accepts arbitrary input and returns successful validation and output verification, so requests using it exercise the protocol proof pipeline without application-level correctness checks.\n```\n\n```diff\n+ Status: CREATED\n contract DecryptionAggregatorVerifier (eth:0x53Fc34b412E16A1aE05A86934b821F82ca2a10da) [interfold/DecryptionAggregatorVerifier]\n +++ description: Immutable generated Honk verifier for the BFV threshold-decryption aggregation circuit.\n```\n\n```diff\n+ Status: CREATED\n contract InterfoldSafeA (eth:0x5429D8c7fD14023f3c414126F94BbE25A05fC018) [GnosisSafe]\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract AragonExecutor (eth:0x56ce4D8006292Abf418291FaE813C1E3769240A4) [interfold/AragonExecutor]\n +++ description: Immutable Aragon action executor used as a delegatecall target by PublicTokenVoting. It executes proposal action batches in the calling plugin's context.\n```\n\n```diff\n+ Status: CREATED\n EOA (eth:0x60Ca282757BA67f3aDbF21F3ba2eBe4Ab3eb01fc)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract InterfoldDAO (eth:0x652a31c669f9AB37f6040f279139a75D04F2679e) [zama/ZamaDAO]\n +++ description: Aragon DAO that stores governance state and executes proposal action batches.\n```\n\n```diff\n+ Status: CREATED\n contract VotingEscrow (eth:0x71360F335e4Ec9c010e29bA7171bc62c9B4c1F12) [interfold/VotingEscrow]\n +++ description: veFOLD escrow that custodies locked FOLD, issues lock NFTs and calculates the voting power consumed by BondedVotes through EscrowVotesAdapter.\n```\n\n```diff\n+ Status: CREATED\n contract VotingEscrowExitQueue (eth:0x8095C0B90Be4abCBF5CA7371f588fe1637E02b7f) [interfold/VotingEscrowExitQueue]\n +++ description: Queue applying cooldowns and optional fees to withdrawals from VotingEscrow.\n```\n\n```diff\n+ Status: CREATED\n contract CRISPProgram (eth:0x847A22303639017bcDB7F7E49EEa4a4629c1169f) [N/A]\n +++ description: CRISP encrypted-ballot application. It verifies ballot eligibility and encryption proofs, commits ciphertext inputs, checks that a RISC Zero tally is bound to its input root and parameters, and decodes the threshold-decrypted tally.\n```\n\n```diff\n+ Status: CREATED\n contract GnosisSafe (eth:0x8B405dBf2F30844B608b08DaD20447A6955A6C6E) [GnosisSafe]\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract InterfoldSafeB (eth:0x8B43b2852fc5031D01DDfCDF702973D93A2FF593) [GnosisSafe]\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n EOA (eth:0x8d138c01765483cB79d787ce5933F609CbFDabcF)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract EscrowVotesAdapter (eth:0x8f141B4D294d39e7D1530916A3eD65B3970C6FEc) [interfold/EscrowVotesAdapter]\n +++ description: Upgradeable IVotes adapter that exposes voting power from veFOLD locks. BondedVotes uses it as its primary voting-power source.\n```\n\n```diff\n+ Status: CREATED\n contract ProxyAdmin (eth:0x9393573a9EF85c9A37d91E32702a340084A48b6E) [global/ProxyAdmin]\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract SlashingManager (eth:0x974E865B1BB24AF2a9ef8204AdEA9251Cc7C5FD9) [interfold/SlashingManager]\n +++ description: Policy and evidence router for ciphernode penalties, appeals and bans. Slashing is effective only for reasons with an enabled policy and through a manager authorized by the BondingRegistry.\n```\n\n```diff\n+ Status: CREATED\n contract GnosisSafe (eth:0x97843608a00e2bbc75ab0C1911387E002565DEDE) [GnosisSafe]\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract PublicStagedProposalProcessor (eth:0x9c0Ff283399Bd1D3111E6c9C689066759b7AccDb) [interfold/StagedProposalProcessor]\n +++ description: Upgradeable Aragon staged-proposal plugin that executes DAO actions after proposals pass its configured sequence of voting or manual bodies, thresholds and timing windows.\n```\n\n```diff\n+ Status: CREATED\n contract DkgAggregatorVerifier (eth:0x9e58443eB40A1B08D07f89D36bf69909d401a542) [interfold/DkgAggregatorVerifier]\n +++ description: Immutable generated Honk verifier for the BFV distributed-key-generation aggregation circuit.\n```\n\n```diff\n+ Status: CREATED\n contract VotingEscrowDAO (eth:0x9e9617418DFb9E4daD00E2D1e8f21e214901989B) [zama/ZamaDAO]\n +++ description: Aragon DAO that stores governance state and executes proposal action batches.\n```\n\n```diff\n+ Status: CREATED\n contract ProxyAdmin (eth:0xB3985D7fF844FA0F5E0aaC5feb5DD8BE15e88580) [global/ProxyAdmin]\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract BfvPkVerifier (eth:0xBA1854fDA7A5c127606572e43Dc7B37b7A15bdFf) [interfold/BfvPkVerifier]\n +++ description: BFV public-key proof wrapper. It binds the generated circuit verifier to the expected DKG-fold and C5 verification-key hashes.\n```\n\n```diff\n+ Status: CREATED\n contract InterfoldTicketToken (eth:0xC0B5b49a3949eC4B520eF21BaCFE16e3695F3B5D) [interfold/InterfoldTicketToken]\n +++ description: Non-transferable ERC-20 Votes wrapper for sUSDS used as ciphernode ticket collateral. Only the configured BondingRegistry can deposit, mint, burn, withdraw or pay out the underlying asset.\n```\n\n```diff\n+ Status: CREATED\n contract CiphernodeRegistry (eth:0xC927A5B2d8F68697bC28C0670df05178c93df2d7) [interfold/CiphernodeRegistry]\n +++ description: Registry of ciphernodes and E3 committees. It performs ticket-weighted committee selection, records DKG (distributed key generation) proof anchors and the committee public key (to which cyphertexts can be encrypted), and tracks committee viability.\n```\n\n```diff\n+ Status: CREATED\n contract VotingEscrowClock (eth:0xc9707d36C07c3E0C4215a4574DB760b4e0E79166) [interfold/VotingEscrowClock]\n +++ description: Timestamp clock defining veFOLD epochs, checkpoint cadence and gauge-voting windows.\n```\n\n```diff\n+ Status: CREATED\n contract PublicProposalCondition (eth:0xD0C2A1f94f7c584f0BF5588a519E82AD71dC1EC2) [interfold/SPPRuleCondition]\n +++ description: Aragon condition attached to the public CREATE_PROPOSAL permission. Its mutable rule program determines which callers and proposal calls qualify for the otherwise-public grant.\n```\n\n```diff\n+ Status: CREATED\n contract BondedCheckpoints (eth:0xDbCaeec5B040A134314FfD43aA2ca0D16006f963) [interfold/BondedCheckpoints]\n +++ description: Voting-power checkpoint store updated exclusively by the BondingRegistry so FOLD bonded to ciphernode operators remains visible to governance snapshots.\n```\n\n```diff\n+ Status: CREATED\n contract VotingEscrowMultisig (eth:0xDE2C723Ada1363575c716aFB9477A777B2a2bd7C) [zama/Multisig]\n +++ description: Aragon multisig plugin for creating proposals and collecting approvals against a configurable threshold.\n```\n\n```diff\n+ Status: CREATED\n contract VotingEscrowMemberCondition (eth:0xde423A95f7955CcA8848e0eDCA773F6A2FBA2d76) [interfold/ListedCheckCondition]\n +++ description: Immutable Aragon condition on the voting-escrow multisig's public proposal grant. When the multisig is configured as only-listed, it restricts proposal creators to current listed members. The associated Multisig address is embedded immutably in bytecode.\n```\n\n```diff\n+ Status: CREATED\n contract FOLD (eth:0xE172e9B6cfBeeB5593bDcE3f077356FDb33af904) [interfold/InterfoldToken]\n +++ description: Fixed-cap FOLD governance and ciphernode-bond token. Minting and pre-TGE transfer controls are disabled after the one-way TGE transition, while lock-policy administration can continue until the immutable lock cutoff.\n```\n\n```diff\n+ Status: CREATED\n contract DkgFoldAttestationVerifier (eth:0xE5657c0756B772B600D6c73eDbF046f32129c770) [interfold/DkgFoldAttestationVerifier]\n +++ description: Immutable verifier for EIP-712 attestations that bind selected ciphernode operator keys to the party commitments folded into an E3 distributed-key-generation proof.\n```\n\n```diff\n+ Status: CREATED\n contract VotingPowerCurve (eth:0xf023390C78CF95a77A8910187d5B09BBC05F37e9) [interfold/VotingPowerCurve]\n +++ description: Curve that converts veFOLD lock amount and duration into voting power.\n```\n\n```diff\n+ Status: CREATED\n contract BfvDecryptionVerifier (eth:0xf143b969ea481Ccf251194D15F82007C67AABc53) [interfold/BfvDecryptionVerifier]\n +++ description: Threshold-decryption proof wrapper. It checks the generated circuit proof and binds its parties and public-key context to the committee recorded by CiphernodeRegistry.\n```\n\n```diff\n+ Status: CREATED\n contract ProxyAdmin (eth:0xf1511Fc32abf7Bd3a3213ddCF08C07259b53972b) [global/ProxyAdmin]\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract AdminPlugin (eth:0xF21e25455988887EE797050080141eba67B33920) [interfold/AdminPlugin]\n +++ description: Non-upgradeable Aragon Admin plugin. Holders of its DAO-granted EXECUTE_PROPOSAL permission can submit actions that the plugin forwards immediately, without a vote or onchain delay.\n```\n\n```diff\n+ Status: CREATED\n contract VotingEscrowLockNFT (eth:0xF3eeE0f5E721b8c0073C8d85bf26A3d6EC293A0E) [interfold/VotingEscrowLockNFT]\n +++ description: ERC-721 whose tokens represent individual veFOLD lock positions.\n```\n\n```diff\n+ Status: CREATED\n contract PublicTokenVoting (eth:0xfb4e1e518E5F7F8903233e639662110F31Db0BDC) [interfold/TokenVoting]\n +++ description: Upgradeable Aragon majority-voting plugin used as the voting body in Interfold's public staged proposal path. Voting power comes from the immutable BondedVotes adapter.\n```"
}
]
}
]
+1 -0
null
+1 -0
null
+1 -0
null
+1 -0
null
+15 -2
+0 -1
{
"adversaries": {
"promise": {
"protects": "amount",
"text": "Hides balances and transfer amounts. Senders, recipients and every wrap and unwrap amount are public."
},
"adversaries": [
{
"id": "publicObserver",
"label": "Public observer",
"description": "Everyone with a block explorer and some basic tools. Sees every public onchain event, but does no correlation beyond following links.",
"examples": "A curious counterparty, an employer, a journalist."
},
{
"id": "chainAnalyst",
"label": "Chain analyst",
"description": "Scrapes all public data and correlates it: timing, amounts, gas and wallet fingerprints, address clusters.",
"examples": "Chain analytics firms, ZachXBT, data brokers."
},
{
"id": "networkObserver",
"label": "Network observer",
"description": "Sits between the user and the services and sees traffic only: ISPs, VPNs, Tor exits, public RPCs and relayers. Learns IP addresses, timing, fingerprints and ciphertext. Services the operator runs count as the insider.",
"examples": "Infura or Alchemy, a Tornado relayer, a wallet vendor selling telemetry, Google captcha or analytics in the dapp frontend."
},
{
"id": "privilegedInsider",
"label": "Privileged insider",
"description": "Holds an operator role, custodies funds, receives keys or plaintext by design, or delivers the client: upgrade admin, custodian, view key holder, enclave operator, association set provider, hosted prover, registry, frontend host.",
"examples": "A compliance backdoor key, a DAO with an upgrade key, a KMS committee, an ASP operator, a custodial bridge."
},
{
"id": "futureAdversary",
"label": "Future adversary",
"description": "Harvest now, decrypt later. Holds every byte ever published and runs the known quantum attacks: elliptic curves, pairings and RSA fall. Hashes, symmetric ciphers and post-quantum schemes stand until an attack on them is known.",
"examples": "An intelligence agency archiving chain data today, then anyone once a break is public."
}
],
"fields": [
{
"id": "sender",
"label": "Sender",
"subject": "Sender",
"promiseLabel": "Sender privacy",
"description": "The Ethereum address that funds entered from, or that initiated a transfer."
},
{
"id": "recipient",
"label": "Recipient",
"subject": "Recipient",
"promiseLabel": "Recipient privacy",
"description": "Who receives the funds: the address they exit to, the receiver of a transfer, or whoever controls a one-time receiving address."
},
{
"id": "amount",
"label": "Amount",
"subject": "Amounts",
"promiseLabel": "Amount privacy",
"description": "The value moved."
},
{
"id": "asset",
"label": "Asset",
"subject": "Asset",
"promiseLabel": "Asset privacy",
"description": "Which token is moved."
},
{
"id": "linkage",
"label": "Link",
"subject": "Link",
"promiseLabel": "Link privacy",
"description": "Whether the entry and exit of the same funds, or sender and recipient of the same transfer, can be tied together."
}
],
"cells": {
"publicObserver": {
"sentiment": "warning",
"exposureShort": "Wraps and unwraps publish their amounts, while confidential transfers keep theirs encrypted.",
"exposureContinued": "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.",
"interior": {
"sender": "exposed",
"recipient": "exposed",
"amount": "private",
"asset": "exposed",
"linkage": "exposed"
},
"sources": [
{
"title": "Wrap event carries the clear amount",
"url": "https://github.com/OpenZeppelin/openzeppelin-confidential-contracts/blob/23ba15402346027f2416667acbb1e741179f8485/contracts/token/ERC7984/extensions/ERC7984ERC20Wrapper.sol#L256"
},
{
"title": "Unwrap makes the burned amount publicly decryptable",
"url": "https://github.com/OpenZeppelin/openzeppelin-confidential-contracts/blob/23ba15402346027f2416667acbb1e741179f8485/contracts/token/ERC7984/extensions/ERC7984ERC20Wrapper.sol#L262-L268"
},
{
"title": "Either party can disclose a transfer amount",
"url": "https://github.com/OpenZeppelin/openzeppelin-confidential-contracts/blob/23ba15402346027f2416667acbb1e741179f8485/contracts/token/ERC7984/ERC7984.sol#L202-L209"
}
],
"id": "publicObserver",
"value": "Amounts at risk",
"alsoExposed": []
},
"chainAnalyst": {
"sentiment": "warning",
"exposureShort": "An account's balance is bounded by its public wraps and unwraps, and exact if it never took part in a confidential transfer.",
"exposureContinued": "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.",
"interior": {
"sender": "exposed",
"recipient": "exposed",
"amount": {
"verdict": "atRisk",
"note": "Hidden only within an account's confidential transfers."
},
"asset": "exposed",
"linkage": "exposed"
},
"sources": [
{
"title": "ERC-7984: public sender, recipient and encrypted amount per transfer",
"url": "https://eips.ethereum.org/EIPS/eip-7984"
},
{
"title": "Explorer linking unwraps to their wraps, searchable by address, handle and transaction",
"url": "https://sekuba.github.io/zama-graph/"
}
],
"id": "chainAnalyst",
"value": "Amounts at risk",
"alsoExposed": []
},
"networkObserver": {
"sentiment": "warning",
"exposureShort": "Zama's app is closed source, so what it sends to third parties is up to Zama and can change at any time.",
"exposureContinued": "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.",
"interior": {
"sender": "exposed",
"recipient": "exposed",
"amount": "private",
"asset": "exposed",
"linkage": "exposed"
},
"sources": [
{
"title": "Inputs are encrypted on the device",
"url": "https://github.com/zama-ai/relayer-sdk/blob/d06f1e585a78181135cb602109e5fa3da523b48d/src/relayer/sendEncryption.ts#L133-L146"
},
{
"title": "Balance reads use a device ML-KEM key pair",
"url": "https://github.com/zama-ai/relayer-sdk/blob/d06f1e585a78181135cb602109e5fa3da523b48d/src/relayer/userDecrypt.ts#L85-L89"
},
{
"title": "The app's content security policy lists every endpoint it contacts",
"url": "https://app.zama.org"
},
{
"title": "The SDK the app bundles (@zama-fhe/sdk 3.6.0) is open source",
"url": "https://github.com/zama-ai/sdk"
}
],
"id": "networkObserver",
"value": "Amounts at risk",
"alsoExposed": []
},
"privilegedInsider": {
"sentiment": "bad",
"exposureShort": "Any 5 of the 13 KMS operators can combine their key shares and decrypt every balance and transfer ever made.",
"exposureContinued": "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.",
"interior": {
"sender": "exposed",
"recipient": "exposed",
"amount": "exposed",
"asset": "exposed",
"linkage": "exposed"
},
"sources": [
{
"title": "KMS parties and key-share threshold",
"url": "https://github.com/zama-ai/kms/blob/b5cd5cf465dc488ff04ac8c19f3ef12877abffa0/ai-docs/ARCHITECTURE.md#L22-L25"
},
{
"title": "Observer gets a wildcard delegation without expiration",
"url": "https://github.com/zama-ai/protocol-apps/blob/85eef95c797da20875fe7eeae7f8d212d760486f/contracts/confidential-wrapper/contracts/ConfidentialWrapper.sol#L395-L403"
},
{
"title": "Zama's official app",
"url": "https://docs.zama.org/protocol/protocol-apps/apps"
}
],
"id": "privilegedInsider",
"value": "Amounts exposed",
"alsoExposed": []
},
"futureAdversary": {
"sentiment": "bad",
"exposureShort": "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.",
"exposureContinued": "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.",
"interior": {
"sender": "exposed",
"recipient": "exposed",
"amount": "exposed",
"asset": "exposed",
"linkage": "exposed"
},
"sources": [
{
"contract": "Decryption",
"title": "A wallet signature authorizes a user decryption request"
},
{
"contract": "ACL",
"title": "Permissions on past ciphertexts have no expiry"
},
{
"title": "Replies are encrypted to the key the request names",
"url": "https://github.com/zama-ai/kms/blob/b5cd5cf465dc488ff04ac8c19f3ef12877abffa0/core/service/src/cryptography/hybrid_ml_kem.rs"
},
{
"title": "Coprocessor ciphertext store (public listing)",
"url": "https://coprocessor-1.mainnet.zama.org/"
}
],
"id": "futureAdversary",
"value": "Amounts exposed",
"alsoExposed": []
}
}
},
"anonymitySet": {
"type": "not-applicable",
"description": "Only amounts are hidden. Every transfer names its sender and recipient."
},
"attributes": [
{
"id": "fhe",
"label": "FHE",
"description": "Uses fully homomorphic encryption for private computation over encrypted values."
},
{
"id": "privateAmounts",
"label": "Private amounts",
"description": "Transfer amounts are private, while sender and recipient addresses remain public."
},
{
"id": "anyAmount",
"label": "Any amount",
"description": "Deposits and withdrawals can have any size."
},
{
"id": "defi",
"label": "DeFi",
"description": "Interop with DeFi vaults from within the confidential token."
}
],
"category": {
"id": "confidentialAmounts",
"label": "Confidential amounts",
"description": "Accounts and counterparties are public, balances and transfer amounts are encrypted."
},
"exitWindow": {
"value": "None",
"sentiment": "bad",
"orderHint": 0,
"description": "The governance multisigs upgrade the contracts instantly, before users can leave.",
"walkawayTest": {
"passed": false,
"reason": "Every unwrap needs a decryption signed by 7 of 13 KMS operators, and every input needs Zama's coprocessor."
}
},
"quantumResistant": true,
"reproducibility": {
"value": "Partially reproducible",
"sentiment": "warning",
"description": "The contracts, the SDK and the KMS and coprocessor sources are public. Zama's app source is unpublished."
},
"riskSummary": "## Funds can be stolen if\n1. either governance multisig passes a malicious upgrade of the confidential tokens or Zama's protocol contracts, which takes effect instantly.\n2. the current or any retained KMS signer set, which either multisig can create or retune instantly, attests an inflated unwrap amount.\n3. Zama's coprocessor (1/1) accepts invalid encrypted inputs that bypass balance checks.\n
\n## Funds can be lost if\n1. an underlying token issuer blacklists a confidential token's address.\n2. the token owner or an underlying denylist blocks a user before they unwrap.\n3. an appointed pauser halts a token and the owner keeps it paused.\n4. the KMS or Zama's coprocessor stops or loses ciphertext data, which halts every unwrap.\n
\n## Privacy can be lost if\n1. 5 of 13 KMS operators combine their key shares (see privileged insider).\n2. the token owner appoints an observer or upgrades the token (see privileged insider).\n3. Zama changes its closed-source app to leak amounts to itself or to third parties (see privileged insider and network observer).\n4. public wraps and unwraps bound a user's balance (see chain analyst).\n5. elliptic-curve cryptography is broken, so anyone can impersonate a user to the KMS and decrypt that user's history (see future adversary).",
"tokens": [
{
"token": {
"address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
"iconUrl": "https://assets.coingecko.com/coins/images/6319/large/usdc.png?1696506694",
"symbol": "USDC",
"decimals": 6,
"priceId": "usd-coin",
"sinceTimestamp": 1766750819
},
"buckets": [
{
"id": "zama-cw-cUSDC",
"type": "pool",
"label": "cUSDC token",
"address": "eth:0xe978F22157048E5DB8E5d07971376e86671672B2",
"sinceTimestamp": 1766750819,
"deposit": {
"event": "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
"extractor": "erc20Transfer",
"params": {
"to": "0xe978F22157048E5DB8E5d07971376e86671672B2"
}
},
"withdrawal": {
"event": "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
"extractor": "erc20Transfer",
"params": {
"from": "0xe978F22157048E5DB8E5d07971376e86671672B2"
}
}
}
]
},
{
"token": {
"address": "0xdAC17F958D2ee523a2206206994597C13D831ec7",
"iconUrl": "https://assets.coingecko.com/coins/images/325/large/Tether.png?1696501661",
"symbol": "USDT",
"decimals": 6,
"priceId": "tether",
"sinceTimestamp": 1766750831
},
"buckets": [
{
"id": "zama-cw-cUSDT",
"type": "pool",
"label": "cUSDT token",
"address": "eth:0xAe0207C757Aa2B4019Ad96edD0092ddc63EF0c50",
"sinceTimestamp": 1766750831,
"deposit": {
"event": "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
"extractor": "erc20Transfer",
"params": {
"to": "0xAe0207C757Aa2B4019Ad96edD0092ddc63EF0c50"
}
},
"withdrawal": {
"event": "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
"extractor": "erc20Transfer",
"params": {
"from": "0xAe0207C757Aa2B4019Ad96edD0092ddc63EF0c50"
}
}
}
]
},
{
"token": {
"address": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",
"iconUrl": "https://assets.coingecko.com/coins/images/2518/large/weth.png?1696503332",
"symbol": "WETH",
"decimals": 18,
"priceId": "weth",
"sinceTimestamp": 1766750843
},
"buckets": [
{
"id": "zama-cw-cWETH",
"type": "pool",
"label": "cWETH token",
"address": "eth:0xda9396b82634Ea99243cE51258B6A5Ae512D4893",
"sinceTimestamp": 1766750843,
"deposit": {
"event": "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
"extractor": "erc20Transfer",
"params": {
"to": "0xda9396b82634Ea99243cE51258B6A5Ae512D4893"
}
},
"withdrawal": {
"event": "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
"extractor": "erc20Transfer",
"params": {
"from": "0xda9396b82634Ea99243cE51258B6A5Ae512D4893"
}
}
}
]
},
{
"token": {
"address": "0xA12CC123ba206d4031D1c7f6223D1C2Ec249f4f3",
"iconUrl": "https://coin-images.coingecko.com/coins/images/70921/large/zama.png?1764591992",
"symbol": "ZAMA",
"decimals": 18,
"priceId": "zama",
"sinceTimestamp": 1766750867
},
"buckets": [
{
"id": "zama-cw-cZAMA",
"type": "pool",
"label": "cZAMA token",
"address": "eth:0x80CB147Fd86dC6dEe3Eee7e4Cee33d1397d98071",
"sinceTimestamp": 1766750867,
"deposit": {
"event": "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
"extractor": "erc20Transfer",
"params": {
"to": "0x80CB147Fd86dC6dEe3Eee7e4Cee33d1397d98071"
}
},
"withdrawal": {
"event": "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
"extractor": "erc20Transfer",
"params": {
"from": "0x80CB147Fd86dC6dEe3Eee7e4Cee33d1397d98071"
}
}
}
]
},
{
"token": {
"address": "0x27f6c8289550fCE67f6B50BeD1F519966aFE5287",
"iconUrl": "https://coin-images.coingecko.com/coins/images/70647/large/tgbp-square.png?1762953800",
"symbol": "tGBP",
"decimals": 18,
"priceId": "tokenised-gbp",
"sinceTimestamp": 1767000887
},
"buckets": [
{
"id": "zama-cw-ctGBP",
"type": "pool",
"label": "ctGBP token",
"address": "eth:0xa873750ccBafD5ec7Dd13bfD5237d7129832eDD9",
"sinceTimestamp": 1767000887,
"deposit": {
"event": "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
"extractor": "erc20Transfer",
"params": {
"to": "0xa873750ccBafD5ec7Dd13bfD5237d7129832eDD9"
}
},
"withdrawal": {
"event": "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
"extractor": "erc20Transfer",
"params": {
"from": "0xa873750ccBafD5ec7Dd13bfD5237d7129832eDD9"
}
}
}
]
},
{
"token": {
"address": "0x68749665FF8D2d112Fa859AA293F07A622782F38",
"iconUrl": "https://assets.coingecko.com/coins/images/10481/large/Tether_Gold.png?1696510471",
"symbol": "XAUt",
"decimals": 6,
"priceId": "tether-gold",
"sinceTimestamp": 1772116091
},
"buckets": [
{
"id": "zama-cw-cXAUt",
"type": "pool",
"label": "cXAUt token",
"address": "eth:0x73cc9aF9d6BEFdb3c3fAf8a5E8c05Cb95FdaEEf1",
"sinceTimestamp": 1772116091,
"deposit": {
"event": "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
"extractor": "erc20Transfer",
"params": {
"to": "0x73cc9aF9d6BEFdb3c3fAf8a5E8c05Cb95FdaEEf1"
}
},
"withdrawal": {
"event": "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
"extractor": "erc20Transfer",
"params": {
"from": "0x73cc9aF9d6BEFdb3c3fAf8a5E8c05Cb95FdaEEf1"
}
}
}
]
},
{
"token": {
"address": "0xbeeffABcd0dB09589Dd21854aa760C52aB4bf04F",
"iconUrl": "https://coin-images.coingecko.com/coins/images/70647/large/tgbp-square.png?1762953800",
"symbol": "bbqTGBP",
"decimals": 18,
"priceId": "tokenised-gbp",
"sinceTimestamp": 1780585031
},
"buckets": [
{
"id": "zama-cw-cbbqTGBP",
"type": "pool",
"label": "cbbqTGBP token",
"address": "eth:0xBA4cFF6ED6F7Cb2A58776dECa4E984b498446762",
"sinceTimestamp": 1780585031,
"deposit": {
"event": "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
"extractor": "erc20Transfer",
"params": {
"to": "0xBA4cFF6ED6F7Cb2A58776dECa4E984b498446762"
}
},
"withdrawal": {
"event": "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
"extractor": "erc20Transfer",
"params": {
"from": "0xBA4cFF6ED6F7Cb2A58776dECa4E984b498446762"
}
}
}
]
},
{
"token": {
"address": "0xbEEF00A59B577423653A1526c7009bdE103F542B",
"iconUrl": "https://coin-images.coingecko.com/coins/images/6319/large/USDC.png?1769615602",
"symbol": "steakcUSDC",
"decimals": 18,
"priceId": "usd-coin",
"sinceTimestamp": 1781877707
},
"buckets": [
{
"id": "zama-cw-csteakcUSDC",
"type": "pool",
"label": "csteakcUSDC token",
"address": "eth:0x66Bf74E96900D1a19c7070D939D124f2F565C458",
"sinceTimestamp": 1781877707,
"deposit": {
"event": "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
"extractor": "erc20Transfer",
"params": {
"to": "0x66Bf74E96900D1a19c7070D939D124f2F565C458"
}
},
"withdrawal": {
"event": "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
"extractor": "erc20Transfer",
"params": {
"from": "0x66Bf74E96900D1a19c7070D939D124f2F565C458"
}
}
}
]
},
{
"token": {
"address": "0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599",
"iconUrl": "https://assets.coingecko.com/coins/images/7598/large/wrapped_bitcoin_wbtc.png?1696507857",
"symbol": "WBTC",
"decimals": 8,
"priceId": "wrapped-bitcoin",
"sinceTimestamp": 1789148087
},
"buckets": [
{
"id": "zama-cw-cWBTC",
"type": "pool",
"label": "cWBTC token",
"address": "eth:0xd86aE89C089B380f064Fe01899B4071F1eb6Bb3d",
"sinceTimestamp": 1789148087,
"deposit": {
"event": "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
"extractor": "erc20Transfer",
"params": {
"to": "0xd86aE89C089B380f064Fe01899B4071F1eb6Bb3d"
}
},
"withdrawal": {
"event": "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
"extractor": "erc20Transfer",
"params": {
"from": "0xd86aE89C089B380f064Fe01899B4071F1eb6Bb3d"
}
}
}
]
},
{
"token": {
"address": "0x00000000eFE302BEAA2b3e6e1b18d08D69a9012a",
"iconUrl": "https://coin-images.coingecko.com/coins/images/39284/large/AUSD_1024px.png?1764684132",
"symbol": "AUSD",
"decimals": 6,
"priceId": "agora-dollar",
"sinceTimestamp": 1789146719
},
"buckets": [
{
"id": "zama-cw-cAUSD",
"type": "pool",
"label": "cAUSD token",
"address": "eth:0xEa9A15A29DD180c40442142CaeEfC491d37bfDB2",
"sinceTimestamp": 1789146719,
"deposit": {
"event": "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
"extractor": "erc20Transfer",
"params": {
"to": "0xEa9A15A29DD180c40442142CaeEfC491d37bfDB2"
}
},
"withdrawal": {
"event": "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
"extractor": "erc20Transfer",
"params": {
"from": "0xEa9A15A29DD180c40442142CaeEfC491d37bfDB2"
}
}
}
]
},
{
"token": {
"address": "0x808507121B80c02388fAd14726482e061B8da827",
"iconUrl": "https://assets.coingecko.com/coins/images/15069/large/Pendle_Logo_Normal-03.png?1696514728",
"symbol": "PENDLE",
"decimals": 18,
"priceId": "pendle",
"sinceTimestamp": 1789150991
},
"buckets": [
{
"id": "zama-cw-cPENDLE",
"type": "pool",
"label": "cPENDLE token",
"address": "eth:0x8900123F7e17709C1D80eda1E611A9503Cf1B3df",
"sinceTimestamp": 1789150991,
"deposit": {
"event": "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
"extractor": "erc20Transfer",
"params": {
"to": "0x8900123F7e17709C1D80eda1E611A9503Cf1B3df"
}
},
"withdrawal": {
"event": "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
"extractor": "erc20Transfer",
"params": {
"from": "0x8900123F7e17709C1D80eda1E611A9503Cf1B3df"
}
}
}
]
},
{
"token": {
"address": "0xbeef003C68896c7D2c3c60d363e8d71a49Ab2bf9",
"iconUrl": "https://coin-images.coingecko.com/coins/images/325/large/Tether.png?1696501661",
"symbol": "steakUSDT",
"decimals": 18,
"priceId": "tether",
"sinceTimestamp": 1789152239
},
"buckets": [
{
"id": "zama-cw-csteakUSDT",
"type": "pool",
"label": "csteakUSDT token",
"address": "eth:0x1F6A937119c0c34Db0a2c4F000386a3BfD4A9e73",
"sinceTimestamp": 1789152239,
"deposit": {
"event": "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
"extractor": "erc20Transfer",
"params": {
"to": "0x1F6A937119c0c34Db0a2c4F000386a3BfD4A9e73"
}
},
"withdrawal": {
"event": "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
"extractor": "erc20Transfer",
"params": {
"from": "0x1F6A937119c0c34Db0a2c4F000386a3BfD4A9e73"
}
}
}
]
},
{
"token": {
"address": "0xbeeff07d991C04CD640DE9F15C08ba59c4FEDEb7",
"iconUrl": "https://coin-images.coingecko.com/coins/images/325/large/Tether.png?1696501661",
"symbol": "bbqUSDT",
"decimals": 18,
"priceId": "tether",
"sinceTimestamp": 1789152695
},
"buckets": [
{
"id": "zama-cw-cbbqUSDT",
"type": "pool",
"label": "cbbqUSDT token",
"address": "eth:0x80Ae7dbCe3c1696d3eeD04Ec8348c3C432322273",
"sinceTimestamp": 1789152695,
"deposit": {
"event": "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
"extractor": "erc20Transfer",
"params": {
"to": "0x80Ae7dbCe3c1696d3eeD04Ec8348c3C432322273"
}
},
"withdrawal": {
"event": "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
"extractor": "erc20Transfer",
"params": {
"from": "0x80Ae7dbCe3c1696d3eeD04Ec8348c3C432322273"
}
}
}
]
},
{
"token": {
"address": "0xbeeff2C5bF38f90e3482a8b19F12E5a6D2FCa757",
"iconUrl": "https://coin-images.coingecko.com/coins/images/6319/large/USDC.png?1769615602",
"symbol": "bbqUSDC",
"decimals": 18,
"priceId": "usd-coin",
"sinceTimestamp": 1789153067
},
"buckets": [
{
"id": "zama-cw-cbbqUSDC",
"type": "pool",
"label": "cbbqUSDC token",
"address": "eth:0x501b014f86a73A7199E00cB31C0e9565Ac51e51B",
"sinceTimestamp": 1789153067,
"deposit": {
"event": "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
"extractor": "erc20Transfer",
"params": {
"to": "0x501b014f86a73A7199E00cB31C0e9565Ac51e51B"
}
},
"withdrawal": {
"event": "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
"extractor": "erc20Transfer",
"params": {
"from": "0x501b014f86a73A7199E00cB31C0e9565Ac51e51B"
}
}
}
]
},
{
"token": {
"address": "0x3d5EcCb62974178236A768A7ef14D3ce468Fbe91",
"iconUrl": "https://coin-images.coingecko.com/coins/images/7598/large/WBTCLOGO.png?1764496367",
"symbol": "armcWBTC",
"decimals": 18,
"priceId": "wrapped-bitcoin",
"sinceTimestamp": 1789148987
},
"buckets": [
{
"id": "zama-cw-carmcWBTC",
"type": "pool",
"label": "carmcWBTC token",
"address": "eth:0xF921A5B0634f4236B21A4e948317abf9a2E86B6f",
"sinceTimestamp": 1789148987,
"deposit": {
"event": "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
"extractor": "erc20Transfer",
"params": {
"to": "0xF921A5B0634f4236B21A4e948317abf9a2E86B6f"
}
},
"withdrawal": {
"event": "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
"extractor": "erc20Transfer",
"params": {
"from": "0xF921A5B0634f4236B21A4e948317abf9a2E86B6f"
}
}
}
]
},
{
"token": {
"address": "0x500aE64100D7DbDb640531085C2F5d40cDC8930D",
"iconUrl": "https://coin-images.coingecko.com/coins/images/325/large/Tether.png?1696501661",
"symbol": "armUSDTs",
"decimals": 18,
"priceId": "tether",
"sinceTimestamp": 1789150187
},
"buckets": [
{
"id": "zama-cw-carmUSDTs",
"type": "pool",
"label": "carmUSDTs token",
"address": "eth:0xbaC6DeDf2C10D6D381F9DBd9EFd69D93FfCef50B",
"sinceTimestamp": 1789150187,
"deposit": {
"event": "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
"extractor": "erc20Transfer",
"params": {
"to": "0xbaC6DeDf2C10D6D381F9DBd9EFd69D93FfCef50B"
}
},
"withdrawal": {
"event": "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
"extractor": "erc20Transfer",
"params": {
"from": "0xbaC6DeDf2C10D6D381F9DBd9EFd69D93FfCef50B"
}
}
}
]
},
{
"token": {
"address": "0xA2EAaD0D586cF9FD73bb2c09cF6A7E3e187D68cd",
"iconUrl": "https://coin-images.coingecko.com/coins/images/6319/large/USDC.png?1769615602",
"symbol": "armUSDCs",
"decimals": 18,
"priceId": "usd-coin",
"sinceTimestamp": 1789151411
},
"buckets": [
{
"id": "zama-cw-carmUSDCs",
"type": "pool",
"label": "carmUSDCs token",
"address": "eth:0x77F8207ee451441336538bA07a2F425780dED8DB",
"sinceTimestamp": 1789151411,
"deposit": {
"event": "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
"extractor": "erc20Transfer",
"params": {
"to": "0x77F8207ee451441336538bA07a2F425780dED8DB"
}
},
"withdrawal": {
"event": "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
"extractor": "erc20Transfer",
"params": {
"from": "0x77F8207ee451441336538bA07a2F425780dED8DB"
}
}
}
]
},
{
"token": {
"address": "0xBf29043164660C60A2a72Cd15FFe2304e87B6838",
"iconUrl": "https://coin-images.coingecko.com/coins/images/325/large/Tether.png?1696501661",
"symbol": "armUSDTp",
"decimals": 18,
"priceId": "tether",
"sinceTimestamp": 1789153331
},
"buckets": [
{
"id": "zama-cw-carmUSDTp",
"type": "pool",
"label": "carmUSDTp token",
"address": "eth:0x63a60aCC304b84eF829b263f28e7b636Bf77d45A",
"sinceTimestamp": 1789153331,
"deposit": {
"event": "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
"extractor": "erc20Transfer",
"params": {
"to": "0x63a60aCC304b84eF829b263f28e7b636Bf77d45A"
}
},
"withdrawal": {
"event": "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
"extractor": "erc20Transfer",
"params": {
"from": "0x63a60aCC304b84eF829b263f28e7b636Bf77d45A"
}
}
}
]
},
{
"token": {
"address": "0x5dc53a23AdC9f2Bed98de6F59F7F309a7c71FF2B",
"iconUrl": "https://coin-images.coingecko.com/coins/images/6319/large/USDC.png?1769615602",
"symbol": "armUSDCp",
"decimals": 18,
"priceId": "usd-coin",
"sinceTimestamp": 1789150751
},
"buckets": [
{
"id": "zama-cw-carmUSDCp",
"type": "pool",
"label": "carmUSDCp token",
"address": "eth:0x2ebBd099f66b0ca94DD82B4c06fe3eEf6AFf853c",
"sinceTimestamp": 1789150751,
"deposit": {
"event": "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
"extractor": "erc20Transfer",
"params": {
"to": "0x2ebBd099f66b0ca94DD82B4c06fe3eEf6AFf853c"
}
},
"withdrawal": {
"event": "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
"extractor": "erc20Transfer",
"params": {
"from": "0x2ebBd099f66b0ca94DD82B4c06fe3eEf6AFf853c"
}
}
}
]
},
{
"token": {
"address": "0x55C1B6e461a6334B567bAF0FEb5D728715446f05",
"iconUrl": "https://coin-images.coingecko.com/coins/images/6319/large/USDC.png?1769615602",
"symbol": "pendleUSDC",
"decimals": 18,
"priceId": "usd-coin",
"sinceTimestamp": 1789150499
},
"buckets": [
{
"id": "zama-cw-cpendleUSDC",
"type": "pool",
"label": "cpendleUSDC token",
"address": "eth:0xb6e5299fc56053DD5440104Fd6Fd2A3CD064edbC",
"sinceTimestamp": 1789150499,
"deposit": {
"event": "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
"extractor": "erc20Transfer",
"params": {
"to": "0xb6e5299fc56053DD5440104Fd6Fd2A3CD064edbC"
}
},
"withdrawal": {
"event": "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
"extractor": "erc20Transfer",
"params": {
"from": "0xb6e5299fc56053DD5440104Fd6Fd2A3CD064edbC"
}
}
}
]
},
{
"token": {
"address": "0x32401B9fb79065Bc15949DE0BD43927492f02F0C",
"iconUrl": "https://coin-images.coingecko.com/coins/images/39284/large/AUSD_1024px.png?1764684132",
"symbol": "fAUSDe",
"decimals": 18,
"priceId": "agora-dollar",
"sinceTimestamp": 1789148387
},
"buckets": [
{
"id": "zama-cw-cfAUSDe",
"type": "pool",
"label": "cfAUSDe token",
"address": "eth:0x76A3f985315aAc9789Cb5BF8A5bb83BFF55FD5a6",
"sinceTimestamp": 1789148387,
"deposit": {
"event": "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
"extractor": "erc20Transfer",
"params": {
"to": "0x76A3f985315aAc9789Cb5BF8A5bb83BFF55FD5a6"
}
},
"withdrawal": {
"event": "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
"extractor": "erc20Transfer",
"params": {
"from": "0x76A3f985315aAc9789Cb5BF8A5bb83BFF55FD5a6"
}
}
}
]
},
{
"token": {
"address": "0xb48C056C5608bA2Ee4cD94AF2bF4b1F25295Bd7e",
"iconUrl": "https://coin-images.coingecko.com/coins/images/325/large/Tether.png?1696501661",
"symbol": "fcUSDT",
"decimals": 18,
"priceId": "tether",
"sinceTimestamp": 1789388567
},
"buckets": [
{
"id": "zama-cw-cfcUSDT",
"type": "pool",
"label": "cfcUSDT token",
"address": "eth:0xA28A369Df348ac232E4DAF7B0Ef90280d8707D7F",
"sinceTimestamp": 1789388567,
"deposit": {
"event": "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
"extractor": "erc20Transfer",
"params": {
"to": "0xA28A369Df348ac232E4DAF7B0Ef90280d8707D7F"
}
},
"withdrawal": {
"event": "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
"extractor": "erc20Transfer",
"params": {
"from": "0xA28A369Df348ac232E4DAF7B0Ef90280d8707D7F"
}
}
}
]
},
{
"token": {
"address": "0xc207d3f66537D7F66456808379A0E560cF20Da36",
"iconUrl": "https://coin-images.coingecko.com/coins/images/6319/large/USDC.png?1769615602",
"symbol": "roxcUSDC",
"decimals": 18,
"priceId": "usd-coin",
"sinceTimestamp": 1789153955
},
"buckets": [
{
"id": "zama-cw-croxcUSDC",
"type": "pool",
"label": "croxcUSDC token",
"address": "eth:0xB1B18Ad1F16D744c470cb6B09Cb826AfFcc9EB30",
"sinceTimestamp": 1789153955,
"deposit": {
"event": "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
"extractor": "erc20Transfer",
"params": {
"to": "0xB1B18Ad1F16D744c470cb6B09Cb826AfFcc9EB30"
}
},
"withdrawal": {
"event": "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
"extractor": "erc20Transfer",
"params": {
"from": "0xB1B18Ad1F16D744c470cb6B09Cb826AfFcc9EB30"
}
}
}
]
},
{
"token": {
"address": "0xE0181090c22579B6A217f1522cbf8c9f1F0C1965",
"iconUrl": "https://coin-images.coingecko.com/coins/images/6319/large/USDC.png?1769615602",
"symbol": "roxUSDCy",
"decimals": 18,
"priceId": "usd-coin",
"sinceTimestamp": 1789154375
},
"buckets": [
{
"id": "zama-cw-croxUSDCy",
"type": "pool",
"label": "croxUSDCy token",
"address": "eth:0x4FCCF8046FB7FB7AB76321BD39C27453e396B88f",
"sinceTimestamp": 1789154375,
"deposit": {
"event": "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
"extractor": "erc20Transfer",
"params": {
"to": "0x4FCCF8046FB7FB7AB76321BD39C27453e396B88f"
}
},
"withdrawal": {
"event": "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
"extractor": "erc20Transfer",
"params": {
"from": "0x4FCCF8046FB7FB7AB76321BD39C27453e396B88f"
}
}
}
]
},
{
"token": {
"address": "0xB344e331A3cDa61D329fb3Cca2Be5942da87c418",
"iconUrl": "https://coin-images.coingecko.com/coins/images/39284/large/AUSD_1024px.png?1764684132",
"symbol": "PAPY",
"decimals": 18,
"priceId": "agora-dollar",
"sinceTimestamp": 1789151975
},
"buckets": [
{
"id": "zama-cw-cPAPY",
"type": "pool",
"label": "cPAPY token",
"address": "eth:0x9ABb8f3dC2863B1F108DeD7ea41902fEF6732A8c",
"sinceTimestamp": 1789151975,
"deposit": {
"event": "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
"extractor": "erc20Transfer",
"params": {
"to": "0x9ABb8f3dC2863B1F108DeD7ea41902fEF6732A8c"
}
},
"withdrawal": {
"event": "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
"extractor": "erc20Transfer",
"params": {
"from": "0x9ABb8f3dC2863B1F108DeD7ea41902fEF6732A8c"
}
}
}
]
}
],
"trackedOn": [
"ethereum"
],
"upgradesAndGovernance": {
"content": "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.\n\nSafeL2 (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."
}
}
+1 -1
{
"baseTimestamp": 1791789284,
"baseTimestamp": 1792414872,
"contractsDiscoDriven": false,
"hasDiscoUi": false,
"isDiscoDriven": false,
"permissionsDiscoDriven": false
}
+14 -0
[
{
"id": "973a5756",
"date": "Mon, 19 Oct 2026 13:02:56 GMT",
"timestamp": 1792414872,
"description": "Safe 0x97E1…4e54 upgraded from Safe 1.4.1 to 1.5.0. The Aragon Multisig template now models its members, which changes no resolved permission here.",
"isHighSeverity": true,
"changeCount": 6,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Safe (eth:0x97E18544e156724E4076945F10c288ecBBC94e54) [GnosisSafe] {\n +++ description: None\n sourceHashes.1:\n- \"0xe23c519b7324d6dc9132c8567ac55ae72bdf168c914d22825c7614d822364b0f\"\n+ \"0xb66849da6643e8cd188f73efe4edb32704a1540eda5b1aef77a2217ad2d81f78\"\n values.$implementation:\n- \"eth:0x41675C099F32341bf84BFc5382aF534df5C7461a\"\n+ \"eth:0xFf51A5898e281Db6DfC7855790607438dF2ca44b\"\n values.getChainId:\n- 1\n values.VERSION:\n- \"1.4.1\"\n+ \"1.5.0\"\n implementationNames.eth:0x41675C099F32341bf84BFc5382aF534df5C7461a:\n- \"Safe\"\n implementationNames.eth:0xFf51A5898e281Db6DfC7855790607438dF2ca44b:\n+ \"Safe\"\n }\n```"
}
]
},
{
"id": "d2fea842",
"date": "Mon, 12 Oct 2026 07:17:01 GMT",
"timestamp": 1791789284,
"description": "Gateway coprocessors expanded from one to five, and their majority threshold rose to three. ACL updates now need three responses.",
"isHighSeverity": true,
"changeCount": 28,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract MultichainACL (zama:0x055d9FD50a612A9027716ec8db663E7D68562468) [zama/MultichainACL] {\n +++ 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.\n+++ description: Minimum number of matching coprocessor messages required before an ACL update reaches consensus.\n+++ severity: HIGH\n values.gatewayCoprocessorMajorityThreshold:\n- 1\n+ 3\n+++ description: Coprocessor transaction-sender addresses configured in GatewayConfig. These accounts may update the gateway ACL mirror once enough coprocessors agree.\n+++ severity: HIGH\n values.gatewayCoprocessorTxSenders.1:\n+ \"zama:0x679953d556e71F62673F38EE4775d6E7CCb23E64\"\n+++ description: Coprocessor transaction-sender addresses configured in GatewayConfig. These accounts may update the gateway ACL mirror once enough coprocessors agree.\n+++ severity: HIGH\n values.gatewayCoprocessorTxSenders.2:\n+ \"zama:0xF6ee37de6bDaB31597E90ED70448B92073cD9634\"\n+++ description: Coprocessor transaction-sender addresses configured in GatewayConfig. These accounts may update the gateway ACL mirror once enough coprocessors agree.\n+++ severity: HIGH\n values.gatewayCoprocessorTxSenders.3:\n+ \"zama:0x2e809E897AA8046Ff6e936502b6275F0B8993456\"\n+++ description: Coprocessor transaction-sender addresses configured in GatewayConfig. These accounts may update the gateway ACL mirror once enough coprocessors agree.\n+++ severity: HIGH\n values.gatewayCoprocessorTxSenders.4:\n+ \"zama:0x68EDabe2F16CcC37cB2Bb05F1D1EDad3e1Eecbd7\"\n }\n```\n\n```diff\n contract InputVerification (zama:0xcB1bB072f38bdAF0F328CdEf1Fc6eDa1DF029287) [zama/InputVerification_v0_5_0] {\n +++ 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.\n+++ 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).\n+++ severity: HIGH\n values.gatewayCoprocessorMajorityThreshold:\n- 1\n+ 3\n+++ description: Coprocessor signer addresses configured in GatewayConfig. Their EIP-712 signatures determine whether encrypted input proofs reach consensus.\n+++ severity: HIGH\n values.gatewayCoprocessorSigners.1:\n+ \"zama:0x679953d556e71F62673F38EE4775d6E7CCb23E64\"\n+++ description: Coprocessor signer addresses configured in GatewayConfig. Their EIP-712 signatures determine whether encrypted input proofs reach consensus.\n+++ severity: HIGH\n values.gatewayCoprocessorSigners.2:\n+ \"zama:0xF6ee37de6bDaB31597E90ED70448B92073cD9634\"\n+++ description: Coprocessor signer addresses configured in GatewayConfig. Their EIP-712 signatures determine whether encrypted input proofs reach consensus.\n+++ severity: HIGH\n values.gatewayCoprocessorSigners.3:\n+ \"zama:0x2e809E897AA8046Ff6e936502b6275F0B8993456\"\n+++ description: Coprocessor signer addresses configured in GatewayConfig. Their EIP-712 signatures determine whether encrypted input proofs reach consensus.\n+++ severity: HIGH\n values.gatewayCoprocessorSigners.4:\n+ \"zama:0x68EDabe2F16CcC37cB2Bb05F1D1EDad3e1Eecbd7\"\n+++ description: Coprocessor transaction-sender addresses configured in GatewayConfig. These accounts may submit signed verification responses and rejection responses.\n+++ severity: HIGH\n values.gatewayCoprocessorTxSenders.1:\n+ \"zama:0x679953d556e71F62673F38EE4775d6E7CCb23E64\"\n+++ description: Coprocessor transaction-sender addresses configured in GatewayConfig. These accounts may submit signed verification responses and rejection responses.\n+++ severity: HIGH\n values.gatewayCoprocessorTxSenders.2:\n+ \"zama:0xF6ee37de6bDaB31597E90ED70448B92073cD9634\"\n+++ description: Coprocessor transaction-sender addresses configured in GatewayConfig. These accounts may submit signed verification responses and rejection responses.\n+++ severity: HIGH\n values.gatewayCoprocessorTxSenders.3:\n+ \"zama:0x2e809E897AA8046Ff6e936502b6275F0B8993456\"\n+++ description: Coprocessor transaction-sender addresses configured in GatewayConfig. These accounts may submit signed verification responses and rejection responses.\n+++ severity: HIGH\n values.gatewayCoprocessorTxSenders.4:\n+ \"zama:0x68EDabe2F16CcC37cB2Bb05F1D1EDad3e1Eecbd7\"\n }\n```\n\n```diff\n contract CiphertextCommits (zama:0xd82cF70FC102028cd01acB87D0E107780ae4F41F) [zama/CiphertextCommits_v0_5_0] {\n +++ 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.\n+++ description: Minimum number of matching coprocessor submissions required before ciphertext material is committed. Inert while a priority coprocessor is set in GatewayConfig (see gatewayPriorityCoprocessorTxSender).\n+++ severity: HIGH\n values.gatewayCoprocessorMajorityThreshold:\n- 1\n+ 3\n+++ description: Coprocessor transaction-sender addresses configured in GatewayConfig. These accounts may submit ciphertext material commitments.\n+++ severity: HIGH\n values.gatewayCoprocessorTxSenders.1:\n+ \"zama:0x679953d556e71F62673F38EE4775d6E7CCb23E64\"\n+++ description: Coprocessor transaction-sender addresses configured in GatewayConfig. These accounts may submit ciphertext material commitments.\n+++ severity: HIGH\n values.gatewayCoprocessorTxSenders.2:\n+ \"zama:0xF6ee37de6bDaB31597E90ED70448B92073cD9634\"\n+++ description: Coprocessor transaction-sender addresses configured in GatewayConfig. These accounts may submit ciphertext material commitments.\n+++ severity: HIGH\n values.gatewayCoprocessorTxSenders.3:\n+ \"zama:0x2e809E897AA8046Ff6e936502b6275F0B8993456\"\n+++ description: Coprocessor transaction-sender addresses configured in GatewayConfig. These accounts may submit ciphertext material commitments.\n+++ severity: HIGH\n values.gatewayCoprocessorTxSenders.4:\n+ \"zama:0x68EDabe2F16CcC37cB2Bb05F1D1EDad3e1Eecbd7\"\n }\n```\n\n```diff\n contract GatewayConfig (zama:0xDE537Be194777A56f8B19d14079E6a78249390ab) [zama/GatewayConfig_v0_7_0] {\n +++ 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.\n+++ 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).\n+++ severity: HIGH\n values.getCoprocessorMajorityThreshold:\n- 1\n+ 3\n+++ description: Coprocessor signer addresses registered for this gateway. These sign encrypted input proof responses accepted by InputVerification.\n+++ severity: HIGH\n values.getCoprocessorSigners.1:\n+ \"zama:0x679953d556e71F62673F38EE4775d6E7CCb23E64\"\n+++ description: Coprocessor signer addresses registered for this gateway. These sign encrypted input proof responses accepted by InputVerification.\n+++ severity: HIGH\n values.getCoprocessorSigners.2:\n+ \"zama:0xF6ee37de6bDaB31597E90ED70448B92073cD9634\"\n+++ description: Coprocessor signer addresses registered for this gateway. These sign encrypted input proof responses accepted by InputVerification.\n+++ severity: HIGH\n values.getCoprocessorSigners.3:\n+ \"zama:0x2e809E897AA8046Ff6e936502b6275F0B8993456\"\n+++ description: Coprocessor signer addresses registered for this gateway. These sign encrypted input proof responses accepted by InputVerification.\n+++ severity: HIGH\n values.getCoprocessorSigners.4:\n+ \"zama:0x68EDabe2F16CcC37cB2Bb05F1D1EDad3e1Eecbd7\"\n+++ description: Coprocessor transaction-sender addresses registered for this gateway. These accounts submit input-verification, ACL, and ciphertext-material consensus messages.\n+++ severity: HIGH\n values.getCoprocessorTxSenders.1:\n+ \"zama:0x679953d556e71F62673F38EE4775d6E7CCb23E64\"\n+++ description: Coprocessor transaction-sender addresses registered for this gateway. These accounts submit input-verification, ACL, and ciphertext-material consensus messages.\n+++ severity: HIGH\n values.getCoprocessorTxSenders.2:\n+ \"zama:0xF6ee37de6bDaB31597E90ED70448B92073cD9634\"\n+++ description: Coprocessor transaction-sender addresses registered for this gateway. These accounts submit input-verification, ACL, and ciphertext-material consensus messages.\n+++ severity: HIGH\n values.getCoprocessorTxSenders.3:\n+ \"zama:0x2e809E897AA8046Ff6e936502b6275F0B8993456\"\n+++ description: Coprocessor transaction-sender addresses registered for this gateway. These accounts submit input-verification, ACL, and ciphertext-material consensus messages.\n+++ severity: HIGH\n values.getCoprocessorTxSenders.4:\n+ \"zama:0x68EDabe2F16CcC37cB2Bb05F1D1EDad3e1Eecbd7\"\n }\n```"
}
]
},
{
"id": "5931caeb",
"date": "Thu, 08 Oct 2026 11:23:05 GMT",
"timestamp": 1791458506,
"description": "Upgraded:\n\n- 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.\n- FHEVMExecutor has new validity checks (https://disco.l2beat.com/diff/eth:0xf444B2B5e45cD07F1E735122F53A2d70A8c81dB5/eth:0x0675c7BFA34aF170C49e6590A2cBf845c3029d7B).",
"isHighSeverity": true,
"changeCount": 51,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract FHEVMExecutor (eth:0xD82385dADa1ae3E969447f20A3164F6213100e75) [zama/ZamaFHEVMExecutor_v0_5_0] {\n +++ 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.\n template:\n- \"zama/ZamaFHEVMExecutor_v0_4_0\"\n+ \"zama/ZamaFHEVMExecutor_v0_5_0\"\n sourceHashes.1:\n- \"0x8521799e0a57218bcbd587c2f46222a266bbcbe2f27780cc0bf6ed66eb9cda1f\"\n+ \"0x270ee2b9f564ae13a2f925f057cc5baca30e031fab0362ab7ce086bdd2cd1a01\"\n description:\n- \"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.\"\n+ \"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.\"\n values.$implementation:\n- \"eth:0xf444B2B5e45cD07F1E735122F53A2d70A8c81dB5\"\n+ \"eth:0x0675c7BFA34aF170C49e6590A2cBf845c3029d7B\"\n values.$pastUpgrades.5:\n+ [\"2026-10-05T16:11:11.000Z\",\"0x63594740e6849980ffeecf14392b8b7f3e1e382c2e1ea023eb7a3df345f61328\",[\"eth:0x0675c7BFA34aF170C49e6590A2cBf845c3029d7B\"]]\n values.$upgradeCount:\n- 5\n+ 6\n values.getVersion:\n- \"FHEVMExecutor v0.4.0\"\n+ \"FHEVMExecutor v0.5.0\"\n implementationNames.eth:0xf444B2B5e45cD07F1E735122F53A2d70A8c81dB5:\n- \"FHEVMExecutor\"\n implementationNames.eth:0x0675c7BFA34aF170C49e6590A2cBf845c3029d7B:\n+ \"FHEVMExecutor\"\n }\n```\n\n```diff\n EOA (zama:0x373E36A8684A3344E177C5894179845Cbe57AE44) {\n +++ description: None\n receivedPermissions.1:\n+ {\"permission\":\"interact\",\"from\":\"zama:0xcB1bB072f38bdAF0F328CdEf1Fc6eDa1DF029287\",\"description\":\"finalize encrypted input proof verification or rejection in InputVerification alone while priority mode is active.\",\"role\":\".gatewayPriorityCoprocessorTxSender\"}\n receivedPermissions.4:\n+ {\"permission\":\"interact\",\"from\":\"zama:0xd82cF70FC102028cd01acB87D0E107780ae4F41F\",\"description\":\"commit ciphertext and SNS ciphertext digests to CiphertextCommits alone while priority mode is active.\",\"role\":\".gatewayPriorityCoprocessorTxSender\"}\n receivedPermissions.6:\n+ {\"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\"}\n }\n```\n\n```diff\n contract SafeL2 (zama:0x5f0F86BcEad6976711C9B131bCa5D30E767fe2bE) [GnosisSafe] {\n +++ description: Gateway owner Safe. Its LayerZero governance module is outside the Zama Gateway protocol surface covered here.\n receivedPermissions.4.description:\n- \"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.\"\n+ \"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.\"\n }\n```\n\n```diff\n contract InputVerification (zama:0xcB1bB072f38bdAF0F328CdEf1Fc6eDa1DF029287) [zama/InputVerification_v0_5_0] {\n +++ 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.\n template:\n- \"zama/InputVerification\"\n+ \"zama/InputVerification_v0_5_0\"\n sourceHashes.1:\n- \"0x58bb055397e294a46ebccbc53c94bb2494bf05acd7ad77f2fb7cc46b3ef1eb92\"\n+ \"0x5018850c43e4cdb57f9d66bfa3b13efd5321f0c3d39a78259aab0c007663a1ef\"\n description:\n- \"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.\"\n+ \"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.\"\n values.$implementation:\n- \"zama:0xf9f0F5ef8301CF1573EBe0F45E13A4CabB621821\"\n+ \"zama:0xa9A3eA1cdD078a79bB31c3a284a4abA80bd0E8d8\"\n values.$pastUpgrades.4:\n+ [\"2026-10-08T10:05:10.000Z\",\"0x2dc9ffacebc169a90ee746b5818b83d470bf7dbc5855c1ae05268b76caf604aa\",[\"zama:0xa9A3eA1cdD078a79bB31c3a284a4abA80bd0E8d8\"]]\n values.$upgradeCount:\n- 4\n+ 5\n values.getVersion:\n- \"InputVerification v0.4.0\"\n+ \"InputVerification v0.5.0\"\n+++ 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.\n+++ severity: HIGH\n values.gatewayPriorityCoprocessorTxSender:\n+ \"zama:0x373E36A8684A3344E177C5894179845Cbe57AE44\"\n fieldMeta.gatewayCoprocessorMajorityThreshold.description:\n- \"Minimum number of matching coprocessor responses required for an encrypted input proof to be verified or rejected.\"\n+ \"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).\"\n fieldMeta.gatewayPriorityCoprocessorTxSender:\n+ {\"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\"}\n implementationNames.zama:0xf9f0F5ef8301CF1573EBe0F45E13A4CabB621821:\n- \"InputVerification\"\n implementationNames.zama:0xa9A3eA1cdD078a79bB31c3a284a4abA80bd0E8d8:\n+ \"InputVerification\"\n }\n```\n\n```diff\n contract CiphertextCommits (zama:0xd82cF70FC102028cd01acB87D0E107780ae4F41F) [zama/CiphertextCommits_v0_5_0] {\n +++ 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.\n template:\n- \"zama/CiphertextCommits\"\n+ \"zama/CiphertextCommits_v0_5_0\"\n sourceHashes.1:\n- \"0xa3aa22a184258ca16a5d83ce495ae0d307d4c5ec9fda8a7622d4f95728f4af03\"\n+ \"0x2b3db0e0d5ff22923e545ffb64992573f75c3b020179bd81534fb16c054dfa7c\"\n description:\n- \"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.\"\n+ \"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.\"\n values.$implementation:\n- \"zama:0xB373Ae42736E3C266D4A5D090c00c7f0Bda06622\"\n+ \"zama:0x81a6CBD6B1bb0296BfFd38AD8584918640F35948\"\n values.$pastUpgrades.4:\n+ [\"2026-10-08T10:05:10.000Z\",\"0x2dc9ffacebc169a90ee746b5818b83d470bf7dbc5855c1ae05268b76caf604aa\",[\"zama:0x81a6CBD6B1bb0296BfFd38AD8584918640F35948\"]]\n values.$upgradeCount:\n- 4\n+ 5\n values.getVersion:\n- \"CiphertextCommits v0.4.0\"\n+ \"CiphertextCommits v0.5.0\"\n+++ 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.\n+++ severity: HIGH\n values.gatewayPriorityCoprocessorTxSender:\n+ \"zama:0x373E36A8684A3344E177C5894179845Cbe57AE44\"\n fieldMeta.gatewayCoprocessorMajorityThreshold.description:\n- \"Minimum number of matching coprocessor submissions required before ciphertext material is committed.\"\n+ \"Minimum number of matching coprocessor submissions required before ciphertext material is committed. Inert while a priority coprocessor is set in GatewayConfig (see gatewayPriorityCoprocessorTxSender).\"\n fieldMeta.gatewayPriorityCoprocessorTxSender:\n+ {\"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\"}\n implementationNames.zama:0xB373Ae42736E3C266D4A5D090c00c7f0Bda06622:\n- \"CiphertextCommits\"\n implementationNames.zama:0x81a6CBD6B1bb0296BfFd38AD8584918640F35948:\n+ \"CiphertextCommits\"\n }\n```\n\n```diff\n contract GatewayConfig (zama:0xDE537Be194777A56f8B19d14079E6a78249390ab) [zama/GatewayConfig_v0_7_0] {\n +++ 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.\n template:\n- \"zama/GatewayConfig_v0_6_0\"\n+ \"zama/GatewayConfig_v0_7_0\"\n sourceHashes.1:\n- \"0xe903576aaecdd97c5036c6bc029149a11b44484c78d9c6b0d802a882d4744597\"\n+ \"0x26ff42c37647db207e8c9fa6bbc7ff8e6a15f782d4f85480a5fe711b95f25894\"\n description:\n- \"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.\"\n+ \"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.\"\n values.$implementation:\n- \"zama:0x1950aD98e834f6c07553365196d4CddeD179c536\"\n+ \"zama:0x94209410f6CAa4A8c6Fd7ED4AB67560eD8A3002C\"\n values.$pastUpgrades.5:\n+ [\"2026-10-08T10:05:10.000Z\",\"0x2dc9ffacebc169a90ee746b5818b83d470bf7dbc5855c1ae05268b76caf604aa\",[\"zama:0x94209410f6CAa4A8c6Fd7ED4AB67560eD8A3002C\"]]\n values.$upgradeCount:\n- 5\n+ 6\n values.getVersion:\n- \"GatewayConfig v0.6.0\"\n+ \"GatewayConfig v0.7.0\"\n+++ 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.\n+++ severity: HIGH\n values.getPriorityCoprocessorTxSender:\n+ \"zama:0x373E36A8684A3344E177C5894179845Cbe57AE44\"\n fieldMeta.owner.description:\n- \"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.\"\n+ \"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.\"\n fieldMeta.inputVerification.description:\n- \"InputVerification workflow contract paused and unpaused by GatewayConfig. Coprocessor set and threshold updates require this contract to be paused first.\"\n+ \"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.\"\n fieldMeta.getCoprocessorMajorityThreshold.description:\n- \"Minimum number of matching coprocessor messages required for gateway coprocessor consensus. Updates require InputVerification to be paused first.\"\n+ \"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).\"\n fieldMeta.getPriorityCoprocessorTxSender:\n+ {\"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\"}\n implementationNames.zama:0x1950aD98e834f6c07553365196d4CddeD179c536:\n- \"GatewayConfig\"\n implementationNames.zama:0x94209410f6CAa4A8c6Fd7ED4AB67560eD8A3002C:\n+ \"GatewayConfig\"\n }\n```"
}
]
},
{
"id": "0f767d21",
"date": "Thu, 01 Oct 2026 11:11:08 GMT",
"timestamp": 1790851379,
"description": "A Safe that is one of the signers of ZamaGovMultisigA (eth:0x69E55790880d0ABa56E48Ee1f7fc3834b0F5c223) lowered its own threshold from 3/5 to 2/5.",
"isHighSeverity": false,
"changeCount": 2,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Safe (eth:0x69E55790880d0ABa56E48Ee1f7fc3834b0F5c223) [GnosisSafe] {\n +++ description: None\n values.$threshold:\n- 3\n+ 2\n values.multisigThreshold:\n- \"3 of 5 (60%)\"\n+ \"2 of 5 (40%)\"\n }\n```"
}
]
},
{
"id": "08457d02",
"date": "Thu, 17 Sep 2026 07:51:47 GMT",
"timestamp": 1789631397,
"description": "Add 17 new confidential wrappers (WBTC, AUSD, PENDLE and 14 Morpho vault shares)",
"isHighSeverity": true,
"changeCount": 327,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract ConfidentialSteakUSDTWrapper (eth:0x1F6A937119c0c34Db0a2c4F000386a3BfD4A9e73) [zama/ConfidentialWrapper] {\n +++ 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.\n type:\n- \"EOA\"\n+ \"Contract\"\n proxyType:\n- \"EOA\"\n+ \"EIP1967 proxy\"\n template:\n+ \"zama/ConfidentialWrapper\"\n sourceHashes:\n+ [\"0x7df5501f3f5ffd35e0c61153fcd76f37533ab73a80adf20a7a19b30c246faea3\",\"0x111b5cc66fc29cac57ed685c50a509014181cbf98122b5fd89c0449eea3fab5f\"]\n description:\n+ \"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.\"\n deployerAddress:\n+ \"eth:0xe02e3b1cbEc07FC8D03B2eD15ddCe743403A013b\"\n sinceTimestamp:\n+ 1789152239\n sinceBlock:\n+ 25956032\n values:\n+ {\"$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\"}\n fieldMeta:\n+ {\"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.\"}}\n implementationNames:\n+ {\"eth:0x1F6A937119c0c34Db0a2c4F000386a3BfD4A9e73\":\"ERC1967Proxy\",\"eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD\":\"ConfidentialWrapper\"}\n category:\n+ {\"name\":\"Local Infrastructure\",\"priority\":5}\n }\n```\n\n```diff\n contract ConfidentialArmUSDCpWrapper (eth:0x2ebBd099f66b0ca94DD82B4c06fe3eEf6AFf853c) [zama/ConfidentialWrapper] {\n +++ 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.\n type:\n- \"EOA\"\n+ \"Contract\"\n proxyType:\n- \"EOA\"\n+ \"EIP1967 proxy\"\n template:\n+ \"zama/ConfidentialWrapper\"\n sourceHashes:\n+ [\"0x7df5501f3f5ffd35e0c61153fcd76f37533ab73a80adf20a7a19b30c246faea3\",\"0x111b5cc66fc29cac57ed685c50a509014181cbf98122b5fd89c0449eea3fab5f\"]\n description:\n+ \"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.\"\n deployerAddress:\n+ \"eth:0xe02e3b1cbEc07FC8D03B2eD15ddCe743403A013b\"\n sinceTimestamp:\n+ 1789150751\n sinceBlock:\n+ 25955908\n values:\n+ {\"$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\"}\n fieldMeta:\n+ {\"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.\"}}\n implementationNames:\n+ {\"eth:0x2ebBd099f66b0ca94DD82B4c06fe3eEf6AFf853c\":\"ERC1967Proxy\",\"eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD\":\"ConfidentialWrapper\"}\n category:\n+ {\"name\":\"Local Infrastructure\",\"priority\":5}\n }\n```\n\n```diff\n contract ConfidentialRoxUSDCyWrapper (eth:0x4FCCF8046FB7FB7AB76321BD39C27453e396B88f) [zama/ConfidentialWrapper] {\n +++ 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.\n type:\n- \"EOA\"\n+ \"Contract\"\n proxyType:\n- \"EOA\"\n+ \"EIP1967 proxy\"\n template:\n+ \"zama/ConfidentialWrapper\"\n sourceHashes:\n+ [\"0x7df5501f3f5ffd35e0c61153fcd76f37533ab73a80adf20a7a19b30c246faea3\",\"0x111b5cc66fc29cac57ed685c50a509014181cbf98122b5fd89c0449eea3fab5f\"]\n description:\n+ \"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.\"\n deployerAddress:\n+ \"eth:0xe02e3b1cbEc07FC8D03B2eD15ddCe743403A013b\"\n sinceTimestamp:\n+ 1789154375\n sinceBlock:\n+ 25956208\n values:\n+ {\"$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\"}\n fieldMeta:\n+ {\"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.\"}}\n implementationNames:\n+ {\"eth:0x4FCCF8046FB7FB7AB76321BD39C27453e396B88f\":\"ERC1967Proxy\",\"eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD\":\"ConfidentialWrapper\"}\n category:\n+ {\"name\":\"Local Infrastructure\",\"priority\":5}\n }\n```\n\n```diff\n contract ConfidentialBbqUSDCWrapper (eth:0x501b014f86a73A7199E00cB31C0e9565Ac51e51B) [zama/ConfidentialWrapper] {\n +++ 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.\n type:\n- \"EOA\"\n+ \"Contract\"\n proxyType:\n- \"EOA\"\n+ \"EIP1967 proxy\"\n template:\n+ \"zama/ConfidentialWrapper\"\n sourceHashes:\n+ [\"0x7df5501f3f5ffd35e0c61153fcd76f37533ab73a80adf20a7a19b30c246faea3\",\"0x111b5cc66fc29cac57ed685c50a509014181cbf98122b5fd89c0449eea3fab5f\"]\n description:\n+ \"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.\"\n deployerAddress:\n+ \"eth:0xe02e3b1cbEc07FC8D03B2eD15ddCe743403A013b\"\n sinceTimestamp:\n+ 1789153067\n sinceBlock:\n+ 25956100\n values:\n+ {\"$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\"}\n fieldMeta:\n+ {\"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.\"}}\n implementationNames:\n+ {\"eth:0x501b014f86a73A7199E00cB31C0e9565Ac51e51B\":\"ERC1967Proxy\",\"eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD\":\"ConfidentialWrapper\"}\n category:\n+ {\"name\":\"Local Infrastructure\",\"priority\":5}\n }\n```\n\n```diff\n contract ConfidentialArmUSDTpWrapper (eth:0x63a60aCC304b84eF829b263f28e7b636Bf77d45A) [zama/ConfidentialWrapper] {\n +++ 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.\n type:\n- \"EOA\"\n+ \"Contract\"\n proxyType:\n- \"EOA\"\n+ \"EIP1967 proxy\"\n template:\n+ \"zama/ConfidentialWrapper\"\n sourceHashes:\n+ [\"0x7df5501f3f5ffd35e0c61153fcd76f37533ab73a80adf20a7a19b30c246faea3\",\"0x111b5cc66fc29cac57ed685c50a509014181cbf98122b5fd89c0449eea3fab5f\"]\n description:\n+ \"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.\"\n deployerAddress:\n+ \"eth:0xe02e3b1cbEc07FC8D03B2eD15ddCe743403A013b\"\n sinceTimestamp:\n+ 1789153331\n sinceBlock:\n+ 25956122\n values:\n+ {\"$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\"}\n fieldMeta:\n+ {\"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.\"}}\n implementationNames:\n+ {\"eth:0x63a60aCC304b84eF829b263f28e7b636Bf77d45A\":\"ERC1967Proxy\",\"eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD\":\"ConfidentialWrapper\"}\n category:\n+ {\"name\":\"Local Infrastructure\",\"priority\":5}\n }\n```\n\n```diff\n contract ConfidentialFAUSDeWrapper (eth:0x76A3f985315aAc9789Cb5BF8A5bb83BFF55FD5a6) [zama/ConfidentialWrapper] {\n +++ 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.\n type:\n- \"EOA\"\n+ \"Contract\"\n proxyType:\n- \"EOA\"\n+ \"EIP1967 proxy\"\n template:\n+ \"zama/ConfidentialWrapper\"\n sourceHashes:\n+ [\"0x7df5501f3f5ffd35e0c61153fcd76f37533ab73a80adf20a7a19b30c246faea3\",\"0x111b5cc66fc29cac57ed685c50a509014181cbf98122b5fd89c0449eea3fab5f\"]\n description:\n+ \"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.\"\n deployerAddress:\n+ \"eth:0xe02e3b1cbEc07FC8D03B2eD15ddCe743403A013b\"\n sinceTimestamp:\n+ 1789148387\n sinceBlock:\n+ 25955712\n values:\n+ {\"$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\"}\n fieldMeta:\n+ {\"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.\"}}\n implementationNames:\n+ {\"eth:0x76A3f985315aAc9789Cb5BF8A5bb83BFF55FD5a6\":\"ERC1967Proxy\",\"eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD\":\"ConfidentialWrapper\"}\n category:\n+ {\"name\":\"Local Infrastructure\",\"priority\":5}\n }\n```\n\n```diff\n contract ConfidentialArmUSDCsWrapper (eth:0x77F8207ee451441336538bA07a2F425780dED8DB) [zama/ConfidentialWrapper] {\n +++ 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.\n type:\n- \"EOA\"\n+ \"Contract\"\n proxyType:\n- \"EOA\"\n+ \"EIP1967 proxy\"\n template:\n+ \"zama/ConfidentialWrapper\"\n sourceHashes:\n+ [\"0x7df5501f3f5ffd35e0c61153fcd76f37533ab73a80adf20a7a19b30c246faea3\",\"0x111b5cc66fc29cac57ed685c50a509014181cbf98122b5fd89c0449eea3fab5f\"]\n description:\n+ \"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.\"\n deployerAddress:\n+ \"eth:0xe02e3b1cbEc07FC8D03B2eD15ddCe743403A013b\"\n sinceTimestamp:\n+ 1789151411\n sinceBlock:\n+ 25955963\n values:\n+ {\"$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\"}\n fieldMeta:\n+ {\"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.\"}}\n implementationNames:\n+ {\"eth:0x77F8207ee451441336538bA07a2F425780dED8DB\":\"ERC1967Proxy\",\"eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD\":\"ConfidentialWrapper\"}\n category:\n+ {\"name\":\"Local Infrastructure\",\"priority\":5}\n }\n```\n\n```diff\n contract ConfidentialBbqUSDTWrapper (eth:0x80Ae7dbCe3c1696d3eeD04Ec8348c3C432322273) [zama/ConfidentialWrapper] {\n +++ 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.\n type:\n- \"EOA\"\n+ \"Contract\"\n proxyType:\n- \"EOA\"\n+ \"EIP1967 proxy\"\n template:\n+ \"zama/ConfidentialWrapper\"\n sourceHashes:\n+ [\"0x7df5501f3f5ffd35e0c61153fcd76f37533ab73a80adf20a7a19b30c246faea3\",\"0x111b5cc66fc29cac57ed685c50a509014181cbf98122b5fd89c0449eea3fab5f\"]\n description:\n+ \"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.\"\n deployerAddress:\n+ \"eth:0xe02e3b1cbEc07FC8D03B2eD15ddCe743403A013b\"\n sinceTimestamp:\n+ 1789152695\n sinceBlock:\n+ 25956070\n values:\n+ {\"$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\"}\n fieldMeta:\n+ {\"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.\"}}\n implementationNames:\n+ {\"eth:0x80Ae7dbCe3c1696d3eeD04Ec8348c3C432322273\":\"ERC1967Proxy\",\"eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD\":\"ConfidentialWrapper\"}\n category:\n+ {\"name\":\"Local Infrastructure\",\"priority\":5}\n }\n```\n\n```diff\n contract ConfidentialPENDLEWrapper (eth:0x8900123F7e17709C1D80eda1E611A9503Cf1B3df) [zama/ConfidentialWrapper] {\n +++ 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.\n type:\n- \"EOA\"\n+ \"Contract\"\n proxyType:\n- \"EOA\"\n+ \"EIP1967 proxy\"\n template:\n+ \"zama/ConfidentialWrapper\"\n sourceHashes:\n+ [\"0x7df5501f3f5ffd35e0c61153fcd76f37533ab73a80adf20a7a19b30c246faea3\",\"0x111b5cc66fc29cac57ed685c50a509014181cbf98122b5fd89c0449eea3fab5f\"]\n description:\n+ \"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.\"\n deployerAddress:\n+ \"eth:0xe02e3b1cbEc07FC8D03B2eD15ddCe743403A013b\"\n sinceTimestamp:\n+ 1789150991\n sinceBlock:\n+ 25955928\n values:\n+ {\"$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\"}\n fieldMeta:\n+ {\"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.\"}}\n implementationNames:\n+ {\"eth:0x8900123F7e17709C1D80eda1E611A9503Cf1B3df\":\"ERC1967Proxy\",\"eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD\":\"ConfidentialWrapper\"}\n category:\n+ {\"name\":\"Local Infrastructure\",\"priority\":5}\n }\n```\n\n```diff\n contract Safe (eth:0x8c0E2c46F96756C49DBd6723F4C57a03a254B4B0) [GnosisSafe] {\n +++ description: None\n values.$members.2:\n- \"eth:0x8a686b039c0323e990Be80991a16bdaAb78113AC\"\n+ \"eth:0xFd23FcEFC76B5fCe924d0D460D9AE4a0e1CF0B99\"\n }\n```\n\n```diff\n contract ConfidentialPAPYWrapper (eth:0x9ABb8f3dC2863B1F108DeD7ea41902fEF6732A8c) [zama/ConfidentialWrapper] {\n +++ 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.\n type:\n- \"EOA\"\n+ \"Contract\"\n proxyType:\n- \"EOA\"\n+ \"EIP1967 proxy\"\n template:\n+ \"zama/ConfidentialWrapper\"\n sourceHashes:\n+ [\"0x7df5501f3f5ffd35e0c61153fcd76f37533ab73a80adf20a7a19b30c246faea3\",\"0x111b5cc66fc29cac57ed685c50a509014181cbf98122b5fd89c0449eea3fab5f\"]\n description:\n+ \"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.\"\n deployerAddress:\n+ \"eth:0xe02e3b1cbEc07FC8D03B2eD15ddCe743403A013b\"\n sinceTimestamp:\n+ 1789151975\n sinceBlock:\n+ 25956010\n values:\n+ {\"$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\"}\n fieldMeta:\n+ {\"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.\"}}\n implementationNames:\n+ {\"eth:0x9ABb8f3dC2863B1F108DeD7ea41902fEF6732A8c\":\"ERC1967Proxy\",\"eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD\":\"ConfidentialWrapper\"}\n category:\n+ {\"name\":\"Local Infrastructure\",\"priority\":5}\n }\n```\n\n```diff\n contract ConfidentialFcUSDTWrapper (eth:0xA28A369Df348ac232E4DAF7B0Ef90280d8707D7F) [zama/ConfidentialWrapper] {\n +++ 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.\n type:\n- \"EOA\"\n+ \"Contract\"\n proxyType:\n- \"EOA\"\n+ \"EIP1967 proxy\"\n template:\n+ \"zama/ConfidentialWrapper\"\n sourceHashes:\n+ [\"0x7df5501f3f5ffd35e0c61153fcd76f37533ab73a80adf20a7a19b30c246faea3\",\"0x111b5cc66fc29cac57ed685c50a509014181cbf98122b5fd89c0449eea3fab5f\"]\n description:\n+ \"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.\"\n deployerAddress:\n+ \"eth:0xe02e3b1cbEc07FC8D03B2eD15ddCe743403A013b\"\n sinceTimestamp:\n+ 1789388567\n sinceBlock:\n+ 25975670\n values:\n+ {\"$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\"}\n fieldMeta:\n+ {\"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.\"}}\n implementationNames:\n+ {\"eth:0xA28A369Df348ac232E4DAF7B0Ef90280d8707D7F\":\"ERC1967Proxy\",\"eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD\":\"ConfidentialWrapper\"}\n category:\n+ {\"name\":\"Local Infrastructure\",\"priority\":5}\n }\n```\n\n```diff\n contract ConfidentialRoxcUSDCWrapper (eth:0xB1B18Ad1F16D744c470cb6B09Cb826AfFcc9EB30) [zama/ConfidentialWrapper] {\n +++ 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.\n type:\n- \"EOA\"\n+ \"Contract\"\n proxyType:\n- \"EOA\"\n+ \"EIP1967 proxy\"\n template:\n+ \"zama/ConfidentialWrapper\"\n sourceHashes:\n+ [\"0x7df5501f3f5ffd35e0c61153fcd76f37533ab73a80adf20a7a19b30c246faea3\",\"0x111b5cc66fc29cac57ed685c50a509014181cbf98122b5fd89c0449eea3fab5f\"]\n description:\n+ \"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.\"\n deployerAddress:\n+ \"eth:0xe02e3b1cbEc07FC8D03B2eD15ddCe743403A013b\"\n sinceTimestamp:\n+ 1789153955\n sinceBlock:\n+ 25956174\n values:\n+ {\"$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\"}\n fieldMeta:\n+ {\"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.\"}}\n implementationNames:\n+ {\"eth:0xB1B18Ad1F16D744c470cb6B09Cb826AfFcc9EB30\":\"ERC1967Proxy\",\"eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD\":\"ConfidentialWrapper\"}\n category:\n+ {\"name\":\"Local Infrastructure\",\"priority\":5}\n }\n```\n\n```diff\n contract DAO (eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3) [zama/ZamaDAO] {\n +++ description: Aragon DAO that stores governance state and executes proposal action batches.\n directlyReceivedPermissions.0:\n+ {\"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\"}\n directlyReceivedPermissions.1:\n+ {\"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\"}\n directlyReceivedPermissions.3:\n+ {\"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\"}\n directlyReceivedPermissions.4:\n+ {\"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\"}\n directlyReceivedPermissions.5:\n+ {\"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\"}\n directlyReceivedPermissions.10:\n+ {\"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\"}\n directlyReceivedPermissions.11:\n+ {\"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\"}\n directlyReceivedPermissions.12:\n+ {\"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\"}\n directlyReceivedPermissions.15:\n+ {\"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\"}\n directlyReceivedPermissions.16:\n+ {\"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\"}\n directlyReceivedPermissions.17:\n+ {\"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\"}\n directlyReceivedPermissions.20:\n+ {\"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\"}\n directlyReceivedPermissions.24:\n+ {\"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\"}\n directlyReceivedPermissions.26:\n+ {\"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\"}\n directlyReceivedPermissions.31:\n+ {\"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\"}\n directlyReceivedPermissions.36:\n+ {\"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\"}\n directlyReceivedPermissions.39:\n+ {\"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\"}\n directlyReceivedPermissions.40:\n+ {\"permission\":\"upgrade\",\"from\":\"eth:0x1F6A937119c0c34Db0a2c4F000386a3BfD4A9e73\",\"role\":\"admin\"}\n directlyReceivedPermissions.41:\n+ {\"permission\":\"upgrade\",\"from\":\"eth:0x2ebBd099f66b0ca94DD82B4c06fe3eEf6AFf853c\",\"role\":\"admin\"}\n directlyReceivedPermissions.43:\n+ {\"permission\":\"upgrade\",\"from\":\"eth:0x4FCCF8046FB7FB7AB76321BD39C27453e396B88f\",\"role\":\"admin\"}\n directlyReceivedPermissions.44:\n+ {\"permission\":\"upgrade\",\"from\":\"eth:0x501b014f86a73A7199E00cB31C0e9565Ac51e51B\",\"role\":\"admin\"}\n directlyReceivedPermissions.45:\n+ {\"permission\":\"upgrade\",\"from\":\"eth:0x63a60aCC304b84eF829b263f28e7b636Bf77d45A\",\"role\":\"admin\"}\n directlyReceivedPermissions.49:\n+ {\"permission\":\"upgrade\",\"from\":\"eth:0x76A3f985315aAc9789Cb5BF8A5bb83BFF55FD5a6\",\"role\":\"admin\"}\n directlyReceivedPermissions.51:\n+ {\"permission\":\"upgrade\",\"from\":\"eth:0x77F8207ee451441336538bA07a2F425780dED8DB\",\"role\":\"admin\"}\n directlyReceivedPermissions.52:\n+ {\"permission\":\"upgrade\",\"from\":\"eth:0x80Ae7dbCe3c1696d3eeD04Ec8348c3C432322273\",\"role\":\"admin\"}\n directlyReceivedPermissions.55:\n+ {\"permission\":\"upgrade\",\"from\":\"eth:0x8900123F7e17709C1D80eda1E611A9503Cf1B3df\",\"role\":\"admin\"}\n directlyReceivedPermissions.56:\n+ {\"permission\":\"upgrade\",\"from\":\"eth:0x9ABb8f3dC2863B1F108DeD7ea41902fEF6732A8c\",\"role\":\"admin\"}\n directlyReceivedPermissions.57:\n+ {\"permission\":\"upgrade\",\"from\":\"eth:0xA28A369Df348ac232E4DAF7B0Ef90280d8707D7F\",\"role\":\"admin\"}\n directlyReceivedPermissions.60:\n+ {\"permission\":\"upgrade\",\"from\":\"eth:0xB1B18Ad1F16D744c470cb6B09Cb826AfFcc9EB30\",\"role\":\"admin\"}\n directlyReceivedPermissions.62:\n+ {\"permission\":\"upgrade\",\"from\":\"eth:0xb6e5299fc56053DD5440104Fd6Fd2A3CD064edbC\",\"role\":\"admin\"}\n directlyReceivedPermissions.64:\n+ {\"permission\":\"upgrade\",\"from\":\"eth:0xbaC6DeDf2C10D6D381F9DBd9EFd69D93FfCef50B\",\"role\":\"admin\"}\n directlyReceivedPermissions.69:\n+ {\"permission\":\"upgrade\",\"from\":\"eth:0xd86aE89C089B380f064Fe01899B4071F1eb6Bb3d\",\"role\":\"admin\"}\n directlyReceivedPermissions.73:\n+ {\"permission\":\"upgrade\",\"from\":\"eth:0xEa9A15A29DD180c40442142CaeEfC491d37bfDB2\",\"role\":\"admin\"}\n directlyReceivedPermissions.76:\n+ {\"permission\":\"upgrade\",\"from\":\"eth:0xF921A5B0634f4236B21A4e948317abf9a2E86B6f\",\"role\":\"admin\"}\n }\n```\n\n```diff\n contract ConfidentialPendleUSDCWrapper (eth:0xb6e5299fc56053DD5440104Fd6Fd2A3CD064edbC) [zama/ConfidentialWrapper] {\n +++ 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.\n type:\n- \"EOA\"\n+ \"Contract\"\n proxyType:\n- \"EOA\"\n+ \"EIP1967 proxy\"\n template:\n+ \"zama/ConfidentialWrapper\"\n sourceHashes:\n+ [\"0x7df5501f3f5ffd35e0c61153fcd76f37533ab73a80adf20a7a19b30c246faea3\",\"0x111b5cc66fc29cac57ed685c50a509014181cbf98122b5fd89c0449eea3fab5f\"]\n description:\n+ \"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.\"\n deployerAddress:\n+ \"eth:0xe02e3b1cbEc07FC8D03B2eD15ddCe743403A013b\"\n sinceTimestamp:\n+ 1789150499\n sinceBlock:\n+ 25955887\n values:\n+ {\"$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\"}\n fieldMeta:\n+ {\"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.\"}}\n implementationNames:\n+ {\"eth:0xb6e5299fc56053DD5440104Fd6Fd2A3CD064edbC\":\"ERC1967Proxy\",\"eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD\":\"ConfidentialWrapper\"}\n category:\n+ {\"name\":\"Local Infrastructure\",\"priority\":5}\n }\n```\n\n```diff\n contract ConfidentialArmUSDTsWrapper (eth:0xbaC6DeDf2C10D6D381F9DBd9EFd69D93FfCef50B) [zama/ConfidentialWrapper] {\n +++ 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.\n type:\n- \"EOA\"\n+ \"Contract\"\n proxyType:\n- \"EOA\"\n+ \"EIP1967 proxy\"\n template:\n+ \"zama/ConfidentialWrapper\"\n sourceHashes:\n+ [\"0x7df5501f3f5ffd35e0c61153fcd76f37533ab73a80adf20a7a19b30c246faea3\",\"0x111b5cc66fc29cac57ed685c50a509014181cbf98122b5fd89c0449eea3fab5f\"]\n description:\n+ \"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.\"\n deployerAddress:\n+ \"eth:0xe02e3b1cbEc07FC8D03B2eD15ddCe743403A013b\"\n sinceTimestamp:\n+ 1789150187\n sinceBlock:\n+ 25955861\n values:\n+ {\"$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\"}\n fieldMeta:\n+ {\"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.\"}}\n implementationNames:\n+ {\"eth:0xbaC6DeDf2C10D6D381F9DBd9EFd69D93FfCef50B\":\"ERC1967Proxy\",\"eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD\":\"ConfidentialWrapper\"}\n category:\n+ {\"name\":\"Local Infrastructure\",\"priority\":5}\n }\n```\n\n```diff\n contract ZamaGovMultisigB (eth:0xBc860b6a4C860C5424B84A056E53ACFb2C99a38F) [zama/Multisig] {\n +++ description: Aragon multisig plugin for creating proposals and collecting approvals against a configurable threshold.\n+++ description: Current multisig members reconstructed from MembersAdded and MembersRemoved events.\n values.$members.5:\n+ \"eth:0x8aA8D71520d88a1Ed2B4257348134b94e00A9978\"\n+++ description: Number of addresses currently listed as multisig members.\n+++ severity: HIGH\n values.addresslistLength:\n- 5\n+ 6\n receivedPermissions.0:\n+ {\"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\"}]}\n receivedPermissions.1:\n+ {\"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\"}]}\n receivedPermissions.3:\n+ {\"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\"}]}\n receivedPermissions.4:\n+ {\"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\"}]}\n receivedPermissions.5:\n+ {\"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\"}]}\n receivedPermissions.10:\n+ {\"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\"}]}\n receivedPermissions.11:\n+ {\"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\"}]}\n receivedPermissions.12:\n+ {\"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\"}]}\n receivedPermissions.15:\n+ {\"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\"}]}\n receivedPermissions.16:\n+ {\"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\"}]}\n receivedPermissions.17:\n+ {\"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\"}]}\n receivedPermissions.20:\n+ {\"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\"}]}\n receivedPermissions.26:\n+ {\"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\"}]}\n receivedPermissions.28:\n+ {\"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\"}]}\n receivedPermissions.33:\n+ {\"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\"}]}\n receivedPermissions.38:\n+ {\"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\"}]}\n receivedPermissions.41:\n+ {\"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\"}]}\n receivedPermissions.42:\n+ {\"permission\":\"upgrade\",\"from\":\"eth:0x1F6A937119c0c34Db0a2c4F000386a3BfD4A9e73\",\"role\":\"admin\",\"via\":[{\"address\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\"}]}\n receivedPermissions.43:\n+ {\"permission\":\"upgrade\",\"from\":\"eth:0x2ebBd099f66b0ca94DD82B4c06fe3eEf6AFf853c\",\"role\":\"admin\",\"via\":[{\"address\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\"}]}\n receivedPermissions.45:\n+ {\"permission\":\"upgrade\",\"from\":\"eth:0x4FCCF8046FB7FB7AB76321BD39C27453e396B88f\",\"role\":\"admin\",\"via\":[{\"address\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\"}]}\n receivedPermissions.46:\n+ {\"permission\":\"upgrade\",\"from\":\"eth:0x501b014f86a73A7199E00cB31C0e9565Ac51e51B\",\"role\":\"admin\",\"via\":[{\"address\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\"}]}\n receivedPermissions.47:\n+ {\"permission\":\"upgrade\",\"from\":\"eth:0x63a60aCC304b84eF829b263f28e7b636Bf77d45A\",\"role\":\"admin\",\"via\":[{\"address\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\"}]}\n receivedPermissions.51:\n+ {\"permission\":\"upgrade\",\"from\":\"eth:0x76A3f985315aAc9789Cb5BF8A5bb83BFF55FD5a6\",\"role\":\"admin\",\"via\":[{\"address\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\"}]}\n receivedPermissions.53:\n+ {\"permission\":\"upgrade\",\"from\":\"eth:0x77F8207ee451441336538bA07a2F425780dED8DB\",\"role\":\"admin\",\"via\":[{\"address\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\"}]}\n receivedPermissions.54:\n+ {\"permission\":\"upgrade\",\"from\":\"eth:0x80Ae7dbCe3c1696d3eeD04Ec8348c3C432322273\",\"role\":\"admin\",\"via\":[{\"address\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\"}]}\n receivedPermissions.57:\n+ {\"permission\":\"upgrade\",\"from\":\"eth:0x8900123F7e17709C1D80eda1E611A9503Cf1B3df\",\"role\":\"admin\",\"via\":[{\"address\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\"}]}\n receivedPermissions.58:\n+ {\"permission\":\"upgrade\",\"from\":\"eth:0x9ABb8f3dC2863B1F108DeD7ea41902fEF6732A8c\",\"role\":\"admin\",\"via\":[{\"address\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\"}]}\n receivedPermissions.59:\n+ {\"permission\":\"upgrade\",\"from\":\"eth:0xA28A369Df348ac232E4DAF7B0Ef90280d8707D7F\",\"role\":\"admin\",\"via\":[{\"address\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\"}]}\n receivedPermissions.62:\n+ {\"permission\":\"upgrade\",\"from\":\"eth:0xB1B18Ad1F16D744c470cb6B09Cb826AfFcc9EB30\",\"role\":\"admin\",\"via\":[{\"address\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\"}]}\n receivedPermissions.64:\n+ {\"permission\":\"upgrade\",\"from\":\"eth:0xb6e5299fc56053DD5440104Fd6Fd2A3CD064edbC\",\"role\":\"admin\",\"via\":[{\"address\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\"}]}\n receivedPermissions.66:\n+ {\"permission\":\"upgrade\",\"from\":\"eth:0xbaC6DeDf2C10D6D381F9DBd9EFd69D93FfCef50B\",\"role\":\"admin\",\"via\":[{\"address\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\"}]}\n receivedPermissions.71:\n+ {\"permission\":\"upgrade\",\"from\":\"eth:0xd86aE89C089B380f064Fe01899B4071F1eb6Bb3d\",\"role\":\"admin\",\"via\":[{\"address\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\"}]}\n receivedPermissions.75:\n+ {\"permission\":\"upgrade\",\"from\":\"eth:0xEa9A15A29DD180c40442142CaeEfC491d37bfDB2\",\"role\":\"admin\",\"via\":[{\"address\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\"}]}\n receivedPermissions.78:\n+ {\"permission\":\"upgrade\",\"from\":\"eth:0xF921A5B0634f4236B21A4e948317abf9a2E86B6f\",\"role\":\"admin\",\"via\":[{\"address\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\"}]}\n }\n```\n\n```diff\n contract ConfidentialWBTCWrapper (eth:0xd86aE89C089B380f064Fe01899B4071F1eb6Bb3d) [zama/ConfidentialWrapper] {\n +++ 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.\n type:\n- \"EOA\"\n+ \"Contract\"\n proxyType:\n- \"EOA\"\n+ \"EIP1967 proxy\"\n template:\n+ \"zama/ConfidentialWrapper\"\n sourceHashes:\n+ [\"0x7df5501f3f5ffd35e0c61153fcd76f37533ab73a80adf20a7a19b30c246faea3\",\"0x111b5cc66fc29cac57ed685c50a509014181cbf98122b5fd89c0449eea3fab5f\"]\n description:\n+ \"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.\"\n deployerAddress:\n+ \"eth:0xe02e3b1cbEc07FC8D03B2eD15ddCe743403A013b\"\n sinceTimestamp:\n+ 1789148087\n sinceBlock:\n+ 25955687\n values:\n+ {\"$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\"}\n fieldMeta:\n+ {\"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.\"}}\n implementationNames:\n+ {\"eth:0xd86aE89C089B380f064Fe01899B4071F1eb6Bb3d\":\"ERC1967Proxy\",\"eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD\":\"ConfidentialWrapper\"}\n category:\n+ {\"name\":\"Local Infrastructure\",\"priority\":5}\n }\n```\n\n```diff\n contract ZamaGovMultisigA (eth:0xE43c73aAb2b6aBBad6d0461997ce1cfea5ABe66f) [zama/Multisig] {\n +++ description: Aragon multisig plugin for creating proposals and collecting approvals against a configurable threshold.\n receivedPermissions.0:\n+ {\"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\"}]}\n receivedPermissions.1:\n+ {\"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\"}]}\n receivedPermissions.3:\n+ {\"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\"}]}\n receivedPermissions.4:\n+ {\"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\"}]}\n receivedPermissions.5:\n+ {\"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\"}]}\n receivedPermissions.10:\n+ {\"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\"}]}\n receivedPermissions.11:\n+ {\"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\"}]}\n receivedPermissions.12:\n+ {\"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\"}]}\n receivedPermissions.15:\n+ {\"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\"}]}\n receivedPermissions.16:\n+ {\"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\"}]}\n receivedPermissions.17:\n+ {\"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\"}]}\n receivedPermissions.20:\n+ {\"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\"}]}\n receivedPermissions.26:\n+ {\"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\"}]}\n receivedPermissions.28:\n+ {\"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\"}]}\n receivedPermissions.33:\n+ {\"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\"}]}\n receivedPermissions.38:\n+ {\"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\"}]}\n receivedPermissions.41:\n+ {\"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\"}]}\n receivedPermissions.42:\n+ {\"permission\":\"upgrade\",\"from\":\"eth:0x1F6A937119c0c34Db0a2c4F000386a3BfD4A9e73\",\"role\":\"admin\",\"via\":[{\"address\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\"}]}\n receivedPermissions.43:\n+ {\"permission\":\"upgrade\",\"from\":\"eth:0x2ebBd099f66b0ca94DD82B4c06fe3eEf6AFf853c\",\"role\":\"admin\",\"via\":[{\"address\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\"}]}\n receivedPermissions.45:\n+ {\"permission\":\"upgrade\",\"from\":\"eth:0x4FCCF8046FB7FB7AB76321BD39C27453e396B88f\",\"role\":\"admin\",\"via\":[{\"address\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\"}]}\n receivedPermissions.46:\n+ {\"permission\":\"upgrade\",\"from\":\"eth:0x501b014f86a73A7199E00cB31C0e9565Ac51e51B\",\"role\":\"admin\",\"via\":[{\"address\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\"}]}\n receivedPermissions.47:\n+ {\"permission\":\"upgrade\",\"from\":\"eth:0x63a60aCC304b84eF829b263f28e7b636Bf77d45A\",\"role\":\"admin\",\"via\":[{\"address\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\"}]}\n receivedPermissions.51:\n+ {\"permission\":\"upgrade\",\"from\":\"eth:0x76A3f985315aAc9789Cb5BF8A5bb83BFF55FD5a6\",\"role\":\"admin\",\"via\":[{\"address\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\"}]}\n receivedPermissions.53:\n+ {\"permission\":\"upgrade\",\"from\":\"eth:0x77F8207ee451441336538bA07a2F425780dED8DB\",\"role\":\"admin\",\"via\":[{\"address\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\"}]}\n receivedPermissions.54:\n+ {\"permission\":\"upgrade\",\"from\":\"eth:0x80Ae7dbCe3c1696d3eeD04Ec8348c3C432322273\",\"role\":\"admin\",\"via\":[{\"address\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\"}]}\n receivedPermissions.57:\n+ {\"permission\":\"upgrade\",\"from\":\"eth:0x8900123F7e17709C1D80eda1E611A9503Cf1B3df\",\"role\":\"admin\",\"via\":[{\"address\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\"}]}\n receivedPermissions.58:\n+ {\"permission\":\"upgrade\",\"from\":\"eth:0x9ABb8f3dC2863B1F108DeD7ea41902fEF6732A8c\",\"role\":\"admin\",\"via\":[{\"address\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\"}]}\n receivedPermissions.59:\n+ {\"permission\":\"upgrade\",\"from\":\"eth:0xA28A369Df348ac232E4DAF7B0Ef90280d8707D7F\",\"role\":\"admin\",\"via\":[{\"address\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\"}]}\n receivedPermissions.62:\n+ {\"permission\":\"upgrade\",\"from\":\"eth:0xB1B18Ad1F16D744c470cb6B09Cb826AfFcc9EB30\",\"role\":\"admin\",\"via\":[{\"address\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\"}]}\n receivedPermissions.64:\n+ {\"permission\":\"upgrade\",\"from\":\"eth:0xb6e5299fc56053DD5440104Fd6Fd2A3CD064edbC\",\"role\":\"admin\",\"via\":[{\"address\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\"}]}\n receivedPermissions.66:\n+ {\"permission\":\"upgrade\",\"from\":\"eth:0xbaC6DeDf2C10D6D381F9DBd9EFd69D93FfCef50B\",\"role\":\"admin\",\"via\":[{\"address\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\"}]}\n receivedPermissions.71:\n+ {\"permission\":\"upgrade\",\"from\":\"eth:0xd86aE89C089B380f064Fe01899B4071F1eb6Bb3d\",\"role\":\"admin\",\"via\":[{\"address\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\"}]}\n receivedPermissions.75:\n+ {\"permission\":\"upgrade\",\"from\":\"eth:0xEa9A15A29DD180c40442142CaeEfC491d37bfDB2\",\"role\":\"admin\",\"via\":[{\"address\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\"}]}\n receivedPermissions.78:\n+ {\"permission\":\"upgrade\",\"from\":\"eth:0xF921A5B0634f4236B21A4e948317abf9a2E86B6f\",\"role\":\"admin\",\"via\":[{\"address\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\"}]}\n }\n```\n\n```diff\n contract ConfidentialAUSDWrapper (eth:0xEa9A15A29DD180c40442142CaeEfC491d37bfDB2) [zama/ConfidentialWrapper] {\n +++ 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.\n type:\n- \"EOA\"\n+ \"Contract\"\n proxyType:\n- \"EOA\"\n+ \"EIP1967 proxy\"\n template:\n+ \"zama/ConfidentialWrapper\"\n sourceHashes:\n+ [\"0x7df5501f3f5ffd35e0c61153fcd76f37533ab73a80adf20a7a19b30c246faea3\",\"0x111b5cc66fc29cac57ed685c50a509014181cbf98122b5fd89c0449eea3fab5f\"]\n description:\n+ \"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.\"\n deployerAddress:\n+ \"eth:0xe02e3b1cbEc07FC8D03B2eD15ddCe743403A013b\"\n sinceTimestamp:\n+ 1789146719\n sinceBlock:\n+ 25955573\n values:\n+ {\"$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\"}\n fieldMeta:\n+ {\"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.\"}}\n implementationNames:\n+ {\"eth:0xEa9A15A29DD180c40442142CaeEfC491d37bfDB2\":\"ERC1967Proxy\",\"eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD\":\"ConfidentialWrapper\"}\n category:\n+ {\"name\":\"Local Infrastructure\",\"priority\":5}\n }\n```\n\n```diff\n contract ConfidentialTokenWrappersRegistry (eth:0xeb5015fF021DB115aCe010f23F55C2591059bBA0) [zama/ConfidentialTokenWrappersRegistry] {\n +++ description: Registry for Zama confidential token wrappers.\n values.getTokenConfidentialTokenPairs.9:\n+ {\"tokenAddress\":\"eth:0x00000000eFE302BEAA2b3e6e1b18d08D69a9012a\",\"confidentialTokenAddress\":\"eth:0xEa9A15A29DD180c40442142CaeEfC491d37bfDB2\",\"isValid\":true}\n values.getTokenConfidentialTokenPairs.10:\n+ {\"tokenAddress\":\"eth:0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599\",\"confidentialTokenAddress\":\"eth:0xd86aE89C089B380f064Fe01899B4071F1eb6Bb3d\",\"isValid\":true}\n values.getTokenConfidentialTokenPairs.11:\n+ {\"tokenAddress\":\"eth:0x32401B9fb79065Bc15949DE0BD43927492f02F0C\",\"confidentialTokenAddress\":\"eth:0x76A3f985315aAc9789Cb5BF8A5bb83BFF55FD5a6\",\"isValid\":true}\n values.getTokenConfidentialTokenPairs.12:\n+ {\"tokenAddress\":\"eth:0x3d5EcCb62974178236A768A7ef14D3ce468Fbe91\",\"confidentialTokenAddress\":\"eth:0xF921A5B0634f4236B21A4e948317abf9a2E86B6f\",\"isValid\":true}\n values.getTokenConfidentialTokenPairs.13:\n+ {\"tokenAddress\":\"eth:0x500aE64100D7DbDb640531085C2F5d40cDC8930D\",\"confidentialTokenAddress\":\"eth:0xbaC6DeDf2C10D6D381F9DBd9EFd69D93FfCef50B\",\"isValid\":true}\n values.getTokenConfidentialTokenPairs.14:\n+ {\"tokenAddress\":\"eth:0x55C1B6e461a6334B567bAF0FEb5D728715446f05\",\"confidentialTokenAddress\":\"eth:0xb6e5299fc56053DD5440104Fd6Fd2A3CD064edbC\",\"isValid\":true}\n values.getTokenConfidentialTokenPairs.15:\n+ {\"tokenAddress\":\"eth:0x5dc53a23AdC9f2Bed98de6F59F7F309a7c71FF2B\",\"confidentialTokenAddress\":\"eth:0x2ebBd099f66b0ca94DD82B4c06fe3eEf6AFf853c\",\"isValid\":true}\n values.getTokenConfidentialTokenPairs.16:\n+ {\"tokenAddress\":\"eth:0x808507121B80c02388fAd14726482e061B8da827\",\"confidentialTokenAddress\":\"eth:0x8900123F7e17709C1D80eda1E611A9503Cf1B3df\",\"isValid\":true}\n values.getTokenConfidentialTokenPairs.17:\n+ {\"tokenAddress\":\"eth:0xA2EAaD0D586cF9FD73bb2c09cF6A7E3e187D68cd\",\"confidentialTokenAddress\":\"eth:0x77F8207ee451441336538bA07a2F425780dED8DB\",\"isValid\":true}\n values.getTokenConfidentialTokenPairs.18:\n+ {\"tokenAddress\":\"eth:0xB344e331A3cDa61D329fb3Cca2Be5942da87c418\",\"confidentialTokenAddress\":\"eth:0x9ABb8f3dC2863B1F108DeD7ea41902fEF6732A8c\",\"isValid\":true}\n values.getTokenConfidentialTokenPairs.19:\n+ {\"tokenAddress\":\"eth:0xbeef003C68896c7D2c3c60d363e8d71a49Ab2bf9\",\"confidentialTokenAddress\":\"eth:0x1F6A937119c0c34Db0a2c4F000386a3BfD4A9e73\",\"isValid\":true}\n values.getTokenConfidentialTokenPairs.20:\n+ {\"tokenAddress\":\"eth:0xbeeff07d991C04CD640DE9F15C08ba59c4FEDEb7\",\"confidentialTokenAddress\":\"eth:0x80Ae7dbCe3c1696d3eeD04Ec8348c3C432322273\",\"isValid\":true}\n values.getTokenConfidentialTokenPairs.21:\n+ {\"tokenAddress\":\"eth:0xbeeff2C5bF38f90e3482a8b19F12E5a6D2FCa757\",\"confidentialTokenAddress\":\"eth:0x501b014f86a73A7199E00cB31C0e9565Ac51e51B\",\"isValid\":true}\n values.getTokenConfidentialTokenPairs.22:\n+ {\"tokenAddress\":\"eth:0xBf29043164660C60A2a72Cd15FFe2304e87B6838\",\"confidentialTokenAddress\":\"eth:0x63a60aCC304b84eF829b263f28e7b636Bf77d45A\",\"isValid\":true}\n values.getTokenConfidentialTokenPairs.23:\n+ {\"tokenAddress\":\"eth:0xc207d3f66537D7F66456808379A0E560cF20Da36\",\"confidentialTokenAddress\":\"eth:0xB1B18Ad1F16D744c470cb6B09Cb826AfFcc9EB30\",\"isValid\":true}\n values.getTokenConfidentialTokenPairs.24:\n+ {\"tokenAddress\":\"eth:0xE0181090c22579B6A217f1522cbf8c9f1F0C1965\",\"confidentialTokenAddress\":\"eth:0x4FCCF8046FB7FB7AB76321BD39C27453e396B88f\",\"isValid\":true}\n values.getTokenConfidentialTokenPairs.25:\n+ {\"tokenAddress\":\"eth:0xb48C056C5608bA2Ee4cD94AF2bF4b1F25295Bd7e\",\"confidentialTokenAddress\":\"eth:0xA28A369Df348ac232E4DAF7B0Ef90280d8707D7F\",\"isValid\":true}\n values.getTokenConfidentialTokenPairsLength:\n- 9\n+ 26\n }\n```\n\n```diff\n contract ConfidentialArmcWBTCWrapper (eth:0xF921A5B0634f4236B21A4e948317abf9a2E86B6f) [zama/ConfidentialWrapper] {\n +++ 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.\n type:\n- \"EOA\"\n+ \"Contract\"\n proxyType:\n- \"EOA\"\n+ \"EIP1967 proxy\"\n template:\n+ \"zama/ConfidentialWrapper\"\n sourceHashes:\n+ [\"0x7df5501f3f5ffd35e0c61153fcd76f37533ab73a80adf20a7a19b30c246faea3\",\"0x111b5cc66fc29cac57ed685c50a509014181cbf98122b5fd89c0449eea3fab5f\"]\n description:\n+ \"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.\"\n deployerAddress:\n+ \"eth:0xe02e3b1cbEc07FC8D03B2eD15ddCe743403A013b\"\n sinceTimestamp:\n+ 1789148987\n sinceBlock:\n+ 25955762\n values:\n+ {\"$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\"}\n fieldMeta:\n+ {\"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.\"}}\n implementationNames:\n+ {\"eth:0xF921A5B0634f4236B21A4e948317abf9a2E86B6f\":\"ERC1967Proxy\",\"eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD\":\"ConfidentialWrapper\"}\n category:\n+ {\"name\":\"Local Infrastructure\",\"priority\":5}\n }\n```"
}
]
},
{
"id": "4697bd9a",
"date": "Thu, 27 Aug 2026 12:39:40 GMT",
"timestamp": 1787834146,
"description": "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:\n\n1. 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.\n2. Pausing: an owner-set pauser address can pause wrapping, unwrapping, unwrap finalization and confidential transfers; only the owner can unpause.",
"isHighSeverity": true,
"changeCount": 171,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract ConfidentialSteakcUSDCWrapper (eth:0x66Bf74E96900D1a19c7070D939D124f2F565C458) [zama/ConfidentialWrapper] {\n +++ 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.\n template:\n- \"zama/ConfidentialWrapperV3\"\n+ \"zama/ConfidentialWrapper\"\n sourceHashes.1:\n- \"0xc6ef75f9a2275b9cfb58b0322dfb55b63e1630022b171af50f1851ee8052447b\"\n+ \"0x111b5cc66fc29cac57ed685c50a509014181cbf98122b5fd89c0449eea3fab5f\"\n description:\n- \"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.\"\n+ \"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.\"\n values.$implementation:\n- \"eth:0x5226fe30Fa7Bf20C1Cd33F125f77D0c42d3c23b5\"\n+ \"eth:0x2ABad2203Eba104b52cf040cCcFA100Df15687F8\"\n values.$pastUpgrades.2:\n+ [\"2026-08-25T15:59:35.000Z\",\"0x55c55172da4c231406a41da3838bff87dc9b361c62f208fe0e60994a1b82b0b0\",[\"eth:0x2ABad2203Eba104b52cf040cCcFA100Df15687F8\"]]\n values.$upgradeCount:\n- 2\n+ 3\n+++ 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.\n+++ severity: HIGH\n values.getUnderlyingDenyListSelector:\n- {\"isSet\":false,\"selector\":\"0x00000000\"}\n+ \"0x00000000\"\n+++ 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.\n+++ severity: HIGH\n values.observers:\n+ []\n+++ description: Whether wrapping, unwrapping, unwrap finalization and confidential transfers are currently halted.\n values.paused:\n+ false\n+++ description: Address allowed to pause the wrapper (zero address means pausing is disabled). Only the owner can unpause.\n values.pauser:\n+ \"eth:0x0000000000000000000000000000000000000000\"\n fieldMeta.getUnderlyingDenyListSelector.description:\n- \"Underlying-token denylist hook used by the wrapper. If enabled, the wrapper calls this selector on the underlying token before restricted operations.\"\n+ \"Underlying-token denylist hook used by the wrapper. If enabled (non-zero), the wrapper calls this selector on the underlying token before restricted operations.\"\n fieldMeta.observers:\n+ {\"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\"}\n fieldMeta.pauser:\n+ {\"description\":\"Address allowed to pause the wrapper (zero address means pausing is disabled). Only the owner can unpause.\",\"type\":\"PERMISSION\"}\n fieldMeta.paused:\n+ {\"description\":\"Whether wrapping, unwrapping, unwrap finalization and confidential transfers are currently halted.\",\"type\":\"RISK_PARAMETER\"}\n implementationNames.eth:0x5226fe30Fa7Bf20C1Cd33F125f77D0c42d3c23b5:\n- \"ConfidentialWrapperV3\"\n implementationNames.eth:0x2ABad2203Eba104b52cf040cCcFA100Df15687F8:\n+ \"ConfidentialWrapper\"\n }\n```\n\n```diff\n contract ConfidentialXAUTWrapper (eth:0x73cc9aF9d6BEFdb3c3fAf8a5E8c05Cb95FdaEEf1) [zama/ConfidentialWrapper] {\n +++ 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.\n template:\n- \"zama/ConfidentialWrapperV3\"\n+ \"zama/ConfidentialWrapper\"\n sourceHashes.1:\n- \"0xc6ef75f9a2275b9cfb58b0322dfb55b63e1630022b171af50f1851ee8052447b\"\n+ \"0x111b5cc66fc29cac57ed685c50a509014181cbf98122b5fd89c0449eea3fab5f\"\n description:\n- \"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.\"\n+ \"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.\"\n values.$implementation:\n- \"eth:0x5226fe30Fa7Bf20C1Cd33F125f77D0c42d3c23b5\"\n+ \"eth:0x2ABad2203Eba104b52cf040cCcFA100Df15687F8\"\n values.$pastUpgrades.3:\n+ [\"2026-08-25T15:59:35.000Z\",\"0x55c55172da4c231406a41da3838bff87dc9b361c62f208fe0e60994a1b82b0b0\",[\"eth:0x2ABad2203Eba104b52cf040cCcFA100Df15687F8\"]]\n values.$upgradeCount:\n- 3\n+ 4\n+++ 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.\n+++ severity: HIGH\n values.getUnderlyingDenyListSelector:\n- {\"isSet\":true,\"selector\":\"0xfbac3951\"}\n+ \"0xfbac3951\"\n+++ 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.\n+++ severity: HIGH\n values.observers:\n+ []\n+++ description: Whether wrapping, unwrapping, unwrap finalization and confidential transfers are currently halted.\n values.paused:\n+ false\n+++ description: Address allowed to pause the wrapper (zero address means pausing is disabled). Only the owner can unpause.\n values.pauser:\n+ \"eth:0x0000000000000000000000000000000000000000\"\n fieldMeta.getUnderlyingDenyListSelector.description:\n- \"Underlying-token denylist hook used by the wrapper. If enabled, the wrapper calls this selector on the underlying token before restricted operations.\"\n+ \"Underlying-token denylist hook used by the wrapper. If enabled (non-zero), the wrapper calls this selector on the underlying token before restricted operations.\"\n fieldMeta.observers:\n+ {\"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\"}\n fieldMeta.pauser:\n+ {\"description\":\"Address allowed to pause the wrapper (zero address means pausing is disabled). Only the owner can unpause.\",\"type\":\"PERMISSION\"}\n fieldMeta.paused:\n+ {\"description\":\"Whether wrapping, unwrapping, unwrap finalization and confidential transfers are currently halted.\",\"type\":\"RISK_PARAMETER\"}\n implementationNames.eth:0x5226fe30Fa7Bf20C1Cd33F125f77D0c42d3c23b5:\n- \"ConfidentialWrapperV3\"\n implementationNames.eth:0x2ABad2203Eba104b52cf040cCcFA100Df15687F8:\n+ \"ConfidentialWrapper\"\n }\n```\n\n```diff\n contract ConfidentialZAMAWrapper (eth:0x80CB147Fd86dC6dEe3Eee7e4Cee33d1397d98071) [zama/ConfidentialWrapper] {\n +++ 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.\n template:\n- \"zama/ConfidentialWrapperV3\"\n+ \"zama/ConfidentialWrapper\"\n sourceHashes.1:\n- \"0xc6ef75f9a2275b9cfb58b0322dfb55b63e1630022b171af50f1851ee8052447b\"\n+ \"0x111b5cc66fc29cac57ed685c50a509014181cbf98122b5fd89c0449eea3fab5f\"\n description:\n- \"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.\"\n+ \"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.\"\n values.$implementation:\n- \"eth:0x5226fe30Fa7Bf20C1Cd33F125f77D0c42d3c23b5\"\n+ \"eth:0x2ABad2203Eba104b52cf040cCcFA100Df15687F8\"\n values.$pastUpgrades.3:\n+ [\"2026-08-25T15:59:35.000Z\",\"0x55c55172da4c231406a41da3838bff87dc9b361c62f208fe0e60994a1b82b0b0\",[\"eth:0x2ABad2203Eba104b52cf040cCcFA100Df15687F8\"]]\n values.$upgradeCount:\n- 3\n+ 4\n+++ 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.\n+++ severity: HIGH\n values.getUnderlyingDenyListSelector:\n- {\"isSet\":false,\"selector\":\"0x00000000\"}\n+ \"0x00000000\"\n+++ 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.\n+++ severity: HIGH\n values.observers:\n+ []\n+++ description: Whether wrapping, unwrapping, unwrap finalization and confidential transfers are currently halted.\n values.paused:\n+ false\n+++ description: Address allowed to pause the wrapper (zero address means pausing is disabled). Only the owner can unpause.\n values.pauser:\n+ \"eth:0x0000000000000000000000000000000000000000\"\n fieldMeta.getUnderlyingDenyListSelector.description:\n- \"Underlying-token denylist hook used by the wrapper. If enabled, the wrapper calls this selector on the underlying token before restricted operations.\"\n+ \"Underlying-token denylist hook used by the wrapper. If enabled (non-zero), the wrapper calls this selector on the underlying token before restricted operations.\"\n fieldMeta.observers:\n+ {\"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\"}\n fieldMeta.pauser:\n+ {\"description\":\"Address allowed to pause the wrapper (zero address means pausing is disabled). Only the owner can unpause.\",\"type\":\"PERMISSION\"}\n fieldMeta.paused:\n+ {\"description\":\"Whether wrapping, unwrapping, unwrap finalization and confidential transfers are currently halted.\",\"type\":\"RISK_PARAMETER\"}\n implementationNames.eth:0x5226fe30Fa7Bf20C1Cd33F125f77D0c42d3c23b5:\n- \"ConfidentialWrapperV3\"\n implementationNames.eth:0x2ABad2203Eba104b52cf040cCcFA100Df15687F8:\n+ \"ConfidentialWrapper\"\n }\n```\n\n```diff\n contract ConfidentialBRONWrapper (eth:0x85dE671c3bec1aDeD752c3Cea943521181C826bc) [zama/ConfidentialWrapper] {\n +++ 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.\n template:\n- \"zama/ConfidentialWrapperV3\"\n+ \"zama/ConfidentialWrapper\"\n sourceHashes.1:\n- \"0xc6ef75f9a2275b9cfb58b0322dfb55b63e1630022b171af50f1851ee8052447b\"\n+ \"0x111b5cc66fc29cac57ed685c50a509014181cbf98122b5fd89c0449eea3fab5f\"\n description:\n- \"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.\"\n+ \"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.\"\n values.$implementation:\n- \"eth:0x5226fe30Fa7Bf20C1Cd33F125f77D0c42d3c23b5\"\n+ \"eth:0x2ABad2203Eba104b52cf040cCcFA100Df15687F8\"\n values.$pastUpgrades.3:\n+ [\"2026-08-25T15:59:35.000Z\",\"0x55c55172da4c231406a41da3838bff87dc9b361c62f208fe0e60994a1b82b0b0\",[\"eth:0x2ABad2203Eba104b52cf040cCcFA100Df15687F8\"]]\n values.$upgradeCount:\n- 3\n+ 4\n+++ 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.\n+++ severity: HIGH\n values.getUnderlyingDenyListSelector:\n- {\"isSet\":false,\"selector\":\"0x00000000\"}\n+ \"0x00000000\"\n+++ 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.\n+++ severity: HIGH\n values.observers:\n+ []\n+++ description: Whether wrapping, unwrapping, unwrap finalization and confidential transfers are currently halted.\n values.paused:\n+ false\n+++ description: Address allowed to pause the wrapper (zero address means pausing is disabled). Only the owner can unpause.\n values.pauser:\n+ \"eth:0x0000000000000000000000000000000000000000\"\n fieldMeta.getUnderlyingDenyListSelector.description:\n- \"Underlying-token denylist hook used by the wrapper. If enabled, the wrapper calls this selector on the underlying token before restricted operations.\"\n+ \"Underlying-token denylist hook used by the wrapper. If enabled (non-zero), the wrapper calls this selector on the underlying token before restricted operations.\"\n fieldMeta.observers:\n+ {\"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\"}\n fieldMeta.pauser:\n+ {\"description\":\"Address allowed to pause the wrapper (zero address means pausing is disabled). Only the owner can unpause.\",\"type\":\"PERMISSION\"}\n fieldMeta.paused:\n+ {\"description\":\"Whether wrapping, unwrapping, unwrap finalization and confidential transfers are currently halted.\",\"type\":\"RISK_PARAMETER\"}\n implementationNames.eth:0x5226fe30Fa7Bf20C1Cd33F125f77D0c42d3c23b5:\n- \"ConfidentialWrapperV3\"\n implementationNames.eth:0x2ABad2203Eba104b52cf040cCcFA100Df15687F8:\n+ \"ConfidentialWrapper\"\n }\n```\n\n```diff\n contract ConfidentialTGBPWrapper (eth:0xa873750ccBafD5ec7Dd13bfD5237d7129832eDD9) [zama/ConfidentialWrapper] {\n +++ 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.\n template:\n- \"zama/ConfidentialWrapperV3\"\n+ \"zama/ConfidentialWrapper\"\n sourceHashes.1:\n- \"0xc6ef75f9a2275b9cfb58b0322dfb55b63e1630022b171af50f1851ee8052447b\"\n+ \"0x111b5cc66fc29cac57ed685c50a509014181cbf98122b5fd89c0449eea3fab5f\"\n description:\n- \"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.\"\n+ \"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.\"\n values.$implementation:\n- \"eth:0x5226fe30Fa7Bf20C1Cd33F125f77D0c42d3c23b5\"\n+ \"eth:0x2ABad2203Eba104b52cf040cCcFA100Df15687F8\"\n values.$pastUpgrades.3:\n+ [\"2026-08-25T15:59:35.000Z\",\"0x55c55172da4c231406a41da3838bff87dc9b361c62f208fe0e60994a1b82b0b0\",[\"eth:0x2ABad2203Eba104b52cf040cCcFA100Df15687F8\"]]\n values.$upgradeCount:\n- 3\n+ 4\n+++ 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.\n+++ severity: HIGH\n values.getUnderlyingDenyListSelector:\n- {\"isSet\":true,\"selector\":\"0x97f735d5\"}\n+ \"0x97f735d5\"\n+++ 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.\n+++ severity: HIGH\n values.observers:\n+ []\n+++ description: Whether wrapping, unwrapping, unwrap finalization and confidential transfers are currently halted.\n values.paused:\n+ false\n+++ description: Address allowed to pause the wrapper (zero address means pausing is disabled). Only the owner can unpause.\n values.pauser:\n+ \"eth:0x0000000000000000000000000000000000000000\"\n fieldMeta.getUnderlyingDenyListSelector.description:\n- \"Underlying-token denylist hook used by the wrapper. If enabled, the wrapper calls this selector on the underlying token before restricted operations.\"\n+ \"Underlying-token denylist hook used by the wrapper. If enabled (non-zero), the wrapper calls this selector on the underlying token before restricted operations.\"\n fieldMeta.observers:\n+ {\"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\"}\n fieldMeta.pauser:\n+ {\"description\":\"Address allowed to pause the wrapper (zero address means pausing is disabled). Only the owner can unpause.\",\"type\":\"PERMISSION\"}\n fieldMeta.paused:\n+ {\"description\":\"Whether wrapping, unwrapping, unwrap finalization and confidential transfers are currently halted.\",\"type\":\"RISK_PARAMETER\"}\n implementationNames.eth:0x5226fe30Fa7Bf20C1Cd33F125f77D0c42d3c23b5:\n- \"ConfidentialWrapperV3\"\n implementationNames.eth:0x2ABad2203Eba104b52cf040cCcFA100Df15687F8:\n+ \"ConfidentialWrapper\"\n }\n```\n\n```diff\n contract ConfidentialUSDTWrapper (eth:0xAe0207C757Aa2B4019Ad96edD0092ddc63EF0c50) [zama/ConfidentialWrapper] {\n +++ 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.\n template:\n- \"zama/ConfidentialWrapperV3\"\n+ \"zama/ConfidentialWrapper\"\n sourceHashes.1:\n- \"0xc6ef75f9a2275b9cfb58b0322dfb55b63e1630022b171af50f1851ee8052447b\"\n+ \"0x111b5cc66fc29cac57ed685c50a509014181cbf98122b5fd89c0449eea3fab5f\"\n description:\n- \"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.\"\n+ \"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.\"\n values.$implementation:\n- \"eth:0x5226fe30Fa7Bf20C1Cd33F125f77D0c42d3c23b5\"\n+ \"eth:0x2ABad2203Eba104b52cf040cCcFA100Df15687F8\"\n values.$pastUpgrades.3:\n+ [\"2026-08-25T15:59:35.000Z\",\"0x55c55172da4c231406a41da3838bff87dc9b361c62f208fe0e60994a1b82b0b0\",[\"eth:0x2ABad2203Eba104b52cf040cCcFA100Df15687F8\"]]\n values.$upgradeCount:\n- 3\n+ 4\n+++ 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.\n+++ severity: HIGH\n values.getUnderlyingDenyListSelector:\n- {\"isSet\":true,\"selector\":\"0x59bf1abe\"}\n+ \"0x59bf1abe\"\n+++ 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.\n+++ severity: HIGH\n values.observers:\n+ []\n+++ description: Whether wrapping, unwrapping, unwrap finalization and confidential transfers are currently halted.\n values.paused:\n+ false\n+++ description: Address allowed to pause the wrapper (zero address means pausing is disabled). Only the owner can unpause.\n values.pauser:\n+ \"eth:0x0000000000000000000000000000000000000000\"\n fieldMeta.getUnderlyingDenyListSelector.description:\n- \"Underlying-token denylist hook used by the wrapper. If enabled, the wrapper calls this selector on the underlying token before restricted operations.\"\n+ \"Underlying-token denylist hook used by the wrapper. If enabled (non-zero), the wrapper calls this selector on the underlying token before restricted operations.\"\n fieldMeta.observers:\n+ {\"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\"}\n fieldMeta.pauser:\n+ {\"description\":\"Address allowed to pause the wrapper (zero address means pausing is disabled). Only the owner can unpause.\",\"type\":\"PERMISSION\"}\n fieldMeta.paused:\n+ {\"description\":\"Whether wrapping, unwrapping, unwrap finalization and confidential transfers are currently halted.\",\"type\":\"RISK_PARAMETER\"}\n implementationNames.eth:0x5226fe30Fa7Bf20C1Cd33F125f77D0c42d3c23b5:\n- \"ConfidentialWrapperV3\"\n implementationNames.eth:0x2ABad2203Eba104b52cf040cCcFA100Df15687F8:\n+ \"ConfidentialWrapper\"\n }\n```\n\n```diff\n contract DAO (eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3) [zama/ZamaDAO] {\n +++ description: Aragon DAO that stores governance state and executes proposal action batches.\n directlyReceivedPermissions.1.description:\n- \"block and unblock users, and transfer ownership.\"\n+ \"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.\"\n directlyReceivedPermissions.4.description:\n- \"block and unblock users, and transfer ownership.\"\n+ \"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.\"\n directlyReceivedPermissions.5.description:\n- \"block and unblock users, and transfer ownership.\"\n+ \"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.\"\n directlyReceivedPermissions.6.description:\n- \"block and unblock users, and transfer ownership.\"\n+ \"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.\"\n directlyReceivedPermissions.7.description:\n- \"block and unblock users, and transfer ownership.\"\n+ \"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.\"\n directlyReceivedPermissions.8.description:\n- \"block and unblock users, and transfer ownership.\"\n+ \"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.\"\n directlyReceivedPermissions.12.description:\n- \"block and unblock users, and transfer ownership.\"\n+ \"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.\"\n directlyReceivedPermissions.17.description:\n- \"block and unblock users, and transfer ownership.\"\n+ \"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.\"\n directlyReceivedPermissions.18.description:\n- \"block and unblock users, and transfer ownership.\"\n+ \"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.\"\n }\n```\n\n```diff\n contract ConfidentialBbqTGBPWrapper (eth:0xBA4cFF6ED6F7Cb2A58776dECa4E984b498446762) [zama/ConfidentialWrapper] {\n +++ 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.\n template:\n- \"zama/ConfidentialWrapperV3\"\n+ \"zama/ConfidentialWrapper\"\n sourceHashes.1:\n- \"0xc6ef75f9a2275b9cfb58b0322dfb55b63e1630022b171af50f1851ee8052447b\"\n+ \"0x111b5cc66fc29cac57ed685c50a509014181cbf98122b5fd89c0449eea3fab5f\"\n description:\n- \"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.\"\n+ \"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.\"\n values.$implementation:\n- \"eth:0x5226fe30Fa7Bf20C1Cd33F125f77D0c42d3c23b5\"\n+ \"eth:0x2ABad2203Eba104b52cf040cCcFA100Df15687F8\"\n values.$pastUpgrades.2:\n+ [\"2026-08-25T15:59:35.000Z\",\"0x55c55172da4c231406a41da3838bff87dc9b361c62f208fe0e60994a1b82b0b0\",[\"eth:0x2ABad2203Eba104b52cf040cCcFA100Df15687F8\"]]\n values.$upgradeCount:\n- 2\n+ 3\n+++ 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.\n+++ severity: HIGH\n values.getUnderlyingDenyListSelector:\n- {\"isSet\":false,\"selector\":\"0x00000000\"}\n+ \"0x00000000\"\n+++ 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.\n+++ severity: HIGH\n values.observers:\n+ []\n+++ description: Whether wrapping, unwrapping, unwrap finalization and confidential transfers are currently halted.\n values.paused:\n+ false\n+++ description: Address allowed to pause the wrapper (zero address means pausing is disabled). Only the owner can unpause.\n values.pauser:\n+ \"eth:0x0000000000000000000000000000000000000000\"\n fieldMeta.getUnderlyingDenyListSelector.description:\n- \"Underlying-token denylist hook used by the wrapper. If enabled, the wrapper calls this selector on the underlying token before restricted operations.\"\n+ \"Underlying-token denylist hook used by the wrapper. If enabled (non-zero), the wrapper calls this selector on the underlying token before restricted operations.\"\n fieldMeta.observers:\n+ {\"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\"}\n fieldMeta.pauser:\n+ {\"description\":\"Address allowed to pause the wrapper (zero address means pausing is disabled). Only the owner can unpause.\",\"type\":\"PERMISSION\"}\n fieldMeta.paused:\n+ {\"description\":\"Whether wrapping, unwrapping, unwrap finalization and confidential transfers are currently halted.\",\"type\":\"RISK_PARAMETER\"}\n implementationNames.eth:0x5226fe30Fa7Bf20C1Cd33F125f77D0c42d3c23b5:\n- \"ConfidentialWrapperV3\"\n implementationNames.eth:0x2ABad2203Eba104b52cf040cCcFA100Df15687F8:\n+ \"ConfidentialWrapper\"\n }\n```\n\n```diff\n contract ZamaGovMultisigB (eth:0xBc860b6a4C860C5424B84A056E53ACFb2C99a38F) [zama/Multisig] {\n +++ description: Aragon multisig plugin for creating proposals and collecting approvals against a configurable threshold.\n receivedPermissions.1.description:\n- \"block and unblock users, and transfer ownership.\"\n+ \"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.\"\n receivedPermissions.4.description:\n- \"block and unblock users, and transfer ownership.\"\n+ \"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.\"\n receivedPermissions.5.description:\n- \"block and unblock users, and transfer ownership.\"\n+ \"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.\"\n receivedPermissions.6.description:\n- \"block and unblock users, and transfer ownership.\"\n+ \"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.\"\n receivedPermissions.7.description:\n- \"block and unblock users, and transfer ownership.\"\n+ \"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.\"\n receivedPermissions.8.description:\n- \"block and unblock users, and transfer ownership.\"\n+ \"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.\"\n receivedPermissions.14.description:\n- \"block and unblock users, and transfer ownership.\"\n+ \"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.\"\n receivedPermissions.19.description:\n- \"block and unblock users, and transfer ownership.\"\n+ \"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.\"\n receivedPermissions.20.description:\n- \"block and unblock users, and transfer ownership.\"\n+ \"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.\"\n }\n```\n\n```diff\n contract ConfidentialWETHWrapper (eth:0xda9396b82634Ea99243cE51258B6A5Ae512D4893) [zama/ConfidentialWrapper] {\n +++ 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.\n template:\n- \"zama/ConfidentialWrapperV3\"\n+ \"zama/ConfidentialWrapper\"\n sourceHashes.1:\n- \"0xc6ef75f9a2275b9cfb58b0322dfb55b63e1630022b171af50f1851ee8052447b\"\n+ \"0x111b5cc66fc29cac57ed685c50a509014181cbf98122b5fd89c0449eea3fab5f\"\n description:\n- \"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.\"\n+ \"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.\"\n values.$implementation:\n- \"eth:0x5226fe30Fa7Bf20C1Cd33F125f77D0c42d3c23b5\"\n+ \"eth:0x2ABad2203Eba104b52cf040cCcFA100Df15687F8\"\n values.$pastUpgrades.3:\n+ [\"2026-08-25T15:59:35.000Z\",\"0x55c55172da4c231406a41da3838bff87dc9b361c62f208fe0e60994a1b82b0b0\",[\"eth:0x2ABad2203Eba104b52cf040cCcFA100Df15687F8\"]]\n values.$upgradeCount:\n- 3\n+ 4\n+++ 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.\n+++ severity: HIGH\n values.getUnderlyingDenyListSelector:\n- {\"isSet\":false,\"selector\":\"0x00000000\"}\n+ \"0x00000000\"\n+++ 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.\n+++ severity: HIGH\n values.observers:\n+ []\n+++ description: Whether wrapping, unwrapping, unwrap finalization and confidential transfers are currently halted.\n values.paused:\n+ false\n+++ description: Address allowed to pause the wrapper (zero address means pausing is disabled). Only the owner can unpause.\n values.pauser:\n+ \"eth:0x0000000000000000000000000000000000000000\"\n fieldMeta.getUnderlyingDenyListSelector.description:\n- \"Underlying-token denylist hook used by the wrapper. If enabled, the wrapper calls this selector on the underlying token before restricted operations.\"\n+ \"Underlying-token denylist hook used by the wrapper. If enabled (non-zero), the wrapper calls this selector on the underlying token before restricted operations.\"\n fieldMeta.observers:\n+ {\"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\"}\n fieldMeta.pauser:\n+ {\"description\":\"Address allowed to pause the wrapper (zero address means pausing is disabled). Only the owner can unpause.\",\"type\":\"PERMISSION\"}\n fieldMeta.paused:\n+ {\"description\":\"Whether wrapping, unwrapping, unwrap finalization and confidential transfers are currently halted.\",\"type\":\"RISK_PARAMETER\"}\n implementationNames.eth:0x5226fe30Fa7Bf20C1Cd33F125f77D0c42d3c23b5:\n- \"ConfidentialWrapperV3\"\n implementationNames.eth:0x2ABad2203Eba104b52cf040cCcFA100Df15687F8:\n+ \"ConfidentialWrapper\"\n }\n```\n\n```diff\n contract ZamaGovMultisigA (eth:0xE43c73aAb2b6aBBad6d0461997ce1cfea5ABe66f) [zama/Multisig] {\n +++ description: Aragon multisig plugin for creating proposals and collecting approvals against a configurable threshold.\n receivedPermissions.1.description:\n- \"block and unblock users, and transfer ownership.\"\n+ \"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.\"\n receivedPermissions.4.description:\n- \"block and unblock users, and transfer ownership.\"\n+ \"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.\"\n receivedPermissions.5.description:\n- \"block and unblock users, and transfer ownership.\"\n+ \"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.\"\n receivedPermissions.6.description:\n- \"block and unblock users, and transfer ownership.\"\n+ \"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.\"\n receivedPermissions.7.description:\n- \"block and unblock users, and transfer ownership.\"\n+ \"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.\"\n receivedPermissions.8.description:\n- \"block and unblock users, and transfer ownership.\"\n+ \"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.\"\n receivedPermissions.14.description:\n- \"block and unblock users, and transfer ownership.\"\n+ \"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.\"\n receivedPermissions.19.description:\n- \"block and unblock users, and transfer ownership.\"\n+ \"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.\"\n receivedPermissions.20.description:\n- \"block and unblock users, and transfer ownership.\"\n+ \"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.\"\n }\n```\n\n```diff\n contract ConfidentialUSDCWrapper (eth:0xe978F22157048E5DB8E5d07971376e86671672B2) [zama/ConfidentialWrapper] {\n +++ 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.\n template:\n- \"zama/ConfidentialWrapperV3\"\n+ \"zama/ConfidentialWrapper\"\n sourceHashes.1:\n- \"0xc6ef75f9a2275b9cfb58b0322dfb55b63e1630022b171af50f1851ee8052447b\"\n+ \"0x111b5cc66fc29cac57ed685c50a509014181cbf98122b5fd89c0449eea3fab5f\"\n description:\n- \"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.\"\n+ \"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.\"\n values.$implementation:\n- \"eth:0x5226fe30Fa7Bf20C1Cd33F125f77D0c42d3c23b5\"\n+ \"eth:0x2ABad2203Eba104b52cf040cCcFA100Df15687F8\"\n values.$pastUpgrades.3:\n+ [\"2026-08-25T15:59:35.000Z\",\"0x55c55172da4c231406a41da3838bff87dc9b361c62f208fe0e60994a1b82b0b0\",[\"eth:0x2ABad2203Eba104b52cf040cCcFA100Df15687F8\"]]\n values.$upgradeCount:\n- 3\n+ 4\n+++ 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.\n+++ severity: HIGH\n values.getUnderlyingDenyListSelector:\n- {\"isSet\":true,\"selector\":\"0xfe575a87\"}\n+ \"0xfe575a87\"\n+++ 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.\n+++ severity: HIGH\n values.observers:\n+ []\n+++ description: Whether wrapping, unwrapping, unwrap finalization and confidential transfers are currently halted.\n values.paused:\n+ false\n+++ description: Address allowed to pause the wrapper (zero address means pausing is disabled). Only the owner can unpause.\n values.pauser:\n+ \"eth:0x0000000000000000000000000000000000000000\"\n fieldMeta.getUnderlyingDenyListSelector.description:\n- \"Underlying-token denylist hook used by the wrapper. If enabled, the wrapper calls this selector on the underlying token before restricted operations.\"\n+ \"Underlying-token denylist hook used by the wrapper. If enabled (non-zero), the wrapper calls this selector on the underlying token before restricted operations.\"\n fieldMeta.observers:\n+ {\"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\"}\n fieldMeta.pauser:\n+ {\"description\":\"Address allowed to pause the wrapper (zero address means pausing is disabled). Only the owner can unpause.\",\"type\":\"PERMISSION\"}\n fieldMeta.paused:\n+ {\"description\":\"Whether wrapping, unwrapping, unwrap finalization and confidential transfers are currently halted.\",\"type\":\"RISK_PARAMETER\"}\n implementationNames.eth:0x5226fe30Fa7Bf20C1Cd33F125f77D0c42d3c23b5:\n- \"ConfidentialWrapperV3\"\n implementationNames.eth:0x2ABad2203Eba104b52cf040cCcFA100Df15687F8:\n+ \"ConfidentialWrapper\"\n }\n```"
}
]
},
{
"id": "45f1347a",
"date": "Tue, 25 Aug 2026 08:55:02 GMT",
"timestamp": 1787648016,
"description": "Add multisig signer.",
"isHighSeverity": false,
"changeCount": 2,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Conduit Multisig 1 (eth:0x4a4962275DF8C60a80d3a25faEc5AA7De116A746) [GnosisSafe] {\n +++ description: None\n values.$members.0:\n+ \"eth:0x9402c42dB162d5a0927c032136f40Cc9C71853F2\"\n values.multisigThreshold:\n- \"4 of 10 (40%)\"\n+ \"4 of 11 (36%)\"\n }\n```"
}
]
},
{
"id": "07be036e",
"date": "Wed, 12 Aug 2026 12:58:00 GMT",
"timestamp": 1786539392,
"description": "Zama FHEVM host-chain upgrade (the Ethereum-side counterpart of the 2026-08-07 Gateway upgrade that moved KMS management off the Gateway): ZamaGovMultisigB executed a DAO (ACL owner) proposal that upgraded four host contracts and initialized two new ones in a single transaction. Governance is unchanged — everything below remains controlled by the Aragon DAO without a timelock.\n\n- KMSVerifier v0.2.0 -> v0.3.0 ([implementation diff](https://disco.l2beat.com/diff/eth:0xd0d0C7E1bc1E2F6Cd00E3b4B1083DdD9969155FD/eth:0x390683dEa46a61786f4F0807bf3559038Cf43Fa4)): all KMS context management (signer sets, thresholds, context create/destroy) is removed from the verifier and moved to the new ProtocolConfig contract. The KMSVerifier is now a stateless proof checker whose signer- and threshold-reads delegate to ProtocolConfig. Public decryption proofs can still select any non-destroyed context via extraData v1.\n- New ProtocolConfig v0.1.0 (proxy eth:0xD8236B57394f90726b26aB25D38CeAC776E1a7C4, impl eth:0x25c76298Fb4d15bFADce4798519a7B37ac0076E7): ACL-owner-governed registry of KMS nodes (signer + tx-sender + metadata) and contexts, now with four separate per-context thresholds: publicDecryption (7), userDecryption (9), kmsGen and mpc. exactly one context is live. the ACL owner can now retune the thresholds of any live context — including the current one — in place, mirroring GatewayConfig v0.6.0 on the Gateway.\n- New KMSGeneration v0.1.0 (proxy eth:0xf102cC9A9D2174630c394f5b7B7D63104E348daa, impl eth:0x5DD95e97287672b5d86dd3a427E855099E5AC940): FHE key- and CRS-generation is now orchestrated onchain on Ethereum (previously not orchestrated onchain at all after being removed from the Gateway KMSGeneration v0.5.0). The ACL owner triggers keygen/crsgen and can abort them; KMS nodes respond with EIP-712 signatures that reach consensus at the ProtocolConfig kmsGen threshold.\n- ACL v0.3.0 -> v0.4.0 ([implementation diff](https://disco.l2beat.com/diff/eth:0x3F6D970d30E1FFE9657aa8072C82dA10eef1c3D6/eth:0x9A017e0ba4c19A325D5a89f5dd2112e605E85418)): adds wildcard user-decryption delegation — a user can delegate user decryption of their handles across all app contracts at once\n- FHEVMExecutor v0.3.0 -> v0.4.0 ([implementation diff](https://disco.l2beat.com/diff/eth:0xC38aAfCBB73Fd4bd6f995275079C4Add9C1687E5/eth:0xf444B2B5e45cD07F1E735122F53A2d70A8c81dB5)): adds two n-ary encrypted operations, `fheSum` (sum over up to 100/60 ciphertexts depending on width) and `fheIsIn` (encrypted set membership), with per-element ACL checks on inputs.\n- HCULimit v0.2.0 -> v0.3.0 ([implementation diff](https://disco.l2beat.com/diff/eth:0x0F2B7e8F19ADc874F21e27ADAA4B22FC00a0B442/eth:0x69A91389006443448d8E90Fd84B6bDF5ae253837)): adds HCU pricing for the new fheSum/fheIsIn operations and a guard reserving the zero transient-storage slot for the per-transaction HCU accumulator (a handle of 0x0 can no longer read/write it). Limits themselves are unchanged (empty reinitializer).",
"isHighSeverity": true,
"changeCount": 160,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract HCULimit (eth:0x3b4da65e45Fda2CAa0285A735ab4361a44F171E2) [zama/ZamaHCULimit_v0_3_0] {\n +++ description: Tracks and enforces per-transaction and per-block homomorphic computation unit limits for FHEVM operation requests. v0.3.0 adds pricing for the fheSum and fheIsIn operations.\n template:\n- \"zama/ZamaHCULimit_v0_2_0\"\n+ \"zama/ZamaHCULimit_v0_3_0\"\n sourceHashes.1:\n- \"0xc52e1b93c97602e6da1f1925e14fc5454426a778875655ec17910be5e217b98e\"\n+ \"0x7ca7880da7a551111a41d9a1673890e2a6c1dd27c3cdf51a82f893b410b2d038\"\n description:\n- \"Tracks and enforces per-transaction and per-block homomorphic computation unit limits for FHEVM operation requests.\"\n+ \"Tracks and enforces per-transaction and per-block homomorphic computation unit limits for FHEVM operation requests. v0.3.0 adds pricing for the fheSum and fheIsIn operations.\"\n values.$implementation:\n- \"eth:0x0F2B7e8F19ADc874F21e27ADAA4B22FC00a0B442\"\n+ \"eth:0x69A91389006443448d8E90Fd84B6bDF5ae253837\"\n values.$pastUpgrades.3:\n+ [\"2026-08-10T11:50:47.000Z\",\"0x3a73cbfe82d45d522aafa83acbc4a44dd89a2b409530e3a52d0076009a036c78\",[\"eth:0x69A91389006443448d8E90Fd84B6bDF5ae253837\"]]\n values.$upgradeCount:\n- 3\n+ 4\n values.getVersion:\n- \"HCULimit v0.2.0\"\n+ \"HCULimit v0.3.0\"\n implementationNames.eth:0x0F2B7e8F19ADc874F21e27ADAA4B22FC00a0B442:\n- \"HCULimit\"\n implementationNames.eth:0x69A91389006443448d8E90Fd84B6bDF5ae253837:\n+ \"HCULimit\"\n }\n```\n\n```diff\n EOA (eth:0x41b19EB4585450db79ac03ba9503106EC7895905) {\n +++ description: None\n receivedPermissions.0.description:\n- \"sign public decryption results accepted by the KMSVerifier.\"\n+ \"sign public decryption results accepted by the KMSVerifier and key- and CRS-generation responses accepted by KMSGeneration.\"\n receivedPermissions.0.from:\n- \"eth:0x77627828a55156b04Ac0DC0eb30467f1a552BB03\"\n+ \"eth:0xD8236B57394f90726b26aB25D38CeAC776E1a7C4\"\n }\n```\n\n```diff\n EOA (eth:0x5d0e7033774dD43eE546D49b72Bd0B561E52f7C8) {\n +++ description: None\n receivedPermissions.0.description:\n- \"sign public decryption results accepted by the KMSVerifier.\"\n+ \"sign public decryption results accepted by the KMSVerifier and key- and CRS-generation responses accepted by KMSGeneration.\"\n receivedPermissions.0.from:\n- \"eth:0x77627828a55156b04Ac0DC0eb30467f1a552BB03\"\n+ \"eth:0xD8236B57394f90726b26aB25D38CeAC776E1a7C4\"\n }\n```\n\n```diff\n EOA (eth:0x6016DCA5e91e62826e3FEA1Fb0a763602dc1E385) {\n +++ description: None\n receivedPermissions.0.description:\n- \"sign public decryption results accepted by the KMSVerifier.\"\n+ \"sign public decryption results accepted by the KMSVerifier and key- and CRS-generation responses accepted by KMSGeneration.\"\n receivedPermissions.0.from:\n- \"eth:0x77627828a55156b04Ac0DC0eb30467f1a552BB03\"\n+ \"eth:0xD8236B57394f90726b26aB25D38CeAC776E1a7C4\"\n }\n```\n\n```diff\n EOA (eth:0x6e5f02Cd4B33f0Cf4ED5326ac9eE25e5aA8c4921) {\n +++ description: None\n receivedPermissions.0.description:\n- \"sign public decryption results accepted by the KMSVerifier.\"\n+ \"sign public decryption results accepted by the KMSVerifier and key- and CRS-generation responses accepted by KMSGeneration.\"\n receivedPermissions.0.from:\n- \"eth:0x77627828a55156b04Ac0DC0eb30467f1a552BB03\"\n+ \"eth:0xD8236B57394f90726b26aB25D38CeAC776E1a7C4\"\n }\n```\n\n```diff\n contract KMSVerifier (eth:0x77627828a55156b04Ac0DC0eb30467f1a552BB03) [zama/ZamaKMSVerifier_v0_3_0] {\n +++ description: Ethereum host-chain verifier 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.\n template:\n- \"zama/ZamaKMSVerifier_v0_2_0\"\n+ \"zama/ZamaKMSVerifier_v0_3_0\"\n sourceHashes.1:\n- \"0xa40292fe461810a065f80e305f6b85ab3ca2cfd416dc965d4791a111554cf638\"\n+ \"0x83222b4971c6b79adbd52cb7d500d84b7d2d59886f828b6a1cdc128dcd2bb9d1\"\n description:\n- \"Ethereum host-chain verifier for public decryption results produced through the Zama Gateway Decryption contract. Confidential token wrappers accept a decrypted value when it is signed by the threshold of the current or any retained non-destroyed KMS context.\"\n+ \"Ethereum host-chain verifier 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.\"\n values.$implementation:\n- \"eth:0xd0d0C7E1bc1E2F6Cd00E3b4B1083DdD9969155FD\"\n+ \"eth:0x390683dEa46a61786f4F0807bf3559038Cf43Fa4\"\n values.$pastUpgrades.3:\n+ [\"2026-08-10T11:50:47.000Z\",\"0x3a73cbfe82d45d522aafa83acbc4a44dd89a2b409530e3a52d0076009a036c78\",[\"eth:0x390683dEa46a61786f4F0807bf3559038Cf43Fa4\"]]\n values.$upgradeCount:\n- 3\n+ 4\n values.createdKmsContexts:\n- []\n values.getVersion:\n- \"KMSVerifier v0.2.0\"\n+ \"KMSVerifier v0.3.0\"\n values.initialKmsContextId:\n- \"3166189940082864718613269121331309980362851143201109172953918312716374638593\"\n values.initialKmsContextSigners:\n- [\"eth:0xe9f7ecfF21a2e0Ca58eA26ae869FEF38ab49ed6f\",\"eth:0xdC472efa1642D5afB684aAaa546E22FB24AAB965\",\"eth:0xbf05c17BEB0BF2F2c78Cd491A53a148e035279C3\",\"eth:0x915055c5F05C0d88BCdf1e3DfBA18aBD2a18350f\",\"eth:0x41b19EB4585450db79ac03ba9503106EC7895905\",\"eth:0x6e5f02Cd4B33f0Cf4ED5326ac9eE25e5aA8c4921\",\"eth:0x966188a1f697F6A1B5cfA51495DD8A8A7b5CdB8D\",\"eth:0x5d0e7033774dD43eE546D49b72Bd0B561E52f7C8\",\"eth:0xDFc9Dcb3D206AA164770874f36a4B5AD2EE5194f\",\"eth:0x7C5Eeb4D8CED0101799B8Cc212eE874097364F58\",\"eth:0x7C17BE232e5968BDa9516478B798b9E90D013fCC\",\"eth:0x6016DCA5e91e62826e3FEA1Fb0a763602dc1E385\",\"eth:0xB7978e602D2AF68258dA614AF949E014BF0DE0eb\"]\n+++ description: ProtocolConfig contract that stores the KMS contexts (signer sets and thresholds) this verifier reads during proof verification. Referenced as a compile-time constant without a getter.\n values.protocolConfig:\n+ \"eth:0xD8236B57394f90726b26aB25D38CeAC776E1a7C4\"\n fieldMeta.aclOwner.severity:\n- \"HIGH\"\n fieldMeta.aclOwner.description:\n- \"Owner of the Zama ACL contract. This account can create a new KMS signer context that immediately becomes the default verifier authority, and can destroy any non-current context.\"\n+ \"Owner of the Zama ACL contract. This account is authorized by onlyACLOwner for KMSVerifier upgrades. Context and threshold management moved to ProtocolConfig in v0.3.0.\"\n fieldMeta.getKmsSigners.severity:\n- \"HIGH\"\n fieldMeta.getKmsSigners.description:\n- \"KMS signers in the current context. Permission coverage is also indexed through initialKmsContextSigners and createdKmsContexts so superseded contexts remain visible.\"\n+ \"KMS signers in the current context, read through from ProtocolConfig where they are indexed for permissions and monitoring.\"\n fieldMeta.initialKmsContextId:\n- {\"severity\":\"HIGH\",\"description\":\"Identifier of the first v0.2 KMS context created from the source-defined context counter during initialization or migration.\",\"type\":\"RISK_PARAMETER\"}\n fieldMeta.initialKmsContextSigners:\n- {\"severity\":\"HIGH\",\"description\":\"Signers in the first v0.2 KMS context. This code-defined context remains authorized for public decryption proofs after later rotations unless the ACL owner explicitly destroys it.\",\"type\":\"PERMISSION\"}\n fieldMeta.createdKmsContexts:\n- {\"severity\":\"HIGH\",\"description\":\"Non-destroyed KMS contexts created after the v0.2 migration, reconstructed from context creation and destruction events. Each context is an immutable signer and threshold snapshot that can attest results for any ciphertext handle; it is not scoped to ciphertext age or key ID.\",\"type\":\"PERMISSION\"}\n fieldMeta.getThreshold.severity:\n- \"HIGH\"\n fieldMeta.getThreshold.description:\n- \"Minimum number of KMS signatures from the current context required to accept a public decryption result. Retained contexts keep their own immutable thresholds.\"\n+ \"Minimum number of unique valid KMS signatures required to accept a public decryption result, read through from the ProtocolConfig public-decryption threshold of the current context.\"\n fieldMeta.getCurrentKmsContextId.severity:\n- \"HIGH\"\n fieldMeta.getCurrentKmsContextId.description:\n- \"Identifier of the context used when proof extraData is empty or starts with version 0. Version 1 extraData can explicitly select any non-destroyed historical context, including for ciphertexts created after that context was superseded.\"\n+ \"Identifier of the context used when proof extraData is empty or starts with version 0. Version 1 extraData can explicitly select any non-destroyed context, including for ciphertexts created after that context was superseded.\"\n fieldMeta.protocolConfig:\n+ {\"description\":\"ProtocolConfig contract that stores the KMS contexts (signer sets and thresholds) this verifier reads during proof verification. Referenced as a compile-time constant without a getter.\",\"type\":\"EXTERNAL\"}\n implementationNames.eth:0xd0d0C7E1bc1E2F6Cd00E3b4B1083DdD9969155FD:\n- \"KMSVerifier\"\n implementationNames.eth:0x390683dEa46a61786f4F0807bf3559038Cf43Fa4:\n+ \"KMSVerifier\"\n }\n```\n\n```diff\n EOA (eth:0x7C17BE232e5968BDa9516478B798b9E90D013fCC) {\n +++ description: None\n receivedPermissions.0.description:\n- \"sign public decryption results accepted by the KMSVerifier.\"\n+ \"sign public decryption results accepted by the KMSVerifier and key- and CRS-generation responses accepted by KMSGeneration.\"\n receivedPermissions.0.from:\n- \"eth:0x77627828a55156b04Ac0DC0eb30467f1a552BB03\"\n+ \"eth:0xD8236B57394f90726b26aB25D38CeAC776E1a7C4\"\n }\n```\n\n```diff\n EOA (eth:0x7C5Eeb4D8CED0101799B8Cc212eE874097364F58) {\n +++ description: None\n receivedPermissions.0.description:\n- \"sign public decryption results accepted by the KMSVerifier.\"\n+ \"sign public decryption results accepted by the KMSVerifier and key- and CRS-generation responses accepted by KMSGeneration.\"\n receivedPermissions.0.from:\n- \"eth:0x77627828a55156b04Ac0DC0eb30467f1a552BB03\"\n+ \"eth:0xD8236B57394f90726b26aB25D38CeAC776E1a7C4\"\n }\n```\n\n```diff\n EOA (eth:0x915055c5F05C0d88BCdf1e3DfBA18aBD2a18350f) {\n +++ description: None\n receivedPermissions.0.description:\n- \"sign public decryption results accepted by the KMSVerifier.\"\n+ \"sign public decryption results accepted by the KMSVerifier and key- and CRS-generation responses accepted by KMSGeneration.\"\n receivedPermissions.0.from:\n- \"eth:0x77627828a55156b04Ac0DC0eb30467f1a552BB03\"\n+ \"eth:0xD8236B57394f90726b26aB25D38CeAC776E1a7C4\"\n }\n```\n\n```diff\n EOA (eth:0x966188a1f697F6A1B5cfA51495DD8A8A7b5CdB8D) {\n +++ description: None\n receivedPermissions.0.description:\n- \"sign public decryption results accepted by the KMSVerifier.\"\n+ \"sign public decryption results accepted by the KMSVerifier and key- and CRS-generation responses accepted by KMSGeneration.\"\n receivedPermissions.0.from:\n- \"eth:0x77627828a55156b04Ac0DC0eb30467f1a552BB03\"\n+ \"eth:0xD8236B57394f90726b26aB25D38CeAC776E1a7C4\"\n }\n```\n\n```diff\n contract DAO (eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3) [zama/ZamaDAO] {\n +++ description: Aragon DAO that stores governance state and executes proposal action batches.\n directlyReceivedPermissions.5:\n- {\"permission\":\"interact\",\"from\":\"eth:0x77627828a55156b04Ac0DC0eb30467f1a552BB03\",\"description\":\"create KMS signer contexts with arbitrary signer sets and thresholds, and destroy non-current contexts. A malicious context can attest an inflated unwrap amount and drain pooled wrapper backing.\",\"role\":\".aclOwner\"}\n directlyReceivedPermissions.15.description:\n- \"transfer ACL ownership, unpause the ACL, block or unblock accounts, manage PauserSet membership, and create or destroy KMSVerifier signer contexts.\"\n+ \"transfer ACL ownership, unpause the ACL, block or unblock accounts, and manage PauserSet membership.\"\n directlyReceivedPermissions.16:\n+ {\"permission\":\"interact\",\"from\":\"eth:0xD8236B57394f90726b26aB25D38CeAC776E1a7C4\",\"description\":\"create KMS contexts with arbitrary node sets and thresholds that immediately become the default verifier 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.\",\"role\":\".aclOwner\"}\n directlyReceivedPermissions.22:\n+ {\"permission\":\"interact\",\"from\":\"eth:0xf102cC9A9D2174630c394f5b7B7D63104E348daa\",\"description\":\"trigger and abort FHE key and CRS generation rounds executed by the KMS nodes.\",\"role\":\".aclOwner\"}\n directlyReceivedPermissions.36:\n+ {\"permission\":\"upgrade\",\"from\":\"eth:0xD8236B57394f90726b26aB25D38CeAC776E1a7C4\",\"description\":\"upgrade the ProtocolConfig implementation.\",\"role\":\".aclOwner\"}\n directlyReceivedPermissions.42:\n+ {\"permission\":\"upgrade\",\"from\":\"eth:0xf102cC9A9D2174630c394f5b7B7D63104E348daa\",\"description\":\"upgrade the KMSGeneration implementation.\",\"role\":\".aclOwner\"}\n }\n```\n\n```diff\n EOA (eth:0xB7978e602D2AF68258dA614AF949E014BF0DE0eb) {\n +++ description: None\n receivedPermissions.0.description:\n- \"sign public decryption results accepted by the KMSVerifier.\"\n+ \"sign public decryption results accepted by the KMSVerifier and key- and CRS-generation responses accepted by KMSGeneration.\"\n receivedPermissions.0.from:\n- \"eth:0x77627828a55156b04Ac0DC0eb30467f1a552BB03\"\n+ \"eth:0xD8236B57394f90726b26aB25D38CeAC776E1a7C4\"\n }\n```\n\n```diff\n contract ZamaGovMultisigB (eth:0xBc860b6a4C860C5424B84A056E53ACFb2C99a38F) [zama/Multisig] {\n +++ description: Aragon multisig plugin for creating proposals and collecting approvals against a configurable threshold.\n receivedPermissions.5:\n- {\"permission\":\"interact\",\"from\":\"eth:0x77627828a55156b04Ac0DC0eb30467f1a552BB03\",\"description\":\"create KMS signer contexts with arbitrary signer sets and thresholds, and destroy non-current contexts. A malicious context can attest an inflated unwrap amount and drain pooled wrapper backing.\",\"role\":\".aclOwner\",\"via\":[{\"address\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\"}]}\n receivedPermissions.17.description:\n- \"transfer ACL ownership, unpause the ACL, block or unblock accounts, manage PauserSet membership, and create or destroy KMSVerifier signer contexts.\"\n+ \"transfer ACL ownership, unpause the ACL, block or unblock accounts, and manage PauserSet membership.\"\n receivedPermissions.18:\n+ {\"permission\":\"interact\",\"from\":\"eth:0xD8236B57394f90726b26aB25D38CeAC776E1a7C4\",\"description\":\"create KMS contexts with arbitrary node sets and thresholds that immediately become the default verifier 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.\",\"role\":\".aclOwner\",\"via\":[{\"address\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\"}]}\n receivedPermissions.24:\n+ {\"permission\":\"interact\",\"from\":\"eth:0xf102cC9A9D2174630c394f5b7B7D63104E348daa\",\"description\":\"trigger and abort FHE key and CRS generation rounds executed by the KMS nodes.\",\"role\":\".aclOwner\",\"via\":[{\"address\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\"}]}\n receivedPermissions.38:\n+ {\"permission\":\"upgrade\",\"from\":\"eth:0xD8236B57394f90726b26aB25D38CeAC776E1a7C4\",\"description\":\"upgrade the ProtocolConfig implementation.\",\"role\":\".aclOwner\",\"via\":[{\"address\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\"}]}\n receivedPermissions.44:\n+ {\"permission\":\"upgrade\",\"from\":\"eth:0xf102cC9A9D2174630c394f5b7B7D63104E348daa\",\"description\":\"upgrade the KMSGeneration implementation.\",\"role\":\".aclOwner\",\"via\":[{\"address\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\"}]}\n }\n```\n\n```diff\n EOA (eth:0xbf05c17BEB0BF2F2c78Cd491A53a148e035279C3) {\n +++ description: None\n receivedPermissions.0.description:\n- \"sign public decryption results accepted by the KMSVerifier.\"\n+ \"sign public decryption results accepted by the KMSVerifier and key- and CRS-generation responses accepted by KMSGeneration.\"\n receivedPermissions.0.from:\n- \"eth:0x77627828a55156b04Ac0DC0eb30467f1a552BB03\"\n+ \"eth:0xD8236B57394f90726b26aB25D38CeAC776E1a7C4\"\n }\n```\n\n```diff\n contract ACL (eth:0xcA2E8f1F656CD25C01F05d0b243Ab1ecd4a8ffb6) [zama/ZamaACL_v0_4_0] {\n +++ description: 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 consensus. Since v0.4.0 users can delegate user decryption of their handles across all app contracts at once via a wildcard delegation.\n template:\n- \"zama/ZamaACL_v0_3_0\"\n+ \"zama/ZamaACL_v0_4_0\"\n sourceHashes.1:\n- \"0x47f47986a3024b31fa3caee357720f4fba4ea3fae419ff53eebe1a66e87d69ef\"\n+ \"0xa69c606dd333427d22d0b664b3c7b39118934dd95a2b7b37c737e37b39bba7e5\"\n description:\n- \"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 consensus.\"\n+ \"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 consensus. Since v0.4.0 users can delegate user decryption of their handles across all app contracts at once via a wildcard delegation.\"\n values.$implementation:\n- \"eth:0x3F6D970d30E1FFE9657aa8072C82dA10eef1c3D6\"\n+ \"eth:0x9A017e0ba4c19A325D5a89f5dd2112e605E85418\"\n values.$pastUpgrades.4:\n+ [\"2026-08-10T11:50:47.000Z\",\"0x3a73cbfe82d45d522aafa83acbc4a44dd89a2b409530e3a52d0076009a036c78\",[\"eth:0x9A017e0ba4c19A325D5a89f5dd2112e605E85418\"]]\n values.$upgradeCount:\n- 4\n+ 5\n values.getVersion:\n- \"ACL v0.3.0\"\n+ \"ACL v0.4.0\"\n+++ description: Sentinel contract address that a user can pass to delegateForUserDecryption to delegate user decryption of their handles across all app contracts at once. The wildcard does not bypass per-handle allowances.\n values.WILDCARD_DELEGATION_ADDRESS:\n+ \"eth:0xFFfFfFffFFfffFFfFFfFFFFFffFFFffffFfFFFfF\"\n fieldMeta.owner.description:\n- \"Owner of the ACL and host-contract owner checked by onlyACLOwner in the Zama verifier and helper contracts.\"\n+ \"Owner of the ACL and host-contract owner checked by onlyACLOwner in the Zama verifier and helper contracts, including ProtocolConfig and KMSGeneration.\"\n fieldMeta.WILDCARD_DELEGATION_ADDRESS:\n+ {\"description\":\"Sentinel contract address that a user can pass to delegateForUserDecryption to delegate user decryption of their handles across all app contracts at once. The wildcard does not bypass per-handle allowances.\"}\n implementationNames.eth:0x3F6D970d30E1FFE9657aa8072C82dA10eef1c3D6:\n- \"ACL\"\n implementationNames.eth:0x9A017e0ba4c19A325D5a89f5dd2112e605E85418:\n+ \"ACL\"\n }\n```\n\n```diff\n contract ProtocolConfig (eth:0xD8236B57394f90726b26aB25D38CeAC776E1a7C4) [zama/ZamaProtocolConfig] {\n +++ description: Ethereum host-chain registry of KMS node 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.\n name:\n- \"EmptyUUPSProxy\"\n+ \"ProtocolConfig\"\n sourceHashes.1:\n- \"0xc71891567f1a766aa3a25d1830c5362e3bcf7682574b11b20a51401acb718db4\"\n+ \"0x3ded50e4089de288e1a23ff043bc49ad1ab743d9c4d68dff679355192bc0edbd\"\n values.$implementation:\n- \"eth:0xC94790325C61A7D98e90d835ea89777d64b17492\"\n+ \"eth:0x25c76298Fb4d15bFADce4798519a7B37ac0076E7\"\n values.$pastUpgrades.1:\n+ [\"2026-08-10T11:50:47.000Z\",\"0x3a73cbfe82d45d522aafa83acbc4a44dd89a2b409530e3a52d0076009a036c78\",[\"eth:0x25c76298Fb4d15bFADce4798519a7B37ac0076E7\"]]\n values.$upgradeCount:\n- 1\n+ 2\n+++ description: Owner of the Zama ACL contract. This account is authorized by onlyACLOwner for all ProtocolConfig administration.\n+++ severity: HIGH\n values.aclOwner:\n+ \"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\"\n+++ description: KMS contexts created after the ProtocolConfig migration, reconstructed from NewKmsContext and KmsContextDestroyed events with their node sets and creation thresholds. The context created by initializeFromMigration does not emit this event and is indexed through the live getters and project overrides. Thresholds can be retuned per context after creation.\n+++ severity: HIGH\n values.createdKmsContexts:\n+ []\n+++ description: KMS signers from contexts created after the ProtocolConfig migration. They remain authorized for public decryption proofs that select their context until the ACL owner destroys that context.\n+++ severity: HIGH\n values.createdKmsContextSigners:\n+ []\n+++ description: KMS transaction senders from contexts created after the ProtocolConfig migration. They remain authorized to submit key- and CRS-generation responses for their context until the ACL owner destroys that context.\n values.createdKmsContextTxSenders:\n+ []\n+++ description: KMS node transaction-sender addresses in the current context. These accounts submit key- and CRS-generation responses to the Ethereum KMSGeneration contract.\n values.currentKmsTxSenders:\n+ [\"eth:0x711EBE8aA590f9C9904ff279239E89dB2eFbC890\",\"eth:0xB4CE988D382425F64c99A352375F72A5f1cf6FFB\",\"eth:0x4eC7200E392B97913cbD6d8160B011406EB019F1\",\"eth:0xEd1D622bd59d657580aBAc65312b40B4B2dA6236\",\"eth:0x74a1E2e87a4026b7B8b5252c747E514159515e9a\",\"eth:0x0e25B8DB74c754C8275C0B219ba2A6CD7c59E31D\",\"eth:0x577Fd21e4BC7D644A4177C4B89146e1Ab394De04\",\"eth:0xbaac6F9DD84bFB303F05B4DE45A88Eec86855BD0\",\"eth:0x43e4c21cf9d24Dc5b4e00031349EC213A2ba8340\",\"eth:0xC105B5933446658D226582f7A112F49a70b54364\",\"eth:0xbcF4943A856497FB2345409D35f4d1eae9A0363E\",\"eth:0xD227C4B573800EdA3bAdA6DAC872E9134E012e6D\",\"eth:0x487e41623b7FeB464ff79F7326DCa791c9a1c5EC\"]\n+++ description: KMS contexts destroyed by the ACL owner. Destroyed contexts are invalid: their per-context getters revert and public decryption proofs can no longer select them.\n+++ severity: HIGH\n values.destroyedKmsContexts:\n+ []\n+++ description: Identifier of the current KMS context, used by verifiers when a proof does not explicitly select a historical context.\n values.getCurrentKmsContextId:\n+ \"3166189940082864718613269121331309980362851143201109172953918312716374638593\"\n+++ description: Minimum number of KMS responses from the current context required to reach consensus on key- and CRS-generation results in KMSGeneration.\n values.getKmsGenThreshold:\n+ 7\n+++ description: KMS signer addresses in the current context. Their signatures are accepted by the Ethereum KMSVerifier for public decryption results and by KMSGeneration for key- and CRS-generation responses. Signers from other live contexts remain authorized for proofs that select their context until that context is destroyed.\n+++ severity: HIGH\n values.getKmsSigners:\n+ [\"eth:0xe9f7ecfF21a2e0Ca58eA26ae869FEF38ab49ed6f\",\"eth:0xdC472efa1642D5afB684aAaa546E22FB24AAB965\",\"eth:0xbf05c17BEB0BF2F2c78Cd491A53a148e035279C3\",\"eth:0x915055c5F05C0d88BCdf1e3DfBA18aBD2a18350f\",\"eth:0x41b19EB4585450db79ac03ba9503106EC7895905\",\"eth:0x6e5f02Cd4B33f0Cf4ED5326ac9eE25e5aA8c4921\",\"eth:0x966188a1f697F6A1B5cfA51495DD8A8A7b5CdB8D\",\"eth:0x5d0e7033774dD43eE546D49b72Bd0B561E52f7C8\",\"eth:0xDFc9Dcb3D206AA164770874f36a4B5AD2EE5194f\",\"eth:0x7C5Eeb4D8CED0101799B8Cc212eE874097364F58\",\"eth:0x7C17BE232e5968BDa9516478B798b9E90D013fCC\",\"eth:0x6016DCA5e91e62826e3FEA1Fb0a763602dc1E385\",\"eth:0xB7978e602D2AF68258dA614AF949E014BF0DE0eb\"]\n+++ description: MPC threshold recorded for the current context. The KMS SDK derives its effective MPC threshold from the nodes it knows about instead of reading this value.\n values.getMpcThreshold:\n+ 4\n+++ description: Minimum number of KMS signatures from the current context required to accept a public decryption result. Retunable in place by the ACL owner without rotating the context.\n+++ severity: HIGH\n values.getPublicDecryptionThreshold:\n+ 7\n+++ description: Minimum number of KMS signatures from the current context required for user decryption verification. Retunable in place by the ACL owner without rotating the context.\n+++ severity: HIGH\n values.getUserDecryptionThreshold:\n+ 9\n values.getVersion:\n+ \"ProtocolConfig v0.1.0\"\n+++ description: Live public-decryption threshold of the migrated context, retunable in place by the ACL owner. It remains security-critical after future rotations while the context is live. This call reverts once the context is destroyed; remove the field then.\n+++ severity: HIGH\n values.migratedKmsContextPublicDecryptionThreshold:\n+ 7\n+++ description: Live KMS signer set of the migrated context. Node membership is immutable, so these signers remain authorized for proofs selecting this context after future rotations. This call reverts once the context is destroyed; remove the field then.\n+++ severity: HIGH\n values.migratedKmsContextSigners:\n+ [\"eth:0xe9f7ecfF21a2e0Ca58eA26ae869FEF38ab49ed6f\",\"eth:0xdC472efa1642D5afB684aAaa546E22FB24AAB965\",\"eth:0xbf05c17BEB0BF2F2c78Cd491A53a148e035279C3\",\"eth:0x915055c5F05C0d88BCdf1e3DfBA18aBD2a18350f\",\"eth:0x41b19EB4585450db79ac03ba9503106EC7895905\",\"eth:0x6e5f02Cd4B33f0Cf4ED5326ac9eE25e5aA8c4921\",\"eth:0x966188a1f697F6A1B5cfA51495DD8A8A7b5CdB8D\",\"eth:0x5d0e7033774dD43eE546D49b72Bd0B561E52f7C8\",\"eth:0xDFc9Dcb3D206AA164770874f36a4B5AD2EE5194f\",\"eth:0x7C5Eeb4D8CED0101799B8Cc212eE874097364F58\",\"eth:0x7C17BE232e5968BDa9516478B798b9E90D013fCC\",\"eth:0x6016DCA5e91e62826e3FEA1Fb0a763602dc1E385\",\"eth:0xB7978e602D2AF68258dA614AF949E014BF0DE0eb\"]\n+++ description: Live user-decryption threshold of the migrated context, retunable in place by the ACL owner. This call reverts once the context is destroyed; remove the field then.\n values.migratedKmsContextUserDecryptionThreshold:\n+ 9\n errors:\n- {\"migratedKmsContextPublicDecryptionThreshold\":\"Processing error occurred.\",\"migratedKmsContextSigners\":\"Processing error occurred.\",\"migratedKmsContextUserDecryptionThreshold\":\"Processing error occurred.\",\"proxiableUUID\":\"Processing error occurred.\"}\n fieldMeta.aclOwner:\n+ {\"severity\":\"HIGH\",\"description\":\"Owner of the Zama ACL contract. This account is authorized by onlyACLOwner for all ProtocolConfig administration.\",\"type\":\"PERMISSION\"}\n fieldMeta.getKmsSigners:\n+ {\"severity\":\"HIGH\",\"description\":\"KMS signer addresses in the current context. Their signatures are accepted by the Ethereum KMSVerifier for public decryption results and by KMSGeneration for key- and CRS-generation responses. Signers from other live contexts remain authorized for proofs that select their context until that context is destroyed.\",\"type\":\"PERMISSION\"}\n fieldMeta.currentKmsTxSenders:\n+ {\"description\":\"KMS node transaction-sender addresses in the current context. These accounts submit key- and CRS-generation responses to the Ethereum KMSGeneration contract.\",\"type\":\"PERMISSION\"}\n fieldMeta.getPublicDecryptionThreshold:\n+ {\"severity\":\"HIGH\",\"description\":\"Minimum number of KMS signatures from the current context required to accept a public decryption result. Retunable in place by the ACL owner without rotating the context.\",\"type\":\"RISK_PARAMETER\"}\n fieldMeta.getUserDecryptionThreshold:\n+ {\"severity\":\"HIGH\",\"description\":\"Minimum number of KMS signatures from the current context required for user decryption verification. Retunable in place by the ACL owner without rotating the context.\",\"type\":\"RISK_PARAMETER\"}\n fieldMeta.getKmsGenThreshold:\n+ {\"description\":\"Minimum number of KMS responses from the current context required to reach consensus on key- and CRS-generation results in KMSGeneration.\",\"type\":\"RISK_PARAMETER\"}\n fieldMeta.getMpcThreshold:\n+ {\"description\":\"MPC threshold recorded for the current context. The KMS SDK derives its effective MPC threshold from the nodes it knows about instead of reading this value.\",\"type\":\"RISK_PARAMETER\"}\n fieldMeta.getCurrentKmsContextId:\n+ {\"description\":\"Identifier of the current KMS context, used by verifiers when a proof does not explicitly select a historical context.\",\"type\":\"RISK_PARAMETER\"}\n fieldMeta.createdKmsContexts:\n+ {\"severity\":\"HIGH\",\"description\":\"KMS contexts created after the ProtocolConfig migration, reconstructed from NewKmsContext and KmsContextDestroyed events with their node sets and creation thresholds. The context created by initializeFromMigration does not emit this event and is indexed through the live getters and project overrides. Thresholds can be retuned per context after creation.\",\"type\":\"RISK_PARAMETER\"}\n fieldMeta.createdKmsContextSigners:\n+ {\"severity\":\"HIGH\",\"description\":\"KMS signers from contexts created after the ProtocolConfig migration. They remain authorized for public decryption proofs that select their context until the ACL owner destroys that context.\",\"type\":\"PERMISSION\"}\n fieldMeta.createdKmsContextTxSenders:\n+ {\"description\":\"KMS transaction senders from contexts created after the ProtocolConfig migration. They remain authorized to submit key- and CRS-generation responses for their context until the ACL owner destroys that context.\",\"type\":\"PERMISSION\"}\n fieldMeta.destroyedKmsContexts:\n+ {\"severity\":\"HIGH\",\"description\":\"KMS contexts destroyed by the ACL owner. Destroyed contexts are invalid: their per-context getters revert and public decryption proofs can no longer select them.\",\"type\":\"RISK_PARAMETER\"}\n implementationNames.eth:0xC94790325C61A7D98e90d835ea89777d64b17492:\n- \"EmptyUUPSProxy\"\n implementationNames.eth:0x25c76298Fb4d15bFADce4798519a7B37ac0076E7:\n+ \"ProtocolConfig\"\n template:\n+ \"zama/ZamaProtocolConfig\"\n description:\n+ \"Ethereum host-chain registry of KMS node 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.\"\n category:\n+ {\"name\":\"Local Infrastructure\",\"priority\":5}\n }\n```\n\n```diff\n contract FHEVMExecutor (eth:0xD82385dADa1ae3E969447f20A3164F6213100e75) [zama/ZamaFHEVMExecutor_v0_4_0] {\n +++ 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.\n template:\n- \"zama/ZamaFHEVMExecutor_v0_3_0\"\n+ \"zama/ZamaFHEVMExecutor_v0_4_0\"\n sourceHashes.1:\n- \"0xf475718e9125acfc2f69d3c9cca8cedb9a15c644da7490f7f5fe0ae2690a77cc\"\n+ \"0x8521799e0a57218bcbd587c2f46222a266bbcbe2f27780cc0bf6ed66eb9cda1f\"\n description:\n- \"FHEVM executor that accepts encrypted operation requests, accounts for computation usage, and stores ciphertext handles for operation results.\"\n+ \"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.\"\n values.$implementation:\n- \"eth:0xC38aAfCBB73Fd4bd6f995275079C4Add9C1687E5\"\n+ \"eth:0xf444B2B5e45cD07F1E735122F53A2d70A8c81dB5\"\n values.$pastUpgrades.4:\n+ [\"2026-08-10T11:50:47.000Z\",\"0x3a73cbfe82d45d522aafa83acbc4a44dd89a2b409530e3a52d0076009a036c78\",[\"eth:0xf444B2B5e45cD07F1E735122F53A2d70A8c81dB5\"]]\n values.$upgradeCount:\n- 4\n+ 5\n values.getVersion:\n- \"FHEVMExecutor v0.3.0\"\n+ \"FHEVMExecutor v0.4.0\"\n implementationNames.eth:0xC38aAfCBB73Fd4bd6f995275079C4Add9C1687E5:\n- \"FHEVMExecutor\"\n implementationNames.eth:0xf444B2B5e45cD07F1E735122F53A2d70A8c81dB5:\n+ \"FHEVMExecutor\"\n }\n```\n\n```diff\n EOA (eth:0xdC472efa1642D5afB684aAaa546E22FB24AAB965) {\n +++ description: None\n receivedPermissions.0.description:\n- \"sign public decryption results accepted by the KMSVerifier.\"\n+ \"sign public decryption results accepted by the KMSVerifier and key- and CRS-generation responses accepted by KMSGeneration.\"\n receivedPermissions.0.from:\n- \"eth:0x77627828a55156b04Ac0DC0eb30467f1a552BB03\"\n+ \"eth:0xD8236B57394f90726b26aB25D38CeAC776E1a7C4\"\n }\n```\n\n```diff\n EOA (eth:0xDFc9Dcb3D206AA164770874f36a4B5AD2EE5194f) {\n +++ description: None\n receivedPermissions.0.description:\n- \"sign public decryption results accepted by the KMSVerifier.\"\n+ \"sign public decryption results accepted by the KMSVerifier and key- and CRS-generation responses accepted by KMSGeneration.\"\n receivedPermissions.0.from:\n- \"eth:0x77627828a55156b04Ac0DC0eb30467f1a552BB03\"\n+ \"eth:0xD8236B57394f90726b26aB25D38CeAC776E1a7C4\"\n }\n```\n\n```diff\n contract ZamaGovMultisigA (eth:0xE43c73aAb2b6aBBad6d0461997ce1cfea5ABe66f) [zama/Multisig] {\n +++ description: Aragon multisig plugin for creating proposals and collecting approvals against a configurable threshold.\n receivedPermissions.5:\n- {\"permission\":\"interact\",\"from\":\"eth:0x77627828a55156b04Ac0DC0eb30467f1a552BB03\",\"description\":\"create KMS signer contexts with arbitrary signer sets and thresholds, and destroy non-current contexts. A malicious context can attest an inflated unwrap amount and drain pooled wrapper backing.\",\"role\":\".aclOwner\",\"via\":[{\"address\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\"}]}\n receivedPermissions.17.description:\n- \"transfer ACL ownership, unpause the ACL, block or unblock accounts, manage PauserSet membership, and create or destroy KMSVerifier signer contexts.\"\n+ \"transfer ACL ownership, unpause the ACL, block or unblock accounts, and manage PauserSet membership.\"\n receivedPermissions.18:\n+ {\"permission\":\"interact\",\"from\":\"eth:0xD8236B57394f90726b26aB25D38CeAC776E1a7C4\",\"description\":\"create KMS contexts with arbitrary node sets and thresholds that immediately become the default verifier 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.\",\"role\":\".aclOwner\",\"via\":[{\"address\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\"}]}\n receivedPermissions.24:\n+ {\"permission\":\"interact\",\"from\":\"eth:0xf102cC9A9D2174630c394f5b7B7D63104E348daa\",\"description\":\"trigger and abort FHE key and CRS generation rounds executed by the KMS nodes.\",\"role\":\".aclOwner\",\"via\":[{\"address\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\"}]}\n receivedPermissions.38:\n+ {\"permission\":\"upgrade\",\"from\":\"eth:0xD8236B57394f90726b26aB25D38CeAC776E1a7C4\",\"description\":\"upgrade the ProtocolConfig implementation.\",\"role\":\".aclOwner\",\"via\":[{\"address\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\"}]}\n receivedPermissions.44:\n+ {\"permission\":\"upgrade\",\"from\":\"eth:0xf102cC9A9D2174630c394f5b7B7D63104E348daa\",\"description\":\"upgrade the KMSGeneration implementation.\",\"role\":\".aclOwner\",\"via\":[{\"address\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\"}]}\n }\n```\n\n```diff\n EOA (eth:0xe9f7ecfF21a2e0Ca58eA26ae869FEF38ab49ed6f) {\n +++ description: None\n receivedPermissions.0.description:\n- \"sign public decryption results accepted by the KMSVerifier.\"\n+ \"sign public decryption results accepted by the KMSVerifier and key- and CRS-generation responses accepted by KMSGeneration.\"\n receivedPermissions.0.from:\n- \"eth:0x77627828a55156b04Ac0DC0eb30467f1a552BB03\"\n+ \"eth:0xD8236B57394f90726b26aB25D38CeAC776E1a7C4\"\n }\n```\n\n```diff\n contract KMSGeneration (eth:0xf102cC9A9D2174630c394f5b7B7D63104E348daa) [zama/ZamaKMSGeneration] {\n +++ description: 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 node transaction senders registered in ProtocolConfig submit EIP-712-signed responses that activate a key or CRS once the ProtocolConfig key-generation threshold is reached.\n name:\n- \"EmptyUUPSProxy\"\n+ \"KMSGeneration\"\n sourceHashes.1:\n- \"0xc71891567f1a766aa3a25d1830c5362e3bcf7682574b11b20a51401acb718db4\"\n+ \"0x265ec46d9bb4498caf973d6a60d3cbbe1f3ceff12597fcd3140bdff9e6322f76\"\n values.$implementation:\n- \"eth:0xC94790325C61A7D98e90d835ea89777d64b17492\"\n+ \"eth:0x5DD95e97287672b5d86dd3a427E855099E5AC940\"\n values.$pastUpgrades.1:\n+ [\"2026-08-10T11:50:47.000Z\",\"0x3a73cbfe82d45d522aafa83acbc4a44dd89a2b409530e3a52d0076009a036c78\",[\"eth:0x5DD95e97287672b5d86dd3a427E855099E5AC940\"]]\n values.$upgradeCount:\n- 1\n+ 2\n+++ description: Owner of the Zama ACL contract. This account is authorized by onlyACLOwner for KMSGeneration administration.\n values.aclOwner:\n+ \"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\"\n+++ description: EIP-712 domain against which KMS key- and CRS-generation response signatures are verified.\n values.eip712Domain:\n+ {\"fields\":\"0x0f\",\"name\":\"KMSGeneration\",\"version\":\"1\",\"chainId\":1,\"verifyingContract\":\"eth:0xf102cC9A9D2174630c394f5b7B7D63104E348daa\",\"salt\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"extensions\":[]}\n+++ description: Identifier of the currently active CRS generated through this contract.\n values.getActiveCrsId:\n+ \"2261564242916331941866620800950935700259179388000792266395655937654553313281\"\n+++ description: Identifier of the currently active FHE key generated through this contract.\n values.getActiveKeyId:\n+ \"1809251394333065553493296640760748560207343510400633813116524750123642650625\"\n values.getCrsCounter:\n+ \"2261564242916331941866620800950935700259179388000792266395655937654553313281\"\n values.getKeyCounter:\n+ \"1809251394333065553493296640760748560207343510400633813116524750123642650625\"\n values.getVersion:\n+ \"KMSGeneration v0.1.0\"\n+++ description: ProtocolConfig contract providing the KMS node set and the key-generation consensus threshold. Referenced as a compile-time constant without a getter.\n values.protocolConfig:\n+ \"eth:0xD8236B57394f90726b26aB25D38CeAC776E1a7C4\"\n errors:\n- {\"proxiableUUID\":\"Processing error occurred.\"}\n implementationNames.eth:0xC94790325C61A7D98e90d835ea89777d64b17492:\n- \"EmptyUUPSProxy\"\n implementationNames.eth:0x5DD95e97287672b5d86dd3a427E855099E5AC940:\n+ \"KMSGeneration\"\n template:\n+ \"zama/ZamaKMSGeneration\"\n description:\n+ \"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 node transaction senders registered in ProtocolConfig submit EIP-712-signed responses that activate a key or CRS once the ProtocolConfig key-generation threshold is reached.\"\n fieldMeta:\n+ {\"protocolConfig\":{\"description\":\"ProtocolConfig contract providing the KMS node set and the key-generation consensus threshold. Referenced as a compile-time constant without a getter.\",\"type\":\"EXTERNAL\"},\"aclOwner\":{\"description\":\"Owner of the Zama ACL contract. This account is authorized by onlyACLOwner for KMSGeneration administration.\",\"type\":\"PERMISSION\"},\"getActiveKeyId\":{\"description\":\"Identifier of the currently active FHE key generated through this contract.\"},\"getActiveCrsId\":{\"description\":\"Identifier of the currently active CRS generated through this contract.\"},\"eip712Domain\":{\"description\":\"EIP-712 domain against which KMS key- and CRS-generation response signatures are verified.\"}}\n category:\n+ {\"name\":\"Local Infrastructure\",\"priority\":5}\n }\n```"
},
{
"kind": "config-related-changes",
"body": "```diff\n+ Status: CREATED\n contract EmptyUUPSProxy (eth:0xD8236B57394f90726b26aB25D38CeAC776E1a7C4) [N/A]\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract EmptyUUPSProxy (eth:0xf102cC9A9D2174630c394f5b7B7D63104E348daa) [N/A]\n +++ description: None\n```"
}
]
},
{
"id": "5b83a932",
"date": "Fri, 07 Aug 2026 12:57:23 GMT",
"timestamp": 1786107356,
"description": "Zama Gateway upgrade: a larger upgrade that touches key generation and is only half deployed.\n\n- Decryption v0.4.0 -> v0.5.0: requests now pin a KMS context at request time and responses must reference the pinned context\n- GatewayConfig v0.5.0 -> v0.6.0: the owner can now destroy non-current KMS contexts (immediately invalidating them for decryption), retune thresholds of any live context (context-scoped events), and disable/enable/remove host chains. Coprocessor updates now require InputVerification to be paused.\n- KMSGeneration v0.4.0 -> v0.5.0: now view-only; all key/CRS/PRSS/resharing workflows were removed from the gateway after their move to Ethereum (getActiveKeyId/getActiveCrsId are gone).\n- InputVerification v0.3.0 -> v0.4.0 and CiphertextCommits v0.3.0 -> v0.4.0: minor; both now reject requests/handles from disabled host chains, and CiphertextCommits dropped its KMSGeneration reference.\n- a Polygon host chain (chainId 137) is now registered in GatewayConfig.",
"isHighSeverity": true,
"changeCount": 133,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n EOA (zama:0x0e25B8DB74c754C8275C0B219ba2A6CD7c59E31D) {\n +++ description: None\n receivedPermissions.1:\n- {\"permission\":\"interact\",\"from\":\"zama:0x290947F9fed2d91fdB22f35E162aDfA744b7aEe3\",\"description\":\"submit KMS key-generation and CRS-generation responses to KMSGeneration.\",\"role\":\".gatewayKmsTxSenders\"}\n receivedPermissions.2.description:\n- \"submit KMS decryption, key-generation, and CRS-generation responses to gateway contracts.\"\n+ \"submit KMS decryption responses to gateway contracts.\"\n }\n```\n\n```diff\n contract Decryption (zama:0x0f6024a97684f7d90ddb0fAAD79cB15F2C888D24) [zama/Decryption_v0_5_0] {\n +++ description: 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.\n template:\n- \"zama/Decryption_v0_4_0\"\n+ \"zama/Decryption_v0_5_0\"\n sourceHashes.1:\n- \"0xcd821ac822a19a355acde1dd7ce435e2a6e16e21017756b899c058ee64552e28\"\n+ \"0x1dd2af26cc2be12ff30232e8df9c95ec66fcbc987f40372ad56a9d8f1073260c\"\n description:\n- \"Gateway contract that orchestrates public and user decryption requests and checks committed ciphertext material. Each response independently selects a KMS context through extraData, or uses the context current when the response executes; requests do not store a context. KMS nodes enforce host-chain ACL state offchain, and Ethereum KMSVerifier verifies public results against this contract's EIP-712 domain.\"\n+ \"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.\"\n values.$implementation:\n- \"zama:0x943CEfD1A00d3ae5b298bB10D4EddA09B279C8B0\"\n+ \"zama:0x86F8e9626cCff3f2eB3dA248F33DfF43531DBFD8\"\n values.$pastUpgrades.4:\n+ [\"2026-08-06T17:11:04.000Z\",\"0x350755101263bed64dc377ef6f3ef07f95f97918b689967a60ee625d0d9e025c\",[\"zama:0x86F8e9626cCff3f2eB3dA248F33DfF43531DBFD8\"]]\n values.$upgradeCount:\n- 4\n+ 5\n values.getVersion:\n- \"Decryption v0.4.0\"\n+ \"Decryption v0.5.0\"\n fieldMeta.gatewayMultichainACL.description:\n- \"MultichainACL contract containing the gateway-side host-chain ACL mirror. The upgraded Decryption contract no longer checks it onchain and relies on KMS nodes to enforce ACL state.\"\n+ \"MultichainACL contract containing the gateway-side host-chain ACL mirror. Decryption does not check it onchain and relies on KMS nodes to enforce ACL state.\"\n fieldMeta.gatewayKmsTxSenders.description:\n- \"KMS transaction-sender addresses configured in the current GatewayConfig context. Historical context senders can also submit responses when response extraData explicitly selects their retained context. Post-migration contexts are indexed on GatewayConfig; migration-created membership requires a project override because no creation event was emitted.\"\n+ \"KMS transaction-sender addresses configured in the current GatewayConfig context. Senders from other live contexts can still submit responses to requests that pinned their context; destroying a context revokes this. Post-migration contexts are indexed on GatewayConfig; migration-created membership requires a project override because no creation event was emitted.\"\n fieldMeta.gatewayKmsSigners.description:\n- \"KMS signer addresses configured in the current GatewayConfig context. Historical context signers can also sign responses when response extraData explicitly selects their retained context. Post-migration contexts are indexed on GatewayConfig; migration-created membership requires a project override because no creation event was emitted.\"\n+ \"KMS signer addresses configured in the current GatewayConfig context. Signers from other live contexts can still sign responses to requests that pinned their context; destroying a context revokes this. Post-migration contexts are indexed on GatewayConfig; migration-created membership requires a project override because no creation event was emitted.\"\n fieldMeta.gatewayKmsContextId.description:\n- \"Current GatewayConfig KMS context used by responses whose extraData is empty or starts with version 0. Requests do not bind this value, so a rotation can change the context used to answer an already pending request.\"\n+ \"Current GatewayConfig KMS context, pinned by new requests whose extraData is empty or starts with version 0. The pin is stored per request, so a later rotation does not change the context or thresholds used to answer a pending request. Requests recorded before v0.5.0 have no pin and fall back to the context declared by each response.\"\n fieldMeta.gatewayPublicDecryptionThreshold.description:\n- \"Minimum matching-signature count for the current context. Public responses are grouped by a digest containing raw extraData; identical empty or version 0 extraData can accumulate responses across a context rotation while the last response selects the threshold checked.\"\n+ \"Minimum matching-signature count for public decryption consensus in the current context. Each request is answered under the threshold of its pinned context, which the GatewayConfig owner can retune per context.\"\n fieldMeta.gatewayUserDecryptionThreshold.description:\n- \"Minimum response count for the current context. User response counts are stored per request rather than per context, so valid shares submitted under different contexts can be combined and the last response selects the threshold checked.\"\n+ \"Minimum response count for user decryption consensus in the current context. Each request is answered under the threshold of its pinned context, which the GatewayConfig owner can retune per context.\"\n implementationNames.zama:0x943CEfD1A00d3ae5b298bB10D4EddA09B279C8B0:\n- \"Decryption\"\n implementationNames.zama:0x86F8e9626cCff3f2eB3dA248F33DfF43531DBFD8:\n+ \"Decryption\"\n }\n```\n\n```diff\n contract KMSGeneration (zama:0x290947F9fed2d91fdB22f35E162aDfA744b7aEe3) [zama/KMSGeneration_v0_5_0] {\n +++ description: 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.\n template:\n- \"zama/KMSGeneration\"\n+ \"zama/KMSGeneration_v0_5_0\"\n sourceHashes.1:\n- \"0x24b946dbf9b33a087ddcfba5bef6adfb4fb85c47ee48d0f3d35487b5a76900dc\"\n+ \"0x19abe2dec360556cd7dd3bbf0197f56dcaf76dc5889859f0e18046a971c70498\"\n description:\n- \"Gateway contract that orchestrates FHE key generation, CRS generation, PRSS initialization, and key resharing through threshold KMS responses.\"\n+ \"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.\"\n values.$implementation:\n- \"zama:0x3d345DFc156381E6060Cdf652cDf7f92DF94fAFF\"\n+ \"zama:0x68CEb7709aC1bcD60e36c4144a243A445A2cb076\"\n values.$pastUpgrades.3:\n+ [\"2026-08-06T17:11:04.000Z\",\"0x350755101263bed64dc377ef6f3ef07f95f97918b689967a60ee625d0d9e025c\",[\"zama:0x68CEb7709aC1bcD60e36c4144a243A445A2cb076\"]]\n values.$upgradeCount:\n- 3\n+ 4\n values.gatewayKmsGenThreshold:\n- 7\n values.gatewayKmsSigners:\n- [\"zama:0xe9f7ecfF21a2e0Ca58eA26ae869FEF38ab49ed6f\",\"zama:0xdC472efa1642D5afB684aAaa546E22FB24AAB965\",\"zama:0xbf05c17BEB0BF2F2c78Cd491A53a148e035279C3\",\"zama:0x915055c5F05C0d88BCdf1e3DfBA18aBD2a18350f\",\"zama:0x41b19EB4585450db79ac03ba9503106EC7895905\",\"zama:0x6e5f02Cd4B33f0Cf4ED5326ac9eE25e5aA8c4921\",\"zama:0x966188a1f697F6A1B5cfA51495DD8A8A7b5CdB8D\",\"zama:0x5d0e7033774dD43eE546D49b72Bd0B561E52f7C8\",\"zama:0xDFc9Dcb3D206AA164770874f36a4B5AD2EE5194f\",\"zama:0x7C5Eeb4D8CED0101799B8Cc212eE874097364F58\",\"zama:0x7C17BE232e5968BDa9516478B798b9E90D013fCC\",\"zama:0x6016DCA5e91e62826e3FEA1Fb0a763602dc1E385\",\"zama:0xB7978e602D2AF68258dA614AF949E014BF0DE0eb\"]\n values.gatewayKmsTxSenders:\n- [\"zama:0x711EBE8aA590f9C9904ff279239E89dB2eFbC890\",\"zama:0xB4CE988D382425F64c99A352375F72A5f1cf6FFB\",\"zama:0x4eC7200E392B97913cbD6d8160B011406EB019F1\",\"zama:0xEd1D622bd59d657580aBAc65312b40B4B2dA6236\",\"zama:0x74a1E2e87a4026b7B8b5252c747E514159515e9a\",\"zama:0x0e25B8DB74c754C8275C0B219ba2A6CD7c59E31D\",\"zama:0x577Fd21e4BC7D644A4177C4B89146e1Ab394De04\",\"zama:0xbaac6F9DD84bFB303F05B4DE45A88Eec86855BD0\",\"zama:0x43e4c21cf9d24Dc5b4e00031349EC213A2ba8340\",\"zama:0xC105B5933446658D226582f7A112F49a70b54364\",\"zama:0xbcF4943A856497FB2345409D35f4d1eae9A0363E\",\"zama:0xD227C4B573800EdA3bAdA6DAC872E9134E012e6D\",\"zama:0x487e41623b7FeB464ff79F7326DCa791c9a1c5EC\"]\n values.getActiveCrsId:\n- \"2261564242916331941866620800950935700259179388000792266395655937654553313281\"\n values.getActiveKeyId:\n- \"1809251394333065553493296640760748560207343510400633813116524750123642650625\"\n values.getVersion:\n- \"KMSGeneration v0.4.0\"\n+ \"KMSGeneration v0.5.0\"\n fieldMeta.gatewayConfig.description:\n- \"GatewayConfig contract used as the source of truth for the gateway owner, KMS set, and KMS generation threshold.\"\n+ \"GatewayConfig contract used as the source of truth for the gateway owner and for resolving KMS node storage URLs in historical material queries.\"\n fieldMeta.gatewayOwner.description:\n- \"Owner of GatewayConfig. This account authorizes KMSGeneration upgrades and can trigger key, CRS, PRSS, and key-resharing workflows.\"\n+ \"Owner of GatewayConfig. This account authorizes KMSGeneration upgrades.\"\n fieldMeta.gatewayKmsTxSenders:\n- {\"severity\":\"HIGH\",\"description\":\"KMS transaction-sender addresses configured in GatewayConfig. These accounts may submit preprocessing keygen, keygen, and CRS generation responses.\",\"type\":\"PERMISSION\"}\n fieldMeta.gatewayKmsSigners:\n- {\"severity\":\"HIGH\",\"description\":\"KMS signer addresses configured in GatewayConfig. Their EIP-712 signatures determine whether key and CRS generation responses reach threshold.\",\"type\":\"PERMISSION\"}\n fieldMeta.gatewayKmsGenThreshold:\n- {\"severity\":\"HIGH\",\"description\":\"Minimum number of matching KMS responses required before key or CRS generation reaches consensus.\",\"type\":\"RISK_PARAMETER\"}\n fieldMeta.getActiveKeyId:\n- {\"severity\":\"HIGH\",\"description\":\"Identifier of the active FHE key generated through KMS consensus.\",\"type\":\"RISK_PARAMETER\"}\n fieldMeta.getActiveCrsId:\n- {\"severity\":\"HIGH\",\"description\":\"Identifier of the active CRS generated through KMS consensus.\",\"type\":\"RISK_PARAMETER\"}\n fieldMeta.eip712Domain.description:\n- \"EIP-712 domain used when validating KMS signatures over key-generation and CRS-generation responses.\"\n+ \"EIP-712 domain retained from the KMS generation workflows removed in v0.5.0.\"\n implementationNames.zama:0x3d345DFc156381E6060Cdf652cDf7f92DF94fAFF:\n- \"KMSGeneration\"\n implementationNames.zama:0x68CEb7709aC1bcD60e36c4144a243A445A2cb076:\n+ \"KMSGeneration\"\n }\n```\n\n```diff\n EOA (zama:0x41b19EB4585450db79ac03ba9503106EC7895905) {\n +++ description: None\n receivedPermissions.1:\n- {\"permission\":\"interact\",\"from\":\"zama:0x290947F9fed2d91fdB22f35E162aDfA744b7aEe3\",\"description\":\"sign KMS key-generation and CRS-generation material accepted by KMSGeneration.\",\"role\":\".gatewayKmsSigners\"}\n receivedPermissions.2.description:\n- \"sign KMS decryption, key-generation, and CRS-generation material accepted by gateway contracts.\"\n+ \"sign KMS decryption material accepted by gateway contracts.\"\n }\n```\n\n```diff\n EOA (zama:0x43e4c21cf9d24Dc5b4e00031349EC213A2ba8340) {\n +++ description: None\n receivedPermissions.1:\n- {\"permission\":\"interact\",\"from\":\"zama:0x290947F9fed2d91fdB22f35E162aDfA744b7aEe3\",\"description\":\"submit KMS key-generation and CRS-generation responses to KMSGeneration.\",\"role\":\".gatewayKmsTxSenders\"}\n receivedPermissions.2.description:\n- \"submit KMS decryption, key-generation, and CRS-generation responses to gateway contracts.\"\n+ \"submit KMS decryption responses to gateway contracts.\"\n }\n```\n\n```diff\n EOA (zama:0x487e41623b7FeB464ff79F7326DCa791c9a1c5EC) {\n +++ description: None\n receivedPermissions.1:\n- {\"permission\":\"interact\",\"from\":\"zama:0x290947F9fed2d91fdB22f35E162aDfA744b7aEe3\",\"description\":\"submit KMS key-generation and CRS-generation responses to KMSGeneration.\",\"role\":\".gatewayKmsTxSenders\"}\n receivedPermissions.2.description:\n- \"submit KMS decryption, key-generation, and CRS-generation responses to gateway contracts.\"\n+ \"submit KMS decryption responses to gateway contracts.\"\n }\n```\n\n```diff\n EOA (zama:0x4eC7200E392B97913cbD6d8160B011406EB019F1) {\n +++ description: None\n receivedPermissions.1:\n- {\"permission\":\"interact\",\"from\":\"zama:0x290947F9fed2d91fdB22f35E162aDfA744b7aEe3\",\"description\":\"submit KMS key-generation and CRS-generation responses to KMSGeneration.\",\"role\":\".gatewayKmsTxSenders\"}\n receivedPermissions.2.description:\n- \"submit KMS decryption, key-generation, and CRS-generation responses to gateway contracts.\"\n+ \"submit KMS decryption responses to gateway contracts.\"\n }\n```\n\n```diff\n EOA (zama:0x577Fd21e4BC7D644A4177C4B89146e1Ab394De04) {\n +++ description: None\n receivedPermissions.1:\n- {\"permission\":\"interact\",\"from\":\"zama:0x290947F9fed2d91fdB22f35E162aDfA744b7aEe3\",\"description\":\"submit KMS key-generation and CRS-generation responses to KMSGeneration.\",\"role\":\".gatewayKmsTxSenders\"}\n receivedPermissions.2.description:\n- \"submit KMS decryption, key-generation, and CRS-generation responses to gateway contracts.\"\n+ \"submit KMS decryption responses to gateway contracts.\"\n }\n```\n\n```diff\n EOA (zama:0x5d0e7033774dD43eE546D49b72Bd0B561E52f7C8) {\n +++ description: None\n receivedPermissions.1:\n- {\"permission\":\"interact\",\"from\":\"zama:0x290947F9fed2d91fdB22f35E162aDfA744b7aEe3\",\"description\":\"sign KMS key-generation and CRS-generation material accepted by KMSGeneration.\",\"role\":\".gatewayKmsSigners\"}\n receivedPermissions.2.description:\n- \"sign KMS decryption, key-generation, and CRS-generation material accepted by gateway contracts.\"\n+ \"sign KMS decryption material accepted by gateway contracts.\"\n }\n```\n\n```diff\n contract SafeL2 (zama:0x5f0F86BcEad6976711C9B131bCa5D30E767fe2bE) [GnosisSafe] {\n +++ description: Gateway owner Safe. Its LayerZero governance module is outside the Zama Gateway protocol surface covered here.\n receivedPermissions.1:\n- {\"permission\":\"interact\",\"from\":\"zama:0x290947F9fed2d91fdB22f35E162aDfA744b7aEe3\",\"description\":\"start KMS key generation, CRS generation, PRSS initialization, and key resharing.\",\"role\":\".gatewayOwner\"}\n receivedPermissions.5.description:\n- \"create KMS contexts that immediately become current, update current thresholds and other gateway configuration, transfer ownership, and unpause gateway workflow contracts. Historical KMS contexts cannot be removed in this version.\"\n+ \"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.\"\n }\n```\n\n```diff\n EOA (zama:0x6016DCA5e91e62826e3FEA1Fb0a763602dc1E385) {\n +++ description: None\n receivedPermissions.1:\n- {\"permission\":\"interact\",\"from\":\"zama:0x290947F9fed2d91fdB22f35E162aDfA744b7aEe3\",\"description\":\"sign KMS key-generation and CRS-generation material accepted by KMSGeneration.\",\"role\":\".gatewayKmsSigners\"}\n receivedPermissions.2.description:\n- \"sign KMS decryption, key-generation, and CRS-generation material accepted by gateway contracts.\"\n+ \"sign KMS decryption material accepted by gateway contracts.\"\n }\n```\n\n```diff\n EOA (zama:0x6e5f02Cd4B33f0Cf4ED5326ac9eE25e5aA8c4921) {\n +++ description: None\n receivedPermissions.1:\n- {\"permission\":\"interact\",\"from\":\"zama:0x290947F9fed2d91fdB22f35E162aDfA744b7aEe3\",\"description\":\"sign KMS key-generation and CRS-generation material accepted by KMSGeneration.\",\"role\":\".gatewayKmsSigners\"}\n receivedPermissions.2.description:\n- \"sign KMS decryption, key-generation, and CRS-generation material accepted by gateway contracts.\"\n+ \"sign KMS decryption material accepted by gateway contracts.\"\n }\n```\n\n```diff\n EOA (zama:0x711EBE8aA590f9C9904ff279239E89dB2eFbC890) {\n +++ description: None\n receivedPermissions.1:\n- {\"permission\":\"interact\",\"from\":\"zama:0x290947F9fed2d91fdB22f35E162aDfA744b7aEe3\",\"description\":\"submit KMS key-generation and CRS-generation responses to KMSGeneration.\",\"role\":\".gatewayKmsTxSenders\"}\n receivedPermissions.2.description:\n- \"submit KMS decryption, key-generation, and CRS-generation responses to gateway contracts.\"\n+ \"submit KMS decryption responses to gateway contracts.\"\n }\n```\n\n```diff\n EOA (zama:0x74a1E2e87a4026b7B8b5252c747E514159515e9a) {\n +++ description: None\n receivedPermissions.1:\n- {\"permission\":\"interact\",\"from\":\"zama:0x290947F9fed2d91fdB22f35E162aDfA744b7aEe3\",\"description\":\"submit KMS key-generation and CRS-generation responses to KMSGeneration.\",\"role\":\".gatewayKmsTxSenders\"}\n receivedPermissions.2.description:\n- \"submit KMS decryption, key-generation, and CRS-generation responses to gateway contracts.\"\n+ \"submit KMS decryption responses to gateway contracts.\"\n }\n```\n\n```diff\n EOA (zama:0x7C17BE232e5968BDa9516478B798b9E90D013fCC) {\n +++ description: None\n receivedPermissions.1:\n- {\"permission\":\"interact\",\"from\":\"zama:0x290947F9fed2d91fdB22f35E162aDfA744b7aEe3\",\"description\":\"sign KMS key-generation and CRS-generation material accepted by KMSGeneration.\",\"role\":\".gatewayKmsSigners\"}\n receivedPermissions.2.description:\n- \"sign KMS decryption, key-generation, and CRS-generation material accepted by gateway contracts.\"\n+ \"sign KMS decryption material accepted by gateway contracts.\"\n }\n```\n\n```diff\n EOA (zama:0x7C5Eeb4D8CED0101799B8Cc212eE874097364F58) {\n +++ description: None\n receivedPermissions.1:\n- {\"permission\":\"interact\",\"from\":\"zama:0x290947F9fed2d91fdB22f35E162aDfA744b7aEe3\",\"description\":\"sign KMS key-generation and CRS-generation material accepted by KMSGeneration.\",\"role\":\".gatewayKmsSigners\"}\n receivedPermissions.2.description:\n- \"sign KMS decryption, key-generation, and CRS-generation material accepted by gateway contracts.\"\n+ \"sign KMS decryption material accepted by gateway contracts.\"\n }\n```\n\n```diff\n EOA (zama:0x915055c5F05C0d88BCdf1e3DfBA18aBD2a18350f) {\n +++ description: None\n receivedPermissions.1:\n- {\"permission\":\"interact\",\"from\":\"zama:0x290947F9fed2d91fdB22f35E162aDfA744b7aEe3\",\"description\":\"sign KMS key-generation and CRS-generation material accepted by KMSGeneration.\",\"role\":\".gatewayKmsSigners\"}\n receivedPermissions.2.description:\n- \"sign KMS decryption, key-generation, and CRS-generation material accepted by gateway contracts.\"\n+ \"sign KMS decryption material accepted by gateway contracts.\"\n }\n```\n\n```diff\n EOA (zama:0x966188a1f697F6A1B5cfA51495DD8A8A7b5CdB8D) {\n +++ description: None\n receivedPermissions.1:\n- {\"permission\":\"interact\",\"from\":\"zama:0x290947F9fed2d91fdB22f35E162aDfA744b7aEe3\",\"description\":\"sign KMS key-generation and CRS-generation material accepted by KMSGeneration.\",\"role\":\".gatewayKmsSigners\"}\n receivedPermissions.2.description:\n- \"sign KMS decryption, key-generation, and CRS-generation material accepted by gateway contracts.\"\n+ \"sign KMS decryption material accepted by gateway contracts.\"\n }\n```\n\n```diff\n EOA (zama:0xB4CE988D382425F64c99A352375F72A5f1cf6FFB) {\n +++ description: None\n receivedPermissions.1:\n- {\"permission\":\"interact\",\"from\":\"zama:0x290947F9fed2d91fdB22f35E162aDfA744b7aEe3\",\"description\":\"submit KMS key-generation and CRS-generation responses to KMSGeneration.\",\"role\":\".gatewayKmsTxSenders\"}\n receivedPermissions.2.description:\n- \"submit KMS decryption, key-generation, and CRS-generation responses to gateway contracts.\"\n+ \"submit KMS decryption responses to gateway contracts.\"\n }\n```\n\n```diff\n EOA (zama:0xB7978e602D2AF68258dA614AF949E014BF0DE0eb) {\n +++ description: None\n receivedPermissions.1:\n- {\"permission\":\"interact\",\"from\":\"zama:0x290947F9fed2d91fdB22f35E162aDfA744b7aEe3\",\"description\":\"sign KMS key-generation and CRS-generation material accepted by KMSGeneration.\",\"role\":\".gatewayKmsSigners\"}\n receivedPermissions.2.description:\n- \"sign KMS decryption, key-generation, and CRS-generation material accepted by gateway contracts.\"\n+ \"sign KMS decryption material accepted by gateway contracts.\"\n }\n```\n\n```diff\n EOA (zama:0xbaac6F9DD84bFB303F05B4DE45A88Eec86855BD0) {\n +++ description: None\n receivedPermissions.1:\n- {\"permission\":\"interact\",\"from\":\"zama:0x290947F9fed2d91fdB22f35E162aDfA744b7aEe3\",\"description\":\"submit KMS key-generation and CRS-generation responses to KMSGeneration.\",\"role\":\".gatewayKmsTxSenders\"}\n receivedPermissions.2.description:\n- \"submit KMS decryption, key-generation, and CRS-generation responses to gateway contracts.\"\n+ \"submit KMS decryption responses to gateway contracts.\"\n }\n```\n\n```diff\n EOA (zama:0xbcF4943A856497FB2345409D35f4d1eae9A0363E) {\n +++ description: None\n receivedPermissions.1:\n- {\"permission\":\"interact\",\"from\":\"zama:0x290947F9fed2d91fdB22f35E162aDfA744b7aEe3\",\"description\":\"submit KMS key-generation and CRS-generation responses to KMSGeneration.\",\"role\":\".gatewayKmsTxSenders\"}\n receivedPermissions.2.description:\n- \"submit KMS decryption, key-generation, and CRS-generation responses to gateway contracts.\"\n+ \"submit KMS decryption responses to gateway contracts.\"\n }\n```\n\n```diff\n EOA (zama:0xbf05c17BEB0BF2F2c78Cd491A53a148e035279C3) {\n +++ description: None\n receivedPermissions.1:\n- {\"permission\":\"interact\",\"from\":\"zama:0x290947F9fed2d91fdB22f35E162aDfA744b7aEe3\",\"description\":\"sign KMS key-generation and CRS-generation material accepted by KMSGeneration.\",\"role\":\".gatewayKmsSigners\"}\n receivedPermissions.2.description:\n- \"sign KMS decryption, key-generation, and CRS-generation material accepted by gateway contracts.\"\n+ \"sign KMS decryption material accepted by gateway contracts.\"\n }\n```\n\n```diff\n EOA (zama:0xC105B5933446658D226582f7A112F49a70b54364) {\n +++ description: None\n receivedPermissions.1:\n- {\"permission\":\"interact\",\"from\":\"zama:0x290947F9fed2d91fdB22f35E162aDfA744b7aEe3\",\"description\":\"submit KMS key-generation and CRS-generation responses to KMSGeneration.\",\"role\":\".gatewayKmsTxSenders\"}\n receivedPermissions.2.description:\n- \"submit KMS decryption, key-generation, and CRS-generation responses to gateway contracts.\"\n+ \"submit KMS decryption responses to gateway contracts.\"\n }\n```\n\n```diff\n contract InputVerification (zama:0xcB1bB072f38bdAF0F328CdEf1Fc6eDa1DF029287) [zama/InputVerification] {\n +++ 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.\n sourceHashes.1:\n- \"0x52c38ce781ecef28b118222541c9b079f2ae7d6402452584e620e84ca347875f\"\n+ \"0x58bb055397e294a46ebccbc53c94bb2494bf05acd7ad77f2fb7cc46b3ef1eb92\"\n values.$implementation:\n- \"zama:0xA08c4367eB984945da2dad5BF7d94D1B2863197A\"\n+ \"zama:0xf9f0F5ef8301CF1573EBe0F45E13A4CabB621821\"\n values.$pastUpgrades.3:\n+ [\"2026-08-06T17:11:04.000Z\",\"0x350755101263bed64dc377ef6f3ef07f95f97918b689967a60ee625d0d9e025c\",[\"zama:0xf9f0F5ef8301CF1573EBe0F45E13A4CabB621821\"]]\n values.$upgradeCount:\n- 3\n+ 4\n values.getVersion:\n- \"InputVerification v0.3.0\"\n+ \"InputVerification v0.4.0\"\n implementationNames.zama:0xA08c4367eB984945da2dad5BF7d94D1B2863197A:\n- \"InputVerification\"\n implementationNames.zama:0xf9f0F5ef8301CF1573EBe0F45E13A4CabB621821:\n+ \"InputVerification\"\n }\n```\n\n```diff\n EOA (zama:0xD227C4B573800EdA3bAdA6DAC872E9134E012e6D) {\n +++ description: None\n receivedPermissions.1:\n- {\"permission\":\"interact\",\"from\":\"zama:0x290947F9fed2d91fdB22f35E162aDfA744b7aEe3\",\"description\":\"submit KMS key-generation and CRS-generation responses to KMSGeneration.\",\"role\":\".gatewayKmsTxSenders\"}\n receivedPermissions.2.description:\n- \"submit KMS decryption, key-generation, and CRS-generation responses to gateway contracts.\"\n+ \"submit KMS decryption responses to gateway contracts.\"\n }\n```\n\n```diff\n contract CiphertextCommits (zama:0xd82cF70FC102028cd01acB87D0E107780ae4F41F) [zama/CiphertextCommits] {\n +++ 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.\n sourceHashes.1:\n- \"0x70a834887489420cb7ea7044739bcc74d735be01e262a27ea23132992d21a898\"\n+ \"0xa3aa22a184258ca16a5d83ce495ae0d307d4c5ec9fda8a7622d4f95728f4af03\"\n values.$implementation:\n- \"zama:0xC92f2dc7eF79728ed32e745020EF463270217e78\"\n+ \"zama:0xB373Ae42736E3C266D4A5D090c00c7f0Bda06622\"\n values.$pastUpgrades.3:\n+ [\"2026-08-06T17:11:04.000Z\",\"0x350755101263bed64dc377ef6f3ef07f95f97918b689967a60ee625d0d9e025c\",[\"zama:0xB373Ae42736E3C266D4A5D090c00c7f0Bda06622\"]]\n values.$upgradeCount:\n- 3\n+ 4\n values.getVersion:\n- \"CiphertextCommits v0.3.0\"\n+ \"CiphertextCommits v0.4.0\"\n implementationNames.zama:0xC92f2dc7eF79728ed32e745020EF463270217e78:\n- \"CiphertextCommits\"\n implementationNames.zama:0xB373Ae42736E3C266D4A5D090c00c7f0Bda06622:\n+ \"CiphertextCommits\"\n }\n```\n\n```diff\n EOA (zama:0xdC472efa1642D5afB684aAaa546E22FB24AAB965) {\n +++ description: None\n receivedPermissions.1:\n- {\"permission\":\"interact\",\"from\":\"zama:0x290947F9fed2d91fdB22f35E162aDfA744b7aEe3\",\"description\":\"sign KMS key-generation and CRS-generation material accepted by KMSGeneration.\",\"role\":\".gatewayKmsSigners\"}\n receivedPermissions.2.description:\n- \"sign KMS decryption, key-generation, and CRS-generation material accepted by gateway contracts.\"\n+ \"sign KMS decryption material accepted by gateway contracts.\"\n }\n```\n\n```diff\n contract GatewayConfig (zama:0xDE537Be194777A56f8B19d14079E6a78249390ab) [zama/GatewayConfig_v0_6_0] {\n +++ 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.\n template:\n- \"zama/GatewayConfig_v0_5_0\"\n+ \"zama/GatewayConfig_v0_6_0\"\n sourceHashes.1:\n- \"0x1089121569189032b8cee0dae0c71eedecf7757f712a6d14ef684915093c6747\"\n+ \"0xe903576aaecdd97c5036c6bc029149a11b44484c78d9c6b0d802a882d4744597\"\n description:\n- \"Central configuration contract for the Zama Gateway. A KMS context snapshots node transaction senders, signers, and workflow thresholds; historical contexts remain stored and selectable by Decryption because this version has no context-destruction function.\"\n+ \"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.\"\n values.$implementation:\n- \"zama:0x2294E3C211238Ae31E2824576CCd7f996CC7Dc00\"\n+ \"zama:0x1950aD98e834f6c07553365196d4CddeD179c536\"\n values.$pastUpgrades.4:\n+ [\"2026-08-06T17:11:04.000Z\",\"0x350755101263bed64dc377ef6f3ef07f95f97918b689967a60ee625d0d9e025c\",[\"zama:0x1950aD98e834f6c07553365196d4CddeD179c536\"]]\n values.$upgradeCount:\n- 4\n+ 5\n+++ description: Registered host chains and their host-chain FHEVMExecutor and ACL endpoints. Returned addresses belong to the listed host chain, not to the gateway chain; Ethereum entries are exposed as formatted cross-chain references in ethereumHostChains.\n values.getHostChains.1:\n+ {\"chainId\":137,\"fhevmExecutorAddress\":\"zama:0xAB0075E77fe06083f52bdf10e2ccDB3712483057\",\"aclAddress\":\"zama:0x6737F17e31cf26a1b62fb0362acC5a16CB156F49\",\"name\":\"polygon\",\"website\":\"https://polygonscan.com\"}\n values.getVersion:\n- \"GatewayConfig v0.5.0\"\n+ \"GatewayConfig v0.6.0\"\n+++ description: KMS contexts destroyed by the owner. Destroyed contexts are invalid: their per-context getters revert, new requests cannot pin them, and pending requests pinned to them can no longer reach consensus.\n+++ severity: HIGH\n values.destroyedKmsContexts:\n+ []\n+++ description: Registered host chains currently disabled by the owner. Gateway workflows reject requests and ciphertext handles referencing disabled chains; a chain must be disabled before it can be removed.\n+++ severity: HIGH\n values.disabledHostChains:\n+ []\n fieldMeta.owner.description:\n- \"Owner of GatewayConfig. This account creates KMS contexts, changes the current context's thresholds, manages coprocessors, custodians and host chains, transfers ownership, and unpauses gateway contracts. A newly created context becomes current immediately, while all older contexts remain selectable by Decryption.\"\n+ \"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.\"\n fieldMeta.inputVerification.description:\n- \"InputVerification workflow contract paused and unpaused by GatewayConfig.\"\n+ \"InputVerification workflow contract paused and unpaused by GatewayConfig. Coprocessor set and threshold updates require this contract to be paused first.\"\n fieldMeta.ethereumHostChains.description:\n- \"Ethereum host-chain endpoints registered in GatewayConfig, derived from getHostChains entries with chainId 1. These are the L1 FHEVMExecutor and ACL contracts whose state is used by the Gateway workflows.\"\n+ \"Ethereum host-chain endpoints registered in GatewayConfig, derived from getHostChains entries with chainId 1. These are the L1 FHEVMExecutor and ACL contracts whose state is used by the Gateway workflows. Disabled-but-not-removed chains still appear here; see disabledHostChains.\"\n fieldMeta.getKmsTxSenders.description:\n- \"KMS transaction-sender addresses in the current Gateway context. Historical context senders remain authorized for Decryption responses that explicitly select their context; post-migration contexts are indexed here and the migrated context is indexed on Decryption.\"\n+ \"KMS transaction-sender addresses in the current Gateway context. Senders from other live contexts remain authorized for Decryption requests that pinned their context until the context is destroyed; post-migration contexts are indexed here and the migrated context is indexed on Decryption.\"\n fieldMeta.getKmsSigners.description:\n- \"KMS signer addresses in the current Gateway context. Historical context signers remain authorized for explicitly selected Decryption responses; post-migration contexts are indexed here and the migrated context is indexed on Decryption.\"\n+ \"KMS signer addresses in the current Gateway context. Signers from other live contexts remain authorized for Decryption requests that pinned their context until the context is destroyed; post-migration contexts are indexed here and the migrated context is indexed on Decryption.\"\n fieldMeta.createdKmsContexts.description:\n- \"KMS contexts created after migration, reconstructed from UpdateKmsContext events with their node set and creation thresholds. Nodes remain authorized for Decryption indefinitely; later threshold-update events do not identify a context, so final historical thresholds must be read through context-specific getters or project overrides.\"\n+ \"KMS contexts created after migration, reconstructed from UpdateKmsContext events with their node set and creation thresholds. Contexts stay selectable by Decryption requests until destroyed (see destroyedKmsContexts). Thresholds can be retuned per context after creation; current values must be read through context-specific getters or project overrides.\"\n fieldMeta.createdKmsContextTxSenders.description:\n- \"KMS transaction senders from contexts created after migration. They remain authorized for Decryption responses that select their context because GatewayConfig has no context-destruction function.\"\n+ \"KMS transaction senders from contexts created after migration. They remain authorized for Decryption requests that pinned their context until the owner destroys that context.\"\n fieldMeta.createdKmsContextSigners.description:\n- \"KMS signers from contexts created after migration. They remain authorized for Decryption responses that select their context because GatewayConfig has no context-destruction function.\"\n+ \"KMS signers from contexts created after migration. They remain authorized for Decryption requests that pinned their context until the owner destroys that context.\"\n fieldMeta.getMpcThreshold.description:\n- \"MPC threshold for KMS key material generation in the current context.\"\n+ \"MPC threshold for KMS key material generation in the current context. The owner can retune it per context.\"\n fieldMeta.getCurrentKmsContextId.description:\n- \"Identifier of the context used when a Decryption response has empty or version 0 extraData. Version 1 responses can explicitly select any historical context, and requests do not store or bind a context.\"\n+ \"Identifier of the context pinned by new Decryption requests whose extraData is empty or starts with version 0. Version 1 request extraData can explicitly pin any live context; responses must match the pinned context.\"\n fieldMeta.getPublicDecryptionThresholdForContext.description:\n- \"Minimum number of KMS signatures required for public decryption consensus in the current context.\"\n+ \"Minimum number of KMS signatures required for public decryption consensus in the current context. The owner can retune it per context.\"\n fieldMeta.getUserDecryptionThresholdForContext.description:\n- \"Minimum number of KMS shares required for user decryption consensus in the current context.\"\n+ \"Minimum number of KMS shares required for user decryption consensus in the current context. The owner can retune it per context.\"\n fieldMeta.getKmsGenThreshold.description:\n- \"Minimum number of KMS signatures required for key and CRS generation consensus in the current context.\"\n+ \"Minimum number of KMS signatures required for key and CRS generation consensus in the current context. Consumed by the Ethereum-side KMS generation since gateway KMSGeneration v0.5.0.\"\n fieldMeta.getCoprocessorMajorityThreshold.description:\n- \"Minimum number of matching coprocessor messages required for gateway coprocessor consensus.\"\n+ \"Minimum number of matching coprocessor messages required for gateway coprocessor consensus. Updates require InputVerification to be paused first.\"\n fieldMeta.destroyedKmsContexts:\n+ {\"severity\":\"HIGH\",\"description\":\"KMS contexts destroyed by the owner. Destroyed contexts are invalid: their per-context getters revert, new requests cannot pin them, and pending requests pinned to them can no longer reach consensus.\",\"type\":\"RISK_PARAMETER\"}\n fieldMeta.disabledHostChains:\n+ {\"severity\":\"HIGH\",\"description\":\"Registered host chains currently disabled by the owner. Gateway workflows reject requests and ciphertext handles referencing disabled chains; a chain must be disabled before it can be removed.\",\"type\":\"RISK_PARAMETER\"}\n implementationNames.zama:0x2294E3C211238Ae31E2824576CCd7f996CC7Dc00:\n- \"GatewayConfig\"\n implementationNames.zama:0x1950aD98e834f6c07553365196d4CddeD179c536:\n+ \"GatewayConfig\"\n }\n```\n\n```diff\n EOA (zama:0xDFc9Dcb3D206AA164770874f36a4B5AD2EE5194f) {\n +++ description: None\n receivedPermissions.1:\n- {\"permission\":\"interact\",\"from\":\"zama:0x290947F9fed2d91fdB22f35E162aDfA744b7aEe3\",\"description\":\"sign KMS key-generation and CRS-generation material accepted by KMSGeneration.\",\"role\":\".gatewayKmsSigners\"}\n receivedPermissions.2.description:\n- \"sign KMS decryption, key-generation, and CRS-generation material accepted by gateway contracts.\"\n+ \"sign KMS decryption material accepted by gateway contracts.\"\n }\n```\n\n```diff\n EOA (zama:0xe9f7ecfF21a2e0Ca58eA26ae869FEF38ab49ed6f) {\n +++ description: None\n receivedPermissions.1:\n- {\"permission\":\"interact\",\"from\":\"zama:0x290947F9fed2d91fdB22f35E162aDfA744b7aEe3\",\"description\":\"sign KMS key-generation and CRS-generation material accepted by KMSGeneration.\",\"role\":\".gatewayKmsSigners\"}\n receivedPermissions.2.description:\n- \"sign KMS decryption, key-generation, and CRS-generation material accepted by gateway contracts.\"\n+ \"sign KMS decryption material accepted by gateway contracts.\"\n }\n```\n\n```diff\n EOA (zama:0xEd1D622bd59d657580aBAc65312b40B4B2dA6236) {\n +++ description: None\n receivedPermissions.1:\n- {\"permission\":\"interact\",\"from\":\"zama:0x290947F9fed2d91fdB22f35E162aDfA744b7aEe3\",\"description\":\"submit KMS key-generation and CRS-generation responses to KMSGeneration.\",\"role\":\".gatewayKmsTxSenders\"}\n receivedPermissions.2.description:\n- \"submit KMS decryption, key-generation, and CRS-generation responses to gateway contracts.\"\n+ \"submit KMS decryption responses to gateway contracts.\"\n }\n```"
}
]
},
{
"id": "012462c7",
"date": "Tue, 04 Aug 2026 13:19:56 GMT",
"timestamp": 1785844532,
"description": "ZamaGovMultisigB executed a proposal rotating two ZamaGovMultisigA members while preserving its 9-of-17 threshold.",
"isHighSeverity": false,
"changeCount": 5,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract ZamaGovMultisigA (eth:0xE43c73aAb2b6aBBad6d0461997ce1cfea5ABe66f) [zama/Multisig] {\n +++ description: Aragon multisig plugin for creating proposals and collecting approvals against a configurable threshold.\n+++ description: Current multisig members reconstructed from MembersAdded and MembersRemoved events.\n values.$members.5:\n- \"eth:0x32f3D0D7E20Ca11Cad21f32Dad91506ea89f5897\"\n+++ description: Current multisig members reconstructed from MembersAdded and MembersRemoved events.\n values.$members.6:\n- \"eth:0xE53e32a669357Ab0360103d8f294812B914AF9e4\"\n+++ description: Current multisig members reconstructed from MembersAdded and MembersRemoved events.\n values.$members.15:\n+ \"eth:0xc49376C4D044011eEce6eE69eFAe06f0Cc2bd008\"\n+++ description: Current multisig members reconstructed from MembersAdded and MembersRemoved events.\n values.$members.16:\n+ \"eth:0x27B1c34F2aeEc91F9704BD1CE288E5c667F29045\"\n }\n```\n\n```diff\n- Status: DELETED\n contract Safe (eth:0xE53e32a669357Ab0360103d8f294812B914AF9e4) [GnosisSafe]\n +++ description: None\n```"
}
]
},
{
"id": "3a509885",
"date": "Thu, 23 Jul 2026 14:09:37 GMT",
"timestamp": 1784815701,
"description": "The Safe signer set changed from 2-of-3 to 3-of-5, removing two signers and adding four.",
"isHighSeverity": false,
"changeCount": 7,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n- Status: DELETED\n EOA (eth:0x4202860Fa6afAF3e2977cD139Ac693a05e4f9450)\n +++ description: None\n```\n\n```diff\n contract Safe (eth:0x69E55790880d0ABa56E48Ee1f7fc3834b0F5c223) [GnosisSafe] {\n +++ description: None\n values.$members.0:\n+ \"eth:0x5e4f2616AA570d60EC6D7BBF08D070fb81353553\"\n values.$members.1:\n+ \"eth:0x1E3eafD783D47c36dC5CD529721E6cc16456Cc0F\"\n values.$members.1:\n- \"eth:0x7df0Fe803832BB3Ca8906a6e49968C2421C1aE9B\"\n+ \"eth:0x0BBc1d7ceB10a0a00dD3aeBcA37e85D60d4a1103\"\n values.$members.2:\n- \"eth:0x4202860Fa6afAF3e2977cD139Ac693a05e4f9450\"\n+ \"eth:0xFa4902732675Ee16a508487E4fDcb910fFb00A20\"\n values.$threshold:\n- 2\n+ 3\n values.multisigThreshold:\n- \"2 of 3 (67%)\"\n+ \"3 of 5 (60%)\"\n }\n```"
}
]
},
{
"id": "a657d096",
"date": "Mon, 13 Jul 2026 09:17:17 GMT",
"timestamp": 1783927795,
"description": "Introduces KMS signer set rotation on Ethereum and the Gateway: each signer set is called a context and is valid and retains all permissions until specifically invalidated ('destroyed'). HCULimit adds per-transaction and per-block caps plus a bypass whitelist.",
"isHighSeverity": true,
"changeCount": 112,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract HCULimit (eth:0x3b4da65e45Fda2CAa0285A735ab4361a44F171E2) [zama/ZamaHCULimit_v0_2_0] {\n +++ description: Tracks and enforces per-transaction and per-block homomorphic computation unit limits for FHEVM operation requests.\n template:\n- \"zama/ZamaHCULimit\"\n+ \"zama/ZamaHCULimit_v0_2_0\"\n sourceHashes.1:\n- \"0xb4b32e3ee98a51750d9ec0af3a9c599dbb6e097cdf4f55f37e198a75f0f2e5eb\"\n+ \"0xc52e1b93c97602e6da1f1925e14fc5454426a778875655ec17910be5e217b98e\"\n description:\n- \"Tracks and enforces homomorphic computation unit limits for FHEVM operation requests.\"\n+ \"Tracks and enforces per-transaction and per-block homomorphic computation unit limits for FHEVM operation requests.\"\n values.$implementation:\n- \"eth:0x4E4329F10f7EE88a5dDB13716B8bE00c077CBeb6\"\n+ \"eth:0x0F2B7e8F19ADc874F21e27ADAA4B22FC00a0B442\"\n values.$pastUpgrades.2:\n+ [\"2026-07-10T08:34:11.000Z\",\"0xec2212fb2d35b72388507e5fe9c218c97512b943b5f28cedbfba35b7ac9bd224\",[\"eth:0x0F2B7e8F19ADc874F21e27ADAA4B22FC00a0B442\"]]\n values.$upgradeCount:\n- 2\n+ 3\n values.getVersion:\n- \"HCULimit v0.1.0\"\n+ \"HCULimit v0.2.0\"\n+++ description: Callers that bypass the global per-block HCU cap, reconstructed from whitelist events.\n+++ severity: HIGH\n values.blockHCUWhitelist:\n+ []\n+++ description: Maximum HCU consumed by non-whitelisted callers in one block.\n+++ severity: HIGH\n values.getGlobalHCUCapPerBlock:\n+ 281474976710655\n+++ description: Maximum sequential HCU depth allowed in one transaction.\n+++ severity: HIGH\n values.getMaxHCUDepthPerTx:\n+ 5000000\n+++ description: Maximum total HCU allowed in one transaction.\n+++ severity: HIGH\n values.getMaxHCUPerTx:\n+ 20000000\n fieldMeta.getGlobalHCUCapPerBlock:\n+ {\"severity\":\"HIGH\",\"description\":\"Maximum HCU consumed by non-whitelisted callers in one block.\",\"type\":\"RISK_PARAMETER\"}\n fieldMeta.getMaxHCUDepthPerTx:\n+ {\"severity\":\"HIGH\",\"description\":\"Maximum sequential HCU depth allowed in one transaction.\",\"type\":\"RISK_PARAMETER\"}\n fieldMeta.getMaxHCUPerTx:\n+ {\"severity\":\"HIGH\",\"description\":\"Maximum total HCU allowed in one transaction.\",\"type\":\"RISK_PARAMETER\"}\n fieldMeta.blockHCUWhitelist:\n+ {\"severity\":\"HIGH\",\"description\":\"Callers that bypass the global per-block HCU cap, reconstructed from whitelist events.\",\"type\":\"PERMISSION\"}\n fieldMeta.getBlockMeter:\n+ {\"description\":\"HCU consumed by non-whitelisted callers in the current block.\"}\n implementationNames.eth:0x4E4329F10f7EE88a5dDB13716B8bE00c077CBeb6:\n- \"HCULimit\"\n implementationNames.eth:0x0F2B7e8F19ADc874F21e27ADAA4B22FC00a0B442:\n+ \"HCULimit\"\n }\n```\n\n```diff\n contract KMSVerifier (eth:0x77627828a55156b04Ac0DC0eb30467f1a552BB03) [zama/ZamaKMSVerifier_v0_2_0] {\n +++ description: Ethereum host-chain verifier for public decryption results produced through the Zama Gateway Decryption contract. Confidential token wrappers accept a decrypted value when it is signed by the threshold of the current or any retained non-destroyed KMS context.\n template:\n- \"zama/ZamaKMSVerifier\"\n+ \"zama/ZamaKMSVerifier_v0_2_0\"\n sourceHashes.1:\n- \"0xe6773e8f1549070f8e0fcae01d4bcf98332a43c1b6f2d4eca1a108295c327d8e\"\n+ \"0xa40292fe461810a065f80e305f6b85ab3ca2cfd416dc965d4791a111554cf638\"\n description:\n- \"Ethereum host-chain verifier for public decryption results produced through the Zama Gateway Decryption contract. Confidential token wrappers use it before accepting decrypted values.\"\n+ \"Ethereum host-chain verifier for public decryption results produced through the Zama Gateway Decryption contract. Confidential token wrappers accept a decrypted value when it is signed by the threshold of the current or any retained non-destroyed KMS context.\"\n values.$implementation:\n- \"eth:0x8210A6c69FAc2e9856C7a19Ee70b26cFa3A4F0E2\"\n+ \"eth:0xd0d0C7E1bc1E2F6Cd00E3b4B1083DdD9969155FD\"\n values.$pastUpgrades.2:\n+ [\"2026-07-10T08:34:11.000Z\",\"0xec2212fb2d35b72388507e5fe9c218c97512b943b5f28cedbfba35b7ac9bd224\",[\"eth:0xd0d0C7E1bc1E2F6Cd00E3b4B1083DdD9969155FD\"]]\n values.$upgradeCount:\n- 2\n+ 3\n values.getVersion:\n- \"KMSVerifier v0.1.0\"\n+ \"KMSVerifier v0.2.0\"\n+++ description: Non-destroyed KMS contexts created after the v0.2 migration, reconstructed from context creation and destruction events. Each context is an immutable signer and threshold snapshot that can attest results for any ciphertext handle; it is not scoped to ciphertext age or key ID.\n+++ severity: HIGH\n values.createdKmsContexts:\n+ []\n+++ description: Identifier of the context used when proof extraData is empty or starts with version 0. Version 1 extraData can explicitly select any non-destroyed historical context, including for ciphertexts created after that context was superseded.\n+++ severity: HIGH\n values.getCurrentKmsContextId:\n+ \"3166189940082864718613269121331309980362851143201109172953918312716374638593\"\n+++ description: Identifier of the first v0.2 KMS context created from the source-defined context counter during initialization or migration.\n+++ severity: HIGH\n values.initialKmsContextId:\n+ \"3166189940082864718613269121331309980362851143201109172953918312716374638593\"\n+++ description: Signers in the first v0.2 KMS context. This code-defined context remains authorized for public decryption proofs after later rotations unless the ACL owner explicitly destroys it.\n+++ severity: HIGH\n values.initialKmsContextSigners:\n+ [\"eth:0xe9f7ecfF21a2e0Ca58eA26ae869FEF38ab49ed6f\",\"eth:0xdC472efa1642D5afB684aAaa546E22FB24AAB965\",\"eth:0xbf05c17BEB0BF2F2c78Cd491A53a148e035279C3\",\"eth:0x915055c5F05C0d88BCdf1e3DfBA18aBD2a18350f\",\"eth:0x41b19EB4585450db79ac03ba9503106EC7895905\",\"eth:0x6e5f02Cd4B33f0Cf4ED5326ac9eE25e5aA8c4921\",\"eth:0x966188a1f697F6A1B5cfA51495DD8A8A7b5CdB8D\",\"eth:0x5d0e7033774dD43eE546D49b72Bd0B561E52f7C8\",\"eth:0xDFc9Dcb3D206AA164770874f36a4B5AD2EE5194f\",\"eth:0x7C5Eeb4D8CED0101799B8Cc212eE874097364F58\",\"eth:0x7C17BE232e5968BDa9516478B798b9E90D013fCC\",\"eth:0x6016DCA5e91e62826e3FEA1Fb0a763602dc1E385\",\"eth:0xB7978e602D2AF68258dA614AF949E014BF0DE0eb\"]\n fieldMeta.aclOwner.description:\n- \"Owner of the Zama ACL contract. This account is authorized by onlyACLOwner to rotate the KMS signer set and threshold.\"\n+ \"Owner of the Zama ACL contract. This account can create a new KMS signer context that immediately becomes the default verifier authority, and can destroy any non-current context.\"\n fieldMeta.getKmsSigners.description:\n- \"KMS signers accepted by KMSVerifier. The threshold number of these signers must sign public decryption results for the Gateway Decryption EIP-712 domain before wrappers accept the decrypted values.\"\n+ \"KMS signers in the current context. Permission coverage is also indexed through initialKmsContextSigners and createdKmsContexts so superseded contexts remain visible.\"\n fieldMeta.getThreshold.description:\n- \"Minimum number of configured KMS signer signatures required to accept a public decryption result.\"\n+ \"Minimum number of KMS signatures from the current context required to accept a public decryption result. Retained contexts keep their own immutable thresholds.\"\n fieldMeta.initialKmsContextId:\n+ {\"severity\":\"HIGH\",\"description\":\"Identifier of the first v0.2 KMS context created from the source-defined context counter during initialization or migration.\",\"type\":\"RISK_PARAMETER\"}\n fieldMeta.initialKmsContextSigners:\n+ {\"severity\":\"HIGH\",\"description\":\"Signers in the first v0.2 KMS context. This code-defined context remains authorized for public decryption proofs after later rotations unless the ACL owner explicitly destroys it.\",\"type\":\"PERMISSION\"}\n fieldMeta.createdKmsContexts:\n+ {\"severity\":\"HIGH\",\"description\":\"Non-destroyed KMS contexts created after the v0.2 migration, reconstructed from context creation and destruction events. Each context is an immutable signer and threshold snapshot that can attest results for any ciphertext handle; it is not scoped to ciphertext age or key ID.\",\"type\":\"PERMISSION\"}\n fieldMeta.getCurrentKmsContextId:\n+ {\"severity\":\"HIGH\",\"description\":\"Identifier of the context used when proof extraData is empty or starts with version 0. Version 1 extraData can explicitly select any non-destroyed historical context, including for ciphertexts created after that context was superseded.\",\"type\":\"RISK_PARAMETER\"}\n implementationNames.eth:0x8210A6c69FAc2e9856C7a19Ee70b26cFa3A4F0E2:\n- \"KMSVerifier\"\n implementationNames.eth:0xd0d0C7E1bc1E2F6Cd00E3b4B1083DdD9969155FD:\n+ \"KMSVerifier\"\n }\n```\n\n```diff\n contract DAO (eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3) [zama/ZamaDAO] {\n +++ description: Aragon DAO that stores governance state and executes proposal action batches.\n directlyReceivedPermissions.0:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x3b4da65e45Fda2CAa0285A735ab4361a44F171E2\",\"description\":\"change the per-block and per-transaction HCU limits and manage callers that bypass the per-block limit.\",\"role\":\".aclOwner\"}\n directlyReceivedPermissions.4.description:\n- \"set the KMS signer set and signature threshold used for public decryption verification.\"\n+ \"create KMS signer contexts with arbitrary signer sets and thresholds, and destroy non-current contexts. A malicious context can attest an inflated unwrap amount and drain pooled wrapper backing.\"\n directlyReceivedPermissions.14.description:\n- \"transfer ACL ownership, unpause the ACL, block or unblock accounts, manage PauserSet membership, and update Zama verifier signer sets and thresholds.\"\n+ \"transfer ACL ownership, unpause the ACL, block or unblock accounts, manage PauserSet membership, and create or destroy KMSVerifier signer contexts.\"\n }\n```\n\n```diff\n contract ZamaGovMultisigB (eth:0xBc860b6a4C860C5424B84A056E53ACFb2C99a38F) [zama/Multisig] {\n +++ description: Aragon multisig plugin for creating proposals and collecting approvals against a configurable threshold.\n receivedPermissions.0:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x3b4da65e45Fda2CAa0285A735ab4361a44F171E2\",\"description\":\"change the per-block and per-transaction HCU limits and manage callers that bypass the per-block limit.\",\"role\":\".aclOwner\",\"via\":[{\"address\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\"}]}\n receivedPermissions.4.description:\n- \"set the KMS signer set and signature threshold used for public decryption verification.\"\n+ \"create KMS signer contexts with arbitrary signer sets and thresholds, and destroy non-current contexts. A malicious context can attest an inflated unwrap amount and drain pooled wrapper backing.\"\n receivedPermissions.16.description:\n- \"transfer ACL ownership, unpause the ACL, block or unblock accounts, manage PauserSet membership, and update Zama verifier signer sets and thresholds.\"\n+ \"transfer ACL ownership, unpause the ACL, block or unblock accounts, manage PauserSet membership, and create or destroy KMSVerifier signer contexts.\"\n }\n```\n\n```diff\n contract ACL (eth:0xcA2E8f1F656CD25C01F05d0b243Ab1ecd4a8ffb6) [zama/ZamaACL_v0_3_0] {\n +++ description: 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 consensus.\n template:\n- \"zama/ZamaACL\"\n+ \"zama/ZamaACL_v0_3_0\"\n sourceHashes.1:\n- \"0x5f835dee1c2a2676dc34ff636b1df73f1fe8b58073069d0a8df7687cd834f35f\"\n+ \"0x47f47986a3024b31fa3caee357720f4fba4ea3fae419ff53eebe1a66e87d69ef\"\n values.$implementation:\n- \"eth:0x96B171e4f8eCda0FFdD128b319Fa185b14f99D76\"\n+ \"eth:0x3F6D970d30E1FFE9657aa8072C82dA10eef1c3D6\"\n values.$pastUpgrades.3:\n+ [\"2026-07-10T08:34:11.000Z\",\"0xec2212fb2d35b72388507e5fe9c218c97512b943b5f28cedbfba35b7ac9bd224\",[\"eth:0x3F6D970d30E1FFE9657aa8072C82dA10eef1c3D6\"]]\n values.$upgradeCount:\n- 3\n+ 4\n values.getVersion:\n- \"ACL v0.2.0\"\n+ \"ACL v0.3.0\"\n implementationNames.eth:0x96B171e4f8eCda0FFdD128b319Fa185b14f99D76:\n- \"ACL\"\n implementationNames.eth:0x3F6D970d30E1FFE9657aa8072C82dA10eef1c3D6:\n+ \"ACL\"\n }\n```\n\n```diff\n contract FHEVMExecutor (eth:0xD82385dADa1ae3E969447f20A3164F6213100e75) [zama/ZamaFHEVMExecutor_v0_3_0] {\n +++ description: FHEVM executor that accepts encrypted operation requests, accounts for computation usage, and stores ciphertext handles for operation results.\n template:\n- \"zama/ZamaFHEVMExecutor\"\n+ \"zama/ZamaFHEVMExecutor_v0_3_0\"\n sourceHashes.1:\n- \"0xc3b56811670be45b7f1aac864be6855e3875c8e449c2fe3cbb540143f0dacddb\"\n+ \"0xf475718e9125acfc2f69d3c9cca8cedb9a15c644da7490f7f5fe0ae2690a77cc\"\n values.$implementation:\n- \"eth:0xde3624dA8d9c45B57674cA0AcAC40630682211bb\"\n+ \"eth:0xC38aAfCBB73Fd4bd6f995275079C4Add9C1687E5\"\n values.$pastUpgrades.3:\n+ [\"2026-07-10T08:34:11.000Z\",\"0xec2212fb2d35b72388507e5fe9c218c97512b943b5f28cedbfba35b7ac9bd224\",[\"eth:0xC38aAfCBB73Fd4bd6f995275079C4Add9C1687E5\"]]\n values.$upgradeCount:\n- 3\n+ 4\n values.getVersion:\n- \"FHEVMExecutor v0.2.0\"\n+ \"FHEVMExecutor v0.3.0\"\n fieldMeta.getHCULimitAddress.description:\n- \"HCULimit contract used to account for homomorphic computation units consumed by encrypted operations.\"\n+ \"HCULimit contract used to account for homomorphic computation units consumed by encrypted operations for the original external caller.\"\n fieldMeta.getHandleVersion.description:\n- \"Current ciphertext handle version emitted by the executor.\"\n+ \"Current ciphertext handle version emitted by the executor. Version 1 result handles include operation-specific domain separation and block context in their derivation.\"\n implementationNames.eth:0xde3624dA8d9c45B57674cA0AcAC40630682211bb:\n- \"FHEVMExecutor\"\n implementationNames.eth:0xC38aAfCBB73Fd4bd6f995275079C4Add9C1687E5:\n+ \"FHEVMExecutor\"\n }\n```\n\n```diff\n contract ZamaGovMultisigA (eth:0xE43c73aAb2b6aBBad6d0461997ce1cfea5ABe66f) [zama/Multisig] {\n +++ description: Aragon multisig plugin for creating proposals and collecting approvals against a configurable threshold.\n receivedPermissions.0:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x3b4da65e45Fda2CAa0285A735ab4361a44F171E2\",\"description\":\"change the per-block and per-transaction HCU limits and manage callers that bypass the per-block limit.\",\"role\":\".aclOwner\",\"via\":[{\"address\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\"}]}\n receivedPermissions.4.description:\n- \"set the KMS signer set and signature threshold used for public decryption verification.\"\n+ \"create KMS signer contexts with arbitrary signer sets and thresholds, and destroy non-current contexts. A malicious context can attest an inflated unwrap amount and drain pooled wrapper backing.\"\n receivedPermissions.16.description:\n- \"transfer ACL ownership, unpause the ACL, block or unblock accounts, manage PauserSet membership, and update Zama verifier signer sets and thresholds.\"\n+ \"transfer ACL ownership, unpause the ACL, block or unblock accounts, manage PauserSet membership, and create or destroy KMSVerifier signer contexts.\"\n }\n```\n\n```diff\n contract Decryption (zama:0x0f6024a97684f7d90ddb0fAAD79cB15F2C888D24) [zama/Decryption_v0_4_0] {\n +++ description: Gateway contract that orchestrates public and user decryption requests and checks committed ciphertext material. Each response independently selects a KMS context through extraData, or uses the context current when the response executes; requests do not store a context. KMS nodes enforce host-chain ACL state offchain, and Ethereum KMSVerifier verifies public results against this contract's EIP-712 domain.\n template:\n- \"zama/Decryption\"\n+ \"zama/Decryption_v0_4_0\"\n sourceHashes.1:\n- \"0xd2e9269a1dc3580af2eaa84178722c052767a5d174734ececeddeea5bacd1929\"\n+ \"0xcd821ac822a19a355acde1dd7ce435e2a6e16e21017756b899c058ee64552e28\"\n description:\n- \"Gateway contract that orchestrates public and user decryption requests, checks mirrored host-chain ACL state, collects KMS responses, and emits results once the configured KMS threshold is reached. Ethereum KMSVerifier verifies public decryption results against this contract's EIP-712 domain.\"\n+ \"Gateway contract that orchestrates public and user decryption requests and checks committed ciphertext material. Each response independently selects a KMS context through extraData, or uses the context current when the response executes; requests do not store a context. KMS nodes enforce host-chain ACL state offchain, and Ethereum KMSVerifier verifies public results against this contract's EIP-712 domain.\"\n values.$implementation:\n- \"zama:0xe691cE3d7a71E2eC9E96AF5bdD263FfEB124F8dE\"\n+ \"zama:0x943CEfD1A00d3ae5b298bB10D4EddA09B279C8B0\"\n values.$pastUpgrades.3:\n+ [\"2026-07-10T08:15:40.000Z\",\"0x5d63d8d9bf4790e7169cd1d6c440262aad29368190932f823377df311f389217\",[\"zama:0x943CEfD1A00d3ae5b298bB10D4EddA09B279C8B0\"]]\n values.$upgradeCount:\n- 3\n+ 4\n values.getVersion:\n- \"Decryption v0.3.0\"\n+ \"Decryption v0.4.0\"\n+++ description: Current GatewayConfig KMS context used by responses whose extraData is empty or starts with version 0. Requests do not bind this value, so a rotation can change the context used to answer an already pending request.\n+++ severity: HIGH\n values.gatewayKmsContextId:\n+ \"3166189940082864718613269121331309980362851143201109172953918312716374638593\"\n fieldMeta.gatewayMultichainACL.description:\n- \"MultichainACL contract containing the gateway-side ACL mirror checked before public or user decryptions are accepted.\"\n+ \"MultichainACL contract containing the gateway-side host-chain ACL mirror. The upgraded Decryption contract no longer checks it onchain and relies on KMS nodes to enforce ACL state.\"\n fieldMeta.gatewayKmsTxSenders.description:\n- \"KMS transaction-sender addresses configured in GatewayConfig. These accounts may submit signed public decryption results and user decryption shares.\"\n+ \"KMS transaction-sender addresses configured in the current GatewayConfig context. Historical context senders can also submit responses when response extraData explicitly selects their retained context. Post-migration contexts are indexed on GatewayConfig; migration-created membership requires a project override because no creation event was emitted.\"\n fieldMeta.gatewayKmsSigners.description:\n- \"KMS signer addresses configured in GatewayConfig. Their EIP-712 signatures determine whether public decryption results and user decryption shares reach threshold.\"\n+ \"KMS signer addresses configured in the current GatewayConfig context. Historical context signers can also sign responses when response extraData explicitly selects their retained context. Post-migration contexts are indexed on GatewayConfig; migration-created membership requires a project override because no creation event was emitted.\"\n fieldMeta.gatewayPublicDecryptionThreshold.description:\n- \"Minimum number of matching KMS signatures required before a public decryption result is emitted.\"\n+ \"Minimum matching-signature count for the current context. Public responses are grouped by a digest containing raw extraData; identical empty or version 0 extraData can accumulate responses across a context rotation while the last response selects the threshold checked.\"\n fieldMeta.gatewayUserDecryptionThreshold.description:\n- \"Minimum number of KMS shares required before a user decryption request is considered threshold-reached.\"\n+ \"Minimum response count for the current context. User response counts are stored per request rather than per context, so valid shares submitted under different contexts can be combined and the last response selects the threshold checked.\"\n fieldMeta.gatewayKmsContextId:\n+ {\"severity\":\"HIGH\",\"description\":\"Current GatewayConfig KMS context used by responses whose extraData is empty or starts with version 0. Requests do not bind this value, so a rotation can change the context used to answer an already pending request.\",\"type\":\"RISK_PARAMETER\"}\n implementationNames.zama:0xe691cE3d7a71E2eC9E96AF5bdD263FfEB124F8dE:\n- \"Decryption\"\n implementationNames.zama:0x943CEfD1A00d3ae5b298bB10D4EddA09B279C8B0:\n+ \"Decryption\"\n }\n```\n\n```diff\n contract SafeL2 (zama:0x5f0F86BcEad6976711C9B131bCa5D30E767fe2bE) [GnosisSafe] {\n +++ description: Gateway owner Safe. Its LayerZero governance module is outside the Zama Gateway protocol surface covered here.\n receivedPermissions.5.description:\n- \"update KMS, coprocessor, custodian, host-chain, and threshold configuration, transfer GatewayConfig ownership, and unpause gateway workflow contracts.\"\n+ \"create KMS contexts that immediately become current, update current thresholds and other gateway configuration, transfer ownership, and unpause gateway workflow contracts. Historical KMS contexts cannot be removed in this version.\"\n }\n```\n\n```diff\n contract GatewayConfig (zama:0xDE537Be194777A56f8B19d14079E6a78249390ab) [zama/GatewayConfig_v0_5_0] {\n +++ description: Central configuration contract for the Zama Gateway. A KMS context snapshots node transaction senders, signers, and workflow thresholds; historical contexts remain stored and selectable by Decryption because this version has no context-destruction function.\n template:\n- \"zama/GatewayConfig\"\n+ \"zama/GatewayConfig_v0_5_0\"\n sourceHashes.1:\n- \"0x40662103941fd76e1fc3b63e38f9036b39d3394d96fe2c46db9640bcbbc76d4b\"\n+ \"0x1089121569189032b8cee0dae0c71eedecf7757f712a6d14ef684915093c6747\"\n description:\n- \"Central configuration contract for the Zama Gateway. It stores the KMS, coprocessor, custodian, host-chain, pauser, and consensus-threshold configuration used by the gateway workflow contracts.\"\n+ \"Central configuration contract for the Zama Gateway. A KMS context snapshots node transaction senders, signers, and workflow thresholds; historical contexts remain stored and selectable by Decryption because this version has no context-destruction function.\"\n values.$implementation:\n- \"zama:0xDa97dfc327349F7C1333610C80cc20971eD0eb0f\"\n+ \"zama:0x2294E3C211238Ae31E2824576CCd7f996CC7Dc00\"\n values.$pastUpgrades.3:\n+ [\"2026-07-10T08:15:40.000Z\",\"0x5d63d8d9bf4790e7169cd1d6c440262aad29368190932f823377df311f389217\",[\"zama:0x2294E3C211238Ae31E2824576CCd7f996CC7Dc00\"]]\n values.$upgradeCount:\n- 3\n+ 4\n values.getPublicDecryptionThreshold:\n- 7\n values.getUserDecryptionThreshold:\n- 9\n values.getVersion:\n- \"GatewayConfig v0.4.0\"\n+ \"GatewayConfig v0.5.0\"\n+++ description: KMS contexts created after migration, reconstructed from UpdateKmsContext events with their node set and creation thresholds. Nodes remain authorized for Decryption indefinitely; later threshold-update events do not identify a context, so final historical thresholds must be read through context-specific getters or project overrides.\n+++ severity: HIGH\n values.createdKmsContexts:\n+ []\n+++ description: KMS signers from contexts created after migration. They remain authorized for Decryption responses that select their context because GatewayConfig has no context-destruction function.\n+++ severity: HIGH\n values.createdKmsContextSigners:\n+ []\n+++ description: KMS transaction senders from contexts created after migration. They remain authorized for Decryption responses that select their context because GatewayConfig has no context-destruction function.\n+++ severity: HIGH\n values.createdKmsContextTxSenders:\n+ []\n+++ description: Identifier of the context used when a Decryption response has empty or version 0 extraData. Version 1 responses can explicitly select any historical context, and requests do not store or bind a context.\n+++ severity: HIGH\n values.getCurrentKmsContextId:\n+ \"3166189940082864718613269121331309980362851143201109172953918312716374638593\"\n+++ description: Minimum number of KMS signatures required for public decryption consensus in the current context.\n+++ severity: HIGH\n values.getPublicDecryptionThresholdForContext:\n+ 7\n+++ description: Minimum number of KMS shares required for user decryption consensus in the current context.\n+++ severity: HIGH\n values.getUserDecryptionThresholdForContext:\n+ 9\n fieldMeta.owner.description:\n- \"Owner of GatewayConfig. This account manages KMS nodes, coprocessors, custodians, host chains, consensus thresholds, ownership, and gateway unpausing.\"\n+ \"Owner of GatewayConfig. This account creates KMS contexts, changes the current context's thresholds, manages coprocessors, custodians and host chains, transfers ownership, and unpauses gateway contracts. A newly created context becomes current immediately, while all older contexts remain selectable by Decryption.\"\n fieldMeta.getKmsTxSenders.description:\n- \"KMS transaction-sender addresses registered for this gateway. These accounts submit KMS responses to gateway contracts.\"\n+ \"KMS transaction-sender addresses in the current Gateway context. Historical context senders remain authorized for Decryption responses that explicitly select their context; post-migration contexts are indexed here and the migrated context is indexed on Decryption.\"\n fieldMeta.getKmsSigners.description:\n- \"KMS signer addresses registered for this gateway. Thresholds over these signers secure public and user decryption, key generation, and CRS generation.\"\n+ \"KMS signer addresses in the current Gateway context. Historical context signers remain authorized for explicitly selected Decryption responses; post-migration contexts are indexed here and the migrated context is indexed on Decryption.\"\n fieldMeta.getMpcThreshold.description:\n- \"MPC threshold for KMS key material generation.\"\n+ \"MPC threshold for KMS key material generation in the current context.\"\n fieldMeta.getPublicDecryptionThreshold:\n- {\"severity\":\"HIGH\",\"description\":\"Minimum number of KMS signatures required for public decryption consensus.\",\"type\":\"RISK_PARAMETER\"}\n fieldMeta.getUserDecryptionThreshold:\n- {\"severity\":\"HIGH\",\"description\":\"Minimum number of KMS shares required for user decryption consensus.\",\"type\":\"RISK_PARAMETER\"}\n fieldMeta.getKmsGenThreshold.description:\n- \"Minimum number of KMS signatures required for key and CRS generation consensus.\"\n+ \"Minimum number of KMS signatures required for key and CRS generation consensus in the current context.\"\n fieldMeta.createdKmsContexts:\n+ {\"severity\":\"HIGH\",\"description\":\"KMS contexts created after migration, reconstructed from UpdateKmsContext events with their node set and creation thresholds. Nodes remain authorized for Decryption indefinitely; later threshold-update events do not identify a context, so final historical thresholds must be read through context-specific getters or project overrides.\",\"type\":\"RISK_PARAMETER\"}\n fieldMeta.createdKmsContextTxSenders:\n+ {\"severity\":\"HIGH\",\"description\":\"KMS transaction senders from contexts created after migration. They remain authorized for Decryption responses that select their context because GatewayConfig has no context-destruction function.\",\"type\":\"PERMISSION\"}\n fieldMeta.createdKmsContextSigners:\n+ {\"severity\":\"HIGH\",\"description\":\"KMS signers from contexts created after migration. They remain authorized for Decryption responses that select their context because GatewayConfig has no context-destruction function.\",\"type\":\"PERMISSION\"}\n fieldMeta.getCurrentKmsContextId:\n+ {\"severity\":\"HIGH\",\"description\":\"Identifier of the context used when a Decryption response has empty or version 0 extraData. Version 1 responses can explicitly select any historical context, and requests do not store or bind a context.\",\"type\":\"RISK_PARAMETER\"}\n fieldMeta.getPublicDecryptionThresholdForContext:\n+ {\"severity\":\"HIGH\",\"description\":\"Minimum number of KMS signatures required for public decryption consensus in the current context.\",\"type\":\"RISK_PARAMETER\"}\n fieldMeta.getUserDecryptionThresholdForContext:\n+ {\"severity\":\"HIGH\",\"description\":\"Minimum number of KMS shares required for user decryption consensus in the current context.\",\"type\":\"RISK_PARAMETER\"}\n implementationNames.zama:0xDa97dfc327349F7C1333610C80cc20971eD0eb0f:\n- \"GatewayConfig\"\n implementationNames.zama:0x2294E3C211238Ae31E2824576CCd7f996CC7Dc00:\n+ \"GatewayConfig\"\n }\n```"
}
]
},
{
"id": "6378d3a6",
"date": "Mon, 29 Jun 2026 15:21:07 GMT",
"timestamp": 1782746392,
"description": "Initial discovery.",
"isHighSeverity": false,
"changeCount": 37,
"sections": [
{
"kind": "initial-discovery",
"body": "```diff\n+ Status: CREATED\n contract ZamaGovMemberDAO (eth:0x31bBD7a242A38372DE92CA304fE29C12C90A382C) [zama/ZamaDAO]\n +++ description: Aragon DAO that stores governance state and executes proposal action batches.\n```\n\n```diff\n+ Status: CREATED\n contract HCULimit (eth:0x3b4da65e45Fda2CAa0285A735ab4361a44F171E2) [zama/ZamaHCULimit]\n +++ description: Tracks and enforces homomorphic computation unit limits for FHEVM operation requests.\n```\n\n```diff\n+ Status: CREATED\n EOA (eth:0x4202860Fa6afAF3e2977cD139Ac693a05e4f9450)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract Conduit Multisig 1 (eth:0x4a4962275DF8C60a80d3a25faEc5AA7De116A746) [GnosisSafe]\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract ConfidentialSteakcUSDCWrapper (eth:0x66Bf74E96900D1a19c7070D939D124f2F565C458) [zama/ConfidentialWrapperV3]\n +++ 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.\n```\n\n```diff\n+ Status: CREATED\n contract Safe (eth:0x69E55790880d0ABa56E48Ee1f7fc3834b0F5c223) [GnosisSafe]\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract Staking (Coprocessor) (eth:0x7147485b892158f2B875f7aC5Ea48A9937C66AE8) [zama/ProtocolStaking]\n +++ description: Staking contract that escrows ZAMA, issues non-transferable staked voting tokens, and mints protocol rewards to eligible stakers at a configurable reward rate.\n```\n\n```diff\n+ Status: CREATED\n contract ConfidentialXAUTWrapper (eth:0x73cc9aF9d6BEFdb3c3fAf8a5E8c05Cb95FdaEEf1) [zama/ConfidentialWrapperV3]\n +++ 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.\n```\n\n```diff\n+ Status: CREATED\n contract KMSVerifier (eth:0x77627828a55156b04Ac0DC0eb30467f1a552BB03) [zama/ZamaKMSVerifier]\n +++ description: Ethereum host-chain verifier for public decryption results produced through the Zama Gateway Decryption contract. Confidential token wrappers use it before accepting decrypted values.\n```\n\n```diff\n+ Status: CREATED\n contract ConfidentialZAMAWrapper (eth:0x80CB147Fd86dC6dEe3Eee7e4Cee33d1397d98071) [zama/ConfidentialWrapperV3]\n +++ 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.\n```\n\n```diff\n+ Status: CREATED\n contract ConfidentialBRONWrapper (eth:0x85dE671c3bec1aDeD752c3Cea943521181C826bc) [zama/ConfidentialWrapperV3]\n +++ 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.\n```\n\n```diff\n+ Status: CREATED\n contract Safe (eth:0x8c0E2c46F96756C49DBd6723F4C57a03a254B4B0) [GnosisSafe]\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract Safe (eth:0x97E18544e156724E4076945F10c288ecBBC94e54) [GnosisSafe]\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract ConfidentialTGBPWrapper (eth:0xa873750ccBafD5ec7Dd13bfD5237d7129832eDD9) [zama/ConfidentialWrapperV3]\n +++ 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.\n```\n\n```diff\n+ Status: CREATED\n contract ConfidentialUSDTWrapper (eth:0xAe0207C757Aa2B4019Ad96edD0092ddc63EF0c50) [zama/ConfidentialWrapperV3]\n +++ 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.\n```\n\n```diff\n+ Status: CREATED\n contract DAO (eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3) [zama/ZamaDAO]\n +++ description: Aragon DAO that stores governance state and executes proposal action batches.\n```\n\n```diff\n+ Status: CREATED\n contract ConfidentialBbqTGBPWrapper (eth:0xBA4cFF6ED6F7Cb2A58776dECa4E984b498446762) [zama/ConfidentialWrapperV3]\n +++ 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.\n```\n\n```diff\n+ Status: CREATED\n contract PauserSet (eth:0xbBfE1680b4a63ED05f7F80CE330BED7C992A586C) [zama/ZamaPauserSet]\n +++ description: Maintains the pauser account set used in pause-control checks.\n```\n\n```diff\n+ Status: CREATED\n contract ZamaGovMultisigB (eth:0xBc860b6a4C860C5424B84A056E53ACFb2C99a38F) [zama/Multisig]\n +++ description: Aragon multisig plugin for creating proposals and collecting approvals against a configurable threshold.\n```\n\n```diff\n+ Status: CREATED\n contract ACL (eth:0xcA2E8f1F656CD25C01F05d0b243Ab1ecd4a8ffb6) [zama/ZamaACL]\n +++ description: 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 consensus.\n```\n\n```diff\n+ Status: CREATED\n contract InputVerifier (eth:0xCe0FC2e05CFff1B719EFF7169f7D80Af770c8EA2) [zama/ZamaInputVerifier]\n +++ description: Ethereum host-chain verifier for encrypted input attestations produced by the Zama Gateway InputVerification contract. The FHEVMExecutor calls it before accepting user-provided ciphertext handles.\n```\n\n```diff\n+ Status: CREATED\n contract FHEVMExecutor (eth:0xD82385dADa1ae3E969447f20A3164F6213100e75) [zama/ZamaFHEVMExecutor]\n +++ description: FHEVM executor that accepts encrypted operation requests, accounts for computation usage, and stores ciphertext handles for operation results.\n```\n\n```diff\n+ Status: CREATED\n contract ConfidentialWETHWrapper (eth:0xda9396b82634Ea99243cE51258B6A5Ae512D4893) [zama/ConfidentialWrapperV3]\n +++ 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.\n```\n\n```diff\n+ Status: CREATED\n contract ZamaGovMultisigA (eth:0xE43c73aAb2b6aBBad6d0461997ce1cfea5ABe66f) [zama/Multisig]\n +++ description: Aragon multisig plugin for creating proposals and collecting approvals against a configurable threshold.\n```\n\n```diff\n+ Status: CREATED\n contract Safe (eth:0xE53e32a669357Ab0360103d8f294812B914AF9e4) [GnosisSafe]\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract ConfidentialUSDCWrapper (eth:0xe978F22157048E5DB8E5d07971376e86671672B2) [zama/ConfidentialWrapperV3]\n +++ 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.\n```\n\n```diff\n+ Status: CREATED\n contract Staking (KMS) (eth:0xe9b176CCaA8840DC3b3567bb83e2cD2a6c36F4Ab) [zama/ProtocolStaking]\n +++ description: Staking contract that escrows ZAMA, issues non-transferable staked voting tokens, and mints protocol rewards to eligible stakers at a configurable reward rate.\n```\n\n```diff\n+ Status: CREATED\n contract ConfidentialTokenWrappersRegistry (eth:0xeb5015fF021DB115aCe010f23F55C2591059bBA0) [zama/ConfidentialTokenWrappersRegistry]\n +++ description: Registry for Zama confidential token wrappers.\n```\n\n```diff\n+ Status: CREATED\n contract MultichainACL (zama:0x055d9FD50a612A9027716ec8db663E7D68562468) [zama/MultichainACL]\n +++ 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.\n```\n\n```diff\n+ Status: CREATED\n contract Decryption (zama:0x0f6024a97684f7d90ddb0fAAD79cB15F2C888D24) [zama/Decryption]\n +++ description: Gateway contract that orchestrates public and user decryption requests, checks mirrored host-chain ACL state, collects KMS responses, and emits results once the configured KMS threshold is reached. Ethereum KMSVerifier verifies public decryption results against this contract's EIP-712 domain.\n```\n\n```diff\n+ Status: CREATED\n contract KMSGeneration (zama:0x290947F9fed2d91fdB22f35E162aDfA744b7aEe3) [zama/KMSGeneration]\n +++ description: Gateway contract that orchestrates FHE key generation, CRS generation, PRSS initialization, and key resharing through threshold KMS responses.\n```\n\n```diff\n+ Status: CREATED\n contract GatewayPauserSet (zama:0x571ecb596fCc5c840DA35CbeCA175580db50ac1b) [zama/GatewayPauserSet]\n +++ description: Maintains the set of accounts allowed to pause gateway contracts. The set is managed by the GatewayConfig owner.\n```\n\n```diff\n+ Status: CREATED\n contract SafeL2 (zama:0x5f0F86BcEad6976711C9B131bCa5D30E767fe2bE) [GnosisSafe]\n +++ description: Gateway owner Safe. Its LayerZero governance module is outside the Zama Gateway protocol surface covered here.\n```\n\n```diff\n+ Status: CREATED\n contract ProtocolPayment (zama:0x7E179E45E5fe0a21015Be25185363B4F2F2F7e89) [zama/ProtocolPayment]\n +++ description: 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.\n```\n\n```diff\n+ Status: CREATED\n contract InputVerification (zama:0xcB1bB072f38bdAF0F328CdEf1Fc6eDa1DF029287) [zama/InputVerification]\n +++ description: Gateway contract that receives encrypted input verification requests from registered 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.\n```\n\n```diff\n+ Status: CREATED\n contract CiphertextCommits (zama:0xd82cF70FC102028cd01acB87D0E107780ae4F41F) [zama/CiphertextCommits]\n +++ description: Gateway contract that stores ciphertext and SNS ciphertext digests after coprocessor consensus, allowing decryption requests to reference committed ciphertext material.\n```\n\n```diff\n+ Status: CREATED\n contract GatewayConfig (zama:0xDE537Be194777A56f8B19d14079E6a78249390ab) [zama/GatewayConfig]\n +++ description: Central configuration contract for the Zama Gateway. It stores the KMS, coprocessor, custodian, host-chain, pauser, and consensus-threshold configuration used by the gateway workflow contracts.\n```"
}
]
}
]