Technical reference
Storage (keel-hold)
Immutable content-addressed chunk storage and the artifact registry that activates revisions.
Module boundary
Immutable content-addressed chunk storage and the artifact registry that activates revisions.
keel-hold
Immutable content-addressed chunk storage and the artifact registry that activates revisions.
- Version
- 0.3.0
- Dependencies
- keel-kernel
- Source revision
- ace3fed7aff1765c7d2ee9bba4d0232246f86ffb
Ingot
ABI reference at contracts revision ace3fed7aff1. Tuple fields are listed in declaration order. Overloads remain separate.
Ingot
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.
| Signature / parameters | Mutability |
|---|---|
constructor(bytes data) | payable |
KeelHold
ABI reference at contracts revision ace3fed7aff1. Tuple fields are listed in declaration order. Overloads remain separate.
KeelHold
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.
- Solidity source ↗
- Download ABI
- Sepolia showcase · 0x0a4f31d5ab08029e4c68f6f3227d9fa3a2d66267 ↗
- Sepolia studio-runtime-20261007 · 0x0a4f31d5ab08029e4c68f6f3227d9fa3a2d66267 ↗
Functions · 41 entries
| Signature / parameters | Returns | Mutability |
|---|---|---|
DESCRIPTOR_MAGIC() | bytes4 | view |
DESCRIPTOR_VERSION() | uint8 | view |
castSlug(bytes data) | bytes32 slugId, address pointer | nonpayable |
castSlugFor(bytes32 intentId, bytes data) | bytes32 slugId, address pointer | nonpayable |
castSlugs(bytes[] payloads) | bytes32[] slugIds, address[] pointers | nonpayable |
castSlugsFor(bytes32 intentId, bytes[] payloads) | bytes32[] slugIds, address[] pointers | nonpayable |
configureHarnessFees(uint32 expectedRevision, uint64 registrationWei) | — | nonpayable |
configureLimits(uint64 expectedRevision, uint32 maxSlugBytes, uint32 maxBatchSlugs, uint32 maxChildrenPerObject, uint32 maxReadDepth) | — | nonpayable |
configureSealFees(uint32 expectedRevision, uint64 perChunkWei, uint64 baseSealWei, uint64 stepSealWei, uint32 chunksPerStep) | — | nonpayable |
descriptorPointer(bytes32 objectId) | address pointer | view |
feeExempt(address account) | bool exempt | view |
feeTreasury() | address | view |
flatSlugCount(bytes32 objectId) | uint256 | view |
getObject(bytes32 objectId) | (bytes32,bytes32,address,uint64,uint64,uint32,uint8,bool,bool,string) | view |
getObjectPartIds(bytes32 objectId, uint256 offset, uint256 limit) | bytes32[] result | view |
getObjectSlugPointers(bytes32 objectId, uint256 offset, uint256 limit) | address[] result | view |
getSlug(bytes32 slugId) | bytes data | view |
harnessFees() | (uint64,uint32) | view |
harnessRegistered(bytes32 objectId, address renderer) | bool registered | view |
haulObject(bytes32 objectId) | bytes data | view |
initWeld(bytes32 objectId, uint32 slugCount, address executor, uint32 expectedFeeRevision) | bytes32 intentId | payable |
isSealed(bytes32 objectId) | bool | view |
limits() | uint32 maxSlugBytes, uint32 maxBatchSlugs, uint32 maxChildrenPerObject, uint32 maxReadDepth, uint64 revision | view |
manager() | address | view |
objectExists(bytes32 objectId) | bool | view |
preparedTokenURIEnvelopeValid(bytes prefix, bytes suffix) | bool | pure |
quoteHarness(bytes32 objectId, address renderer, address payer) | uint256 fee, uint32 revision | view |
quoteWeld(uint32 slugCount, address payer) | uint256 fee, uint32 revision | view |
readSlug(bytes32 objectId, uint256 index) | bytes data, bool hasNext | view |
registerHarness(bytes32 objectId, address renderer, uint32 expectedRevision) | — | payable |
requireHarness(bytes32 objectId, address renderer) | — | view |
requireSystemsActive(uint192 mask) | — | view |
sealFees() | (uint64,uint64,uint64,uint32,uint32) | view |
sealObject(bytes32 intentId) | — | nonpayable |
sealRequired(bytes32 objectId) | bool | view |
setFeeExempt(address account, bool exempt) | — | nonpayable |
slugPointer(bytes32 slugId) | address | view |
weldComposite(bytes32[] partObjectIds, bytes32 digest, uint64 byteLength, string mediaType) | bytes32 objectId | nonpayable |
weldIntent(bytes32 intentId) | (address,uint32,uint32,bool,bytes32) | view |
weldIntentId(address payer, bytes32 objectId, address executor) | bytes32 | pure |
weldObject(bytes32[] slugIds, bytes32 digest, uint64 byteLength, uint8 compression, string mediaType) | bytes32 objectId | nonpayable |
Events · 9 entries
| Signature / parameters |
|---|
FeeExemptionSet(address indexed account, bool exempt) |
HarnessFeesConfigured(uint64 registrationWei, uint32 revision) |
HarnessRegistered(bytes32 indexed objectId, address indexed renderer, address indexed payer, uint256 fee) |
LimitsConfigured(uint64 indexed revision, bytes32 packedLimits) |
ObjectSealed(bytes32 indexed objectId, bytes32 indexed intentId, uint64 slugCount) |
ObjectWelded(bytes32 indexed objectId, bytes32 indexed digest, bytes32 indexed indexDigest, address descriptorPointer, bytes32 metadata, string mediaType) |
SealFeesConfigured(bytes32 packedFees) |
SlugCast(bytes32 indexed slugId, address indexed pointer, uint256 byteLength) |
WeldInitiated(bytes32 indexed intentId, bytes32 indexed objectId, address indexed payer, address executor, uint32 slugCount, uint256 fee) |
Custom errors · 38 entries
| Signature / parameters |
|---|
CompressedObjectReadUnsupported() |
EmptyBatch() |
EmptyObject() |
EmptySlug() |
FeeTransferFailed() |
HarnessRegistrationRequired(bytes32 objectId, address renderer) |
IncorrectHarnessFee(uint256 supplied, uint256 required) |
IncorrectSealFee(uint256 supplied, uint256 required) |
IntentAlreadyOpened(bytes32 intentId) |
IntentComplete() |
IntentCountMismatch(uint256 actual, uint256 planned) |
IntentRequired() |
InvalidByteLength() |
InvalidDescriptor() |
InvalidDigest() |
InvalidFeeRecipient() |
InvalidHarness() |
InvalidIntent() |
InvalidLimits() |
InvalidManager() |
InvalidMediaType() |
InvalidSealFees() |
ObjectMissing(bytes32 objectId) |
ObjectReadLengthMismatch() |
ReadDepthExceeded() |
SealRequired(bytes32 objectId) |
SliceOutOfBounds() |
SlugAllowanceExceeded(uint256 supplied, uint256 remaining) |
SlugMissing(bytes32 slugId) |
SlugTooLarge(uint256 supplied, uint256 maximum) |
StaleHarnessFeeRevision(uint32 supplied, uint32 current) |
StaleLimitsRevision(uint64 supplied, uint64 current) |
StaleSealFeeRevision(uint32 supplied, uint32 current) |
TooManyBatchSlugs(uint256 supplied, uint256 maximum) |
TooManyChildren(uint256 supplied, uint256 maximum) |
UnauthorizedGovernance() |
UnauthorizedUploader() |
WrongObjectKind() |
| Signature / parameters | Mutability |
|---|---|
constructor(address manager_, address feeTreasury_, (uint64,uint64,uint64,uint32,uint32) initialSealFees, uint64 initialHarnessFeeWei) | nonpayable |
KeelIndex
ABI reference at contracts revision ace3fed7aff1. Tuple fields are listed in declaration order. Overloads remain separate.
KeelIndex
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.
- Solidity source ↗
- Download ABI
- Sepolia showcase · 0x2b706ded15fb27a582da256321f2b3295413b8ac ↗
- Sepolia studio-runtime-20261007 · 0x2b706ded15fb27a582da256321f2b3295413b8ac ↗
Functions · 24 entries
| Signature / parameters | Returns | Mutability |
|---|---|---|
DEFAULT_ADMIN_ROLE() | bytes32 | view |
REGISTRAR_ROLE() | bytes32 | view |
activateCollectionRevision(address collection, uint64 revision) | — | nonpayable |
activateTokenRevision(address collection, uint256 tokenId, uint64 revision) | — | nonpayable |
activePresentation(address collection, uint256 tokenId) | string manifestURI, bytes32 manifestDigest, uint64 revision | view |
activeRevision(address collection, uint256 tokenId) | (string,bytes32,uint64,uint64,uint64,uint64,uint64,uint8,bool) | view |
announceActiveRevision(address collection, uint256 tokenId, bool tokenSpecific) | — | nonpayable |
claimCollection(address collection) | — | nonpayable |
collectionController(address collection) | address controller | view |
freezeCollection(address collection) | — | nonpayable |
freezeToken(address collection, uint256 tokenId) | — | nonpayable |
getRoleAdmin(bytes32 role) | bytes32 | view |
grantRole(bytes32 role, address account) | — | nonpayable |
hasRole(bytes32 role, address account) | bool | view |
presentationMatches(address collection, uint256 tokenId, bytes32 manifestDigest, uint64 revision) | bool | view |
publishCollectionRevision(address collection, string manifestURI, bytes32 manifestDigest, uint64 parentRevision, uint64 compatibilityMin, uint64 compatibilityMax, uint8 policy, uint64 activationTime) | uint64 revision | nonpayable |
publishTokenRevision(address collection, uint256 tokenId, string manifestURI, bytes32 manifestDigest, uint64 parentRevision, uint64 compatibilityMin, uint64 compatibilityMax, uint8 policy, uint64 activationTime) | uint64 revision | nonpayable |
registerCollection(address collection, address controller) | — | nonpayable |
renounceRole(bytes32 role, address callerConfirmation) | — | nonpayable |
revisionOf(address collection, uint256 tokenId, bool tokenSpecific, uint64 revision) | (string,bytes32,uint64,uint64,uint64,uint64,uint64,uint8,bool) | view |
revokeRole(bytes32 role, address account) | — | nonpayable |
scopeStatus(address collection, uint256 tokenId, bool tokenSpecific) | uint64 latest, uint64 active, bool frozen | view |
setCollectionController(address collection, address controller) | — | nonpayable |
supportsInterface(bytes4 interfaceId) | bool | view |
Events · 9 entries
| Signature / parameters |
|---|
CollectionControllerUpdated(address indexed collection, address indexed previousController, address indexed controller) |
CollectionRegistered(address indexed collection, address indexed controller) |
MetadataNotificationFailed(address indexed collection, uint256 indexed tokenId, bool tokenSpecific) |
RevisionActivated(address indexed collection, uint256 indexed tokenId, bool indexed tokenSpecific, uint64 revision) |
RevisionPublished(address indexed collection, uint256 indexed tokenId, bool indexed tokenSpecific, uint64 revision, uint64 parentRevision, bytes32 manifestDigest, string manifestURI, uint8 policy, uint64 activationTime) |
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) |
ScopePermanentlyFrozen(address indexed collection, uint256 indexed tokenId, bool indexed tokenSpecific) |
Custom errors · 15 entries
| Signature / parameters |
|---|
AccessControlBadConfirmation() |
AccessControlUnauthorizedAccount(address account, bytes32 neededRole) |
CollectionAlreadyRegistered() |
CollectionNotRegistered() |
InvalidActivationTime() |
InvalidCompatibility() |
InvalidManifest() |
InvalidParent() |
InvalidPolicy() |
PendingRevisionExists() |
RevisionMissing() |
RevisionNotReady() |
ScopeFrozen() |
Unauthorized() |
ZeroAddress() |
| Signature / parameters | Mutability |
|---|---|
constructor(address admin) | 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
KeelHold, KeelHoldOnchFS, KeelIndex
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 · 38 entries
| Name | Kind | Source file |
|---|---|---|
cast_slug | entrypoint | keel_hold.py |
haul_slug | onchain_view | keel_hold.py |
write_chunk | entrypoint | keel_hold_onchfs.py |
create_file | entrypoint | keel_hold_onchfs.py |
create_directory | entrypoint | keel_hold_onchfs.py |
weld_object | entrypoint | keel_hold_onchfs.py |
configure_verifier | entrypoint | keel_hold_onchfs.py |
forge_harness | entrypoint | keel_hold_onchfs.py |
haul_slug | onchain_view | keel_hold_onchfs.py |
read_chunk | onchain_view | keel_hold_onchfs.py |
read_directory | onchain_view | keel_hold_onchfs.py |
read_file | onchain_view | keel_hold_onchfs.py |
get_inode_at | onchain_view | keel_hold_onchfs.py |
get_object | onchain_view | keel_hold_onchfs.py |
haul_object | onchain_view | keel_hold_onchfs.py |
get_verifier | onchain_view | keel_hold_onchfs.py |
predict_harness_id | onchain_view | keel_hold_onchfs.py |
get_harness | onchain_view | keel_hold_onchfs.py |
harness_part_count | onchain_view | keel_hold_onchfs.py |
haul_harness_part | onchain_view | keel_hold_onchfs.py |
harness_html | onchain_view | keel_hold_onchfs.py |
set_registrar | entrypoint | keel_index.py |
register_collection | entrypoint | keel_index.py |
claim_collection | entrypoint | keel_index.py |
set_collection_controller | entrypoint | keel_index.py |
publish_collection_revision | entrypoint | keel_index.py |
publish_token_revision | entrypoint | keel_index.py |
activate_collection_revision | entrypoint | keel_index.py |
activate_token_revision | entrypoint | keel_index.py |
freeze_collection | entrypoint | keel_index.py |
freeze_token | entrypoint | keel_index.py |
collection_controller | onchain_view | keel_index.py |
is_registrar | onchain_view | keel_index.py |
revision_of | onchain_view | keel_index.py |
active_revision | onchain_view | keel_index.py |
active_presentation | onchain_view | keel_index.py |
presentation_matches | onchain_view | keel_index.py |
scope_status | onchain_view | keel_index.py |

