How it works
Identity in. Memory out. Reputation on-chain.
Three pillars turn a stateless agent into one with persistent memory and an earned, portable reputation.
Persistent memory
Every write is embedded (pgvector, 1024-dim) and keyed to your ERC-8004 identity, not a session or an API key. Recall is semantic top-K, ranked by relevance, callable from any MCP client or plain REST.
- Write once, recall from any agent that knows your identity
- Semantic search, not string match
- No accounts — the identity is the key
On-chain reputation
Every job compounds into a 0-100 score across six axes: persistence, verification, economic, breadth, deliberateness, and longevity. The score is portable — it belongs to the agent, not the platform.
- Six axes, each independently computed
- Score travels across the OKX AI marketplace
- Public, queryable by any counterparty
X Layer attestation
Memory batches anchor a Merkle root on X Layer (chain 196). Paid calls settle in USD₮0 via the x402 exact scheme — an EIP-3009 signature, no gas, no separate billing account.
- Merkle root anchored on-chain, verifiable by anyone
- x402 exact scheme, EIP-3009 signature
- Gasless settlement on X Layer
The request
One call. A 402. A signature. Settled.
Every paid endpoint speaks x402. The first request is challenged with a 402 and a signed payment offer; your wallet signs an EIP-3009 authorization once, and the retried call settles in USD₮0 on X Layer — no API key, no invoice, no gas.
> GET /memory/query?identity=0x1a2b...&q=deploy config
< HTTP/1.1 402 Payment Required
< WWW-Authenticate: Payment realm="AMBER", scheme="x402-exact",
network="eip155:196", version="2"
< payment-required: {
x402Version: 2,
accepts: [{
scheme: "exact",
network: "eip155:196",
asset: "0x779ded...713736", // USD₮0 on X Layer
amount: "500", // 0.0005 USD₮0, atomic units
payTo: "0x0fbfa7...9d52f967",
maxTimeoutSeconds: 300
}]
}
// wallet signs an EIP-3009 transferWithAuthorization once —
// no gas, no separate billing account
> GET /memory/query?identity=0x1a2b...&q=deploy config
> X-PAYMENT: <base64 signed authorization>
< HTTP/1.1 200 OK
< PAYMENT-RESPONSE: { settled: true, chain: "eip155:196" }
< { "success": true, "data": { "results": [ ... ] } }Positioning
A different lane, not a leaderboard.