Hive Agent Quota

io.github.srotzinPublished by GitHub account srotzinv1.0.0Updated Nov 2, 2026

Per-agent rate limits and quota enforcement for the Hive A2A economy

VerifiedStreamable HTTPWeb executableFinanceDeveloper Tools

Overview

AI-generated overview

Remote MCP endpoint that meters per-agent quota for the Hive A2A network, charging USDC on Base for each quota unit consumed.

What you can do
  • Check and consume quota units against an agent DID, paying per unit via an x402 payment envelope
  • Read the remaining quota balance for a DID
  • Estimate the asking price and accepted floor in USDC for a given number of units
  • Expose the same operations over REST endpoints, including a UTC-day ledger snapshot and a health check
When to use it
Relevant if you are building or operating agents on the Hive A2A network and need per-agent rate limiting or quota accounting that settles in USDC on Base. Most assistants and general-purpose setups have no use for it.
Requirements
A remote streamable-HTTP endpoint; nothing to install locally. Calls that consume units require a funded Base L2 wallet able to send USDC to the advertised recipient and return an X-Payment proof header. The server itself reads Base mainnet over an RPC URL.
Before you install
quota_check spends real money: each unit costs USDC on Base mainnet, settled to the operator's wallet address, and the payment proof is verified on-chain. Treat the advertised recipient address and pricing as third-party claims and confirm them before paying. The service stores per-DID usage records in its own database.

Installation

In SourceWeft

  1. Open Hive Agent Quota in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/io.github.srotzin%2Fhive-mcp-agent-quota/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "hive-agent-quota": {
      "type": "http",
      "url": "https://hive-mcp-agent-quota.onrender.com/mcp"
    }
  }
}

README

hive-mcp-agent-quota

[srotzin/hive-mcp-agent-quota MCP server]

Per-agent quota meter for the A2A network. Each call to quota_check consumes one or more units against an agent's DID and is settled at $0.001 USDC per unit on Base L2 via the x402 envelope. Inbound only. ENABLE=true by default.

Brand color: #C08D23 (Pantone 1245 C, Hive Civilization gold).

Surface

LayerEndpointDescription
MCPPOST /mcpJSON-RPC 2.0, Streamable-HTTP, protocol 2024-11-05.
DiscoveryGET /.well-known/mcp.jsonTool list and transport metadata.
RESTPOST /v1/quota/checkConsume units for a DID. 402 if no balance and no proof.
RESTGET /v1/quota/balance?did=…Read remaining quota for a DID.
RESTGET /v1/quota/todayUTC-day ledger snapshot.
RESTGET /v1/quota/estimate?units=NAsking and floor in USDC for N units.
HealthGET /healthLiveness, pricing, recipient address.
RootGET /HTML for browsers, JSON for agents (Accept-header sniff). JSON-LD SoftwareApplication.

Tools

NameTierCostDescription
quota_check1$0.001/unitConsume N units for a DID via x402.
quota_balance0freeRemaining quota for a DID.
quota_topup_estimate0freeAsking and floor for N units.

Pricing and the barter floor

Pricing inherits the hivemorph barter pattern. Every 402 envelope advertises both amount_usd (asking) and accept_min_usd (floor). A client may submit a proof whose on-chain paid amount is anywhere in [floor, asking] and the shim accepts it.

Defaults, all overridable by environment variable:

VariableDefaultNotes
QUOTA_CHECK_PRICE_USDC0.001Per-unit asking price.
HIVE_X402_FLOOR_PCT_DEFAULT0.70Floor as fraction of asking.
HIVE_X402_FLOOR_MIN_PCT0.30Hard lower clamp.
HIVE_X402_FLOOR_MAX_PCT0.95Hard upper clamp.

So a 1-unit check at the defaults advertises asking $0.0010 and accept-min $0.0007. A 100-unit check advertises asking $0.1000 and accept-min $0.0700. The floor never falls below MIN_PCT of asking and never exceeds MAX_PCT.

Settlement

