Chord

io.github.getchordlabsPublished by GitHub account getchordlabsv1.2.0Updated Oct 24, 2026

Swap quotes + unsigned txs on 8 EVM chains, plus Solana data: boards, candles, wallet PnL. No key.

VerifiedStreamable HTTPWeb executableFinanceData & Analytics

Overview

AI-generated overview

Chord gives an assistant DEX swap quotes, unsigned swap transactions and on-chain trading data across eight EVM chains plus Solana.

What you can do
  • Look up supported chains, their capabilities and live indexing health
  • Search tokens and read token boards, single-token detail, trades and OHLCV candles
  • Review wallets: realised and open PnL, recent swaps, and ranked smart-money wallets
  • Inspect holders and liquidity: holder ledgers, ranked LP pools and a wallet's LP positions
  • Get a best-route swap quote and an unsigned swap transaction with its approval and a taker simulation
  • Ask a plain-language analyst question about markets, tokens, wallets, perps or macro
When to use it
Useful when an assistant needs to research tokens, wallets or liquidity on the supported chains, or to prepare a swap for the user's own wallet to sign. It is a read-and-quote layer rather than a trading bot, since nothing is signed or broadcast.
Requirements
Remote Streamable HTTP endpoint; no install and no API key for the data and swap tools. An API key is needed for the plain-language analyst tool. A chain parameter is passed per call, and a default chain can be pinned in the endpoint URL.
Before you install
The swap transaction tool returns an unsigned transaction, approval and simulation for the user's wallet to sign and broadcast, so review before signing. The analyst tool needs an API key and takes 10 to 60 seconds. Quotes expire after two minutes. Token search can return similar tickers, so compare addresses. Data covers only the chains and venues Chord indexes.

Installation

In SourceWeft

  1. Open Chord in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/io.github.getchordlabs%2Fchord/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "chord": {
      "type": "http",
      "url": "https://api.getchord.xyz/v1/mcp"
    }
  }
}

README

Chord

Non-custodial trading API and AI agent. One quote call finds the best route across the DEXs of eight EVM chains (Ethereum, Monad, Robinhood Chain, Arc, Avalanche, Base, BNB Chain and Arbitrum One), and one router contract executes it in a single transaction. On Solana, Chord quotes swaps through its own Solana router and Jupiter and returns an unsigned transaction for the user's wallet. Next to trading, Chord keeps a live index of swaps, holders, LP positions and wallet PnL on all nine chains, which apps and AI agents can query.

Chord started as NullTerminal, a DEX aggregator on Monad. Contract and package names that start with Null come from that period; the Chord* contracts in contracts/src/chord/ are the current builds of the same code.

The app

Chord is also a trading app, live on iOS (TestFlight) and the web at https://getchord.xyz. The app's code is closed; it trades through the same API and contracts as everything in this repository.

  • Cash: one dollar balance, held as USDG on Robinhood Chain. USDC or USDG can be added from other networks; from Arbitrum it takes one signature.
  • Stocks: 192 of the 195 tokenized stocks on Robinhood Chain, bought and sold from Cash with no gas and no wallet pop-up.
  • Cross-chain trading: the same Cash buys tokens on Arbitrum. The app moves the money; the user never bridges.
  • Perps: long or short from Cash on Lighter's Robinhood Chain exchange, up to 10x, where Lighter offers perps.
  • Earn: Cash into the Morpho USDG vault on Robinhood Chain. Chord takes no fee on it.
  • AI Copilot: a chat pinned to the token on the trading screen. It reads the news, X and on-chain trades, and answers with dated sources (copilot on POST /v1/ask).

Use it from an AI agent

The hosted MCP server needs no key and no install (Streamable HTTP). ?chain=<key> pins a default chain.

bash
claude mcp add --transport http chord https://api.getchord.xyz/v1/mcpgemini extensions install https://github.com/getchordlabs/chord   # Gemini CLI, reads gemini-extension.json

17 tools, each taking a chain: chord_chains, chord_status, chord_overview, chord_tokens, chord_search, chord_token, chord_trades, chord_candles, chord_wallet, chord_wallet_trades, chord_smart_money, chord_holders, chord_lp_pools, chord_lp_positions, chord_quote, chord_swap_tx and chord_ask. Nothing signs or sends: chord_swap_tx returns an unsigned transaction, the approval it needs and a simulation run as the taker.

Listed in the official MCP Registry as io.github.getchordlabs/chord (server.json in this repository) and on Smithery as tuantqse90/chord. Other ways in: the REST API with its OpenAPI spec (openapi/), the Agent Skill (skills/chord/), the Docs MCP at https://getchord.xyz/docs/mcp and the function-calling manifest at https://api.getchord.xyz/v1/mcp/tools.json.

