Skip to main content
Glama
tradallo

tradallo-reputation

Official
by tradallo

@tradallo/reputation

npm version license MCP

MCP-сервер + TypeScript-клиент + CLI для протокола Tradallo Verified Record Protocol. Три способа запроса криптографически подтвержденных торговых записей людей и агентов:

# CLI — pretty terminal cards, no install required
npx @tradallo/reputation card alpha-momentum-v3 --agent

# MCP — drop into Claude Desktop / Cursor / any MCP client (config below)

# Programmatic — typed TS/JS client
import { TradalloClient } from "@tradallo/reputation";

Каждый ответ проходит JCS-канонизацию и ed25519-проверку по опубликованному публичному ключу Tradallo по адресу tradallo.com/.well-known/tradallo-pubkeys.json перед отображением. Подпись находится в конверте; этот клиент получает реестр публичных ключей, разрешает key_id, проверяет подпись и только после этого возвращает данные. Защита от повторного воспроизведения (replay protection) обеспечивается через served_at + max_age_seconds.

Установка

Claude Desktop

Добавьте в ваш claude_desktop_config.json (Настройки → Разработчик → Редактировать конфигурацию):

{
  "mcpServers": {
    "tradallo-reputation": {
      "command": "npx",
      "args": ["-y", "@tradallo/reputation"]
    }
  }
}

Перезапустите Claude Desktop. Инструменты Tradallo должны появиться в палитре инструментов.

Cursor

Добавьте в ~/.cursor/mcp.json (или через Настройки Cursor → MCP):

{
  "mcpServers": {
    "tradallo-reputation": {
      "command": "npx",
      "args": ["-y", "@tradallo/reputation"]
    }
  }
}

Универсальный MCP-клиент

npx @tradallo/reputation

Работает с MCP через stdio.

Локальная разработка / стейджинг

Укажите свой собственный адрес развертывания, установив TRADALLO_BASE_URL:

{
  "mcpServers": {
    "tradallo-reputation": {
      "command": "npx",
      "args": ["-y", "@tradallo/reputation"],
      "env": { "TRADALLO_BASE_URL": "http://localhost:3000" }
    }
  }
}

Related MCP server: aip-identity

CLI

Тот же бинарный файл работает как терминальный CLI при вызове с подкомандой:

# Pretty card with verification status, stats, version metadata
npx @tradallo/reputation card alpha-momentum-v3 --agent

# Raw verified JSON (for piping into jq, etc.)
npx @tradallo/reputation track-record alpha-momentum-v3 --agent

# Discovery
npx @tradallo/reputation search --min-sharpe 1.5 --min-trades 200 --sort-by sharpe

# Agent version history
npx @tradallo/reputation versions alpha-momentum-v3

# Paginated UTRs
npx @tradallo/reputation utrs alpha-momentum-v3 --limit 50

# Look up a specific UTR by hash
npx @tradallo/reputation verify <sha256-hex> alpha-momentum-v3

# Help
npx @tradallo/reputation help

NO_COLOR=1 отключает ANSI. TRADALLO_BASE_URL переопределяет базовый URL API.

Программный клиент

Встройте проверяющий клиент в свой собственный TS/JS код:

import { TradalloClient } from "@tradallo/reputation";

const client = new TradalloClient(); // defaults to https://tradallo.com

// Throws if signature invalid, replay window expired, or pubkey unknown.
// Returns the verified `data` payload (not the envelope wrapper).
const record = await client.getSigned<{ stats: { all_time: { sharpe_ratio: number | null } } }>(
  "/api/v1/agents/alpha-momentum-v3/track-record",
);

if ((record.stats.all_time.sharpe_ratio ?? 0) >= 1.5) {
  // ... delegate capital, copy trades, etc.
}

Процесс проверки происходит ВНУТРИ getSigned. Если что-то не удается — неверная подпись, истекший срок действия конверта, неизвестный ключ, несоответствие схемы — вызов выдает ошибку. Вы никогда не увидите непроверенные данные.

Инструменты

get_track_record(handle, principal_type?)

Получение подтвержденной истории сделок для профиля или агента Tradallo.

Входные данные:

  • handle (строка, обязательно) — идентификатор Tradallo (например, aaronjordan, alpha-momentum-v3)

  • principal_type ("human" | "agent", необязательно, по умолчанию "agent") — в каком пространстве имен искать

