Back to Docs
Compliance

Registry Pricing

Three registry tiers — from free localhost to on-chain staking — with no lock-in. Switch tiers by changing one config option.

The Problem: Registry Spam and Sybil Attacks

An open agent registry without any barrier to entry is trivially spammable. Bad actors can register thousands of fake agents, poison discovery results, and manipulate the reputation system. Aroha solves this with a tiered cost model: free for development, fiat-gated for production, and stake-gated for maximum Sybil resistance.

Development
Free
Local registry — no barrier, no persistence
Production
Fiat
HTTP registry — API key, metered billing
High-trust
Stake
EVM registry — ETH stake, slashing
Local Registry

In-process or localhost. Zero infra. Perfect for development and testing.

Free
import { LocalRegistry } from "@aroha-sdk/core";

const registry = new LocalRegistry();

// Register an agent
await registry.register({
  agentDid: "did:aroha:Abc123…",
  capabilities: ["book-hotel", "pay-invoice"],
  endpoint: "http://localhost:3001",
});

// Lookup by capability
const agents = await registry.discover("book-hotel");
  • No network calls — resolves in-process
  • Data lost on restart (use for dev only)
  • No authentication required
  • Supports the full registry query API
HTTP Registry (Fiat)

Hosted registry at aroha-registry.aroha-labs.workers.dev. Fiat billing via Stripe. Free tier available.

From $0/mo
import { ArohaHttpRegistry } from "@aroha-sdk/registry";

const registry = new ArohaHttpRegistry(
  "https://aroha-registry.aroha-labs.workers.dev",
  {
  apiKey: process.env.AROHA_REGISTRY_KEY!,
  // Optional: cache TTL for discovered agents
  cacheTtlMs: 60_000,
});

await registry.register({
  agentDid: process.env.AGENT_DID!,
  capabilities: ["book-hotel"],
  endpoint: "https://your-agent.example.com",
  // Tier 2+ can declare conformance level
  conformance: "tier-2",
});
  • Free tier: 100 registrations, 10k lookups/month
  • Pro tier: $29/mo — unlimited lookups, SLA 99.9%
  • API key auth — rotate in dashboard
  • WebHook notifications on peer registration
EVM Registry (Staking)

On-chain registry with staking-based Sybil resistance. Requires ETH stake to register.

Gas + stake
import { EvmRegistry } from "@aroha-sdk/core";
import { createWalletClient } from "viem";

const registry = new EvmRegistry({
  contractAddress: "0xArohaReg…",
  chain: "arbitrum",   // lower gas than mainnet
  walletClient: createWalletClient({ /* viem config */ }),
  // Minimum stake to register (currently 0.01 ETH)
  stakeWei: BigInt("10000000000000000"),
});

await registry.register({
  agentDid: process.env.AGENT_DID!,
  capabilities: ["book-hotel"],
  endpoint: "https://your-agent.example.com",
});
  • Sybil-resistant — stake slashed on bad behaviour
  • Lookups are free (on-chain read calls)
  • Stake locked for 30 days after deregistration
  • Arbitrum deployment — ~10× cheaper than mainnet

Choosing a Tier

ScenarioRecommended tierWhy
Local dev / unit testsLocal (free)Zero latency, no credentials, disposable
Staging / integration testsHTTP (free tier)Real network, free quota covers CI usage
Production B2B SaaSHTTP (Pro)Predictable fiat billing, SLA, webhook support
High-trust financial agentsEVM (staking)On-chain proof of stake deters Sybil attacks

ETH Volatility Mitigation

The EVM registry stake is denominated in ETH, which is volatile. Here are strategies to manage the risk:

Use Arbitrum, not Ethereum mainnet

Arbitrum gas fees are ~10–100× cheaper. The same 0.01 ETH stake goes much further.

Stake the minimum required

The minimum stake is set in the registry contract and can only increase on-chain. Don't over-stake.

Treasury hedge with stablecoins

Hold protocol revenue in USDC/USDT and convert to ETH only when staking. Reduce ETH exposure duration.

Monitor the unstaking queue

The 30-day lock-out means ETH price risk is bounded. Plan deregistrations ahead of treasury events.