Gavel

io.thegavel由 thegavel.io 發布官方發布者v0.4.0更新於 Oct 24, 2026

Oracle-free fixed-rate, fixed-term BTC credit on Arbitrum One. Data and unsigned blueprints.

已驗證Streamable HTTP可網頁執行資料庫金融

概覽

AI 產生的概覽

針對 Arbitrum One 上 Gavel Protocol 的遠端 MCP 伺服器,讓助理讀取 BTC 信貸資料、拍賣與貸款狀態,並產生待使用者簽署的未簽署交易藍圖。

可以做什麼
讀取協議與市場資料:殖利率曲線、協議參考資訊、指標目錄與數值、拍賣簿、可比拍賣、地址歷史、驗證包,以及錢包就緒檢查(餘額、授權額度、阻礙項目)。
適用情境
當助理需要說明或探索 Arbitrum One 上的 Gavel Protocol BTC 信貸市場時使用:目前利率、進行中的拍賣、某錢包的部位與就緒狀態,或可比的過往拍賣。也適合起草由使用者自行簽署的交易。
執行需求
遠端 streamable HTTP 端點,無需安裝套件。清單未宣告任何身分驗證。伺服器本身會呼叫 Gavel REST API 與 Arbitrum RPC;自行架設需要 Node 20+、GAVEL_API_BASE_URL 與 ARBITRUM_RPC_URL 等環境設定,以及網路存取。
安裝前請注意
prepare 系列工具會產生未簽署交易藍圖,用於出價、建立拍賣、還款、領取擔保品與領取退款;由使用者簽署並動用真實資金,還款期限很重要。伺服器不持有金鑰、不簽署。list_onchain_indicators 與 get_mvrv 兩個工具是臨時佔位,只回傳指向另一主機的已遷移錯誤。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Gavel,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Web executable,透過 Streamable HTTP。 遠端服務在工作區中設定後即可從網頁執行環境執行。

交給代理程式安裝

把這段提示詞貼上到 Claude Code、Codex、Cursor 等代理程式,或 SourceWeft 對話中。代理程式會讀取該伺服器的安裝指南,先向你展示發布者、端點和登入方式,經你同意後再把它新增到你的客戶端。金鑰不會寫進任何命令。

閱讀 https://sourceweft.com/mcp/io.thegavel%2Fgavel/install.md,並按其中說明把這個 MCP 伺服器接入我的客戶端。修改任何設定之前,先告訴我它的發布者、端點和登入方式,等我確認。不要把 API 金鑰寫進命令或我會提交的檔案;問我金鑰應從哪裡取得。

檢視代理程式所依據的安裝指南

其他 MCP 客戶端

把它新增到你客戶端的 mcpServers 設定中。

{
  "mcpServers": {
    "gavel": {
      "type": "http",
      "url": "https://mcp.thegavel.io/mcp"
    }
  }
}

README

gavel-mcp-server

Aletheia Analytics MCP server — agent-native interface over the Gavel data product.

Thin TypeScript wrapper around api.thegavel.io. Exposes Gavel credit data and Bitcoin on-chain indicators as MCP tools so LLM-driven agents (Claude Desktop, IDE clients, custom agents) can read the data product without hand-rolling REST glue.

Status

All three layers of the AI concierge spec (aletheia-docs data/specs/mcp/ai_concierge.md) are live, plus the indicator surface and real key→tier resolution. Delivered by Runbook R18 and governed by the decisions note data/specs/mcp/tier_and_scope_decisions_v1.md (MD1–MD12).

Layer A — read state

ToolUpstream
check_wallet_statusdirect RPC (balances, allowances, readiness blockers)
find_auctions_matching_criteria/v1/auctions
get_user_positions/v1/user/:address/positions
get_loan_status/v1/loans/:id/status

Layer B — factory model (unsigned blueprints; the user signs)