Возвращает: полный подписанный пакет данных (уровень проверки, статистика за все время + скользящая за 30/90/365 дней, включая коэффициент Шарпа, максимальную просадку, процент побед, PnL, ожидаемую доходность).

Пример использования:

"Покажи мне подтвержденную историю сделок Аарона Джордана на Tradallo."

search_records(filters)

Поиск подтвержденных записей, соответствующих критериям эффективности.

Входные данные (все необязательны): min_sharpe, min_trades, max_drawdown, venue, principal_type, sort_by, limit.

Возвращает: отсортированный список сводок по людям/агентам с их статистикой. Подпись проверена.

verify_utr(utr_hash)

Поиск универсальной квитанции о сделке (UTR) по хешу. Возвращает информацию о том, закрепил ли Tradallo этот хеш в блокчейне через Solana memo, а если да — сеть, подпись, слот, время публикации, URL в обозревателе Solana и публичный ключ нотариуса, чтобы вызывающая сторона могла независимо проверить данные в блокчейне.

Возвращает: { found, anchored_on_chain, chain?, signature?, slot?, posted_at?, explorer_url?, notarizer_pubkey? }.

get_versions(agent_handle)

Получение полной истории версий агента (теги semver, version_hash, policy_hash, время развертывания и замены каждой версии). Подпись проверена.

get_utrs(agent_handle, since?, limit?)

Получение необработанных универсальных квитанций о сделках для агента, с постраничной навигацией по курсору closed_at. Каждая квитанция включает свой хеш SHA-256, пересчитанный Tradallo, чтобы пользователи могли выборочно проверять отдельные записи.

Как работает проверка

Каждый подписанный ответ API Tradallo упаковывает данные в конверт, канонизированный по JCS (RFC 8785), с подписью ed25519:

{
  "data": { ... },
  "schema_version": "1",
  "served_at": "2026-04-30T22:29:52.776Z",
  "max_age_seconds": 60,
  "signature": {
    "alg": "ed25519",
    "key_id": "tradallo-prod-2026-04",
    "sig": "<base64>"
  }
}

Этот MCP-сервер:

  1. Получает /.well-known/tradallo-pubkeys.json (кэшируется на 5 минут)

  2. Разрешает signature.key_id → публичный ключ ed25519

  3. Выполняет JCS-канонизацию {data, schema_version, served_at, max_age_seconds}

  4. Проверяет подпись по публичному ключу

  5. Отклоняет ответы, где now > served_at + max_age_seconds (защита от повторного воспроизведения)

Если какая-либо проверка не проходит, вызов инструмента возвращает ошибку вместо данных. Агенту сообщается причина.

Почему это важно

Идентификация (кто является агентом) и платежи (как он платит) решаются в 2026 году с помощью x402, MPP, Coinbase Agentic Wallets и ERC-8004. Репутация — нет. Когда агент решает, делегировать ли капитал, копировать ли сделки или подписываться на сигналы другой стороны, ему нужен способ спросить: "реальна ли их история?"

Этот MCP-сервер — самый простой способ задать этот вопрос.

x402 — что дальше

Сегодня публичный API является анонимным и имеет ограничение по IP (60 запросов/мин). Мы внедряем многоуровневый доступ через x402, стандарт HTTP 402 (требуется оплата), чтобы агенты могли оплачивать микротранзакции в USDC в сети Base для обхода ограничений скорости и получения доступа к более высокопроизводительным уровням без регистрации или использования API-ключей.

Ожидания по обратной совместимости:

  • Анонимно: 60 запросов/мин/IP (сегодня, бесплатно)

  • Активный подписчик: 600 запросов/мин через API-ключ (в разработке — Фаза 4.4)

  • Микроплатеж x402: оплата USDC за каждый вызов для тяжелых запросов; учетная запись не требуется (запланировано на Фазу 4.5)

  • Уровни оператора / парка агентов: подписки на вебхуки, пользовательские поддомены, приоритетная индексация

Ответ об ограничении скорости получит блок x402 с вариантами оплаты, как только конвейер фасилитатора будет настроен. Этот MCP-сервер начнет автоматически оплачивать запросы, когда увидит код 402 с метаданными x402. До тех пор все запросы бесплатны и проверяемы.

Эталонный агент

Рабочий пример агента, который запрашивает Tradallo перед делегированием капитала: github.com/tradallo/agent.

Спецификации и документация

Журнал изменений

См. CHANGELOG.md.

Лицензия

MIT

Available Tools

5 tools
get_track_recordAInspect

Fetch a verified trading track record for a Tradallo profile (human) or agent. Returns cryptographically-verified statistics (Sharpe, win rate, max drawdown, PnL, trade count) computed from on-chain or in-house-sim trade history. The signature is ed25519-verified against Tradallo's published pubkey before this tool returns.

ParametersJSON Schema
NameRequiredDescriptionDefault
handleYesThe Tradallo handle to look up (e.g. 'aaronjordan' for a human, 'alpha-momentum-v3' for an agent).
principal_typeNoWhether the handle is a human profile or an agent. Defaults to 'agent' (the more common reputation-query use case).

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. It discloses that statistics are cryptographically-verified and signature-verified before return, and mentions computation from on-chain or in-house-sim history. Does not cover potential errors or permissions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no wasted words, front-loaded with purpose and key details.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema, but description lists return values (Sharpe, win rate, etc.) and explains verification process. Missing pagination or rate limits, but adequate for a simple fetch tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema coverage is 100%, with clear descriptions for both parameters. The description adds no extra meaning beyond the schema, so baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool fetches a verified trading track record for a Tradallo profile (human or agent) and lists the statistics returned. It distinguishes from siblings like get_utrs and verify_utr by focusing on track record data.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the tool should be used when a verified track record is needed, but does not explicitly exclude alternatives or provide when-not scenarios. Sibling tools have different purposes, so context is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_utrsAInspect

Fetch raw Universal Trade Receipts for an agent. Each UTR is a v2 canonical receipt with its SHA-256 hash recomputed by Tradallo so consumers can spot-check individual receipts. Paginated cursor-style on closed_at.

ParametersJSON Schema
NameRequiredDescriptionDefault
agent_handleYesThe agent's handle.
sinceNoISO timestamp; only return UTRs closed at or after this. Defaults to the agent's anchor.
limitNoPage size (default 100, max 500).

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It discloses that each UTR's SHA-256 hash is recomputed for spot-checking, and pagination is cursor-style on closed_at. This reveals behavioral traits beyond a simple fetch, though auth requirements and side effects are not mentioned.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences, front-loaded with purpose, followed by relevant detail and pagination. No redundant information, every sentence serves a purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description does not fully explain return format or pagination details like cursor handling. It mentions 'v2 canonical receipt' and hash, but an agent might need more clarity on response structure. Adequate but with gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline is 3. The description adds minimal extra meaning beyond the schema, only implicitly relating closed_at to the 'since' parameter via pagination mention. No further parameter details are provided.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool fetches raw Universal Trade Receipts for an agent, specifies the resource and action, and distinguishes from siblings by mentioning it provides v2 canonical receipts with recomputed SHA-256 hashes. It also notes pagination, setting it apart from other tools like verify_utr.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage by describing the tool's function but lacks explicit guidance on when to use this tool versus its siblings (e.g., get_track_record, verify_utr). No when-not-to-use or alternative suggestions are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_versionsAInspect

Fetch the full version history of an agent (semver tags, version_hash, policy_hash, when each version was deployed and superseded). Useful for understanding which version of an agent's policy produced a given track record. The response is signature-verified.

ParametersJSON Schema
NameRequiredDescriptionDefault
agent_handleYesThe agent's handle.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description covers key behaviors: lists return fields and states response is signature-verified. Lacks explicit mention of idempotency or authentication, but sufficient for a read-only fetch.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two focused sentences, no redundant information, front-loaded with action and resource.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given a single parameter and no output schema, the description covers return fields, verification, and a use case. Could specify if history is limited (e.g., pagination), but 'full version history' implies completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with a clear description for agent_handle. The tool description does not add further information about the parameter beyond what the schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states it fetches full version history with specific fields (semver, hashes, timestamps), distinguishing it from sibling tools that handle track records or UTRs. Includes a use case.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides useful context: 'useful for understanding which version of an agent's policy produced a given track record.' Does not explicitly exclude other uses or name alternatives, but context is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_recordsAInspect

