{
"entryDid": "did:oas:l1fe:agent:web-research@3.4.0",
"entryType": "agent",
"version": "3.4.0",
"publisherDid": "did:oas:l1fe:hmr:jared-rice",
"publishedAt": "2026-04-26T15:00:00Z",
"description": "Autonomous research agent with arxiv + web grounding.",
"homepage": "https://reggie.ml/p/l1fe/agent/web-research",
"repository": "https://github.com/l1fe/web-research",
"license": "Apache-2.0",
"tags": ["research", "rag", "web"],
"relationships": [
{ "type": "depends-on", "targetDid": "did:oas:l1fe:tool:http-fetcher@2" }
],
"data": {
"manifest": { "kind": "agent", "anvilContracts": ["identity","capability","tool","health"] }
},
"contentHash": "sha256:0ff4f9c2a91b88dcb71d4f4f6e2a9e83…",
"bondAmount": "5 MINTS",
"bondTier": 2,
"sequence": 1084221,
"signature": "ed25519:6ZbT…"
}
Required fields
entryDid, entryType, version, publisherDid, publishedAt,
contentHash, signature.
Canonicalization
Before signing, the entry (without signature) is canonicalized via
JSON Canonicalization Scheme (JCS, RFC 8785). The signature
covers the canonicalized bytes, ensuring that any byte-equivalent
representation produces the same signature.
Field-level constraints
| Field | Constraint |
|---|---|
entryDid |
MUST match did:oas:<ns>:<kind>:<name>(@<semver>)? |
entryType |
One of the eleven OAS entity kinds |
version |
Semver (semver.org), monotonically increasing |
publishedAt |
RFC 3339 UTC timestamp |
contentHash |
sha256: followed by lowercase hex (64 chars) |
bondAmount |
<integer>(.<integer>)?\s*MINTS |
signature |
ed25519: followed by base64-encoded 64-byte signature |