ToolEncodes
prepare_bid_calldataplaceBid + approval when allowance is short
prepare_create_auction_calldatacreateAuction + collateral approval
prepare_repay_loan_calldatarepayLoan + repayment approval
prepare_claim_collateral_calldataclaimCollateral
prepare_claim_refund_calldataclaimRefund

Layer C — catalogues

ToolNotes
list_wallet_optionsstatic catalogue, no ranking
recommend_fiat_onrampstatic catalogue; carries the two-purchase gas requirement

Data surface

ToolUpstream
list_gavel_indicatorsstatic catalogue of 32 indicators
get_gavel_indicator/v1/credit/*, /v1/onchain/*, /v1/market/*
get_yield_curve/v1/yield-curve
get_mvrv/v1/onchain/mvrv
get_protocol_referencestatic — addresses, signatures, conventions
list_onchain_indicatorsstatic catalogue

The invariant

Aletheia builds; the user signs. There is no signing surface in this codebase — no wallet client, no account, no key material. viem is imported for encodeFunctionData only. That is what makes "Aletheia never signs" an architectural fact rather than a policy promise, and it must stay that way.

Equally load-bearing: no tool ranks, scores, or selects on the user's behalf. Filtering by user-supplied criteria is an information service; ranking by an internal model is investment advice. find_auctions_matching_criteria is named as it is deliberately, and the naming is not cosmetic.

Architecture

LLM Client → mcp.thegavel.io (this server) → api.thegavel.io (REST) → PostgreSQL              [tool catalog, descriptions,        [authoritative endpoints]               response shaping, auth, limits]

Single source of truth: the REST API. The MCP server never queries Postgres directly. Tools shape responses for LLM consumption (JSON-stringified text content) but never re-implement business logic. When the REST API upgrades, MCP inherits the upgrade automatically.

Local development

bash
# Install deps (Node 20+)npm install
# Copy and edit env filecp .env.example .envnano .env  # set GAVEL_API_BASE_URL etc.
# Dev mode (tsx watch)npm run dev
# Type checknpm run typecheck
# Build to dist/npm run build

Point a development MCP client (MCP Inspector, Claude Desktop with an HTTP connector) at http://localhost:3002/mcp to exercise tools.

Deployment

Target: gavel-btc Hetzner host, alongside gavel-api.

bash
# Local — build and stagenpm installnpm run build
# Copy to serverscp -r dist/ package.json package-lock.json deployment/ \    root@gavel-btc:/root/gavel-mcp/
# On server — install runtime deps (not the full dev set)ssh root@gavel-btccd /root/gavel-mcpnpm install --omit=dev
# Configurecp .env.example .envnano .env# Set:#   GAVEL_API_BASE_URL=https://api.thegavel.io  (public API, for tool reads)#   GAVEL_API_INTERNAL_URL=http://127.0.0.1:4012  (loopback, for tier lookup)#   INTERNAL_API_SECRET=<must match gavel-indexer/.env.mainnet>#   PORT=3002#   NODE_ENV=production
# Install systemd unitcp deployment/gavel-mcp.service /etc/systemd/system/systemctl daemon-reloadsystemctl enable gavel-mcp.servicesystemctl start gavel-mcp.service
# Verifyjournalctl -u gavel-mcp -n 50 --no-pagercurl http://localhost:3002/health
# Reverse proxycp deployment/nginx-mcp.conf /etc/nginx/sites-available/mcp.thegavel.ioln -s /etc/nginx/sites-available/mcp.thegavel.io \      /etc/nginx/sites-enabled/mcp.thegavel.ionginx -t && systemctl reload nginx
# TLS (Let's Encrypt)certbot --nginx -d mcp.thegavel.io
# End-to-end checkcurl https://mcp.thegavel.io/health

Configuration

All knobs live in .env:

VarDefaultPurpose
PORT3002HTTP listen port
NODE_ENV—production for JSON logs
LOG_LEVELinfopino level (trace/debug/info/warn/error)
GAVEL_API_BASE_URLhttp://localhost:3001Upstream REST base URL
RATE_LIMIT_ANONYMOUS_PER_MINUTE60Anonymous bucket size
RATE_LIMIT_PAID_PER_MINUTE300Paid bucket size
CORS_ALLOWED_ORIGINSemptyComma-separated; empty = no CORS
HEALTH_CHECK_SECRETemptyIf set, /health requires ?secret=...
GAVEL_API_INTERNAL_URLhttp://127.0.0.1:4012Key→tier lookup. Must be the loopback address — /internal/resolve-tier refuses any request carrying an X-Forwarded-For, so the public api.thegavel.io host will not work
INTERNAL_API_SECRETemptyShared secret for the tier lookup. Must match gavel-indexer/.env.mainnet. Unset ⇒ every caller resolves to free
MCP_TIER_ENFORCEMENTfalseEnforce per-tool tiers. Leave false until Gate B — see Tier model
ARBITRUM_RPC_URLpublic RPCChain reads for Layer A/B. Point at a paid endpoint in production
ARBITRUM_SEPOLIA_RPC_URLpublic RPCTestnet equivalent

Tier model

The ladder is free / pro / enterprise — identical to the product's (gavel-indexer/lib/tiers.js) and to what Stripe sells. The scaffold's original anonymous / developer / professional / enterprise was a second vocabulary for one entitlement and is retired (MD1).

gavel-indexer/lib/api-keys.js is the authority on what tier a key is. The MCP does not open its own database pool; it asks GET /internal/resolve-tier over loopback, caches the answer for 60 s, and fails open to free on any error. A data MCP that 500s because the key database hiccuped is worse than one that briefly serves anonymous.

Enforcement is authored but OFF

MCP_TIER_ENFORCEMENT defaults to false, and that is the correct state today. Monetisation is gated until Gate B (D16–D18): do not build a paywall until someone has asked to pay. Runbook A2 withdrew the commercial surface, and www.thegavel.io/pricing currently states that data access is free and open — so refusing a tool and pointing the user at a page which denies tiers exist would be a self-refuting journey.

With the flag off, requireTier still resolves the caller's real tier and logs what it would have refused. That log is the evidence for M6, the "has anyone actually asked to pay?" gate condition.

Before flipping it on, read MD2. There are two incompatible readings of what a paid MCP means — whole-surface-paid (lib/tiers.js carries mcp: false on free) versus depth-paid (MD3, the endorsed one). They are very different products.

What is free, and why

Per MD3, inheriting the D5 route/depth map: raw on-chain state, auction discovery, wallet status, commodity on-chain indicators, the current value of any Gavel-derived assessment, and history are all free. History is free because D9 retired the 30-day REST cap, and the MCP must not reintroduce a fence the surface it mirrors has abandoned. The paid boundary is bulk delivery, which this server does not offer.

Participation is never gated (D3). Every Layer A/B/C tool is free: a would-be bidder must never meet a paywall between deciding to bid and being able to.

Rate limits are infrastructure protection, not a billing meter (D2), and apply irrespective of the enforcement flag.

Redeploying a change

bash
npm run build            # tsc -> dist/ ; must be cleansystemctl restart gavel-mcpsystemctl is-active gavel-mcpjournalctl -u gavel-mcp -n 30 --no-pager

This service is systemd, not pm2. pm2 on this host carries quorum-mcp-testnet, a different service — pm2 restart gavel-mcp is a no-op that looks like a successful deploy. R18 v1 had this wrong; it is recorded in that runbook's §8.

The service runs dist/, not src/, so a change that is not built is a change that is not deployed.

Adding a tool

  1. Create src/tools/<category>/<name>.ts. Copy credit/yield-curve.ts as the template — it's the cleanest worked example.
  2. Define a Zod schema for inputs with .describe() on every field; that description is what the LLM sees during tool discovery.
  3. Write the tool description as a multi-line string. Lead with what the indicator is, give interpretive context (without recommending anything), and document the response shape. The MCP SDK uses this verbatim in the catalog.
  4. Body: requireTier(...) → upstreamGet(...) → return { content: [{ type: 'text', text: JSON.stringify(...) }] }.
  5. Register the tool in src/tools/index.ts.
  6. Add an entry to src/tools/discovery/list-onchain.ts (or the equivalent discovery catalog for that domain).

Testing manually

bash
# 1. Healthcurl -s http://localhost:3002/health | jq
# 2. MCP Inspectornpx @modelcontextprotocol/inspector# Connect to http://localhost:3002/mcp# Verify: tools/list returns 3 tools, get_yield_curve returns live data,# get_mvrv returns a structured McpError "not found".

License

Proprietary © 2026 Aletheia Analytics SASU. All rights reserved.

來源:README.md,提交 cab1370

工具

21

get_yield_curve

Gavel Yield Curve

Returns the current fitted Gavel yield curve for the requested collateral/loan pair. Rates are oracle-free, derived from auctions in The Gavel Protocol. The curve is a log-quadratic fit through binned midpoints. IMPORTANT — every rate returned is an evaluation of the fitted curve, not an observed trade, and the published tenor set extends past the deepest observation. Tenors with no underlying bin data are returned as fitted values and listed in 'extrapolated_tenors'; treat those as model output only. Read 'provenance' before using the curve as a market reference: it carries the observation count, the number of distinct counterparties, the external share, and a disclosure stating whether this is yet an independent market assessment. Check fit.r_squared and fit.fitted_to — R-squared is measured against bin means, not raw scatter, so at low observation counts it reflects smoothness rather than goodness of fit. Useful for: comparing fixed-term BTC-collateralised borrow rates across maturities, deriving the term premium, sourcing the Gavel layer of the Bitcoin Credit Stack. This tool returns data; it does not advise. Returns: { pair, computed_at, status, rates, extrapolated_tenors, fit_observation_count, provenance, fit: {r_squared, rmse, model, fitted_to} }. Note 'fit_observation_count' counts only the loans the fit was computed over (binning is active-loans-only, so settled loans are excluded), whereas 'provenance.observation_count' counts the full scatter — they legitimately differ. Optional 'include_points' returns the raw scatter backing the fit.

輸入參數pairinclude_points

get_protocol_reference

Gavel Protocol Reference

Returns the Gavel Protocol's complete on-chain reference data for the requested network: contract addresses, supported tokens (collateral and loan), key function signatures, operational conventions (like the Position NFT tokenId formula), and Etherscan/ABI references. Use this tool when an agent needs to: - Look up a contract address before constructing a transaction - Get the function signature for placeBid, createAuction, repayLoan, etc. - Understand the tokenId convention for borrower vs lender position NFTs - Find an Etherscan link to verify a contract's source code - Confirm which loan tokens are whitelisted This is descriptive data; no recommendation is provided. The agent is responsible for constructing, signing, and broadcasting any transactions via the user's own wallet. Aletheia never holds keys or dispatches transactions. Returns: { network, chain_id, explorer, rpc_endpoints, status, contracts, tokens, key_functions, important_notes, abi_references }.

輸入參數network

check_wallet_status

Check Wallet Readiness

Returns a structured readiness report for the given wallet address: native ETH balance for gas, relevant ERC-20 balances (USDC, USDT, WBTC), current allowances against the Gavel LoanProtocol and ListingService, and a precomputed list of blockers (what's stopping the wallet from placing bids or creating auctions). Useful for: onboarding flows where an LLM agent needs to verify a user's wallet is funded and approved before walking them through a transaction. The 'readiness.blockers' field is the high-leverage answer to "what's next?" — the LLM can quote it directly without reasoning from raw balances. This tool reads the Arbitrum chain directly via RPC. It does not require any signed authorisation from the wallet owner — addresses and balances are public on-chain data. Returns: { address, network, native_gas, tokens, active_positions, readiness }.

輸入參數address必填network

find_auctions_matching_criteria

Find Auctions Matching Criteria

Returns Gavel auctions filtered by the criteria you supply. Does not rank, score, or recommend a specific auction — only filters by the parameters provided. The user chooses what to act on. Useful for: an agent helping a user narrow a long auction list down to the subset matching their stated yield, duration, and LTV preferences. All filter parameters are optional. Unspecified parameters mean "no constraint on that dimension". When status is omitted, defaults to 'open' (actionable auctions only). Returns: { matches: Auction[], match_count, total_inspected, criteria_echoed }.

輸入參數pairlimitstatusmax_ltvmin_ltvmax_rate_pctmin_rate_pctmax_duration_daysmin_duration_daysmin_remaining_hours

list_fiat_onramps

Fiat Onramp Catalog

Returns a catalog of fiat-to-USDC onramps that deliver native USDC on the requested chain. Does not rank or endorse a specific provider — entries are listed alphabetically so the response is deterministic. The user chooses which onramp to use. Filter by country (ISO 3166 alpha-2) and amount to narrow the catalog to providers that operate in the user's jurisdiction and accept their transaction size. Useful for: an LLM agent helping a novice user fund their wallet from fiat USD/EUR/GBP. The LLM presents the catalog to the user; the user picks one and proceeds. IMPORTANT — a cold-start user needs TWO purchases, not one. None of these providers delivers gas ETH alongside the USDC. A wallet holding only USDC cannot transact at all, and the failure is opaque (the transaction simply will not send). Surface the gas purchase to the user at the same time as the USDC purchase — see 'gas_requirement' in the response. Returns: { providers: OnrampProvider[], gas_requirement, filter_echo, notes }.

輸入參數chaincountryamount_usd

list_wallet_options

Compatible Wallet Catalog

Returns a catalog of self-custody wallet apps compatible with Gavel (i.e., that support Arbitrum One). Does not rank wallets by quality. Each entry has a 'suitability_tags' list describing the typical user fit as factual attributes ('beginner', 'mobile_first', 'hardware', 'multisig', etc.) — the LLM and user pick based on those. Useful for: an LLM agent helping a user without an existing wallet choose one before onramping funds. The LLM should explain the custody-model and platform implications relevant to the user's situation, then let the user pick. Returns: { wallets: WalletOption[], filter_echo, notes }.

輸入參數platform

get_user_positions

Gavel Positions for an Address

Returns every Gavel position an address holds — as borrower, as winning lender, or as a bidder on an auction that has not closed. Each position carries its lifecycle state (auction_open, bid_placed, bid_lost, active, matured_unclaimed, repaid, defaulted), the maturity date and time remaining, the counterparty, and 'next_action_available' — the one thing this address can do next (nothing, repay, claim_collateral, claim_repayment, claim_refund). 'lifecycle_summary' is a plain-English sentence you can quote to the user directly. Reads public chain data via the Aletheia indexer; no signed authorisation is needed and anyone can query any address. The chain is authoritative — a transaction in the current block may not be indexed yet. Returns: { address, network, positions[], count, settled_hidden }.

輸入參數address必填include_settled

get_loan_status

Gavel Loan Status

Returns the current state of a single Gavel loan and what action, if any, is available to whom. Designed to be re-called during a long conversation so lifecycle changes can be surfaced to the user. 'next_actions' is an array of {actor, action, calldata_tool} tuples naming the tool that prepares each transaction, so the next step can be taken without guessing. 'lifecycle_summary' gives the borrower's and lender's view in plain English. This is descriptive data; no recommendation is provided. Verify on-chain before acting on a reported maturity or default. Returns: { loan_id, state, borrower, lender, principal, repayment, apr, matures_at, time_remaining_seconds, outcome, next_actions }.

輸入參數loan_id必填

list_gavel_indicators

Gavel Indicator Catalogue

Returns the catalogue of Aletheia indicators computed from The Gavel Protocol and the Bitcoin chain: id, name, family, units, description, and whether the indicator is currently live on this network. Three families: 'credit' (credit-market assessments), 'onchain' (commodity chain metrics such as MVRV and SOPR), and 'market' (external context — DeFi rates, stablecoin supply, macro). Use this to discover what is available, then call get_gavel_indicator with an id. This tool returns a catalogue; it does not rank indicators or advise which to use.

輸入參數familylive_only

get_gavel_indicator

Get a Gavel Indicator

Returns the current value of a single Aletheia indicator by id, with its methodology reference. This server serves this protocol's own indicator set, including those anchored on its rate. Call list_gavel_indicators first to discover valid ids. Optionally returns the historical series instead of the current value (set include_history). History is free and unmetered on the same terms as the current value. This is descriptive data; no recommendation is provided. An indicator that has no reading on this network says so explicitly rather than returning a null or a zero that could be mistaken for a value.

輸入參數id必填tofrominclude_history

prepare_bid_calldata

Prepare a Gavel Bid

Builds an unsigned transaction blueprint for placing a bid on a Gavel auction, including the prerequisite ERC-20 approval when the current allowance is short. You supply the auction and the repayment amount you are willing to accept; this tool validates them against live auction state and encodes the call. It does not choose an auction, a rate or a size for you — use find_auctions_matching_criteria to filter by your own criteria first. Bidding on Gavel is a reverse auction: a LOWER repayment is a more competitive bid and a lower yield to you as lender. Each bid must undercut the current best by at least the auction's bid step. Returns an unsigned transaction blueprint for the requested intent. The user is responsible for reviewing, signing, and broadcasting via their own wallet. Aletheia does not hold keys or dispatch transactions.

輸入參數networkauction_id必填lender_address必填repayment_amount必填

prepare_create_auction_calldata

Prepare a Gavel Auction

Builds an unsigned transaction blueprint for creating a borrow auction — you post collateral and ask lenders to compete to lend against it — including the prerequisite collateral approval. Every term is yours to set: which collateral and how much, which loan token and how much, the maximum repayment you will accept, the loan duration, how long the auction runs, and the bid step. This tool encodes what you specify and warns about consequences; it does not propose terms, rates or a loan size. Lenders bid DOWN from your maximum repayment, so max_repayment is your worst acceptable price — set it too low and the auction may attract no bids. Returns an unsigned transaction blueprint for the requested intent. The user is responsible for reviewing, signing, and broadcasting via their own wallet. Aletheia does not hold keys or dispatch transactions.

輸入參數networkbid_steploan_token必填loan_amount必填max_repayment必填borrower_address必填collateral_token必填collateral_amount必填loan_duration_days必填auction_duration_hours必填

prepare_repay_loan_calldata

Prepare a Loan Repayment

Builds an unsigned transaction blueprint for repaying a Gavel loan, including the prerequisite approval for the repayment amount. Validates that the loan is live and that you are its borrower. Repay before maturity or the lender may claim your collateral. The repayment is transferred directly to the current holder of the lender position. On a USDC loan it reverts if USDC refuses that holder or is paused (known issue KI-3); the blueprint then carries a warning saying so. Returns an unsigned transaction blueprint for the requested intent. The user is responsible for reviewing, signing, and broadcasting via their own wallet. Aletheia does not hold keys or dispatch transactions.

輸入參數loan_id必填networkborrower_address必填

prepare_claim_collateral_calldata

Prepare a Collateral Claim

Builds an unsigned transaction blueprint for a lender to claim the collateral on a defaulted Gavel loan. Validates that you are the lender and that the loan has passed maturity without repayment. Chain state is authoritative — a repayment in the current block may not be indexed yet, so this tool warns rather than asserts when the margin is thin. Returns an unsigned transaction blueprint for the requested intent. The user is responsible for reviewing, signing, and broadcasting via their own wallet. Aletheia does not hold keys or dispatch transactions.

輸入參數loan_id必填networklender_address必填

prepare_claim_refund_calldata

Prepare a Refund Claim

Builds an unsigned transaction blueprint for reclaiming funds held by the protocol after a losing bid. When you are outbid, your funds stay claimable rather than being pushed back automatically. This encodes the claim for a given token. Returns an unsigned transaction blueprint for the requested intent. The user is responsible for reviewing, signing, and broadcasting via their own wallet. Aletheia does not hold keys or dispatch transactions.

輸入參數networktoken_address必填claimant_address必填

list_comparables

Comparable settled auctions

Which recent auctions resemble these parameters, and how did each clear? Returns the individual observations so the caller can reason from them directly. Nearest-k settled auctions by normalised distance on loan amount, LTV and tenor. Every row carries its clearing APR, bid count, and whether its originator was Aletheia's own account. Below MIN_COMPARABLES the rows are still returned, with the threshold and the observed count named — no aggregate is computed over them. ⚠ The own-account flag is null, not false, wherever it cannot be computed. Read provenance.own_account_attribution before treating a null as a "no".

輸入參數kltvpairnetworktenor_daysloan_amountwindow_days

get_address_history

Address history on the protocol

What has this address done on the protocol? Public chain events only, with no enrichment beyond them. Auctions originated, bids placed, positions open and closed, and a summary of outcomes. No clustering, no labelling and no inferred identity: nothing in the response is not already public on-chain. Any address may be queried by anyone; no authorisation is needed. This is the supervisor page's data source — the read a person uses to check what an agent they supervise has actually done.

輸入參數address必填network

get_book

The open book

What is open right now — auctions, bids and positions listed? Current chain state, with counts rather than a characterisation of depth. Open auctions with their best bid and time remaining, those closing within 24 hours, and totals: open auction count, principal outstanding, collateral locked, and distinct lenders and borrowers over 30 days. ⚠ Fields that cannot be answered are null, not empty. positions_listed is null where marketplace listings are not indexed — an empty array would assert that nothing is listed.

輸入參數pairnetwork

get_verification_bundle

Verification bundle

What can be checked about the contracts, and what did the last check return? Observations with their block heights; the verdict is the reader's. Contract addresses and their implementations, the bytecode hash of each, the upgradeability position, the privileged-function map with whether each can touch user funds, the audit reference, and five structural promises — each with the check that would falsify it and what that check returned. ⚠ Read the fields, not the impression. 'match' is "unchecked" where Aletheia has not compared deployed bytecode against verified source; a promise that did not settle says so; and mainnet and testnet return different answers because they run different builds. There is no safety score, rating or verified badge in this payload, and none will be added.

輸入參數network

list_onchain_indicators

Moved — now served by the Bitcoin Credit Stack

This tool has moved. Cross-venue credit data is served by the Bitcoin Credit Stack MCP at https://mcp.bitcoincreditstack.com/mcp, where this tool is called `list_onchain_indicators`. Calling it here returns a structured 'moved' error naming the host. This shim is temporary and will be removed.

無需輸入參數。

get_mvrv

Moved — now served by the Bitcoin Credit Stack

This tool has moved. Cross-venue credit data is served by the Bitcoin Credit Stack MCP at https://mcp.bitcoincreditstack.com/mcp, where this tool is called `get_mvrv`. Calling it here returns a structured 'moved' error naming the host. This shim is temporary and will be removed.

無需輸入參數。

版本歷史

1
  1. v0.4.0最新Sep 16, 2026

評分

已滿足適用檢查項的 90%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通必需25 分
  • 已宣告認證方式必需10 分
  • 已列出工具必需15 分
  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分

    請在儲存庫或註冊中心條目中宣告授權條款。