Technical reference
Stake objects (keel-stake)
Configurable ERC-721 staking custody, frozen terms, and optional token-bound accounts.
Module boundary
Configurable ERC-721 staking custody, frozen terms, and optional token-bound accounts.
keel-stake
Configurable ERC-721 staking custody, frozen terms, and optional token-bound accounts.
- Version
- 0.3.0
- Dependencies
- keel-artifacts, keel-kernel
- Source revision
- ace3fed7aff1765c7d2ee9bba4d0232246f86ffb
KeelStakeObjectManager
ABI reference at contracts revision ace3fed7aff1. Tuple fields are listed in declaration order. Overloads remain separate.
KeelStakeObjectManager
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 · 26 entries
| Signature / parameters | Returns | Mutability |
|---|---|---|
STAKE_KEY_DOMAIN() | bytes32 | view |
STAKE_OBJECT_DOMAIN() | bytes32 | view |
artifactRegistry() | address | view |
configureLockup(bytes32 stakeObjectId, uint8 mode, uint64 minimumSeconds) | — | nonpayable |
configureRuntime(bytes32 stakeObjectId, bytes32 codeObjectId, uint64 codeObjectRevision, uint16 slot, bytes32 seed, bytes32 argumentsDigest, bytes32 variablesDigest, bytes32 runtimeDigest) | — | nonpayable |
createStakeObject(bytes32 salt, address hostCollection, uint256 hostTokenId, address stakedCollection, bytes32 harnessId, (address,address,bytes32) backpack) | bytes32 stakeObjectId | nonpayable |
ensureBackpack(bytes32 stakeObjectId) | address account | nonpayable |
freezeStakeObject(bytes32 stakeObjectId) | — | nonpayable |
globalStakeCounts() | uint256 lifetime, uint256 active | view |
keelStakeState(address collection, uint256 tokenId) | bool active, address controller | view |
onERC721Received(address operator, address from, uint256 tokenId, bytes) | bytes4 | view |
packedStakeCounts(bytes32 stakeObjectId, address stakedCollection, uint256 tokenId) | bytes32 packed | view |
predictStakeObjectId(address creator, bytes32 salt) | bytes32 | pure |
setStakeObjectEnabled(bytes32 stakeObjectId, bool enabled) | — | nonpayable |
stake(bytes32 stakeObjectId, uint256 tokenId) | — | nonpayable |
stakeCountForToken(address stakedCollection, uint256 tokenId) | uint256 lifetime, uint256 active | view |
stakeCounts(bytes32 stakeObjectId, address stakedCollection, uint256 tokenId) | uint256 objectTokenLifetime, uint256 objectLifetime, uint256 objectActive, uint256 tokenLifetime, uint256 tokenActive | view |
stakeKey(bytes32 stakeObjectId, address stakedCollection, uint256 tokenId) | bytes32 | pure |
stakeObject(bytes32 stakeObjectId) | (address,address,uint256,address,bytes32,(address,address,bytes32),address,(uint8,uint64),bool,bool,bool) | view |
stakeObjectActive(bytes32 stakeObjectId, uint256 tokenId) | bool | view |
stakeObjectController(bytes32 stakeObjectId) | address hostOwner, address creator, address manager | view |
stakeObjectRuntime(bytes32 stakeObjectId) | (bytes32,uint64,bytes32,bytes32,bytes32,uint16,bytes32,bool) | view |
stakeObjectState(bytes32 stakeObjectId, uint256 tokenId) | (bool,address,address,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,bytes32,address,bytes32,uint8,uint64,uint64) state | view |
totalActiveStakes() | uint256 | view |
totalLifetimeStakes() | uint256 | view |
unstake(bytes32 stakeObjectId, uint256 tokenId) | — | nonpayable |
Events · 8 entries
| Signature / parameters |
|---|
StakeObjectBackpackCreated(bytes32 indexed stakeObjectId, address indexed account) |
StakeObjectCreated(bytes32 harnessId, bytes32 indexed stakeObjectId, address creator, address indexed hostCollection, address stakedCollection, uint256 indexed hostTokenId) |
StakeObjectEnabled(bool enabled, bytes32 indexed stakeObjectId) |
StakeObjectFrozen(bytes32 indexed stakeObjectId) |
StakeObjectLockupConfigured(uint8 mode, uint64 minimumSeconds, bytes32 indexed stakeObjectId) |
StakeObjectRuntimeConfigured(uint64 codeObjectRevision, uint16 slot, bytes32 seed, bytes32 indexed codeObjectId, bytes32 indexed stakeObjectId, bytes32 runtimeDigest, bytes32 argumentsDigest, bytes32 variablesDigest) |
StakeRecorded(bytes32 indexed stakeObjectId, bytes32 runtimeDigest, address staker, address hostCollection, address indexed stakedCollection, uint256 indexed tokenId, uint256 hostTokenId, uint256 tokenActive, uint256 objectActive, uint256 globalActive, uint256 tokenLifetime, uint256 objectLifetime, uint256 globalLifetime, uint256 objectTokenLifetime) |
StakeReleased(bytes32 indexed stakeObjectId, bytes32 runtimeDigest, address staker, address hostCollection, address indexed stakedCollection, uint256 indexed tokenId, uint256 hostTokenId, uint256 tokenActive, uint256 objectActive, uint256 globalActive, uint256 tokenLifetime, uint256 objectLifetime, uint256 globalLifetime, uint256 objectTokenLifetime) |
Custom errors · 22 entries
| Signature / parameters |
|---|
AlreadyStaked() |
BackpackExists() |
BackpackUnavailable() |
ConfigurationFrozen() |
CounterPackingOverflow() |
InvalidContract() |
InvalidLockup() |
InvalidRuntime() |
InvalidStakeObject() |
InvalidTransfer() |
LockupActive() |
LockupImmutable() |
NotStaked() |
NotStaker() |
ObjectActive() |
ReentrancyGuardReentrantCall() |
RuntimeMissing() |
RuntimeObjectMissing() |
StakeObjectExists() |
StakeObjectMissing() |
Unauthorized() |
ZeroAddress() |
| Signature / parameters | Mutability |
|---|---|
constructor(address artifactRegistry_) | 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.
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.
| Name | Kind | Source file |
|---|---|---|
create_stake_object | entrypoint | keel_stake_object_manager.py |
set_enabled | entrypoint | keel_stake_object_manager.py |
configure_lockup | entrypoint | keel_stake_object_manager.py |
configure_runtime | entrypoint | keel_stake_object_manager.py |
stake | entrypoint | keel_stake_object_manager.py |
verify_stake_escrow | entrypoint | keel_stake_object_manager.py |
unstake | entrypoint | keel_stake_object_manager.py |
stake_object_state | onchain_view | keel_stake_object_manager.py |
stake_object_active | onchain_view | keel_stake_object_manager.py |
stake_counts | onchain_view | keel_stake_object_manager.py |
packed_stake_counts | onchain_view | keel_stake_object_manager.py |
global_stake_counts | onchain_view | keel_stake_object_manager.py |
stake_object_config | onchain_view | keel_stake_object_manager.py |
stake_object_runtime | onchain_view | keel_stake_object_manager.py |
keel_stake_state | onchain_view | keel_stake_object_manager.py |

