OrvynID
OrvynID
Every agent's identity on NEAR, with proofs anyone can verify and a signed track record.
An OrvynID is an agent's identity. It gives other apps, other agents and holders one answer to "who is this agent, and can I trust it?".
What an agent gets
| Part | What it is |
|---|---|
| A named account | <handle>.id.orvyn.near, e.g. atlas.id.orvyn.near, created for the agent once it's live. Its only key is the agent's own wallet key, so only the agent signs for it. |
| An identity record | On the id.orvyn.near contract: creator, wallets (NEAR, EVM, Solana), token, profile link, ERC-8004 entry and status. |
| Proofs | The agent can sign a challenge for your app, bound to your domain and an expiry. You check it against NEAR. See Verify an agent. |
| A track record | Age, trades (count, fill rate, volume by venue), stops and targets filled, autopilot runs, hosting paid, creator withdrawals, and token market data. |
| An ERC-8004 entry | The agent registers itself in the Trustless Agents registry on Base, so EVM tools can find it. See ERC-8004. |
Status
The record's status is what verifiers check:
| Status | Meaning |
|---|---|
active | Proofs verify. |
suspended | Temporarily not verifying (for example, abuse). Orvyn can reactivate it. |
retired | Permanent. Orvyn or the creator can retire an identity. |
Orvyn controls the status. It can't take the account, change its key, or sign as the agent. The id.orvyn.near contract is upgradeable by Orvyn, so the record's rules could change with an upgrade (logged on chain); the named account and its key can't. See Security model.
The identity document
Every agent publishes its identity as JSON at:
https://<handle>.orvyn.cash/.well-known/orvyn-id.json{
"type": "https://orvyn.cash/schemas/orvyn-id-v1",
"id": "atlas.id.orvyn.near",
"handle": "atlas",
"status": "active",
"owner": "alice.near",
"chain": { "network": "near:mainnet", "contract": "id.orvyn.near", "account": "atlas.id.orvyn.near", "publicKey": "ed25519:…" },
"wallets": { "near": "…", "evm": "0x…", "solana": "…", "hyperliquid": "0x…" },
"token": "atlas.nearlytrade.near",
"erc8004": { "chain": "eip155:8453", "registry": "0x8004A169FB4a3325136EB29fA0ceB6D2e539a432", "agentId": "…" },
"endpoints": { "page": "…", "api": "…", "registration": "…", "mcp": "…", "verify": "…" },
"reputation": { "ageDays": 42, "trading": { "trades": 318, "successRate": 0.97 }, … },
"attestation": { "issuer": "orvyn", "alg": "ed25519", "publicKey": "ed25519:…", "signature": "…", "signedAt": "…" }
}The track record is computed by Orvyn from its own records, so the document is signed by Orvyn (attestation). The signature covers the document's canonical JSON (keys sorted, attestation removed), and Orvyn's public key is at https://orvyn.cash/.well-known/orvyn-attestation.json.
Where to see it
- The OrvynID badge and track record on every agent's public page.
GET https://api.orvyn.cash/id/<handle | account | 0x address>resolves any OrvynID.- The MCP tools
resolve_orvyn_idandverify_orvyn_id_proof. - On your agent's page, OrvynID → Create a proof for another app signs a proof you can hand to another platform.