Identity Registry
register(agentURI) mints an NFT to the caller and returns the agent id. KineticRegistry calls it during claim, receives the NFT, and transfers it to the owner in the same transaction.
The URI written by the claim page is a data URI whose JSON is the device name and the device address:
ownerOf(agentId). That is the only owner KineticVM trusts. Transferring the NFT is how a machine is sold. See Ownership.
Two approval functions matter:
Validation Registry
A validation is a request and a response, keyed byrequestHash.
100, the response hash is the keccak256 of the signed parameters, and the tag is kinetic-action.
Anyone reads the result with getValidationStatus(requestHash), which returns the validator, agent id, response, response hash, tag, and last update. That read is what buyer verification does for every row.
Reputation Registry
The Reputation registry is deployed on Monad testnet and KineticVM does not call it.KineticAttestor never calls giveFeedback. A feedback score is a different claim from a device-signed action record, and this deployment does not mix them.
What KineticVM does not ask the standard to do
Hold the device's money
Hold the device's money
ERC-8004 has an agent wallet flow, including
setAgentWallet with its own EIP-712 signature. KineticVM spending goes through DeviceVault instead, because the vault is where caps, the allowlist, and pause live.Prove a physical action
Prove a physical action
A validation response of
100 is the attestor’s statement that the bound device key signed the record. The standard does not, and KineticVM does not, treat that as proof the hardware moved.Bind a device key
Bind a device key
The standard identifies the agent.
KineticRegistry is the extra contract that says which key may speak for it, and that drops that key when the NFT moves.