Search verified trading records by performance filters (Sharpe, max drawdown, trade count, venue, principal type). Returns a list of summary records sorted by the chosen metric. Useful for an agent shopping for strategies that meet specific risk/return criteria. The response is signature-verified against Tradallo's published pubkey before being returned.

ParametersJSON Schema
NameRequiredDescriptionDefault
min_sharpeNoMinimum annualized Sharpe ratio.
min_tradesNoMinimum trade count.
max_drawdownNoMaximum drawdown as a fraction (e.g. 0.25 for 25%).
venueNoRestrict to a specific venue (e.g. 'hyperliquid', 'dydx').
principal_typeNo
sort_byNoField to sort results by (descending). Default: net_pnl.
limitNoMax results (default 25, max 100).

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden. It discloses that results are signature-verified, which is a notable behavioral trait. It does not mention authentication, rate limits, or read-only nature, but for a search tool the description is fairly transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences with no wasted words. It front-loads the main action and parameters, then adds usage context and verification detail efficiently.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description could have detailed the return fields. 'List of summary records' is vague. However, parameter coverage and sibling context make it adequate but not complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is high (86%), so the baseline is 3. The description summarizes the filter parameters but adds no new meaning beyond what the schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool searches verified trading records with performance filters and returns sorted summary records. It distinguishes from sibling get/verify tools by focusing on search and filtering.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says it is useful when shopping for strategies meeting risk/return criteria, providing clear usage context. It does not mention when not to use it or compare to siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

verify_utrAInspect

Look up a Universal Trade Receipt by hash. Returns whether Tradallo has anchored that hash on-chain via a Solana memo transaction, and if so, returns the chain, signature, slot, posted_at, explorer URL, and notarizer pubkey so the caller can independently verify the anchor on Solana Explorer. The signed-envelope response is ed25519-verified before this tool returns.

ParametersJSON Schema
NameRequiredDescriptionDefault
utr_hashYesThe 64-char hex SHA-256 UTR hash to look up.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, description fully carries the burden and discloses that the response indicates anchoring status, returns detailed verification fields, and involves ed25519 verification before returning. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences with front-loaded purpose statement and no redundant information; every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Adequately explains return fields for a lookup tool with one parameter, though could mention error handling or format of the boolean result.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Single parameter utr_hash; schema already has a complete description (100% coverage). The description adds no further meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states the tool looks up a Universal Trade Receipt by hash and explains the output structure, distinguishing it from siblings like get_utrs and search_records.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Implies use when you have a UTR hash to verify on-chain anchoring; lacks explicit when-not-to-use or alternatives, but context from sibling names provides some guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 5 tool updatesv0.3.2
    • First observedget_track_record
    • First observedget_utrs
    • First observedget_versions
    • First observedsearch_records
    • First observedverify_utr

TDQS

A4.3/5.0

Scored across 5 tools

Disambiguation5/5

Each tool serves a clear, distinct purpose: fetching a track record, fetching raw receipts, retrieving version history, searching records by filters, and verifying a receipt's on-chain anchor. No two tools overlap in functionality, and descriptions clearly differentiate them.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern (get_track_record, get_utrs, get_versions, search_records, verify_utr), using lowercase with underscores. The naming is predictable and easy to parse.

Tool Count5/5

Five tools is ideal for this domain: they cover the core operations (fetching individual records, listing receipts, version history, search, and verification) without unnecessary bloat. The scope is well-defined and each tool earns its place.

Completeness5/5

The tool set provides a complete surface for querying and verifying trading reputation data: individual track records, raw receipts, version history, search by filters, and cryptographic verification. No obvious gaps exist for a read-only verification service.

Maintenance

ActivityInactive
ResponsivenessUnresponsive

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    MCP server for AI agent identity — verify agents with Ed25519 signatures, check trust scores, sign and verify content, exchange encrypted messages. Built on the Agent Identity Protocol (AIP).
    8
    MIT
  • F
    license
    A
    quality
    C
    maintenance
    Reputation and trust scoring service for AI agents, exposed as an MCP server. Evaluate counterparties, report interactions, issue portable trust certificates, and detect Sybil attacks.
    23
    53 PyPI
    -
  • A
    license
    A
    quality
    B
    maintenance
    An MCP server that bridges ERC-8004 agent identity, reputation, and validation registries into tool calls, enabling discovery, inspection, and verification of on-chain AI agents from any MCP client.
    8
    MIT