Skip to main content
This guide reads one real pairing on production, 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. 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. If you rely on a schema whose attestations can expire, check expirationTime.

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. Use the verification calls documented in the Verification API from your application. 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.