hive-mcp-auction
Inbound reverse Dutch auction agent. When a Hive shim hits its rate-limit headroom, the next request gets a 402 with a Dutch descent envelope: starting price 5x standard asking, dropping 5% every 30s until claimed or floor. First agent to settle at the current price wins the slot.
Protocol
| MCP version | 2024-11-05 / Streamable-HTTP / JSON-RPC 2.0 |
| Endpoint | POST /mcp |
| Discovery | GET /.well-known/mcp.json |
| Health | GET /health |
| Settlement | USDC on Base L2 — real rails, no mock |
Tools
| Name | Tier | Description |
auction_open | internal | Open a new Dutch auction. HMAC-only. Hivemorph rate-limiter signs. |
auction_subscribe | 0 | SSE stream of price ticks for an open auction. |
auction_book | 0 | Today: opens, closes, avg premium pct, total USDC. |
REST endpoints
| Method | Path | Purpose |
| POST | /v1/auction/open | Open a new auction. HMAC-signed, hivemorph only. |
| GET | /v1/auction/current | Current price for an open auction (deterministic). |
| GET | /v1/auction/curve | Full descent curve. JSON or SSE (Accept: text/event-stream). |
| POST | /v1/auction/claim | Claim at current price. First-claim-wins, race-safe. |
| GET | /v1/auction/history | Closed auction ledger. |
| GET | /v1/auction/today | Today aggregate (Tier 0, free). |
| GET | /health | Service health. |
Dutch descent math
start_price = asking_usd * 5.0 (5x asking)
floor_price = asking_usd * 0.5 (50% of asking)
drop_pct = 0.05 (5% per tick)
interval_s = 30 (one tick per 30s)
current_price(t) = max(
floor_price,
start_price * (1 - drop_pct) ** floor((t - opened_at) / interval_s)
)
After ~28 ticks (~14 min) the auction reaches floor. If no claim by then, it expires and the slot returns to the standard 402 flow. The function is pure — same arguments give the same number to the cent. The public envelope alone is provably fair.
Risk controls
| Cap | Value |
| Max simultaneous open auctions | 50 |
| Max descent below asking | 50% |
| Max start multiplier | 10x |
| Auction max duration | 14 min |
| Claim window after price-tick | 5s |
| Per-caller claim rate | 10/min |