Head to head · Exchange market data · October 2026 research run

Bitget vs dYdX

dYdX scores 69.5 (B) on agent readiness against Bitget's 53.9 (D), and leads in 4 of 7 scored categories. Bitget leads on schema & documentation, agent ergonomics and transparency & trust. Both do exchange market data.

Best crypto exchange APIs and MCP servers for AI agents · All 210 exchanges comparisons

Which one, for what

Bitget D

Best for An agent trading spot, futures and earn products in a person's Bitget account outside the prohibited list, with the smallest default MCP surface of the exchanges graded and a paper-trading switch.

Ahead on

  • Schema & documentation, 74 against 58
  • Agent ergonomics, 83 against 66
  • Transparency & trust, 65 against 50

Also in its favour

  • Runs on your own machine

Watch for

Hot and warm wallets lost about 388 million dollars on 24 September 2026 to forged withdrawal commands, and withdrawals were paused until 2 October

dYdX B

Best for An agent trading perpetuals from its own Cosmos wallet or through a permissioned key on an owner's account, outside the US, Canada and UK.

Ahead on

  • Reliability, 83 against 40
  • Security & auth, 78 against 62
  • Payments & pricing, 60 against 40
  • Maintenance & community, 83 against 78

Also in its favour

  • Open source
  • No incidents deducted, where Bitget loses 8 points for them

Watch for

No official MCP server; the one registry entry is a third party's analytics server

Why the edge

Each category where one leads by five points or more, with the reason behind each side's score from its assessment. The numbers are in the table below; this is what they stand for.

Reliability dYdX +43

Bitget 40

Graded with the hosted lines on the UTA v3 API at api.bitget.com. No status page found (status.bitget.com does not resolve, the docs link none), so 0 for the page and 5 for no readable history; the September 2026 breach is in the deduction, not here. Rate limits are published as 6,000 per IP per minute and per-endpoint UID limits by VIP level (15). An x-mbx-used-remain-limit header is documented and the agent SDK backs off on 429, orders take a clientOid of up to 64 characters, but the breach error code and a Retry-After rule were not read (10 of 15). No SLA (0). UTA v3 is the production API (10). 40.

dYdX 83

Read with the hosted lines on the indexer API and the chain endpoints the clients submit to. status.dydx.trade is an Atlassian Statuspage with Frontends, dYdX Chain, Indexer, Order Gateway and Client Libraries components and an RSS history (20). From 1 August to 3 November 2026 the feed has eight items, seven scheduled maintenance windows of 29 minutes to 2 hours (indexer on 9 September, 8 and 15 October, protocol v9.7 on 11 September and v9.8.0 on 12 October, WebSocket compression on 26 and 28 October) and one degraded instant-deposit path through an onboarding partner from 24 to 29 September, outside the trading API. Clean or trivial (30). Rate limits documented with numbers for the indexer, the block limits and the public nodes (15). No 429 shape or Retry-After for the indexer; short-term orders expire by goodTilBlock and client IDs let an agent find an order after a timeout (8 of 15). No SLA (0). Mainnet generally available; the Order Entry Gateway is marked testnet-only (10). 20 + 30 + 15 + 8 + 0 + 10 = 83.

Payments & pricing dYdX +20

Bitget 40

No machine payment protocol (0). Base spot and futures rates are stated in a help article without login, the tier table draws by script (20). Market data needs no key, demo trading costs nothing and no card is asked for at sign-up (20). A person registers, verifies identity and mints the key in a browser (0). 40.

dYdX 60

No machine payment protocol (0). Fees public per tier without login (20). Testnet with a faucet and no card anywhere (20). No signup; an agent with a funded wallet trades, subject to the geographic terms (20). Total 60.

Agent ergonomics Bitget +17

Bitget 83

Read for the API with the MCP server as the agent route. 14 compact tools by default, module filters, a full surface on request and progressive discovery (25). Cursor pagination on CFD order history since 15 October 2026 and limit parameters on lists (15 of 20). Uniform ok or error result shape from the SDK with typed error classes and compact JSON in the text channel (13 of 20). clientOid on orders, dryRun: true on every write, confirm: true gating cancelAll and withdraw, annotations derived from risk level including readOnlyHint, destructiveHint and idempotentHint (18 of 20). Few required fields, official SDKs in five languages plus the TypeScript agent SDK and a CLI (12 of 15). 83.

dYdX 66

An API, read for response sizing. limit on list endpoints, candles by resolution, sparklines by period; the order book comes whole (16 of 25). limit, page on fills, transfers and funding, and height or time cursors (16 of 20). Indexer errors are a status and a sentence; order rejections come back from the chain as transaction results the clients surface (8 of 20). Unique 32-bit client IDs, goodTilBlock expiry on short-term orders, cancel by order ID; no MCP annotations apply (14 of 20). Few required fields with market parameters fetched for unit conversion, and official clients in TypeScript, Python and Rust (12 of 15). Total 66.

