Contracts & Addresses
This page lists the deployed Interfold contracts on Ethereum mainnet and Sepolia, with the address and deploy block of each one. It is for operators who configure a ciphernode and for developers who call the contracts. It also describes the role of each contract and the enums and events that clients read. Copy addresses from this page or from the manifest, not from other sources.
Deployment manifest
The source of every address on this page is deployments/manifest.json in the repository. The
release process attaches the same file to each GitHub release as manifest.json. The script
packages/interfold-contracts/scripts/genManifest.ts generates it from
packages/interfold-contracts/deployed_contracts.json.
The manifest has two sections for each network:
| Section | Content |
|---|---|
contracts | Contracts that a node configuration uses. The keys are the same as the keys under contracts in interfold.config.yaml. |
reference | Other deployed contracts that operators, the dashboard, and the docs need. The node configuration has no keys for these contracts. |
Each network entry also has a chain_id and a mocks flag. The flag is true when the network
uses a mock E3 program or a mock verifier, which accepts proofs without verification. The manifest
in the repository sets mocks: true for Sepolia, because the Sepolia deployment records
MockE3Program. It sets mocks: false for mainnet. See
Verifiers in use on mainnet and
Verifiers in use on Sepolia.
To compare your node configuration with the published manifest, run this command:
interfold config checkFor an up-to-date Sepolia chain, the output has this form:
Deployment manifest: release <tag>
sepolia: up to dateThe command reads the manifest.json asset of the latest GitHub release. It exits with an error
when an address or a chain ID does not match. For the flags and the finding labels, see
interfold config check.
Contract addresses change when the protocol is deployed again. A node that points at an old
address syncs nothing and reports no error. Run interfold config check before you start a node
and after each release.
Mainnet
Mainnet Ethereum mainnet, chain ID 1.
Mainnet contracts
| Contract | Address | Deploy block | Manifest key | Explorer |
|---|---|---|---|---|
| Interfold | 0x28cF63B459e6218C69EA97ea7D90541cf648c715 | 25786382 | interfold | Etherscan (opens in a new tab) |
| CiphernodeRegistry | 0xC927A5B2d8F68697bC28C0670df05178c93df2d7 | 25786378 | ciphernode_registry | Etherscan (opens in a new tab) |
| BondingRegistry | 0x0ec90465095C21830BEcED07e032809A2Bd2915F | 25473398 | bonding_registry | Etherscan (opens in a new tab) |
| SlashingManager | 0x753109Ee36Dc65cC178875AddA30C6433e5bEEe4 | 25998899 | slashing_manager | Etherscan (opens in a new tab) |
| USDS (fee token) | 0xdC035D45d973E3EC169d2276DDab16f1e407384F | 20663730 | fee_token | Etherscan (opens in a new tab) |
Mainnet reference contracts
| Contract | Address | Deploy block | Manifest key | Explorer |
|---|---|---|---|---|
| InterfoldTicketToken (tFOLD) | 0xC0B5b49a3949eC4B520eF21BaCFE16e3695F3B5D | 25786372 | InterfoldTicketToken | Etherscan (opens in a new tab) |
| E3RefundManager | 0x1940eF168f4E0B3dA24BEca539856684793B0F6e | 25786384 | E3RefundManager | Etherscan (opens in a new tab) |
| BfvDecryptionVerifierRouter | 0xbbFF7101A3Be43e06b64B00e2e656529E6aDf2eE | 26156286 | BfvDecryptionVerifierRouter | Etherscan (opens in a new tab) |
| BfvPkVerifierRouter | 0x3E9614e711ee301DAC3FeF7D86031ED015bc406b | 26156286 | BfvPkVerifierRouter | Etherscan (opens in a new tab) |
| OpenVmBfvCiphertextVerifier | 0x6cD258E0a893612Aea41c42dC47450ac1A6E2dD1 | 26156226 | OpenVmBfvCiphertextVerifier | Etherscan (opens in a new tab) |
| OpenVmReceiptVerifier | 0x0dd5E45414629F0f7D757cbb0310A9cfdc5B400b | 26156225 | OpenVmReceiptVerifier | Etherscan (opens in a new tab) |
For the two routers, the manifest records block 26,156,286 as the deploy block. That is the first
block of the v0.19 deployment. The router contracts have code from block 26,156,611
(BfvPkVerifierRouter) and block 26,156,612 (BfvDecryptionVerifierRouter).
Also used on mainnet
The manifest does not publish these two mainnet contracts, so interfold config check does not
compare them. The addresses come from the mainnet deployment records in
packages/interfold-contracts/deploy/protocol/. Each deploy block is the first block that has
contract code at the address.
| Contract | Address | Deploy block | Source | Explorer |
|---|---|---|---|---|
| InterfoldToken (FOLD) | 0xE172e9B6cfBeeB5593bDcE3f077356FDb33af904 | 25473449 | fold in mainnet-protocol.config.json | Etherscan (opens in a new tab) |
| sUSDS (ticket collateral) | 0xa3931d71877C0E7a3148CB7Eb4463524FEc27fbD | 20677434 | ticketUnderlyingToken in mainnet-protocol.config.json | Etherscan (opens in a new tab) |
sUSDS is a third-party token. The Interfold does not deploy it. To confirm the token addresses
on-chain, call getCiphernodeBondToken() on the BondingRegistry for FOLD. For the ticket
collateral, call underlying() on the InterfoldTicketToken.
Verifiers in use on mainnet
Since the v0.19 cutover at block 26,176,770 (12 October 2026), mainnet uses OpenVM for compute proofs. See Verify the Compute Provider.
The Interfold contract stores one verifier of each kind for each encryption scheme. The table
shows the values for the BFV scheme (keccak256("fhe.rs:BFV")) at block 26,221,910 (18 October
2026). Each E3 keeps the verifiers that were set when it was requested.
| Verifier | Contract | Address | Set at block | Read with |
|---|---|---|---|---|
| Ciphertext | OpenVmBfvCiphertextVerifier | 0x6cD258E0a893612Aea41c42dC47450ac1A6E2dD1 | 26176770 | getCiphertextVerifier(schemeId) |
| Decryption | BfvDecryptionVerifierRouter | 0xbbFF7101A3Be43e06b64B00e2e656529E6aDf2eE | 26176770 | getDecryptionVerifier(schemeId) |
| Public key | BfvPkVerifierRouter | 0x3E9614e711ee301DAC3FeF7D86031ED015bc406b | 26176770 | getPkVerifier(schemeId) |
- The ciphertext verifier checks an OpenVM proof for the guest image ID
0x126eb3ea8c2d24cbf8e89f7e41dd2f0be5050be7a28276f0bcd4cb0546acdf52. Read it withimageId(). The ciphertext verifier uses theOpenVmReceiptVerifierfrom the reference table to verify the proof. - Each router has three routes (
routeCount(),routeAt(index)). All routes point toBfvDecryptionVerifierorBfvPkVerifiercontracts. mainnet-protocol.deployment.jsonrecords these verifiers. ItsbfvVerifierRoutesfield lists the three routes, with theBfvDecryptionVerifierand theBfvPkVerifierof each route.
The first mainnet deployment set DeployableMockCiphertextVerifier as the ciphertext verifier at
block 25,788,974 (19 August 2026). That contract accepts every proof. The contract owner replaced
it with a Risc0BfvCiphertextVerifier at block 25,813,839 (22 August 2026), and again at block
26,004,622 (18 September 2026). The first mainnet E3 was requested at block 26,012,772, so no
mainnet E3 used the mock verifier. At block 26,004,622, the contract owner also unregistered the
first E3 program, MockE3Program, and registered CRISPProgram.
At block 26,176,770 (12 October 2026), the contract owner ran the v0.19 cutover. It replaced the
ciphertext verifier with an OpenVmBfvCiphertextVerifier and installed two new verifier routers. It
also unregistered the earlier CRISPProgram and registered a new CRISPProgram.
The manifest.json asset of release v0.18.0 still marks mainnet with mocks: true. With that
asset, interfold config check prints the mock-deployment note for mainnet, although the verifiers
in use are not mocks. The manifest.json asset of release v0.19.0 lists the verifiers from before
the cutover. The manifest in the repository lists the current verifiers.
Sepolia
Testnet Ethereum Sepolia, chain ID 11155111. The public key,
decryption, and DKG verifiers are real. The ciphertext verifier and CRISP use
MockOpenVmReceiptVerifier, which accepts every OpenVM receipt, so Sepolia does not verify compute
proofs. CRISP uses MockCrispDataAvailabilityVerifier because Avail Turing is down. MockUSDC is
the fee token. Anyone can mint it.
E3 requests on Sepolia are paused. requestsPaused() on the Interfold contract returns true,
and request reverts with RequestsPaused. The owner of the Interfold contract unpauses requests
after operators that run the 0.19.0-test.3 release (protocol_version 8, node_generation 2)
register.
Sepolia contracts
| Contract | Address | Deploy block | Manifest key | Explorer |
|---|---|---|---|---|
| Interfold | 0xb35EE9ed8BE5967daabBA8c2e817C52D0b57ac26 | 12050035 | interfold | Etherscan (opens in a new tab) |
| CiphernodeRegistry | 0x895392D5782E78768A35B1aDfc5b0BD1faB259e4 | 12050030 | ciphernode_registry | Etherscan (opens in a new tab) |
| BondingRegistry | 0x8f42eD45556bC8fF8949c37c7644Af9Cf321108F | 12050022 | bonding_registry | Etherscan (opens in a new tab) |
| SlashingManager | 0xa82F589B29BD5c2392b7127Cba8727Af2bbEd84D | 12050027 | slashing_manager | Etherscan (opens in a new tab) |
| MockUSDC (fee token) | 0xE2e534F7Cb95777eD870CDCaCb80B1E9E2aD555B | 11856062 | fee_token | Etherscan (opens in a new tab) |
| Faucet | 0x1B4340A65BB669267BF5DE37385B139987C3F09c | 11873271 | faucet | Etherscan (opens in a new tab) |
Sepolia reference contracts
| Contract | Address | Deploy block | Manifest key | Explorer |
|---|---|---|---|---|
| InterfoldToken (FOLD) | 0x3192Ee1FeE48159807058aA78038cf80cB3450Cb | 11873112 | InterfoldToken | Etherscan (opens in a new tab) |
| InterfoldTicketToken (tFOLD) | 0xE7cCF95F36131340bdAB122C4cc09787D28217e5 | 12050025 | InterfoldTicketToken | Etherscan (opens in a new tab) |
| E3RefundManager | 0x272f3A25E30990A7C30b7B90a240e7afe4365349 | 12050041 | E3RefundManager | Etherscan (opens in a new tab) |
| NodeReleaseRegistry | 0xd6d7D4839985BFEB5d6440A1ECe594e288C128e6 | 12050048 | NodeReleaseRegistry | Etherscan (opens in a new tab) |
| MockE3Program | 0xc4C83c3C94e9360C136f3cd022925b4979BD580b | 12050024 | MockE3Program | Etherscan (opens in a new tab) |
| BfvDecryptionVerifierRouter | 0x2e66AE65d8eF5399b231113aFE4E06a175F0A20E | 12050099 | BfvDecryptionVerifierRouter | Etherscan (opens in a new tab) |
| BfvPkVerifierRouter | 0xA5a95C7aBdFdC814f4E724743CFD20Cc50ba7E5B | 12050098 | BfvPkVerifierRouter | Etherscan (opens in a new tab) |
| OpenVmBfvCiphertextVerifier | 0x86A4C3CF4026599ed521738cd534f1C0354f77fA | 12050706 | OpenVmBfvCiphertextVerifier | Etherscan (opens in a new tab) |
Also used on Sepolia
The manifest does not publish these Sepolia contracts, so interfold config check does not compare
them. The addresses and deploy blocks come from two deployment records. The Interfold record is
packages/interfold-contracts/deployed_contracts.json. The CRISP record is
packages/crisp-contracts/deployed_contracts.json (opens in a new tab)
in the CRISP repository.
| Contract | Address | Deploy block | Record | Explorer |
|---|---|---|---|---|
| BondedVotes | 0xfbd932BD297e9C7261A384925E78371C7B1FEc7a | 12050190 | Interfold | Etherscan (opens in a new tab) |
| BondedCheckpoints | 0xd3a7998D9DF56ce2218a26fdc36F3b27870b1b5F | 12050049 | Interfold | Etherscan (opens in a new tab) |
| ChainlinkVrfRandomnessProvider | 0xb34a7998d3960D1E0A91B0cDCFB98D57d66DfEa8 | 12050031 | Interfold | Etherscan (opens in a new tab) |
| MockOpenVmReceiptVerifier | 0x226436d8A72357c7992896B37f0A2E00dCb6A341 | 12050705 | CRISP | Etherscan (opens in a new tab) |
| MockCrispDataAvailabilityVerifier | 0xB5cDE772357C9dB2d2515Cf94Daa0696c9a2FB17 | 12050713 | CRISP | Etherscan (opens in a new tab) |
| HonkVerifier | 0x0F5f300581273c7986095b76F1d718fe87031fF1 | 12050709 | CRISP | Etherscan (opens in a new tab) |
| OnchainHonkVerifier | 0x584f6b4F0EA4a1b0a94B7224CDFaDb3fB5eea7d0 | 12050712 | CRISP | Etherscan (opens in a new tab) |
| CRISPProgram | 0x25Df8D3C04D67efb6198E215963d19a8d119ADFF | 12050714 | CRISP | Etherscan (opens in a new tab) |
| MockVotingToken | 0xE7d5a0A91A616A78DAF5753DBe2eA63EdBB9f4F3 | 12050718 | CRISP | Etherscan (opens in a new tab) |
| SelfRegistry (CRISP) | 0x06FB4dee06483988cf0292691Ef46A1e70F3057f | 12050719 | CRISP | Etherscan (opens in a new tab) |
CRISPProgram and the Honk verifiers on Sepolia come from the CRISP deployment for the circuits of
@crisp-e3/sdk 0.28.0 and 0.28.1. Use 0.28.1: with 0.28.0, proof generation fails in Chromium-based
browsers. availabilityFinalizationWindow is 0.
The fee token is MockUSDC, a test USDC with 6 decimals. Anyone can call its mint function. It is
also the ticket collateral. To confirm it on-chain, call feeToken() on the Interfold contract.
For the ticket collateral, call underlying() on the InterfoldTicketToken.
To get Sepolia USDC and FOLD, run interfold faucet --chain sepolia. You can also call faucet()
on the Faucet contract, or call mint on MockUSDC. The Faucet sends 1000 FOLD and 1000 USDC
to a wallet that holds less than 1000 of that token. The operator bond on Sepolia is 100 FOLD. FOLD
transfers are restricted before the token generation event, and the Interfold team mints FOLD to
operators.
Verifiers in use on Sepolia
Sepolia verifies the public key, decryption, and DKG proofs with real verifiers. The Interfold
contract stores one verifier of each kind for each encryption scheme. The table shows the values for
the BFV scheme (keccak256("fhe.rs:BFV")).
| Verifier | Contract | Address | Read with |
|---|---|---|---|
| Ciphertext | OpenVmBfvCiphertextVerifier | 0x86A4C3CF4026599ed521738cd534f1C0354f77fA | getCiphertextVerifier(schemeId) |
| Decryption | BfvDecryptionVerifierRouter | 0x2e66AE65d8eF5399b231113aFE4E06a175F0A20E | getDecryptionVerifier(schemeId) |
| Public key | BfvPkVerifierRouter | 0xA5a95C7aBdFdC814f4E724743CFD20Cc50ba7E5B | getPkVerifier(schemeId) |
- The ciphertext verifier wraps
MockOpenVmReceiptVerifier, which accepts every receipt. Read the receipt verifier withopenVmVerifier()and the receipt identity withimageId(). The CRISP deployment set this verifier for BFV. - Each router has six routes (
routeCount(),routeAt(index)). The routes cover theinsecure-64preset (parameter set 0) and thesecure-8192preset (parameter set 2), each with the three committee sizes. Every route points to aBfvDecryptionVerifieror aBfvPkVerifiercontract. sepolia-protocol.deployment.jsonrecords these verifiers. ItsbfvVerifierRoutesfield lists the six routes, with theBfvDecryptionVerifierand theBfvPkVerifierof each route.
Contract roles
The Interfold contract coordinates each E3. The two registries hold the ciphernodes and their collateral. The slashing and refund contracts handle faults and failures.
| Contract | Source | Role |
|---|---|---|
| Interfold | contracts/Interfold.sol | Accepts E3 requests and holds the service fee in escrow. Records the stage of each E3. Accepts the ciphertext output reference and the verified plaintext output. Marks an E3 as failed after a missed deadline. Credits the rewards of the committee. |
| CiphernodeRegistry | contracts/registry/CiphernodeRegistryOwnable.sol | Keeps the registered ciphernodes in an incremental Merkle tree. Collects sortition tickets, finalizes each committee, and publishes the committee public key. Expels slashed committee members. |
| BondingRegistry | contracts/registry/BondingRegistry.sol | Holds the FOLD bond and the ticket balance of each operator. Records the bond owner, registration, and activation. Runs the exit queue for withdrawn collateral. |
| SlashingManager | contracts/slashing/SlashingManager.sol | Accepts slash proposals, executes slashes and bans, and handles appeals. Routes slashed funds. |
| E3RefundManager | contracts/E3RefundManager.sol | Calculates the refund of a failed E3. The requester and the honest committee members claim their shares here. It also holds slashed funds for an E3. |
| InterfoldToken (FOLD) | contracts/token/InterfoldToken.sol | The governance and utility token. Operators bond FOLD for each ciphernode. |
| InterfoldTicketToken (tFOLD) | contracts/token/InterfoldTicketToken.sol | A non-transferable token that wraps the ticket collateral. The ticket balance of an operator sets its sortition tickets. |
| Fee token | Third-party token on mainnet, MockUSDC on Sepolia | The ERC-20 token that requesters use to pay for an E3. Mainnet uses USDS. Sepolia uses MockUSDC, a test token that anyone can mint. |
| OpenVmReceiptVerifier | contracts/verifiers/OpenVmReceiptVerifier.sol | Verifies the Halo2 EVM proof of an OpenVM guest, bound to one Halo2 verifier, executable commitment, and VM commitment. Its imageId is the receipt identity that the ciphertext verifier and the E3 program both name. |
| OpenVmBfvCiphertextVerifier | contracts/verifiers/bfv/OpenVmBfvCiphertextVerifier.sol | The BFV ciphertext verifier for OpenVM. It rebuilds the protocol words of the journal from chain state and calls the receipt verifier. |
| Mock contracts | contracts/test/ | MockE3Program, MockComputeProvider, and the mock verifiers accept test data without real proof verification. Local chains use them. Sepolia uses MockUSDC, the Faucet, MockE3Program, and the CRISP MockOpenVmReceiptVerifier. |
| DeployableMockCiphertextVerifier | contracts/test/DeployableMockCiphertextVerifier.sol | A test verifier that accepts every ciphertext proof. It was the mainnet ciphertext verifier from 19 to 22 August 2026. |
The main entry points are these functions:
| Contract | Functions |
|---|---|
| Interfold | request, publishCiphertextOutput, publishPlaintextOutput, markE3Failed, cancelE3, processE3Failure, claimReward, getE3Stage, getFailureReason |
| CiphernodeRegistry | submitTicket, finalizeCommittee, publishCommittee, expelCommitteeMember, getCommitteeNodes, getCommitteeViability |
| BondingRegistry | setBondOwner, proposeBondOwner, acceptBondOwner, bondCiphernodeFor, unbondCiphernodeFor, addTicketBalanceFor, removeTicketBalanceFor, registerOperatorFor, deregisterOperatorFor, claimExitsFor |
| SlashingManager | proposeSlash, proposeSlashEvidence, executeSlash, fileAppeal, resolveAppeal |
| E3RefundManager | calculateRefund, claimRequesterRefund, claimHonestNodeReward |
For how to call request, see Requesting an E3. For the operator calls,
see Registration.
Enums
The enums are in contracts/interfaces/IInterfold.sol.
E3Stage
| Value | Name | Meaning | Entered by |
|---|---|---|---|
| 0 | None | The E3 does not exist. | None |
| 1 | Requested | The request is accepted. Sortition runs. | request |
| 2 | CommitteeFinalized | The committee is fixed. The DKG runs. | finalizeCommittee on the CiphernodeRegistry |
| 3 | KeyPublished | The committee public key is on-chain. Inputs can be encrypted to it. | publishCommittee on the CiphernodeRegistry |
| 4 | CiphertextReady | The encrypted output is available. The committee decrypts it. | publishCiphertextOutput |
| 5 | Complete | The plaintext output is on-chain and verified. | publishPlaintextOutput |
| 6 | Failed | The E3 stopped. getFailureReason returns the reason. | markE3Failed, cancelE3, or a registry or slashing report |
For the full sequence, see E3 lifecycle.
FailureReason
The payer column shows who carries the cost of the failure, from
contracts/lib/FailurePayerLib.sol. When the ciphernodes pay, the requester gets back the full
service fee escrow. When the requester pays, the honest nodes get the value of the completed work,
the protocol gets its share, and the requester gets the rest.
| Value | Name | Set when | Payer |
|---|---|---|---|
| 0 | None | The E3 did not fail. | None |
| 1 | CommitteeFormationTimeout | The committee deadline passes in Requested, or the randomness is not ready at finalization. cancelE3 also uses it. | Ciphernodes |
| 2 | InsufficientCommitteeMembers | Finalization finds fewer tickets than the committee size N, or an expulsion leaves fewer than H active members. | Ciphernodes |
| 3 | DKGTimeout | The DKG deadline passes in CommitteeFinalized. | Ciphernodes |
| 4 | DKGInvalidShares | Reported through onE3Failed. | Ciphernodes |
| 5 | NoInputsReceived | Reported through onE3Failed. | Requester |
| 6 | ComputeTimeout | The compute deadline passes in KeyPublished. | Requester |
| 7 | ComputeProviderExpired | Reported through onE3Failed. | Requester |
| 8 | ComputeProviderFailed | Reported through onE3Failed. | Requester |
| 9 | RequesterCancelled | Reserved for ABI compatibility. The current contracts do not set it. | Requester |
| 10 | DecryptionTimeout | The decryption deadline passes in CiphertextReady. | Ciphernodes |
| 11 | DecryptionInvalidShares | Reported through onE3Failed. | Ciphernodes |
| 12 | VerificationFailed | Reported through onE3Failed. | Ciphernodes |
Only the CiphernodeRegistry or the SlashingManager of the E3 can call onE3Failed. Anyone can
call markE3Failed after a deadline. During a grace period after the deadline, only the requester,
the owner, and active committee members can call it.
CommitteeSize
| Value | Name | Committee size N | Threshold T | Honest parties H |
|---|---|---|---|---|
| 0 | Minimum | 3 | 1 | 2 |
| 1 | Micro | 9 | 4 | 5 |
| 2 | Small | 19 | 9 | 14 |
Decryption needs T + 1 shares. The contracts store H and N for each size as the committee threshold.
The values come from crates/committee/src/lib.rs.
Key events
Clients and ciphernodes follow these events. Each event is declared in the interface of its contract.
| Event | Contract | Emitted when |
|---|---|---|
E3Requested | Interfold | request accepts an E3. |
E3StageChanged | Interfold | An E3 moves to a new stage. The event has the previous and the new stage. |
CommitteeFinalized | Interfold | The E3 enters CommitteeFinalized. |
CommitteeFormed | Interfold | The E3 enters KeyPublished. |
CiphertextOutputReferencePublished | Interfold | The ciphertext output reference is accepted. The E3 enters CiphertextReady. |
PlaintextOutputPublished | Interfold | The verified plaintext output is accepted. The E3 enters Complete. |
E3Failed | Interfold | The E3 enters Failed. The event has the stage and the FailureReason. |
E3FailureProcessed | Interfold | processE3Failure moves the payment to the refund manager. |
RewardCredited, RewardClaimed | Interfold | A committee member gets a reward credit, and later claims it. |
CiphernodeAdded, CiphernodeRemoved | CiphernodeRegistry | A ciphernode enters or leaves the registration tree. |
TicketSubmitted | CiphernodeRegistry | A ciphernode submits a sortition ticket. |
SortitionCommitteeFinalized | CiphernodeRegistry | finalizeCommittee fixes the committee. |
CommitteeFormationFailed | CiphernodeRegistry | finalizeCommittee finds too few members or no randomness. |
CommitteeProofPublished | CiphernodeRegistry | publishCommittee accepts the DKG proof and the public key commitment. |
CommitteePublicKeyChunkPublished | CiphernodeRegistry | A part of the serialized committee public key is published. |
CommitteeMemberExpelled | CiphernodeRegistry | A slash expels a committee member. |
BondOwnerSet, BondOwnerTransferProposed | BondingRegistry | The bond owner of an operator is set, or a transfer is proposed. |
CiphernodeBondUpdated | BondingRegistry | The FOLD bond of an operator changes. |
TicketBalanceUpdated | BondingRegistry | The ticket balance of an operator changes. |
OperatorActivationChanged | BondingRegistry | An operator becomes active or inactive. |
CiphernodeDeregistrationRequested | BondingRegistry | An operator requests deregistration. |
AssetsClaimed | BondingRegistry | An exit claim pays out released collateral. |
SlashProposed, SlashExecuted | SlashingManager | A slash is proposed, and later executed. |
AppealFiled, AppealResolved | SlashingManager | An operator appeals a slash, and the appeal ends. |
RefundDistributionCalculated | E3RefundManager | The refund split of a failed E3 is calculated. |
RefundClaimed | E3RefundManager | A requester or an honest node claims a refund share. |
IInterfold.sol also declares InputPublished and CiphertextOutputPublished, and
ICiphernodeRegistry.sol declares CommitteeRequested and CommitteePublished. The current
contracts do not emit these four events.
Next steps
Put these addresses and deploy blocks in the contracts section of your node file.
Bond FOLD, register the operator, and buy tickets on the BondingRegistry.
Call the Interfold contract from an application.
DevelopersE3 lifecycleHow an E3 moves through the stages and emits the events on this page.
Concepts