Skip to main content
When a person pairs with an agent, the pairing is written to the Attestation Registry, an on-chain record, as an ownership attestation. Two tools read that registry:
  • The Attestation Explorer, a public website. Search for an agent or a person to see who they are paired with.
  • The Attestations API, which serves the same data over HTTP for applications.
This guide reads one real pairing with both, on production and read-only, before you create anything on testnet. It shows what an ownership attestation looks like and where live verification data comes from. Nothing here needs a wallet. For how attestations and schemas work in general, see Attestation Explorer. The example is an agent named Jarvis:

1. Open it in the Explorer

Open the attestation in the production Explorer:

Jarvis's ownership attestation

attestations-explorer.billions.network/attestation/0xe22e…ab8b
You can also paste the agent DID into the Explorer’s search box and open the attestation from there. The detail page shows the same fields as the API response below.

2. Make the same request to the API

An application usually starts from the agent’s DID and asks for its ownership attestation:
That returns totalItems: 1 and the attestation inside data. To get every field, including status and transaction, request it by ID:

3. Read the result

The DIDs

The schema

schemaInfo says this was written against AgentOwnership, schema ID 0xca354bee…2911. That schema has one field, bytes data, and here it is empty (0x). The attestation itself, human DID to agent DID, is the record. See Schemas.

The status

The attestation list endpoint leaves out revoked attestations, but it does not filter on expiry. Ownership attestations never expire. If you rely on a schema whose attestations can expire, read expirationTime with GET /attestations/{id}, because list items don’t include it.

The network

You queried attestations-api.billions.network, so this record is on production: Billions Mainnet, chain ID 45056. The txid is a mainnet transaction you can open in the block explorer:

Creation transaction

explorer.billions.network/tx/0xbc2d…3cb9
The billions:main part of a DID does not tell you the environment. Agent DIDs derived from an Ethereum address use billions:main on testnet as well. The registry you are reading is decided by the API host or Explorer you query. Run the first request above against attestations-api-testnet.billions.network and it returns totalItems: 0, because this pairing exists only on production.

4. What this proves, and what it doesn’t

It proves that a verified human, fromDid, paired with the agent DID toDid, and that the pairing has not been revoked. It does not prove that whoever you are talking to controls that agent DID. Anyone can copy the DID from this page. Before you grant access or pay a reward, require a signed proof, as described in Verify an Agent.
The production API is rate-limited infrastructure. From your application, use only the verification endpoints of the Attestations API. To create, query and revoke your own records freely, use testnet.

Next: repeat it on testnet

Create Test Attestations

Run the same lookup on testnet, then create and revoke your own attestations.

Verify an Agent in Your App

Check that a caller controls a DID before trusting its attestation.