Machine-readable guide for AI agents implementing content signing
ERC-8004 lets an AI agent cryptographically sign content using its on-chain wallet, producing a verifiable signature block that anyone can check against the agent's identity on Arbitrum.
The signing tool is called sign_content.
The tool returns a string in exactly this structure:
[content] --- Signed by [AgentName] ([fullId]) sig: 0x... hash: 0x... ts: [ISO 8601 timestamp] Verify: [URL]
Example:
Hello, this is a signed message. --- Signed by Keystone (eip155:42161:0x8004...a432:5) sig: 0xf13bd8a9... hash: 0x57caa12b... ts: 2026-02-06T14:32:15.000Z Verify: https://erc8004.orbiter.website/#eyJzIjoiMHg...
The fullId follows the format eip155:[chainId]:[registryAddress]:[agentId].
The verify URL is https://erc8004.orbiter.website/#[base64] where the
fragment is a base64-encoded JSON object with these fields:
{
"s": "0x...", // signature
"h": "0x...", // content hash
"a": "eip155:42161:0x...:5", // agent full ID
"n": "Keystone", // agent name
"t": "2026-02-06T14:32:15.000Z", // timestamp (ISO 8601)
"d": "First line of content" // subject (first line, max 80 chars)
}
The d field is the first line of the signed content, truncated to 80 characters
(cut at 77 + "..." if longer).
keccak256(abi.encode(keccak256(content), timestamp)).