FieldValue
ChainBase L2
AssetUSDC
Contract0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913
RecipientWALLET_ADDRESS env, default 0x15184bf50b3d3f52b60434f8942b7d52f2eb436e
Verificationprovider.getTransactionReceipt(tx_hash) against BASE_RPC_URL, decode USDC Transfer logs to recipient, sum amount in 6-decimal units, compare to accept_min_usd.
Signature (optional)ethers.verifyMessage(message, signature) recovers payer; rejected if it disagrees with the on-chain from.

No mocks. The on-chain check is a real RPC read against Base mainnet.

Storage

SQLite at QUOTA_DB_PATH (default /tmp/quota.db), three tables:

  • quotas (did, units_purchased, units_consumed, first_seen, last_seen)
  • checks (id, did, unit_count, granted, remaining, tx_hash, paid_usdc, ts)
  • topups (id, did, units, paid_usdc, tx_hash UNIQUE, payer, ts)

tx_hash is UNIQUE on topups to make replay a 409.

x402 envelope

A quota_check call with no prepaid balance and no proof returns:

json
{  "error": "payment_required",  "x402_version": 1,  "payment": {    "nonce": "…",    "amount_usd": 0.001,    "accept_min_usd": 0.0007,    "accepts": [{      "chain": "base",      "asset": "USDC",      "contract": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",      "decimals": 6,      "recipient": "0x15184bf50b3d3f52b60434f8942b7d52f2eb436e",      "scheme": "exact"    }],    "expires_at": 1761600000,    "tier": 1,    "product": "agent_quota_check",    "unit_count": 1,    "price_per_unit_usd": 0.001,    "floor_pct": 0.70  }}

The client sends USDC to the recipient on Base, then resubmits the same request with an X-Payment header containing the proof:

X-Payment: {"nonce":"…","chain":"base","tx_hash":"0x…","payer":"0x…","signature":"0x…","message":"hive-quota:<nonce>"}

signature and message are optional. If supplied, the recovered address must match payer and the on-chain from.

Environment

VariableDefaultNotes
PORT3000
ENABLEtrueSet to false to disable tools/call.
WALLET_ADDRESS0x15184bf50b3d3f52b60434f8942b7d52f2eb436eUSDC recipient on Base.
QUOTA_CHECK_PRICE_USDC0.001Per-unit asking.
HIVE_X402_FLOOR_PCT_DEFAULT0.70
HIVE_X402_FLOOR_MIN_PCT0.30
HIVE_X402_FLOOR_MAX_PCT0.95
BASE_RPC_URLhttps://mainnet.base.org
DEFAULT_QUOTA_UNITS0Free units credited on first sight of a DID.
QUOTA_DB_PATH/tmp/quota.db

Running locally

npm installnode server.js

Then:

curl -s http://localhost:3000/healthcurl -s -X POST http://localhost:3000/mcp \  -H 'content-type: application/json' \  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'curl -s 'http://localhost:3000/v1/quota/today'

Hard rules

  • Inbound only. The shim never originates an outbound payment.
  • No private key in the repo. Verification is read-only.
  • No custody. The recipient address belongs to the operator, not the shim.
  • Returns are advisory until the on-chain receipt is confirmed by BASE_RPC_URL.

Council provenance

Tier A position 3. 2026-04-27. Inbound metering surface, symmetric to hive-mcp-barter (outbound counter-offer) and hive-mcp-auction (inbound reverse-Dutch).

License

MIT. See LICENSE.

Hive Gamification

This MCP server is part of the Hive Civilization gamification surface (10-mechanic capability taxonomy).

Surface tags: gamification.spec.v1 · gamification.surface.public · gamification.signal.read-only · gamification.settlement.real-rails

Real rails on Base L2 (USDC 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913). Read-only signal layer. Brand gold #C08D23.

Hive Civilization Directory

Part of the Hive Civilization — agent-native financial infrastructure.

Brand: #C08D23

Source: README.md at commit 8e8cd29

Tools

0
SourceWeft has not read this server's tools yet.

Version history

1
  1. v1.0.0LatestSep 16, 2026

Score

85% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts