Skip to main content
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

Anyone may relay a proof. The device relays its own. The function:
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.
Emits Attested(agentId, device, requestHash, action).
This contract never calls giveFeedback, and it never approves the device key on the agent NFT. The signature shows the device authorized this record. It does not prove the actuator physically moved.

Views

Errors