The same fact lived in nine hand-kept places and they disagreed about 58
proposals. This makes the file the only authority and everything else a
projection of it.
ONE VOCABULARY, in vocabulary.json, read by the lint, the generator and the
doc site. Three words, each answering "can I rely on this?" and nothing else:
Draft nothing implements it yet, or its own text says the work is ahead
Final the thing it specifies exists in the code
Living governance and process: amended in place, never finished
Eight spellings folded in. `Active` was the one doing real damage: on four Meta
and Process HIPs it meant living, on 48 others it meant shipped, and one word
doing two jobs is why nothing agreed. `Review` and `Last Call` described a
queue rather than a document, and a proposal under review is still one you
cannot build against.
STATUS IS EARNED, not declared. Every Standards Track proposal was checked
against the estate: 235 have their implementation, and eight do not and say so.
HIP-0095 carries a twelve-week plan ending at "mainnet launch" and has no code.
HIP-0525 specifies an all-machine meeting while apps/meet refuses a machine a
seat. HIP-0078 names a prover at a "planned location" that does not exist.
HIP-0114 is the cog.* procedure set, and that procedure set returns nothing.
HIP-0003, HIP-0102, HIP-0305 and HIP-0901 likewise: looked, found nothing.
SIXTEEN TOMBSTONES DELETED rather than statused. A dead document kept alive in
the index is one concept wearing two names. Each successor exists and carries
the text, and the 90 references that pointed at a tombstone now point at it --
whole markdown links at once, so link text cannot outlive its target. Three of
the sixteen were pure compatibility: HIP-0028 specified a migration off a
Bitnami chart, HIP-0029 dual-engine MySQL, HIP-0030 a schema-deprecation
policy. We ship no backwards compatibility, so we do not specify it.
Nine links were already broken and had been since the corpus was renumbered:
short-form ./hip-5.md paths that never existed. Two named the wrong proposal --
one cited "HIP-1: Hanzo Multimodal Models" where multimodal is HIP-0003.
THE GENERATOR REFUSES more often than it writes, because a short table looks
exactly as authoritative as a complete one. Rows must equal files; a shrinking
index must say by how much; a section whose input is missing is an error, not
an omission; nothing is written until all of it validates. Its self-test breaks
the corpus eleven ways and requires each to refuse AND leave README byte-
identical -- a guard that reports after half-writing has protected nothing.
The lint's second implementation of the same comparison is gone.
The site rendered 52 proposals with a fallback grey badge and counted them
toward none of its three stat tiles, because docs/lib/source.ts declared a
status union by hand: it admitted a `Stagnant` no file has ever carried and
omitted the one 52 files did. Five components each kept their own copy of the
colours. All six now read vocabulary.json.
8.8 KiB
hip, title, author, type, category, status, created, requires
| hip | title | author | type | category | status | created | requires |
|---|---|---|---|---|---|---|---|
| 0025 | Bot Agent Wallet & RPC Billing Protocol | Hanzo AI Team | Standards Track | Core | Final | 2026-02-14 | HIP-0001, HIP-0018, HIP-0024, HIP-0101 |
HIP-0025: Bot Agent Wallet & RPC Billing Protocol
Abstract
This proposal defines the protocol for provisioning on-chain identities and wallets for AI bot agents on the Hanzo Network (chain ID 36963). Every bot agent gets a W3C Decentralized Identifier (DID) and a Safe smart-contract wallet capable of receiving payments, charging for RPC/API usage, and participating in cross-chain commerce via the Lux Bridge (HIP-101).
Specification
1. Agent DID (Decentralized Identifier)
Every bot agent MUST have a W3C DID anchored to the Hanzo Network.
DID Format
did:hanzo:<agent-identifier>
Where <agent-identifier> is derived from the agent's EOA address or a human-readable ID.
Supported DID Methods
| Method | Chain | Chain ID | Example |
|---|---|---|---|
did:hanzo |
Hanzo Network | 36963 | did:hanzo:dev |
did:lux |
Lux Mainnet | 96369 | did:lux:dev |
did:pars |
Pars Network | 494949 | did:pars:dev |
did:zoo |
Zoo Network | 200200 | did:zoo:dev |
did:ai |
Hanzo (alias) | 36963 | did:ai:dev |
DID Document Structure
{
"@context": ["https://www.w3.org/ns/did/v1", "https://hanzo.ai/ns/agent/v1"],
"id": "did:hanzo:dev",
"controller": "did:hanzo:workspace-owner",
"verificationMethod": [{
"id": "did:hanzo:dev#keys-1",
"type": "EcdsaSecp256k1VerificationKey2019",
"controller": "did:hanzo:dev",
"blockchainAccountId": "eip155:36963:0x..."
}],
"service": [{
"id": "did:hanzo:dev#rpc",
"type": "AgentRPCService",
"serviceEndpoint": "https://bot.hanzo.ai/rpc/dev"
}, {
"id": "did:hanzo:dev#wallet",
"type": "SafeWallet",
"serviceEndpoint": "safe:36963:0x..."
}]
}
Omnichain Identity
Agents have omnichain identity resolution. A single agent maps across all Hanzo ecosystem chains:
did:hanzo:dev ←→ did:lux:dev ←→ did:zoo:dev ←→ did:pars:dev
All resolve to the same underlying verification key, enabling cross-chain verification.
2. Agent Wallet Architecture
Every bot agent MUST have an on-chain wallet on the Hanzo Network.
Wallet Structure
Workspace HD Seed (BIP-39 mnemonic)
└─ m/44'/60'/0'/0/<agent-index> → Agent EOA (Externally Owned Account)
└─ Safe Smart Contract Wallet (multisig-capable)
├─ Owner 1: Agent EOA (auto-signer)
├─ Owner 2: Workspace owner EOA
└─ Owner N: Additional signers (optional)
Derivation
| Component | Specification |
|---|---|
| Mnemonic | BIP-39, 24 words, per-workspace |
| Derivation | BIP-32/44, path m/44'/60'/0'/0/<index> |
| EOA | secp256k1 keypair → Ethereum-compatible address |
| Safe | Gnosis Safe v1.4.1, deployed on Hanzo Network |
| Threshold | Default 1-of-2 (agent + workspace owner) |
Wallet Configuration
interface AgentWalletConfig {
/** EOA address derived for this agent (hex) */
address?: string;
/** Safe contract address (multisig) on target chain */
safeAddress?: string;
/** Chain the Safe is deployed on */
chain: "lux" | "hanzo" | "zoo" | "pars";
/** Chain ID */
chainId: number;
/** HD derivation path used for the EOA */
derivationPath: string;
}
Cross-Chain Payments via Lux Bridge
Bot wallets accept payments from any EVM chain through the Lux Bridge (HIP-101):
User on Ethereum ─→ Lux Bridge (LP-226) ─→ Bot Safe on Hanzo Network
User on Polygon ─→ Lux Bridge (LP-226) ─→ Bot Safe on Hanzo Network
User on Lux ─→ Direct transfer ─→ Bot Safe on Hanzo Network
Accepted tokens:
- AI (native, HIP-1)
- USDC (bridged)
- LUX (bridged from Lux mainnet)
- Any ERC-20 via bridge
3. RPC Billing Protocol
Agents MAY charge for RPC/API calls. This section defines the open protocol for metered billing.
Billing Model
Consumer ──RPC Request──→ Agent Gateway ──Metering──→ Settlement
│
├─ Rate check (per-method pricing)
├─ Balance check (prepaid or postpaid)
├─ Execute request
├─ Meter usage
└─ Settle (periodic on-chain batch)
Rate Schedule
Agents publish a rate schedule as part of their DID Document service endpoint:
{
"id": "did:hanzo:dev#billing",
"type": "AgentBillingSchedule",
"serviceEndpoint": "https://bot.hanzo.ai/billing/dev",
"rates": {
"chat.send": { "unit": "per_request", "price": "0.001", "currency": "AI" },
"agent": { "unit": "per_token", "price": "0.00001", "currency": "AI" },
"agent.wait": { "unit": "per_request", "price": "0.01", "currency": "AI" },
"browser.request": { "unit": "per_request", "price": "0.005", "currency": "AI" }
},
"settlement": {
"method": "batch",
"interval": "1h",
"minAmount": "0.1",
"chain": "hanzo",
"chainId": 36963,
"recipient": "safe:36963:0x..."
}
}
Billing API
# Check agent billing rates
GET /rpc/:agentId/billing
Response: AgentBillingSchedule
# Prepay credits to an agent
POST /rpc/:agentId/billing/prepay
Body: { amount: string, currency: "AI" | "USDC", txHash?: string }
Response: { balance: string, expiresAt: string }
# Check credit balance
GET /rpc/:agentId/billing/balance
Headers: { Authorization: "Bearer <consumer-token>" }
Response: { balance: string, used: string, remaining: string }
# Get usage report
GET /rpc/:agentId/billing/usage
Query: { from: ISO8601, to: ISO8601 }
Response: { methods: Record<string, { count: number, cost: string }>, total: string }
Settlement Flow
- Metering: Gateway tracks per-method usage per consumer
- Aggregation: Usage aggregated per settlement interval (default 1h)
- Batch settlement: Single on-chain transaction settles all pending charges
- Receipt: Settlement receipt emitted as on-chain event
event RPCSettlement(
address indexed agent,
address indexed consumer,
uint256 amount,
uint256 requestCount,
uint256 periodStart,
uint256 periodEnd
);
Free Tier
Agents MAY offer a free tier:
{
"freeTier": {
"requestsPerDay": 100,
"tokensPerDay": 10000,
"methods": ["health", "agent.identity.get", "agent.did.get"]
}
}
4. Gateway Methods
The bot gateway exposes the following methods for DID and wallet management:
Read Methods (operator.read scope)
| Method | Description |
|---|---|
agent.did.get |
Get DID config for an agent |
agent.wallet.get |
Get wallet config for an agent |
agent.identity.full |
Get full identity (profile + DID + wallet) |
Admin Methods (operator.admin scope)
| Method | Description |
|---|---|
agent.did.create |
Provision a DID for an agent |
agent.wallet.create |
Provision a Safe wallet for an agent |
5. Team Preset Integration
Default team bot presets (Vi, Dev, Des, Opera, Su, Mark, Fin, Art, Three, Fil) are auto-provisioned with:
- DID:
did:hanzo:<preset-id>(e.g.,did:hanzo:dev,did:hanzo:vi) - Wallet: Safe on Hanzo Network (chain ID 36963)
- Default billing: Free tier (team-internal usage)
Implementation
Security Considerations
- Key Management: Workspace HD seeds MUST be stored in KMS (HIP-5), never in plaintext
- Safe Threshold: Production bots SHOULD use 2-of-3 multisig minimum
- Rate Limiting: RPC billing MUST include rate limiting to prevent abuse
- DID Rotation: Support key rotation without changing DID URI
- Bridge Security: Cross-chain payments inherit Lux Bridge security guarantees (LP-226)
- Post-Quantum Readiness: DID verification methods SHOULD support PQC algorithms (HIP-5) alongside classical ECDSA
References
- HIP-1: $AI Token
- HIP-18: Payment Processing Standard
- HIP-24: Hanzo Sovereign L1 Chain Architecture
- HIP-101: Hanzo-Lux Bridge Protocol Integration
- W3C DID Core Specification
- Safe Smart Account
- BIP-32: HD Wallets
- BIP-39: Mnemonic Code
Copyright
Copyright and related rights waived via CC0.