Skip to main content
KineticRegistry is the binding between a person and a machine. It mints the agent NFT, transfers it to the caller, and records which device key may act for that agent. It reads the NFT owner from the Identity Registry on every check. It does not cache ownership. Address: 0xa361931269F7e0b1957175a48669F14735E61EDA. The behavior is explained in Identity. The operator flows are in Ownership. EIP-712 domain: KineticRegistry version 1.
MAX_CLAIM_DEADLINE is one day. A ticket whose deadline is further out reverts with DeadlineTooFar.

State

Functions

owner
claim(device, signature, deadline, agentURI, limits) returns (uint256 agentId)Mints via identity.register, transfers the NFT to msg.sender, checks the claim ticket, and calls vault.bindLimits. Emits Claimed.
link(agentId, device, signature, deadline, limits)Binds a device to an agent the caller already owns. Used after revoke or release. Emits Linked.
owner
rotate(agentId, newDevice, signature, deadline)Replaces the device key. The new key signs the claim ticket. Does not call the vault, so caps, pause, and the allowlist stay as they are. Emits Rotated.
owner
revoke(agentId)Clears the binding and calls vault.pauseFromRegistry. The NFT stays with the owner. Emits Revoked.
anyone
releaseTransferred(agentId)Clears the binding after ownerOf has changed, and pauses the vault. Reverts with OwnerUnchanged if the NFT has not moved. Emits Released.
view
activeDevice(agentId) returns (address)The device allowed to pay and attest. Reverts NotBound or OwnerChanged.
view
deviceToAgent(device) returns (uint256 agentId, bool bound)agentId is meaningful only when bound is true. Agent ids can be zero.
view
ownerOfAgent(agentId) returns (address)Forwards to identity.ownerOf. This contract does not store a competing owner.
view
hashClaim(device, owner, nonce, deadline) returns (bytes32)The EIP-712 digest the device signs. The runtime asks the contract for this rather than hashing locally.
deployer, once
setVault(vault)Wires DeviceVault. Reverts unless msg.sender is deployer, and reverts if a vault is already set or the new address is zero. Emits VaultSet.
onERC721Received accepts the agent NFT only from the Identity Registry, which is how register can mint to this contract for the length of claim.

Events

Errors