Schema & documentation Bitget +16

Bitget 74

The agent SDK ships openapi.yaml with 109 typed UTA v3 operations from which the tools are generated, a machine-readable contract from the vendor's own organisation though not on the docs site (20 of 25). llms.txt in the SDK and MCP repositories; the docs site has none (6 of 10). Intent tools with a discover tool that explains each verb, action and its risk level, and the server's initialize instructions state surface, modules and read-only posture (15 of 20). Typed inputs with enums and required fields from the OpenAPI source (12 of 15). Examples in the quick start and READMEs, a REST error code page in the legacy docs that we did not read in full (9 of 15). Changelog by day with preview notices and effective dates (12 of 15). 74.

dYdX 58

No OpenAPI file found for the indexer; the docs publish a types reference of about 200 pages (OrderSide, TimeInForce, OrderStatus and the rest) and the chain's protobuf messages are in the clients (8 of 25). llms.txt and Markdown docs (10). Endpoint pages describe each call and the guides say when to use short-term against long-term orders and the indexer against the node, but descriptions are short (12 of 20). Enums and types on every field in the reference, with pagination and cursor parameters typed (11 of 15). Examples in Python, TypeScript and Rust for each step; errors are described by HTTP status (400 malformed, 404 not found) with no code list (9 of 15). A /v4 path, protocol releases dated on the status page, deprecated rate-limit fields marked, but no API changelog (8 of 15). Total 58.

Security & auth dYdX +16

Bitget 62

API keys with read or read-and-write permission, a passphrase, HMAC-SHA256 or RSA signing, IP binding recommended, 50 keys per UID, revocation on the management page; no OAuth and no separate withdrawal scope in the docs read (22 of 30). --read-only strips write tools at start, --paper-trading routes to demo, and high-risk writes need confirm: true (18 of 20). Tools return the exchange's own data (10). Request and response hooks are forwarded as MCP log notifications; no per-call audit log on Bitget's side was found (6 of 15). security@bitget.com in the toolkit README, no security.txt, Mandiant and SlowMist reports on the September breach, a proof-of-reserves repository, no bounty page read (6 of 20). 62.

dYdX 78

Orders are signed by the account key or by a permissioned key the owner adds as an authenticator, limited by message type, subaccount and market with AllOf or AnyOf, and revoked by remove_authenticator; no shared secret and nothing in a URL (28 of 30). A key can be confined to placing and cancelling orders on one subaccount with withdrawals and transfers excluded, though not to a position or order size, and the interface's default API wallet trades all cross-margin pairs (16 of 20). The API returns no untrusted content (10). Every action is a chain transaction and the indexer lists fills, orders and transfers per subaccount, and authenticators can be listed; no per-key log (10 of 15). A Cantina bug bounty up to $1,000,000 sponsored by dYdX Trading Inc. over the protocol, indexer, web client and SDKs, an Informal Systems audit; no security.txt and no certification (14 of 20). Total 78.

Transparency & trust Bitget +15

Bitget 65

The editorial half. A closed hosted service with clear terms naming BTG Technology Holdings Limited; the toolkit is MIT (15 of 30). The privacy notice names the controller and EEA representative, gives 7-year and up to 10-year retention for compliance and litigation, and names recipients by category only (18 of 30). Deprecations and parameter changes carry effective dates (delta mode deprecated 27 August, symbol and category required from 30 September, snapshot changes with demo and live dates) but no written policy (15 of 20). Recipients by category, transfers under Seychelles law with no locations or provider names (5 of 20). 53.

dYdX 50

The editorial half. Clients AGPL-3.0 with a terms-bound use condition, the chain under a custom licence, two terms documents (dYdX Trading Inc.'s v4 terms of 12 March 2026 and dYdX International Ltd's of 6 June 2025) that are clear about who runs nothing (22 of 30). The privacy policy of 6 June 2025 names dYdX International Ltd, keeps technical data until no longer necessary with no periods, and names no subprocessors; nothing covers the unnamed indexer operator (12 of 30). Protocol upgrades and the WebSocket compression change were posted as dated maintenance notices, deprecated rate-limit fields are marked, but no deprecation policy or notice period is stated (10 of 20). The policy says data may be processed in the EEA and elsewhere, with no subprocessor list (6 of 20). Total 50.

Score by category

CategoryWeight this runBitgetdYdXEdge
Reliability16%204083dYdX +43
Performance10%pendingpendingpendingnot scored in this run
Schema & documentation13%16.27458Bitget +16
Agent ergonomics13%16.28366Bitget +17
Security & auth14%17.56278dYdX +16
Payments & pricing10%12.54060dYdX +20
Task success10%pendingpendingpendingnot scored in this run
Maintenance & community7%8.87883dYdX +5
Transparency & trust7%8.86550Bitget +15
Negative events≤15-80
TotalD 53.9/100B 69.5/100

