KineticAttestor is a validator. It does not decide whether a motor moved. It decides whether the device key bound to an agent signed a specific record, recently, with a fresh nonce, and whether the agent’s owner has approved this contract to open a validation.
Address: 0x6e46d149b7d3396b42E874765Cf5a1bb26BD5bA5. The proof format and the trust boundary are in Attestations.
EIP-712 domain: KineticAttestor version 1.
attest
1
Resolve the device
registry.activeDevice(agentId). This reverts if the device was revoked or the NFT owner changed.2
Check freshness
NonceUsed if this nonce was already accepted. StaleProof if timestamp is more than 10 minutes old. FutureProof if it is more than 2 minutes ahead of the block.3
Check the signature
The digest from
hashActionProof must recover to the active device. Otherwise BadSignature.4
Check operator approval
The owner must have
setApprovalForAll this contract, or approved it for this token. Otherwise NotOperator. ERC-8004 only lets an owner or operator open validationRequest.5
Write the validation
Computes
requestHash and calls validationRequest then validationResponse on the Validation Registry. Response is 100, the response hash is paramsHash, the tag is kinetic-action, and the response URI is empty.Attested(agentId, device, requestHash, action).