Hive Auction

io.github.srotzin由 GitHub 账号 srotzin 发布v1.0.0更新于 Oct 24, 2026

Sealed-bid and English auctions for agent capabilities and compute time

已验证Streamable HTTP可网页运行云端与基础设施金融商业与电商

概览

AI 生成的概览

Hive 的入站荷兰式拍卖 MCP 服务器,让助手查看稀缺 shim 时隙的价格下降曲线,并用 Base 上的 USDC 抢先认领时隙。

可以做什么
  • 通过 SSE 订阅进行中拍卖的实时荷兰式降价曲线
  • 读取当日汇总数据:开拍数、成交数、平均溢价与累计 USDC 收入
  • 开立新的稀缺时隙拍卖(内部工具,需 HMAC 签名,仅限 hivemorph 限流器)
  • 通过 REST 认领接口按当前价格认领时隙,先到先得且并发安全
  • 通过 REST 查询当前价格、完整曲线与已结束拍卖账本
适用场景
当代理收到带 auction 区块的 402 限流响应,希望立即买到 shim 时隙而不愿排队时使用。也适合查看拍卖活动与价格曲线。
运行要求
需能访问 hive-mcp-auction.onrender.com 的远程 Streamable-HTTP 端点;README 建议通过 npx mcp-remote 连接。认领需在 Base L2 上支付 USDC 并提供交易哈希。开拍需要共享的 AUCTION_OPEN_HMAC_KEY,且 ENABLE_AUCTION 为 true 时才启用。
安装前请注意
认领以真实 USDC 在 Base L2 结算,会实际花钱;slot_token 在链上转账核验前即临时发放。认领接口会写入状态且先到先得,失败会返回 409 或 422。开拍需要共享密钥 AUCTION_OPEN_HMAC_KEY,切勿提交到代码库。MCP 端点本身未声明任何认证。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Hive Auction,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Web executable,通过 Streamable HTTP。 远程服务在工作区中配置后即可从网页运行时运行。

交给智能体安装

把这段提示词粘贴到 Claude Code、Codex、Cursor 等智能体,或 SourceWeft 对话中。智能体会读取该服务器的安装指南,先向你展示发布者、端点和登录方式,经你同意后再把它添加到你的客户端。密钥不会写进任何命令。

阅读 https://sourceweft.com/mcp/io.github.srotzin%2Fhive-mcp-auction/install.md,并按其中说明把这个 MCP 服务器接入我的客户端。修改任何配置之前,先告诉我它的发布者、端点和登录方式,等我确认。不要把 API 密钥写进命令或我会提交的文件;问我密钥应从哪里获取。

查看智能体所依据的安装指南

其他 MCP 客户端

把它添加到你客户端的 mcpServers 配置中。

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

README

hive-mcp-auction

[srotzin/hive-mcp-auction MCP server]

Inbound reverse Dutch auction agent — Hive Civilization

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. Pure protocol — no DMs, no spam. Inbound only.

Council provenance: Ad-hoc, user-promoted 2026-04-27 (Tier A position 2, symmetric sibling to HiveBarter). Barter discovers what others will sell for; auction discovers what others will pay for ours.


What this is

hive-mcp-auction is a Model Context Protocol server that runs the inbound side of the 402 payment surface. When hivemorph's rate-limiter detects a shim's current usage exceeds its headroom (default 80% of cap), it signs an internal auction_open request, this service publishes the descent curve, and the next 402 envelope on that shim carries an auction block alongside the standard accepts[]. Agents who don't want to play pay normal asking and queue. Agents who want the slot now claim at the current curve price.

  • Protocol: MCP 2024-11-05 over Streamable-HTTP / JSON-RPC 2.0
  • Transport: POST /mcp
  • Discovery: GET /.well-known/mcp.json
  • Health: GET /health
  • Settlement: USDC on Base L2 — real rails, no mock, no simulated
  • Brand gold: Pantone 1245 C / #C08D23

Tools

ToolTierDescription
auction_openinternalOpen a new Dutch auction for a scarce shim slot. HMAC-signed, hivemorph rate-limiter only. Surfaced for discovery; opens go through POST /v1/auction/open.
auction_subscribe0 (free)Subscribe to the live descent curve via SSE. Returns the subscribe URL.
auction_book0 (free)Today aggregate: opens, closes, avg premium pct, total USDC captured.

REST endpoints

MethodPathPurpose
POST/v1/auction/openOpen a new Dutch auction (HMAC-signed; hivemorph only).
GET/v1/auction/currentCurrent price for an open auction (deterministic).
GET/v1/auction/curveFull descent curve. JSON or SSE (Accept: text/event-stream).
POST/v1/auction/claimClaim at current price. First-claim-wins, race-safe.
GET/v1/auction/historyClosed auction ledger.
GET/v1/auction/todayToday aggregate (Tier 0, free).
GET/healthService 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, the auction expires and the slot returns to the standard 402 flow. The function is pure. Same arguments give the same number to the cent. No RNG, no DB read, no clock skew tolerance baked in. The public envelope alone is provably fair.

402 envelope extension

Standard hivemorph 402 envelope plus an auction block:

