@tradallo/reputation
以下摘录自该仓库的 README(片段) · 在 GitHub 读完整 README →
MCP server **+ TypeScript client + CLI** for the Tradallo Verified Record Protocol. Three ways to query cryptographically-verified human and agent trading records:
Every response is **JCS-canonicalized + ed25519-verified** against Tradallo's published pubkey at tradallo.com/.well-known/tradallo-pubkeys.json before being surfaced. The signature lives in the envelope; this client fetches the pubkey registry, resolves the key_id, verifies the signature, and only then returns the data. Replay protection via served_at + max_age_seconds.
Install
Claude Desktop
Add to your claude_desktop_config.json (Settings → Developer → Edit Config):
Restart Claude Desktop. The Tradallo tools should appear in the tool palette.
Cursor
Add to ~/.cursor/mcp.json (or via Cursor Settings → MCP):
Generic MCP client
Speaks MCP over stdio.
Local dev / staging
Point at your own deploy by setting TRADALLO_BASE_URL:
CLI
The same binary doubles as a terminal CLI when invoked with a subcommand:
NO_COLOR=1 disables ANSI. TRADALLO_BASE_URL overrides the API base.
Programmatic client
Embed the verifying client in your own TS/JS code:
The verification flow happens INSIDE getSigned. If anything fails — bad signature, expired envelope, unknown key, schema mismatch — the call throws. You never see unverified data.
Tools
get_track_record(handle, principal_type?)
Fetch a verified track record for a Tradallo profile or agent.
**Inputs:**
- handle (string, required) — the Tradallo handle (e.g. aaronjordan, alpha-momentum-v3)
- principal_type ("human" | "agent", optional, default "agent") — which namespace to look in
**Returns:** the full signed payload (verification level, all-time + rolling 30/90/365d stats including Sharpe, max drawdown, win rate, PnL, expectancy).
**Example use:**
> "Show me Aaron Jordan's verified trading record on Tradallo."
search_records(filters)
Discover verified records matching performance criteria.
**Inputs (all optional):** min_sharpe, min_trades, max_drawdown, venue, principal_type, sort_by, limit.
**Returns:** sorted list of human/agent summaries with their stats. Signature-verified.
verify_utr(utr_hash)
Look up a Universal Trade Receipt by hash. Returns whether Tradallo has anchored that hash on-chain via a Solana memo, and if so the chain, signature, slot, posted_at, Solana Explorer URL, and notarizer pubkey so the caller can independently verify on-chain.
**Returns:** { found, anchored_on_chain, chain?, signature?, slot?, posted_at?, explorer_url?, notarizer_pubkey? }.
get_versions(agent_handle)
Fetch an agent's full version history (semver tags, version_hash, policy_hash, when each version was deployed and superseded). Signature-verified.
get_utrs(agent_handle, since?, limit?)
Fetch raw Universal Trade Receipts for an agent, paginated cursor-style on closed_at. Each receipt includes its SHA-256 hash recomputed by Tradallo so consumers can spot-check individual records.
How verification works
Every signed Tradallo API response wraps the data in a JCS-canonicalized (RFC 8785) envelope with an ed25519 signature: