BoundBound Docs
Reference

Contract ABIs

Public function reference for all Bound smart contracts deployed on Hedera Testnet.

Contract ABIs

All CCP contracts are deployed on Hedera Testnet (Chain ID: 296) and verified on Sourcify.

CCPRegistry

The certificate storage and verification contract.

FunctionInputsReturnsMutability
publish(...)PublishParams calldata params, bytes calldata operatorSig, bytes[] calldata attestorSigs-write
revoke(bytes32 certHash)bytes32 certHash-write
verify(address agent, uint8 minClass, uint256 maxLoss)address, uint8, uint256(bool acceptable, bytes32 certHash)view
isValid(bytes32 certHash)bytes32boolview
getCertificate(bytes32 certHash)bytes32CertificateRecordview
getActiveCertificate(address agent)addressbytes32view
getCertificateAuditors(bytes32 certHash)bytes32address[]view
getAuditorAttestationCount(address auditor)addressuint256view
setStatusChallenged(bytes32 certHash)bytes32-write (ChallengeManager only)
revokeForCause(bytes32 certHash, address challenger)bytes32, address-write (ChallengeManager only)
restoreFromChallenge(bytes32 certHash)bytes32-write (ChallengeManager only)

SpendingLimit

Dual-signature payment enforcement. Agent-only below cosign threshold, Ledger co-signature above.

FunctionInputsReturnsMutability
execute(address to, uint256 value, bytes calldata data)address, uint256, bytesbyteswrite (agent only)
executeWithCosign(address to, uint256 value, bytes calldata data, bytes calldata ledgerSig)address, uint256, bytes, bytesbyteswrite
maxSingleAction()-uint128view
maxPeriodicLoss()-uint128view
cosignThreshold()-uint128view
ledgerCosigner()-addressview
periodDuration()-uint48view
getSpentInPeriod()-(uint128 spent, uint128 limit, uint48 periodEnd)view
getRemainingAllowance()-uint128view
updateMaxSingleAction(uint128)uint128-write (Ledger only)
updateMaxPeriodicLoss(uint128)uint128-write (Ledger only)
updateCosignThreshold(uint128)uint128-write (Ledger only)
updateLedgerCosigner(address)address-write (Ledger only)

ReserveVault

Locked USDC reserve backing certificates.

FunctionInputsReturnsMutability
deposit(uint256 amount)uint256-write (operator only)
lock(uint256 until)uint256 timestamp-write (operator only)
release()--write (operator only, unlocked)
getReserveBalance()-uint256view
getStatedAmount()-uint256view
isAdequate(uint256 bound, uint256 ratioBps)uint256, uint256boolview
isLocked()-boolview

AuditorStaking

Auditor skin-in-the-game staking per certificate.

FunctionInputsReturnsMutability
stake(bytes32 certHash, uint256 amount)bytes32, uint256-write
release(bytes32 certHash)bytes32-write (after lock expiry)
slash(address auditor, bytes32 certHash, address challenger)address, bytes32, address-write (ChallengeManager only)
getStake(address auditor, bytes32 certHash)address, bytes32uint256view
getTotalStaked(address auditor)addressuint256view
getAuditorRecord(address auditor)addressAuditorRecordview
setRegistry(address)address-write (once)
setChallengeManager(address)address-write (once)
setLockExpiry(bytes32, uint48, uint48)bytes32, uint48, uint48-write (registry only)
getLockExpiry(bytes32)bytes32uint48view

Grace periods: C2 = 14 days, C3 = 30 days post-expiry.

FeeEscrow

Holds audit fees until clean certificate expiry.

FunctionInputsReturnsMutability
deposit(bytes32 certHash, address auditor, uint256 amount, uint256 releaseAfter)bytes32, address, uint256, uint256-write
release(bytes32 certHash)bytes32-write (after expiry + grace)
clawback(bytes32 certHash)bytes32-write (ChallengeManager only)

ChallengeManager

Dispute resolution with auto-resolve for on-chain verifiable claims.

FunctionInputsReturnsMutability
challenge(bytes32 certHash, uint8 challengeType, bytes calldata evidence)bytes32, uint8, bytesuint256 challengeIdpayable
resolveAuto(uint256 challengeId)uint256-write
submitVerdict(uint256 challengeId, bool upheld, bytes[] calldata panelSigs)uint256, bool, bytes[]-write
getChallenge(uint256 challengeId)uint256ChallengeRecordview
getChallengesByCert(bytes32 certHash)bytes32uint256[]view

Challenge types: 0=Reserve Shortfall, 1=Constraint Bypass, 2=False Independence, 3=Invalid Verification, 4=Scope Not Performed. Types 0-2 are auto-resolvable.

Minimum bond: 200 USDC. Slash distribution: 30% challenger, 50% verifiers, 20% burned.

On this page