Technical reference
Collection verification (keel-crucible)
Collection attestation, community replication, and preservation bounties.
Module boundary
Collection attestation, community replication, and preservation bounties.
keel-crucible
Collection attestation, community replication, and preservation bounties.
- Version
- 0.3.0
- Dependencies
- keel-kernel, keel-hold, keel-artifacts
- Source revision
- ace3fed7aff1765c7d2ee9bba4d0232246f86ffb
KeelCollectionAttestationRegistry
ABI reference at contracts revision ace3fed7aff1. Tuple fields are listed in declaration order. Overloads remain separate.
KeelCollectionAttestationRegistry
view / pure calls read state; nonpayable / payable calls require a transaction. Source ABI is a versioned interface reference; deployed addresses can be older versions. Compare the target’s implementation and ABI before a write.
Functions · 20 entries
| Signature / parameters | Returns | Mutability |
|---|---|---|
ATTESTATION_TYPEHASH() | bytes32 | view |
ATTESTOR_ADMIN_ROLE() | bytes32 | view |
DEFAULT_ADMIN_ROLE() | bytes32 | view |
approvedAttestor(address signer) | bool approved | view |
attestationDigest((uint256,address,address,uint256,bytes32,address,bytes32,address,address,address,bytes32,bytes32,uint64,uint64,bytes32,bytes32,bytes32,bytes32,uint64,bytes32,bytes32,bytes32,uint64,uint64) value) | bytes32 | view |
attestationWindowOpen(bytes32 digest) | bool | view |
eip712Domain() | bytes1 fields, string name, string version, uint256 chainId, address verifyingContract, bytes32 salt, uint256[] extensions | view |
getRoleAdmin(bytes32 role) | bytes32 | view |
grantRole(bytes32 role, address account) | — | nonpayable |
hasRole(bytes32 role, address account) | bool | view |
nonceUsed(bytes32 nonceKey) | bool used | view |
receipt(bytes32 digest) | (bytes32,bytes32,address,uint256,uint64,bytes32,uint64,uint64,uint16,bool,bool) | view |
renounceRole(bytes32 role, address callerConfirmation) | — | nonpayable |
revoke(bytes32 digest, bytes32 reasonDigest) | — | nonpayable |
revokeRole(bytes32 role, address account) | — | nonpayable |
setAttestor(address signer, bool approved) | — | nonpayable |
setThreshold(uint16 next) | — | nonpayable |
submit((uint256,address,address,uint256,bytes32,address,bytes32,address,address,address,bytes32,bytes32,uint64,uint64,bytes32,bytes32,bytes32,bytes32,uint64,bytes32,bytes32,bytes32,uint64,uint64) value, bytes[] signatures) | bytes32 digest | nonpayable |
supportsInterface(bytes4 interfaceId) | bool | view |
threshold() | uint16 | view |
Events · 8 entries
| Signature / parameters |
|---|
AttestorSet(address indexed signer, bool approved) |
CollectionAttestationRevoked(bytes32 indexed digest, bytes32 reasonDigest) |
CollectionAttested(bytes32 indexed digest, address indexed collection, uint256 indexed tokenId, bytes32 evidenceRoot, uint64 blockNumber, bytes32 blockHash, uint16 signerCount) |
EIP712DomainChanged() |
RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole) |
RoleGranted(bytes32 indexed role, address indexed account, address indexed sender) |
RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender) |
ThresholdSet(uint16 threshold) |
Custom errors · 15 entries
| Signature / parameters |
|---|
AccessControlBadConfirmation() |
AccessControlUnauthorizedAccount(address account, bytes32 neededRole) |
DuplicateOrUnsortedSigner() |
ECDSAInvalidSignature() |
ECDSAInvalidSignatureLength(uint256 length) |
ECDSAInvalidSignatureS(bytes32 s) |
InsufficientSignatures() |
InvalidAttestation() |
InvalidCodeIdentity() |
InvalidPinnedBlock() |
InvalidShortString() |
InvalidThreshold() |
ReceiptUnavailable() |
Replay() |
StringTooLong(string str) |
| Signature / parameters | Mutability |
|---|---|
constructor(address admin, uint16 threshold_) | nonpayable |
KeelCollectionVerificationRegistry
ABI reference at contracts revision ace3fed7aff1. Tuple fields are listed in declaration order. Overloads remain separate.
KeelCollectionVerificationRegistry
view / pure calls read state; nonpayable / payable calls require a transaction. Source ABI is a versioned interface reference; deployed addresses can be older versions. Compare the target’s implementation and ABI before a write.
Functions · 33 entries
| Signature / parameters | Returns | Mutability |
|---|---|---|
ADAPTER_PROTOCOL() | bytes32 | view |
AUDITOR_ROLE() | bytes32 | view |
DEFAULT_ADMIN_ROLE() | bytes32 | view |
HOOK_PROTOCOL() | bytes32 | view |
MAX_TOKEN_URI_BYTES() | uint256 | view |
POLICY_ROLE() | bytes32 | view |
PRESENTATION_CONTENT_DOMAIN() | bytes32 | view |
SUPPLY_KNOWN_BURNED() | uint16 | view |
SUPPLY_KNOWN_LIFETIME_MINTED() | uint16 | view |
SUPPLY_KNOWN_MAX() | uint16 | view |
SUPPLY_KNOWN_OUTSTANDING() | uint16 | view |
SUPPLY_KNOWN_REMAINING() | uint16 | view |
SUPPLY_KNOWN_RESERVED() | uint16 | view |
approvedEvidenceRoot(address collection, uint256 tokenId, bytes32 policyKey) | bytes32 | view |
computePresentationContentDigest(uint256 chainId, address collection, address keelIndex, uint256 presentationScope, uint64 presentationRevision, bytes32 manifestDigest, bytes32 portableRoot, bytes32 portableAnchorRoot) | bytes32 | pure |
getRoleAdmin(bytes32 role) | bytes32 | view |
grantRole(bytes32 role, address account) | — | nonpayable |
hasRole(bytes32 role, address account) | bool | view |
inspectCurrent(address collection, uint256 tokenId, bytes32 policyKey) | (bytes32,address,address,uint256,bool,address,uint64,bytes32,bytes32,uint8,address,address,address,bytes32,bool,bool,bool,uint8,uint8,address,bytes32,uint32,address,address,bool,uint256,uint256,uint256,uint256,uint256,uint256,uint16,uint8,bool,address,address,bool,uint8,address,address,address,bool,address,address,bool) state, (uint8,uint8,uint8,uint8,uint8,uint8) facets | view |
latestReceipt(address collection, uint256 tokenId) | bytes32 receiptId | view |
policy(bytes32 id) | ((uint8,bytes32,address,bytes32,address,bytes32,address,address,bytes32,uint64),bool,bool) | view |
policyId((uint8,bytes32,address,bytes32,address,bytes32,address,address,bytes32,uint64) input) | bytes32 | pure |
portableAnchorRegistry() | address | view |
receipt(bytes32 id) | (bytes32,bytes32,bytes32,bytes32,bytes32,bytes32,bytes32,bytes32,bytes32,bytes32,bytes32,address,address,address,address,address,address,address,address,address,address,address,address,address,address,address,address,address,bytes32,bytes32,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint16,uint64,uint64,uint64,uint64,bytes32,uint64,uint32,uint8,uint8,uint8,uint8,uint8,uint8,(uint8,uint8,uint8,uint8,uint8,uint8),bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool) | view |
receiptCurrent(bytes32 id) | bool | view |
recordApproved(address collection, uint256 tokenId, bytes32 policyKey) | bytes32 receiptId | nonpayable |
recordContentOnly(address collection, uint256 tokenId, bytes32 policyKey, bytes32 expectedTokenURIHash, bytes32 portableRoot, bytes32 manifestDigest, bytes32 evidenceRoot, uint64 evidenceBlock, bytes32 evidenceBlockHash, uint64 expiresAt) | bytes32 receiptId | nonpayable |
renounceRole(bytes32 role, address callerConfirmation) | — | nonpayable |
revoke(bytes32 receiptId, bytes32 reasonDigest) | — | nonpayable |
revokeRole(bytes32 role, address account) | — | nonpayable |
sealObservation(bytes32 receiptId, bytes32 observedBlockHash) | — | nonpayable |
setPolicy((uint8,bytes32,address,bytes32,address,bytes32,address,address,bytes32,uint64) input, bool enabled) | bytes32 id | nonpayable |
supportsInterface(bytes4 interfaceId) | bool | view |
Events · 7 entries
| Signature / parameters |
|---|
CollectionVerificationObservationSealed(bytes32 indexed receiptId, uint64 indexed observedBlock, bytes32 blockHash) |
CollectionVerificationRecorded(bytes32 indexed receiptId, address indexed collection, uint256 indexed tokenId, bytes32 policyId, bytes32 previousReceipt, bytes32 evidenceRoot, bytes32 portableRoot, uint64 presentationRevision, uint8 lane, uint8 routeVerdict, uint8 contentVerdict, address auditor) |
CollectionVerificationRevoked(bytes32 indexed receiptId, address indexed auditor, bytes32 reasonDigest) |
RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole) |
RoleGranted(bytes32 indexed role, address indexed account, address indexed sender) |
RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender) |
VerificationPolicySet(bytes32 indexed policyId, bytes32 indexed policyDigest, uint64 version, uint8 lane, bool enabled) |
Custom errors · 17 entries
| Signature / parameters |
|---|
AccessControlBadConfirmation() |
AccessControlUnauthorizedAccount(address account, bytes32 neededRole) |
AdapterCodeMismatch() |
HookProtocolMismatch() |
InvalidContract() |
InvalidEvidence() |
InvalidEvidenceBlock() |
InvalidPolicy() |
ObservationAlreadySealed() |
PolicyUnavailable() |
PortableRootUnanchored() |
ReceiptAlreadyRevoked() |
ReceiptUnavailable() |
RuntimeCodeMismatch() |
TokenURIMismatch() |
TokenURIReadFailed() |
ZeroAddress() |
| Signature / parameters | Mutability |
|---|---|
constructor(address admin, address portableAnchorRegistry_) | nonpayable |
KeelCommunityReplicationRegistry
ABI reference at contracts revision ace3fed7aff1. Tuple fields are listed in declaration order. Overloads remain separate.
KeelCommunityReplicationRegistry
view / pure calls read state; nonpayable / payable calls require a transaction. Source ABI is a versioned interface reference; deployed addresses can be older versions. Compare the target’s implementation and ABI before a write.
Functions · 44 entries
| Signature / parameters | Returns | Mutability |
|---|---|---|
CAMPAIGN_ID_DOMAIN() | bytes32 | view |
CARRIER_EVM() | uint8 | view |
CARRIER_ORDINALS() | uint8 | view |
CARRIER_PROOF_ID_DOMAIN() | bytes32 | view |
CARRIER_SCORE_BONUS() | uint256 | view |
CARRIER_TEZOS() | uint8 | view |
CHUNK_SCORE_BONUS() | uint256 | view |
MAX_CHUNKS() | uint32 | view |
MAX_CLAIM_BATCH() | uint32 | view |
MAX_CLAIM_LEASE() | uint32 | view |
MAX_LOCATOR_BYTES() | uint256 | view |
MAX_SUBMIT_BATCH() | uint32 | view |
MIN_CLAIM_LEASE() | uint32 | view |
VALID_CARRIER_MASK() | uint8 | view |
artifactRegistry() | address | view |
bindObjectRevision(bytes32 campaignId) | — | nonpayable |
campaignCarrierStatus(bytes32 campaignId) | uint8 requiredMask, uint8 completedMask, bool complete | view |
campaignContributorStats(bytes32 campaignId, address contributor) | (uint128,uint64,uint64,uint256) | view |
campaignCurrent(bytes32 campaignId) | bool | view |
campaignForRevision(bytes32 objectId, uint64 revision) | bytes32 campaignId | view |
campaignState(bytes32 campaignId) | (address,bytes32,uint64,uint64,bytes32,bytes32,bytes32,bytes32,bytes32,bytes32,uint64,uint64,uint64,uint32,uint32,uint32,uint8,uint8,uint8,uint8,bool,bool,bool,bool,string) | view |
carrierProof(bytes32 campaignId, uint8 carrier) | (address,address,bytes32,bytes32,bytes32,uint64,uint64,uint64,uint8,string) | view |
carrierTask(bytes32 campaignId, uint8 carrier) | (address,uint64) | view |
claimCarrier(bytes32 campaignId, uint8 carrier) | — | nonpayable |
claimSlugs(bytes32 campaignId, uint32[] indices) | — | nonpayable |
createCampaign((bytes32,bytes32,uint64,uint64,uint8,bytes32,bytes32,bytes32,bytes32,uint64,uint64,uint8,string,uint8,uint32) input, (bytes32,uint32)[] slugs) | bytes32 campaignId | nonpayable |
enableExternalCarriers(bytes32 campaignId, uint8 carrierMask) | — | nonpayable |
finalizeEvmCarrier(bytes32 campaignId) | bytes32 contentObjectId | nonpayable |
globalContributorStats(address contributor) | (uint128,uint64,uint64,uint256) | view |
keelHold() | address | view |
predictCampaignId((bytes32,bytes32,uint64,uint64,uint8,bytes32,bytes32,bytes32,bytes32,uint64,uint64,uint8,string,uint8,uint32) input, address creator) | bytes32 | pure |
predictCarrierProofDigest(bytes32 campaignId, uint8 carrier, bytes32 locatorDigest, bytes32 readbackDigest) | bytes32 | pure |
proofVerifier() | address | view |
releaseCarrierClaim(bytes32 campaignId, uint8 carrier) | — | nonpayable |
releaseSlugClaim(bytes32 campaignId, uint32 slugIndex) | — | nonpayable |
replaceCampaign(bytes32 priorCampaignId, (bytes32,bytes32,uint64,uint64,uint8,bytes32,bytes32,bytes32,bytes32,uint64,uint64,uint8,string,uint8,uint32) input, (bytes32,uint32)[] slugs) | bytes32 campaignId | nonpayable |
requiredCarrierMask(bytes32 objectId) | uint8 | view |
reviewCarrierProof(bytes32 campaignId, uint8 carrier, bool accepted) | — | nonpayable |
setCampaignEnabled(bytes32 campaignId, bool enabled) | — | nonpayable |
slugTask(bytes32 campaignId, uint32 slugIndex) | (bytes32,address,address,uint64,uint32,bool,bool) | view |
submitCarrierProof(bytes32 campaignId, uint8 carrier, string locator, bytes32 readbackDigest) | — | nonpayable |
submitSlug(bytes32 campaignId, uint32 slugIndex, bytes data) | — | nonpayable |
submitSlugs(bytes32 campaignId, uint32[] indices, bytes[] payloads) | — | nonpayable |
validateRevisionAppend(bytes32 objectId, uint64 revision, address publisher, bytes32 contentObjectId, uint8 digestAlgorithm, bytes32 decodedDigest, bytes32 metadataDigest, bytes32 fidelitySetDigest) | — | view |
Events · 16 entries
| Signature / parameters |
|---|
CarrierClaimReleased(bytes32 indexed campaignId, uint8 indexed carrier, address indexed contributor) |
CarrierClaimed(bytes32 indexed campaignId, uint8 indexed carrier, address indexed contributor, uint64 expiresAt) |
CarrierProofReviewed(bytes32 indexed campaignId, uint8 indexed carrier, address indexed contributor, address verifier, bool accepted, uint256 score) |
CarrierProofSubmitted(bytes32 indexed campaignId, uint8 indexed carrier, address indexed contributor, bytes32 locatorDigest, bytes32 proofDigest, bytes32 readbackDigest, uint64 byteLength, string locator) |
EvmCarrierFinalized(bytes32 indexed campaignId, bytes32 indexed contentObjectId, address indexed finalizer) |
ObjectCarrierPolicyAdvanced(bytes32 indexed objectId, uint64 indexed revision, uint8 addedCarrierMask, uint8 requiredCarrierMask) |
ObjectRevisionBound(bytes32 indexed campaignId, bytes32 indexed objectId, uint64 indexed revision, bytes32 contentObjectId) |
ReplicationCampaignCreated(bytes32 indexed campaignId, bytes32 indexed objectId, uint64 indexed targetRevision, uint64 expectedParent, address creator, uint8 digestAlgorithm, bytes32 decodedDigest, bytes32 metadataDigest, bytes32 fidelitySetDigest, bytes32 indexDigest, bytes32 mediaTypeDigest, uint64 byteLength, uint64 storedByteLength, uint32 slugCount, uint8 compression, uint8 carrierMask, uint8 requiredCarrierMask, uint32 claimLeaseSeconds, bool evmFinalized) |
ReplicationCampaignEnabled(bytes32 indexed campaignId, bool enabled) |
ReplicationCampaignSuperseded(bytes32 indexed objectId, uint64 indexed revision, bytes32 indexed priorCampaignId, bytes32 campaignId) |
ReplicationCarriersEnabled(bytes32 indexed campaignId, uint8 addedCarrierMask, uint8 carrierMask) |
SlugClaimReleased(bytes32 indexed campaignId, uint32 indexed slugIndex, address indexed contributor) |
SlugClaimed(bytes32 indexed campaignId, uint32 indexed slugIndex, address indexed contributor, uint64 expiresAt) |
SlugContributionAccepted(bytes32 indexed campaignId, uint32 indexed slugIndex, bytes32 indexed slugId, address contributor, address pointer, uint32 byteLength, uint256 score, uint32 completedSlugs) |
SlugResolvedAsPreexisting(bytes32 indexed campaignId, uint32 indexed slugIndex, bytes32 indexed slugId, address pointer) |
SlugTaskCommitted(bytes32 indexed campaignId, uint32 indexed slugIndex, bytes32 indexed slugId, uint32 byteLength, bool preexisting) |
Custom errors · 25 entries
| Signature / parameters |
|---|
CampaignDisabled() |
CampaignExists() |
CampaignMissing() |
CampaignStale() |
CarrierRegression() |
ClaimMissing() |
EvmAlreadyFinalized() |
EvmIncomplete() |
EvmNotEnabled() |
InvalidBatch() |
InvalidCampaign() |
InvalidCarrier() |
InvalidCommitment() |
InvalidContract() |
InvalidRevision() |
InvalidRevisionPolicy() |
InvalidSlug() |
ProofAlreadyAccepted() |
ProofMissing() |
ProofPending() |
RevisionAlreadyBound() |
SlugAlreadyClaimed() |
SlugComplete() |
Unauthorized() |
ZeroAddress() |
| Signature / parameters | Mutability |
|---|---|
constructor(address artifactRegistry_, address proofVerifier_) | nonpayable |
Native Tezos implementation
SmartPy entrypoints and views come from native source, not an EVM ABI translation. This source inventory does not assert deployment or EVM behavioral parity.
SmartPy contracts
KeelCollectionAttestationRegistry, KeelCollectionVerificationHookBase, KeelCollectionVerificationRegistry, KeelCommunityReplicationRegistry
Entrypoints and views
For exact parameter and storage types follow the SmartPy source; an originated target’s /entrypoints RPC is the authoritative deployed parameter schema.
Native interface · 62 entries
| Name | Kind | Source file |
|---|---|---|
set_code_identity | entrypoint | keel_crucible.py |
set_attestor | entrypoint | keel_crucible.py |
set_threshold | entrypoint | keel_crucible.py |
attestation_digest | onchain_view | keel_crucible.py |
submit | entrypoint | keel_crucible.py |
revoke | entrypoint | keel_crucible.py |
receipt | onchain_view | keel_crucible.py |
attestation_window_open | onchain_view | keel_crucible.py |
keel_verification_protocol | onchain_view | keel_crucible.py |
keel_route | onchain_view | keel_crucible.py |
keel_verification_state | onchain_view | keel_crucible.py |
register_collection_identity | entrypoint | keel_crucible.py |
register_adapter_identity | entrypoint | keel_crucible.py |
register_portable_anchor | entrypoint | keel_crucible.py |
observe_token_uri | entrypoint | keel_crucible.py |
policy_id | onchain_view | keel_crucible.py |
set_policy | entrypoint | keel_crucible.py |
record_content_only | entrypoint | keel_crucible.py |
record_approved | entrypoint | keel_crucible.py |
approved_evidence_root | onchain_view | keel_crucible.py |
seal_observation | entrypoint | keel_crucible.py |
inspect_current | onchain_view | keel_crucible.py |
revoke | entrypoint | keel_crucible.py |
policy | onchain_view | keel_crucible.py |
receipt | onchain_view | keel_crucible.py |
receipt_current | onchain_view | keel_crucible.py |
latest_receipt | onchain_view | keel_crucible.py |
last_receipt | onchain_view | keel_crucible.py |
presentation_content_digest | onchain_view | keel_crucible.py |
predict_artifact_id | onchain_view | keel_crucible.py |
predict_campaign_id | onchain_view | keel_crucible.py |
predict_carrier_proof_digest | onchain_view | keel_crucible.py |
create_campaign | entrypoint | keel_crucible.py |
replace_campaign | entrypoint | keel_crucible.py |
set_campaign_enabled | entrypoint | keel_crucible.py |
enable_external_carriers | entrypoint | keel_crucible.py |
claim_slugs | entrypoint | keel_crucible.py |
release_slug_claim | entrypoint | keel_crucible.py |
submit_slug | entrypoint | keel_crucible.py |
submit_slugs | entrypoint | keel_crucible.py |
predict_content_object_id | onchain_view | keel_crucible.py |
finalize_evm_carrier | entrypoint | keel_crucible.py |
record_artifact_revision | entrypoint | keel_crucible.py |
set_artifact_editor | entrypoint | keel_crucible.py |
set_artifact_frozen | entrypoint | keel_crucible.py |
bind_object_revision | entrypoint | keel_crucible.py |
claim_carrier | entrypoint | keel_crucible.py |
release_carrier_claim | entrypoint | keel_crucible.py |
submit_carrier_proof | entrypoint | keel_crucible.py |
review_carrier_proof | entrypoint | keel_crucible.py |
campaign_state | onchain_view | keel_crucible.py |
campaign_current | onchain_view | keel_crucible.py |
required_carrier_mask | onchain_view | keel_crucible.py |
campaign_carrier_status | onchain_view | keel_crucible.py |
slug_task | onchain_view | keel_crucible.py |
carrier_task | onchain_view | keel_crucible.py |
carrier_proof | onchain_view | keel_crucible.py |
global_contributor_stats | onchain_view | keel_crucible.py |
campaign_contributor_stats | onchain_view | keel_crucible.py |
validate_revision_append | entrypoint | keel_crucible.py |
last_campaign_id | onchain_view | keel_crucible.py |
last_content_object_id | onchain_view | keel_crucible.py |