Chains

ChainChain idSwaps (quote + unsigned transaction)Data
Ethereum1yestokens, trades, candles, wallet PnL
Monad143yestokens, trades, candles, wallet PnL, smart money, LP
Robinhood Chain4663yestokens, trades, candles, wallet PnL, smart money, holders, LP
Arc5042yestokens, trades, candles, wallet PnL, smart money, holders, LP
Avalanche C-Chain43114yestokens, trades, candles, wallet PnL
Base8453yestokens, trades, candles, wallet PnL
BNB Chain56yestokens, trades, candles, wallet PnL
Arbitrum One42161yestokens, trades, candles, wallet PnL
Solananoneyes, through /v1/sol/trade/* (not in the MCP tools yet)tokens, trades, candles, wallet PnL, smart traders, LP

GET /v1/chains answers the same table with the route behind each capability (Solana swaps live under /v1/sol/trade/*, outside that table).

What is in this repository

FolderContents
contracts/Foundry project: ChordRouter (UUPS), AdapterRegistry, FeeCollector, one adapter per venue family (Uniswap V2/V3/V4, Algebra and Algebra Integral, Solidly, Liquidity Book, PancakeSwap Infinity, Metric, WOOFi, DODO V2, ERC-4626 deposit, Curve, Balancer and more), RhStockZap / RhTokenZap for cross-chain buys on Robinhood Chain, SwapAndBridgeCCTP, deploy scripts and fork tests per chain
agent/chord-agent: a stdio bridge to the hosted MCP server for clients that only speak stdio, and the function-calling manifest (tools.json)
skills/chord/Agent Skill for Claude Code, Codex and other agents: SKILL.md, references with live API output, chord.py client
docs-mcp/Docs MCP server (stdio, and hosted at https://getchord.xyz/docs/mcp)
openapi/OpenAPI spec of the public API (openapi.json) and the script that builds it
sdk/The original TypeScript SDK from the Monad period

The iOS app, the web app, the API server (TypeScript) and the routing engine (Rust) are not in this repository. They run behind getchord.xyz and api.getchord.xyz.

Contracts

The three proxies sit at the same addresses on all eight EVM chains (aligned deployer nonces):

ContractAddress
ChordRouter (UUPS proxy)0x1b1fee89a381e595fe6536b99ba91f3e16e9601a
AdapterRegistry (UUPS proxy)0x6cf25d2af1a58d7094b0ac253ae616a8e1f2ea3f
FeeCollector (UUPS proxy)0x6c66229675fd9ceda9a9b2ea2bd983b3d8255834

Every adapter pins the router as an immutable and reverts NotRouter for any other caller. The router only calls adapters the registry approves. Fees are set on-chain by FeeCollector.feeBpsFor(outputToken): 5 bps by default on every chain, 0 bps for stablecoins, majors and the listed tokenized stocks on Robinhood Chain.

Robinhood Chain (chain id 4663)

ContractAddress
ChordRouter implementation (upgraded 2026-10-02)0x209e38890533469337488588cB9e4A44943EE8FE
Uniswap V4 adapter0x3622116c527896Ab9C1510A45f3344AaBD03973a
V3 any-fork adapter (Uniswap V3, Ramses and other V3 forks)0x3A7D13a420c8FBC29Bf4A1feDB22A5Dae3A8913E
V2 adapter0xC4b930D9E5d20cc8b4C67f2118FE0cD8E6e36b72
Algebra adapter0x63bd5402aCC3129c9b38c7d52f327b82f24B497D
RhStockZap0x66627Ce32af8801525930B7C2a1Db4905193bb51

Router upgrade on Robinhood Chain: tx 0x9111f311319d778d2b53cce16fe7d471a15e61b8e00bdd08de074a5bcc571aa3.

Arbitrum One (chain id 42161, deployed 2026-10-14)

ContractAddress
ChordRouter implementation0x1cd8CeED960dE0c9787295c8F1BF278D4A36698c
ChordV3Adapter (Uniswap V3, PancakeSwap V3, SushiSwap V3)0xd55fe37e30435cF15fe2C7fcAAF1aBf19d13b195
ChordV2Adapter (Uniswap V2, SushiSwap V2)0xa61C202C4c989a1724E1B432C96A9f064856574d
ChordV4Adapter0xFE82b7714c36083AB518067f03680C59ac57840a
ChordMetricV1Adapter0x4e48D8bEDB4A781493e6193776FDa37e57Ce07b1
ChordAlgebraIntegralAdapter (Camelot V3)0x3D26860E5d5ddE28FDcd11e14573CE7b103fA081
ChordWooFiAdapter0xfdC2e11793197B9D16Ae1eDBa8049dcc9Fc15748
ChordDodoV2Adapter0x3E46e23C171aAC3124D85BbCa33A2C0422342fA4

All verified on Sourcify. Each venue was swapped both ways on mainnet through the router before the engine routed it.

Ethereum (chain id 1, deployed 2026-10-15)

Same addresses as on Arbitrum One for the router implementation and the three core adapters:

ContractAddress
ChordRouter implementation0x1cd8CeED960dE0c9787295c8F1BF278D4A36698c
ChordV3Adapter (Uniswap V3, PancakeSwap V3, SushiSwap V3)0xd55fe37e30435cF15fe2C7fcAAF1aBf19d13b195
ChordV2Adapter (Uniswap V2, SushiSwap V2)0xa61C202C4c989a1724E1B432C96A9f064856574d
ChordV4Adapter0xFE82b7714c36083AB518067f03680C59ac57840a

All 9 contracts of the stack match on Sourcify; every venue was swapped both ways on mainnet before going public.

Build and test

bash
git submodule update --init --recursivecd contractsforge buildforge test --no-match-contract 'ForkTest$'

Since Oct 16, 2026

  • Ask Portfolio: one wallet page over the eight EVM chains and Solana, with 24h / 7d / 30d PnL on one rule and the wallet's activity: GET /v1/portfolio/{wallet} and /activity (a50ab85); the average buy and past exits of every token held, over all indexed history: /positions (38c7020, 4d0d6de).
  • Safety: GET /v1/security/token/{chain}/{address} answers whether a token is safe, and Ask research cites numbered sources (88775a8).
  • AI Copilot: POST /v1/ask takes copilot {chain, token}, a turn about the token on the trading screen (e5a52cb); Robinhood's own stock facts on GET /v1/rh/token/{address} (multiplier, halts, market hours, reference bid and ask, fee) (002c6e5) and the next earnings date (f639c56).
  • Data: one top-traders PnL rule on every chain and a token's LP adds and removes (59f0c87), Markets search over every token traded in 24 h (2911041), hourly candles of a pool's own swaps on every LP chain (5f8e575), open LP positions valued from the chain (584a063), market caps (baad4a3), one wallet's swaps through the router (a4b8811).
  • Docs MCP: words like "to" and "over" no longer decide a search (c8cffad).

Since the buildathon (Oct 5 to Oct 15, 2026)

  • Arbitrum One: aligned Chord stack, deploy script and fork test (edd957a), swaps and the Ask side (c28203c), public on Oct 15 (ca79736).
  • Ethereum: aligned Chord stack, deploy script and fork test (79233bc), swaps and the Ask side (8a46f39), tokens that need approve(0) first such as USDT (69a06af), public on Oct 15 (38b466e).
  • New venues: Metric v1 on Monad and Avalanche (80daf2c, 23bfe8c), ERC-4626 deposit on Monad, which mints aprMON, shMON and gMON at the vault's rate when pools price below it (a41a703), WOOFi (83283af), Camelot V3 through the Algebra Integral adapter (454091c), DODO V2 on Avalanche and Arbitrum (1975d08), LFJ Liquidity Book v2.1 (147f862), and two concentrated-liquidity factories on Arc through ChordV3Adapter r3 (95e65be).
  • Agents: the stdio agent became a bridge to the hosted MCP server (02f7201), wallet trades on every chain (5256c20), Solana data, smart traders and LP routes in the OpenAPI spec and the skill (710b14d, 74957c2, d13d3ef), a docs page per network (0306a08).
  • Solana swaps: Chord's own Solana router and Jupiter in the public docs and the skill (ee2d912), open to everyone on Oct 15 (41b3fdc).

Work done during the Arbitrum Open House Singapore Buildathon (Sep 13 to Oct 4, 2026)

Chord existed before the buildathon. This repository was extracted from our monorepo with its real commit history for these folders, so every commit dated 2026-09-13 or later was made during or after the buildathon (git log --since=2026-09-13). Highlights:

  • ChordRouter: Chord-named implementations of router, registry and fee collector (08dcb96), and a script that upgrades only the router proxy, used on Robinhood Chain, Monad and Arc on Oct 2 (dfb5386).
  • Robinhood Chain cross-chain buys: RhTokenZap, a generic destination zap through the router, and SwapAndBridgeCCTP, swap plus Circle CCTP burn in one call (9814cba).
  • New adapters: UniV2TaxSafeAdapter, priced from what the pair actually received (0dc387b); Uniswap V4 with native USDC on Arc (0cc5ff3); ChordSolidlyAdapter (3775c10, f9a6fae); ChordLBPairAdapter (b3136f1); ChordAlgebraIntegralAdapter (b20d1de); ChordInfinityCLAdapter (95db92d).
  • Agent surfaces: Agent Skill (014875e), Docs MCP (54ffb71), agent tools for Arc, LP and the meta-aggregator (98cd499, d751aeb, ad9f222), OpenAPI spec kept in line with the API (3c4ea54, 5130d2a).
  • Ask wallet on Robinhood Chain (mostly in the closed API and web app, partly here): USDC on Arbitrum converts to USDG on Robinhood Chain with one signature (609f37a), explicit Convert and multi-chain wallet (f2b4244).

License

MIT, see LICENSE. It covers everything in this repository: contracts, agent, skill, Docs MCP, OpenAPI spec and SDK. The submodules in contracts/lib/ keep their own licenses (OpenZeppelin MIT, forge-std MIT or Apache-2.0). Sources verified on-chain before 2026-10-15 still read SPDX-License-Identifier: UNLICENSED; the code is the same and is MIT from that date.

Source: README.md at commit 00c4106

Tools

17

chord_chains

Chains and capabilities

The chains Chord serves, with their native asset, anchors and which capabilities each one has (overview, tokens, trades, candles, wallet PnL, smart money, holders, LP, quote, swap). Call this first when unsure what a chain supports.

Takes no parameters.

chord_status

Chain status

Live health of every chain: routing engine state, how old the newest indexed trade is, and the public status page link.

Takes no parameters.

chord_overview

Chain overview (24h)

A chain's last 24 hours on the venues Chord indexes: volume, swaps, venue share, hourly buckets.

Parameterschainrequired

chord_tokens

Token board

The chain's 24h token board: price, volume, trades, change. Sort names differ by chain; a wrong one is answered with the allowed list.

Parameterssortchainrequiredlimit

chord_token

Token details

One token on one chain: price, 24h volume and trades, pools or venues, and what the index knows about it.

Parameterschainrequiredaddressrequired

chord_trades

Token trades

The newest swaps of a token, with side, size in USD, price, venue and the wallet where it is known.

Parameterschainrequiredlimitaddressrequired

chord_candles

Token candles

OHLCV candles of a token from Chord's own index.

Parameterstfchainrequiredlimitaddressrequired

chord_wallet

Wallet PnL

A wallet's trading result on one chain: realised and open PnL per token. Windows differ by chain and are stated in the answer.

Parameterschainrequiredwalletrequired

chord_wallet_trades

Wallet trades

A wallet's recent swaps on one chain. Not every chain has this; chord_chains says which.

Parameterschainrequiredwalletrequired

chord_smart_money

Smart money board

Wallets ranked by profit on one chain, bots removed. Not every chain has this board.

Parametersdayschainrequiredlimit

chord_holders

Token holders

Holder ledger of a token (balances by address) on the chains that keep one.

Parameterschainrequiredlimitaddressrequired

chord_lp_pools

LP pools

Pools ranked for a liquidity provider: volume, fees, TVL, fee/TVL.

Parameterschainrequiredlimit

chord_lp_positions

LP positions

A wallet's liquidity positions on one chain: range, value, fees, in or out of range.

Parameterschainrequiredwalletrequired

chord_quote

Swap quote

Best swap quote on an EVM chain. Chord's own router answers first; another aggregator only when Chord cannot route. Amounts are integer strings in the token's smallest unit; the zero address is the native asset. Returns a quoteId valid for 2 minutes.

ParameterschainrequiredtakeramountrequiredtokenInrequiredtokenOutrequiredslippageBps

chord_swap_tx

Build swap transaction

The UNSIGNED transaction for a swap, plus the approval it needs and a simulation run as the taker. Nothing is sent: the taker's own wallet signs and broadcasts. Pass a quoteId from chord_quote, or the full parameters.

ParameterschaintakerrequiredamountquoteIdtokenIntokenOutslippageBps

chord_ask

Ask Chord

Ask Chord's analyst a question in plain language (markets, tokens, wallets, perps, macro). Uses many data sources and takes 10 to 60 seconds. Needs an API key.

Parameterswalletquestionrequired

Version history

1
  1. v1.2.0LatestOct 15, 2026

Score

100% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts