// SPDX-License-Identifier: MIT pragma solidity ^0.8.20; import "@openzeppelin/contracts/access/Ownable.sol"; interface IERC8004 { event AgentCreated(uint256 indexed agentId, address owner); function executeTask(uint256 agentId, bytes calldata data) external returns (bytes memory); } contract MyAIAgent is IERC8004, Ownable { struct Agent { string name; string metadataURI; // Chứa thông tin về Model AI (GPT-4, Llama, v.v.) bool active; } mapping(uint256 => Agent) public agents; uint256 public nextAgentId; constructor() Ownable(msg.sender) {} function createAgent(string memory _name, string memory _uri) external { agents[nextAgentId] = Agent(_name, _uri, true); emit AgentCreated(nextAgentId, msg.sender); nextAgentId++; } function executeTask(uint256 agentId, bytes calldata data) external override returns (bytes memory) { require(agents[agentId].active, "Agent không hoạt động"); // Logic xử lý tác vụ ở đây return abi.encode("Task Completed"); } }
The seven checks, with their evidence
7 recordedRegistered?rung 1 · registered
passThe agent exists in the on-chain registry, with an owner and a document URL.
passed
- block_number
- 52281733
- chain_id
- 8453
- token_id
- 17401
checked at 2026-10-07T08:32:44.949228Z
Reachable?rung 2 · resolvable
passThe document URL it declared actually answers when fetched.
passed
- bytes
- 1908
- data_uri_variant
- base64
- inline
- true
- scheme
- data
- uri
data:application/json;base64,ewogICJ0eXBlIjogImh0dHBzOi8vZWlwcy5ldGhlcmV1bS5vcmcvRUlQUy9laXAtODAwNCNyZWdpc3RyYXRpb24tdjE… (2,573 chars — expand)
data:application/json;base64,ewogICJ0eXBlIjogImh0dHBzOi8vZWlwcy5ldGhlcmV1bS5vcmcvRUlQUy9laXAtODAwNCNyZWdpc3RyYXRpb24tdjEiLAogICJuYW1lIjogImJhYmF5by04MDA0IiwKICAiZGVzY3JpcHRpb24iOiAiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxucHJhZ21hIHNvbGlkaXR5IF4wLjguMjA7XG5cbmltcG9ydCBcIkBvcGVuemVwcGVsaW4vY29udHJhY3RzL2FjY2Vzcy9Pd25hYmxlLnNvbFwiO1xuXG5pbnRlcmZhY2UgSUVSQzgwMDQge1xuICAgIGV2ZW50IEFnZW50Q3JlYXRlZCh1aW50MjU2IGluZGV4ZWQgYWdlbnRJZCwgYWRkcmVzcyBvd25lcik7XG4gICAgZnVuY3Rpb24gZXhlY3V0ZVRhc2sodWludDI1NiBhZ2VudElkLCBieXRlcyBjYWxsZGF0YSBkYXRhKSBleHRlcm5hbCByZXR1cm5zIChieXRlcyBtZW1vcnkpO1xufVxuXG5jb250cmFjdCBNeUFJQWdlbnQgaXMgSUVSQzgwMDQsIE93bmFibGUge1xuICAgIHN0cnVjdCBBZ2VudCB7XG4gICAgICAgIHN0cmluZyBuYW1lO1xuICAgICAgICBzdHJpbmcgbWV0YWRhdGFVUkk7IC8vIENo4bupYSB0aMO0bmcgdGluIHbhu4EgTW9kZWwgQUkgKEdQVC00LCBMbGFtYSwgdi52LilcbiAgICAgICAgYm9vbCBhY3RpdmU7XG4gICAgfVxuXG4gICAgbWFwcGluZyh1aW50MjU2ID0+IEFnZW50KSBwdWJsaWMgYWdlbnRzO1xuICAgIHVpbnQyNTYgcHVibGljIG5leHRBZ2VudElkO1xuXG4gICAgY29uc3RydWN0b3IoKSBPd25hYmxlKG1zZy5zZW5kZXIpIHt9XG5cbiAgICBmdW5jdGlvbiBjcmVhdGVBZ2VudChzdHJpbmcgbWVtb3J5IF9uYW1lLCBzdHJpbmcgbWVtb3J5IF91cmkpIGV4dGVybmFsIHtcbiAgICAgICAgYWdlbnRzW25leHRBZ2VudElkXSA9IEFnZW50KF9uYW1lLCBfdXJpLCB0cnVlKTtcbiAgICAgICAgZW1pdCBBZ2VudENyZWF0ZWQobmV4dEFnZW50SWQsIG1zZy5zZW5kZXIpO1xuICAgICAgICBuZXh0QWdlbnRJZCsrO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGV4ZWN1dGVUYXNrKHVpbnQyNTYgYWdlbnRJZCwgYnl0ZXMgY2FsbGRhdGEgZGF0YSkgZXh0ZXJuYWwgb3ZlcnJpZGUgcmV0dXJucyAoYnl0ZXMgbWVtb3J5KSB7XG4gICAgICAgIHJlcXVpcmUoYWdlbnRzW2FnZW50SWRdLmFjdGl2ZSwgXCJBZ2VudCBraMO0bmcgaG/huqF0IMSR4buZbmdcIik7XG4gICAgICAgIC8vIExvZ2ljIHjhu60gbMO9IHTDoWMgduG7pSDhu58gxJHDonlcbiAgICAgICAgcmV0dXJuIGFiaS5lbmNvZGUoXCJUYXNrIENvbXBsZXRlZFwiKTtcbiAgICB9XG59IiwKICAiaW1hZ2UiOiAiaHR0cHM6Ly9ibG9iLjgwMDRzY2FuLmFwcC82ZGU1NzYxYjQ2NTAzMDRiYjE5MWFmMTNlOWQ4ZmU5YzgwY2NiYTYzNDJlZGVhZDgwNmY2NDhiMjQwOGY3OTVjLmpwZyIsCiAgInNlcnZpY2VzIjogWwogICAgewogICAgICAibmFtZSI6ICJPQVNGIiwKICAgICAgImVuZHBvaW50IjogImh0dHBzOi8vZ2l0aHViLmNvbS9hZ250Y3kvb2FzZi8iLAogICAgICAic2tpbGxzIjogWwogICAgICAgICJhZHZhbmNlZF9yZWFzb25pbmdfcGxhbm5pbmcvY2hhaW5fb2ZfdGhvdWdodF9zdHJ1Y3R1cmluZyIsCiAgICAgICAgImFkdmFuY2VkX3JlYXNvbmluZ19wbGFubmluZy9oeXBvdGhlc2lzX2dlbmVyYXRpb24iLAogICAgICAgICJhZHZhbmNlZF9yZWFzb25pbmdfcGxhbm5pbmcvbG9uZ19ob3Jpem9uX3JlYXNvbmluZyIKICAgICAgXSwKICAgICAgImRvbWFpbnMiOiBbCiAgICAgICAgImFncmljdWx0dXJlL2FncmljdWx0dXJlIiwKICAgICAgICAiYWdyaWN1bHR1cmUvYWdyaWN1bHR1cmFsX3RlY2hub2xvZ3kiCiAgICAgIF0KICAgIH0KICBdLAogICJyZWdpc3RyYXRpb25zIjogW10sCiAgInN1cHBvcnRlZFRydXN0cyI6IFsKICAgICJyZXB1dGF0aW9uIgogIF0sCiAgImFjdGl2ZSI6IHRydWUsCiAgIng0MDJzdXBwb3J0IjogdHJ1ZQp9
checked at 2026-10-07T08:32:44.949228Z
Readable?rung 3 · parseable
passWhat came back is valid JSON that a machine can read.
passed
- body_bytes
- 1908
- body_sha256
- 3cc55a04e1998a2f1b0875dd63dfa157010c339d2ecb8dc9eba5f591c0de8403
- content_type
- —
checked at 2026-10-07T08:32:44.949228Z
Follows the spec?rung 4 · conformant
passThe document meets what ERC-8004 requires of it.
passed
- both_fields_present
- false
- legacy_endpoints_field
- false
- may_gaps
- x402Support, supportedTrust
- must_violations
- (empty)
- registrations_checked
- 0
- services_field_source
- services
- services_status
- present
- should_gaps
- services[].version, registrations
- spec_commit
- 68fc6765761a10fb26f0692df21c8a6f9d12b1be
checked at 2026-10-07T08:32:44.949228Z
Claims its identity?rung 5 · bound
unclaimedThe document names the on-chain agent it belongs to, rather than leaving it unsaid.
unclaimed — the document made no claim to check
- declared_agent_id
- —
- declared_chain
- —
- declared_registry
- —
- match
- —
- reason
- unclaimed
- registrations_seen
- 0
checked at 2026-10-07T08:32:44.949228Z
Answers?rung 6 · live
passA declared endpoint responds to a probe. Not implemented yet, so nobody passes or fails it.
passed
- endpoints
{"declared":"https://github.com/agntcy/oasf/","elapsed_ms":1377,"final_url":"https://github.com/agntcy/oasf/","http_stat… (245 chars — expand)
{"declared":"https://github.com/agntcy/oasf/","elapsed_ms":1377,"final_url":"https://github.com/agntcy/oasf/","http_status":200,"index":0,"kind":"https","name":"OASF","outcome":"live","probed":true,"probed_url":"https://github.com/agntcy/oasf/"}- endpoints_answered_not_live
- 0
- endpoints_declared
- 1
- endpoints_live
- 1
- endpoints_our_error
- 0
- endpoints_payment_gated
- 0
- endpoints_probeable
- 1
- endpoints_probed
- 1
- endpoints_refused
- 0
checked at 2026-10-07T19:37:51.488079Z
Has feedback?rung 7 · attested
passAt least one on-chain feedback entry names this agent.
passed
- distinct_authors
- 2
- feedback_count
- 2
checked at 2026-10-07T08:32:44.949228Z
Check it again, now
outside the censusOn-chain snapshot
base- token id
- 17401
- owner
- 0x4420c6cbda6819aeee5c21e512dab91287371ff5
- block
- 52,281,733
- observed
- 2026-10-07T08:32:44.952046Z
What the fetch saw
data- scheme
- data
- request url
- —
- final url
- —
- http status
- —
- content type
- —
- size
- 1,908 bytes
- sha256
- 3cc55a04e1998a2f1b0875dd63dfa157010c339d2ecb8dc9eba5f591c0de8403
- elapsed
- 0 ms
This run
reproducible- run
- c67de707-a82d-4589-8936-acd5a584c720
- chain
- base
- pinned block
- 52,281,733
- agents
- 98,319
- started
- 2026-10-07T06:00:13.662398Z
- finished
- 2026-10-07T19:18:37.899751Z
- checker
- 0.7.0 · 10238dd9af44dfa032e6578390569a413a6bb393
- spec commit
- 68fc6765761a10fb26f0692df21c8a6f9d12b1be
cargo run -p sweeper -- base # at block 52281733