Facts side by side

FactBitgetdYdX
KindHTTP APIHTTP API
VendorBTG Technology Holdings LimiteddYdX Trading Inc.
Hosted endpointno (local only)no (local only)
Transportsstdio
AuthAPI keyOAuth or key
PricingPay per usePay per use
x402nono
LicencenoneThe clients are AGPL-3.0 with a use condition tied to the v4 Terms of Use; the chain software (dydxprotocol/v4-chain) carries a custom licence GitHub cannot classify. The hosted indexer at indexer.dydx.trade and the front end are run by third parties, not dYdX Trading Inc.
Tools exposed140
Read-only variant documentedyesno
llms.txtnoyes
MCP registryio.github.Bitget-AI/bitget-agent-mcpnot listed
Last release2026-10-302026-10-29
Terms last updated2026-10-202026-03-12
Privacy policy last updated2025-12-052025-06-06
Customer content may train modelsnot found in the textnot found in the text
Terms restrict automated accessyesnot found in the text
Terms restrict benchmarkingnot found in the textnot found in the text
Terms or service can change without noticeyesyes
Arbitration or class-action waiveryesyes
Popularity234 stars119 stars, 86k npm/wk

Verdicts

Bitget

Bitget's official MCP server keeps the default surface to 14 intent tools with discovery, read-only and paper-trading switches, dry runs and a confirmation gate on withdrawals, over an API with demo trading. A 388 million dollar wallet breach in September 2026 paused withdrawals for eight days, and there is no status page, SLA or readable fee table.

dYdX

dYdX gives an agent keyless indexer reads, permissioned keys limited by message type, subaccount and market, a Statuspage with a clean 90 days, published fees and a testnet with a faucet. There is no official MCP server or OpenAPI file, orders are chain transactions signed by the clients, and no one entity operates the hosted endpoints.

Before you call either

Bitget

  1. Run npx -y @bitget-ai/bitget-agent-mcp --read-only for research and --paper-trading with a demo key before any live order; the two flags cannot be combined
  2. Call discover({}) first, then the intent verbs; add dryRun: true to any write to preview it, and pass confirm: true only after the person has agreed to a withdraw or cancelAll
  3. Send a unique clientOid of at most 64 characters on every order and reuse it on retry; orderId wins when both are sent
  4. Stay under 10 requests a second per endpoint on a new account and 6,000 a minute per IP; the SDK retries on 429, so do not add a second retry loop
  5. Bind the key to an IP and keep write permission off a research key; the docs read show no separate withdrawal scope

dYdX

  1. Ask the account owner for an authenticator limited to /dydxprotocol.clob.MsgPlaceOrder and MsgCancelOrder on one subaccount, and keep its private key out of prompts
  2. Set a unique 32-bit clientId on every order and look it up on /v4/orders after a timeout; short-term orders expire with goodTilBlock (at most 20 blocks ahead)
  3. Stay under 2 stateful orders a block and 20 per 100 blocks; failed placements count, so use short-term orders for active trading
  4. Enable permessage-deflate on the indexer WebSocket; since 26 October 2026 connections without compression may be refused with 426
  5. Check /v4/geo and the compliance screen before trading for a person, since the terms exclude the United States, Canada and the United Kingdom

Questions

Which is better for AI agents, Bitget or dYdX?

dYdX scores 69.5 (B) on agent readiness against Bitget's 53.9 (D), and leads in 4 of 7 scored categories. Bitget leads on schema & documentation, agent ergonomics and transparency & trust.

Do Bitget and dYdX need an API key?

Bitget needs an API key. dYdX takes an API key or an OAuth sign-in.

Can an agent call Bitget and dYdX without installing anything?

Bitget runs on your own machine, with no hosted endpoint listed. No hosted endpoint is listed for dYdX.

Are Bitget and dYdX open source?

No open-source release is listed for Bitget. dYdX is open source (The clients are AGPL-3.0 with a use condition tied to the v4 Terms of Use; the chain software (dydxprotocol/v4-chain) carries a custom licence GitHub cannot classify. The hosted indexer at indexer.dydx.trade and the front end are run by third parties, not dYdX Trading Inc.).

Other comparisons with Bitget or dYdX

Machine-readable

For companies

Do agents find, use and choose your tools?

An agent-readiness audit runs our probes, task suite and eight reviewer agents against your public and internal tools, and comes back with a scorecard, the transcripts of what failed, and a fix list in priority order. From $2,500, re-run included. We never take payment to move a rank. We do help companies earn one.