json
{  "x402_version": 1,  "ask": "0.05",  "accepts": [...],  "auction": {    "id": "auct_abc123",    "type": "dutch",    "asking_usd": "0.05",    "current_price_usd": "0.2375",    "start_price_usd": "0.25",    "floor_price_usd": "0.025",    "drop_pct": 0.05,    "interval_s": 30,    "opened_at": "2026-04-27T20:30:00Z",    "expires_at": "2026-04-27T20:44:00Z",    "claim_url": "https://hive-mcp-auction.onrender.com/v1/auction/claim",    "subscribe_url": "https://hive-mcp-auction.onrender.com/v1/auction/curve?id=auct_abc123",    "policy": "first-claim-wins"  }}

The standard accepts[] block stays. Agents who don't want to play pay normal asking and get queued. Auction is opt-in via claim_url.

Claim flow (race-safe, first-claim-wins)

POST /v1/auction/claim{  "auction_id": "auct_abc123",  "claim_at_price_usd": "0.2375",  "idempotency_key": "{caller-uuid}",  "tx_hash": "0x..."}
→ 200 { winner: true, slot_token: "...", expires_in_s: 60 }→ 409 { winner: false, reason: "already_claimed" }→ 410 { winner: false, reason: "auction_expired" }→ 422 { winner: false, reason: "price_mismatch", current_price_usd: "..." }

Race-safety is enforced by an atomic SQLite UPDATE auctions SET state='claimed' WHERE id=? AND state='open'. The first UPDATE that touches a row wins. Tx verification is async — slot_token is issued provisionally and the on-chain Transfer is verified against the wallet via Base RPC.

Risk controls

CapValue
Max simultaneous open auctions50
Max descent below asking50%
Max start multiplier10x
Auction max duration14 min
Claim window after price-tick5s
Per-caller claim rate10/min

All caps fail-closed. Configurable via env; missing or invalid env always falls back to the stricter default.

Configuration

EnvRequiredDefaultNotes
PORTno3000
ENABLE_AUCTIONnofalseDefault-off. /v1/auction/open returns 503 unless true. Operator flips after the wallet is verified and HMAC key is set.
WALLET_ADDRESSno0x15184…436eW1 MONROE on Base.
USDC_BASEno0x833589…2913USDC contract on Base.
BASE_RPCnohttps://mainnet.base.org
AUCTION_OPEN_HMAC_KEYyes (to open)—Shared HMAC secret. Must match the value on hivemorph. Never commit this. Without it, every /v1/auction/open returns 401.
MAX_CONCURRENT_AUCTIONSno50
MAX_DESCENT_PCTno0.50
MAX_START_MULTno10
AUCTION_MAX_DURATION_Sno84014 minutes.
AUCTION_INTERVAL_Sno30One tick per 30s.
AUCTION_DROP_PCTno0.055% per tick.
PUBLIC_BASE_URLnohttps://hive-mcp-auction.onrender.comUsed to build claim_url / subscribe_url in the envelope.

HMAC signing (for hivemorph)

Hivemorph signs each /v1/auction/open request:

ts   = Date.now().toString()body = JSON.stringify(payload)sig  = HMAC_SHA256(AUCTION_OPEN_HMAC_KEY, `${ts}.${body}`)
Headers:  Content-Type: application/json  X-Hive-Timestamp: ${ts}  X-Hive-Signature: ${sig.hex}

Server rejects requests where |now - ts| > 5min or the signature does not match in constant time. Both shims must hold the same AUCTION_OPEN_HMAC_KEY.

Run locally

bash
git clone https://github.com/srotzin/hive-mcp-auction.gitcd hive-mcp-auctionnpm installnpm start# server up on http://localhost:3000/mcpcurl http://localhost:3000/healthcurl http://localhost:3000/.well-known/mcp.jsoncurl http://localhost:3000/v1/auction/today

Connect from an MCP client

Claude Desktop / Cursor / Manus — add to your mcp.json:

json
{  "mcpServers": {    "hive_mcp_auction": {      "command": "npx",      "args": ["-y", "mcp-remote@latest", "https://hive-mcp-auction.onrender.com/mcp"]    }  }}

Why Dutch (not Vickrey, not English)

  • Dutch (Shape α — this repo): deterministic clock-driven price, first-claim-wins, no judgment, no late-bid manipulation, agents reveal urgency by claim timing.
  • Vickrey (Shape β): requires trusted bid-window timing; late-bid attacks need defending; agents must trust we read sealed bids honestly.
  • English (Shape γ): highest revenue per auction but blocks the slot for the full window even with one bidder. Works for unique assets, not fungible compute.

Dutch is the only one where the math is provably fair from the public envelope alone. Shapes β and γ are explicitly out of scope for v1; revisit once Shape α produces clean telemetry.

Hive Civilization

Part of the Hive Civilization — sovereign DID, USDC settlement, agent-to-agent rails. Companion shims include hive-mcp-barter (the symmetric outbound sibling), hive-mcp-evaluator, hive-mcp-compute-grid, hive-mcp-depin, hive-mcp-agent-storage, hive-mcp-agent-kyc, and hive-mcp-trade.

License

MIT (c) 2026 Steve Rotzin / Hive Civilization

Hive Civilization Directory

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

Brand: #C08D23

来源:README.md,提交 fd3da45

工具

0
SourceWeft 尚未读取此服务器的工具。

版本历史

1
  1. v1.0.0最新Sep 16, 2026

评分

已满足适用检查项的 85%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通必需25 分
  • 已声明认证方式必需10 分
  • 已列出工具必需15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分