{
  "data": {
    "a": {
      "slug": "gemini-exchange",
      "name": "Gemini Exchange API",
      "vendor": "Gemini Trust Company, LLC",
      "vendorUrl": "https://developer.gemini.com",
      "kind": "http-api",
      "category": "crypto-exchanges",
      "summary": "Gemini's exchange API for spot, margin, perpetuals, prediction markets and staking, through REST, WebSocket and FIX, with API key roles or OAuth, plus an official MCP server and SDKs from its developer-platform repository.",
      "url": "https://www.anchorterminal.com/tools/gemini-exchange",
      "markdownUrl": "https://www.anchorterminal.com/tools/gemini-exchange.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/gemini-exchange.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/gemini-exchange.json",
      "dns": "gemini-exchange.grade.anchorterminal.com",
      "repo": "https://github.com/gemini/developer-platform",
      "license": "Proprietary hosted API under Gemini's user agreement. The developer-platform repository (MCP server, TypeScript and Go SDKs, samples and skills) is Apache-2.0",
      "transports": [
        "stdio"
      ],
      "packages": [
        {
          "registry": "npm",
          "name": "@gemini-markets/sdk"
        }
      ],
      "auth": "mixed",
      "authNotes": "API key and secret made at exchange.gemini.com/settings/api after a browser signup with identity checks, sent as X-GEMINI-APIKEY, X-GEMINI-PAYLOAD (base64 JSON with a nonce) and X-GEMINI-SIGNATURE (HMAC-SHA384). Keys carry one role, Trader by default, Fund Manager for withdrawals and transfers, Auditor read-only, Administrator for master keys only, and a `master-` key reaches subaccounts. A key can require a heartbeat that cancels its session's orders after 30 seconds of silence. OAuth 2.0 (authorisation code, PKCE S256 for public clients, 24-hour access tokens, single-use refresh tokens, RFC 7009 revocation) is open in the sandbox at once and reviewed by Gemini before production. No IP allow-list was found in the docs (https://developer.gemini.com/roles, https://developer.gemini.com/authentication/api-key, https://developer.gemini.com/authentication/oauth, checked 2026-11-03).",
      "pricing": "usage",
      "pricingNotes": "The API itself costs nothing. Trades pay the API fee schedule, effective 1 September 2026, 0.600% maker and 1.200% taker at the base tier (under $10,000 of 30-day volume), falling to 0.000% maker and 0.020% taker above $250M. Stablecoin pairs 0.00% maker and 0.01% taker. Derivatives from 0.02% maker and 0.07% taker, charged in GUSD. Liquidations 0.5%. The sandbox at api.sandbox.gemini.com credits each new account with test funds and needs no card (https://www.gemini.com/fees/api-fee-schedule, https://developer.gemini.com/get-started/sandbox, checked 2026-11-03).",
      "priceSummary": "0.6% fee",
      "where": "local",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the developer docs, llms.txt, agents.md, the OpenAPI catalogue or the fee schedule (checked 2026-11-03). Trading fees are taken from the account; onboarding is a browser signup.",
        "endpoints": []
      },
      "toolCount": 87,
      "popularity": {
        "githubStars": 8,
        "npmWeekly": 99,
        "pypiWeekly": null,
        "asOf": "2026-11-03"
      },
      "docsUrl": "https://developer.gemini.com",
      "llmsTxt": "https://developer.gemini.com/llms.txt",
      "openapi": "https://developer.gemini.com/specs/openapi/rest.yaml",
      "capabilities": [
        "exchange.market-data",
        "exchange.spot-trading",
        "exchange.derivatives",
        "exchange.balances",
        "exchange.transfers",
        "exchange.staking",
        "market.crypto"
      ],
      "tags": [
        "official",
        "hosted",
        "api-key",
        "oauth",
        "mcp",
        "llms-txt",
        "openapi",
        "sandbox",
        "status-page",
        "bug-bounty",
        "typescript",
        "go",
        "usage-priced"
      ],
      "lastRelease": "2026-10-28",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 74.6,
        "grade": "BB",
        "agentReady": true,
        "rank": 70,
        "ranked": true,
        "rankOf": 1349,
        "categoryRank": 1,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 79,
          "maintenance": 88,
          "payments": 40,
          "reliability": 73,
          "schema": 88,
          "security": 78,
          "transparency": 75
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-11-03"
        },
        "negative": 0,
        "verdict": "Gemini publishes an OpenAPI and AsyncAPI contract, API key roles that keep withdrawals off a trading key, a funded sandbox, and an official MCP server whose tools carry read-only and destructive annotations and a confirm gate. Client order ids are not checked for duplicates, there is no SLA, and UK, EEA and Australian accounts closed in April 2026.",
        "bestFor": "An agent trading spot, perpetuals or prediction markets for a US customer with a role-limited key and a sandbox to rehearse on.",
        "strengths": [
          "Key roles enforce least privilege, since Trader cannot withdraw, Fund Manager cannot trade, Auditor is read-only, and a 403 `MissingRole` names the role an endpoint needs",
          "Official MCP server with readOnlyHint and destructiveHint on every tool, a `confirm: true` gate on funds-moving tools, untrusted-output framing and redaction of free-text fields",
          "OpenAPI 3 and AsyncAPI files, llms.txt, llms-full.txt, agents.md, an agent card and an error-codes page with 53 named reasons",
          "A sandbox with the same REST, WebSocket and FIX surfaces, test balances on signup and a documented 2FA bypass for automated tests",
          "Fee schedule published per tier without login, and a Statuspage feed with component-level incidents"
        ],
        "weaknesses": [
          "Client order ids are only recommended to be unique and no duplicate rejection is documented, so a retried order can execute twice",
          "No Retry-After, backoff guidance or SLA; 429 continues until the rate drops, and the upcoming-changes page reads \"TBD\"",
          "The MCP server lists 87 tools with no toolset or read-only subset switch, which costs context on every session",
          "The hosted MCP address in the repository's plugin manifest is on no docs page and gave no complete answer to a GET",
          "Accounts in the United Kingdom, the EEA and Australia closed on 6 April 2026, and the availability page still lists those countries"
        ],
        "agentNotes": [
          "Create a Trader key for order flow and a separate Fund Manager key only if withdrawals are in scope; never combine them, and keep the secret out of prompts and logs",
          "Set a `client_order_id` per order and look it up with `get_order_status` before resending after a timeout, because Gemini does not reject duplicates",
          "Start on api.sandbox.gemini.com with the same code; sandbox apps register at once, production OAuth apps wait for Gemini's review",
          "Stay under 1 public and 5 private requests a second; a 429 keeps answering 429 until the rate falls, with no Retry-After to read",
          "Check the person's country against the availability page first; UK, EEA and Australian accounts were closed on 6 April 2026"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "BB",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 74.6
          }
        ],
        "editorialScores": {
          "ergonomics": 79,
          "maintenance": 88,
          "payments": 40,
          "reliability": 73,
          "schema": 88,
          "security": 78,
          "transparency": 54
        },
        "provenanceScore": 95,
        "checked": {
          "categories": {
            "ergonomics": "2026-11-03",
            "maintenance": "2026-11-03",
            "payments": "2026-11-03",
            "reliability": "2026-11-03",
            "schema": "2026-11-03",
            "security": "2026-11-03",
            "transparency": "2026-11-03"
          },
          "last": "2026-11-03",
          "oldest": "2026-11-03",
          "stale": false,
          "staleAfterDays": 90
        }
      },
      "connect": {
        "install": "npm install @gemini-markets/sdk",
        "http": "curl https://api.gemini.com/v1/pubticker/btcusd",
        "claudeCode": "claude mcp add gemini -s user -e GEMINI_API_KEY=your_key -e GEMINI_API_SECRET=your_secret -- node /absolute/path/to/mcp-server/dist/index.js",
        "config": {
          "mcpServers": {
            "gemini": {
              "args": [
                "/absolute/path/to/mcp-server/dist/index.js"
              ],
              "command": "node",
              "env": {
                "GEMINI_ACCOUNT": "primary",
                "GEMINI_API_KEY": "your_api_key_here",
                "GEMINI_API_SECRET": "your_api_secret_here",
                "GEMINI_WS_URL": "wss://ws.gemini.com"
              }
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/exchange.market-data",
        "tool": "https://letme.dev/gemini-exchange"
      },
      "area": "payments",
      "unitPrices": [
        {
          "item": "Spot maker fee, base tier (under $10,000 of 30-day volume)",
          "unit": "pct",
          "usd": 0.6,
          "note": "API fee schedule effective 1 September 2026"
        },
        {
          "item": "Spot taker fee, base tier",
          "unit": "pct",
          "usd": 1.2,
          "note": "falls to 0.02% above $250M of 30-day volume"
        },
        {
          "item": "Derivatives taker fee, base tier",
          "unit": "pct",
          "usd": 0.07,
          "note": "maker 0.02%, charged in GUSD"
        }
      ],
      "provenance": {
        "legalEntity": "Gemini Trust Company, LLC",
        "domain": "gemini.com",
        "domainRegistered": "1994-02-14",
        "endpointOnVendorDomain": true,
        "terms": "https://www.gemini.com/legal/user-agreement",
        "privacy": "https://www.gemini.com/legal/privacy-policy",
        "statusPage": "https://status.gemini.com",
        "changelog": "https://developer.gemini.com/changelog/revision-history",
        "securityTxt": "valid",
        "checked": "2026-11-03",
        "notes": [
          "The user agreement page of 19 February 2026 names Gemini Trust Company, LLC and Gemini Moonbase, LLC by state of residence; the privacy policy of 11 May 2026 lists the affiliates by region. The SEC's submissions record names the parent Gemini Space Station, Inc., Nasdaq GEMI.",
          "RDAP gives gemini.com a registration date of 14 February 1994.",
          "https://www.gemini.com/.well-known/security.txt is a PGP-signed file with Contact psirt@gemini.com, a bug bounty policy with payouts from $150 to $20,000 and a sandbox-only scope, but no Expires line.",
          "www.gemini.com/robots.txt allows the pages read and sets Crawl-delay 600; developer.gemini.com and status.gemini.com allow all (the status site disallows /api/ and /embed/, so the history feed was read, not the incidents API). support.gemini.com answered 403 to an article fetch.",
          "status.gemini.com is a Statuspage site with an Atom history feed."
        ],
        "score": 95
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/gemini-exchange.json",
      "live": {
        "slug": "gemini-exchange",
        "vendorStatus": {
          "page": "https://status.gemini.com",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-11-04T21:25:54.113313129Z"
        },
        "versions": [
          {
            "registry": "npm",
            "name": "@gemini-markets/sdk",
            "version": "0.1.1",
            "seenAt": "2026-11-04T20:18:02.796959315Z"
          }
        ],
        "githubStars": 8,
        "npmWeekly": 105,
        "securityTxt": {
          "url": "https://gemini.com/.well-known/security.txt",
          "state": "valid",
          "checkedAt": "2026-11-04T15:53:25.749980755Z"
        },
        "updatedAt": "2026-11-04T21:25:54.113313129Z"
      }
    },
    "answer": "Gemini Exchange API scores 74.6 (BB) on agent readiness against Hyperliquid's 50 (D), and leads in 6 of 7 scored categories. Hyperliquid leads on payments \u0026 pricing.",
    "b": {
      "slug": "hyperliquid",
      "name": "Hyperliquid",
      "vendor": "Hyperliquid Labs",
      "vendorUrl": "https://hyperliquid.xyz",
      "kind": "http-api",
      "category": "crypto-exchanges",
      "summary": "Hyperliquid is a perpetuals and spot exchange whose order book runs on its own chain. Agents trade through the REST info and exchange endpoints and WebSocket at api.hyperliquid.xyz, signing with a wallet key or an approved API wallet.",
      "url": "https://www.anchorterminal.com/tools/hyperliquid",
      "markdownUrl": "https://www.anchorterminal.com/tools/hyperliquid.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/hyperliquid.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/hyperliquid.json",
      "dns": "hyperliquid.grade.anchorterminal.com",
      "repo": "https://github.com/hyperliquid-dex/hyperliquid-python-sdk",
      "license": "The exchange runs on the Hyperliquid chain (HyperCore), whose node is distributed as a binary under an Apache-2.0 repository; the Python and Rust SDKs are MIT. The API servers and front end are closed",
      "transports": [],
      "packages": [
        {
          "registry": "pypi",
          "name": "hyperliquid-python-sdk"
        }
      ],
      "auth": "mixed",
      "authNotes": "No API keys. Every exchange action is a signed message from an EVM wallet; info requests need no signature. A master account approves API wallets (agent wallets) with `approveAgent`, optionally named and with an expiry, which can only sign on its behalf and cannot query data. L1 actions (orders, cancels, margin settings) and user-signed actions (USDC and spot sends, withdrawals, approvals) use two different EIP-712 schemes, and the docs recommend an SDK for signing. Nonces are per signer, must sit within two days behind and one day ahead of block time, and sub-accounts signed by one API wallet share its nonce set (https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/nonces-and-api-wallets.md, checked 2026-11-03).",
      "pricing": "usage",
      "pricingNotes": "The API has no charge. Base-tier fees are 0.045% taker and 0.015% maker on perpetuals and 0.070% taker and 0.040% maker on spot, assessed on rolling 14-day volume, falling to 0.024% taker and 0% maker above $7 billion, with maker rebates to -0.003% for large maker share and staking discounts of 5% to 40%. Withdrawals to the bridge cost $1; an activation gas fee applies to a first order. `reserveRequestWeight` buys extra rate limit at 0.0005 USDC a request (https://hyperliquid.gitbook.io/hyperliquid-docs/trading/fees.md, checked 2026-11-03).",
      "priceSummary": "0.04% fee",
      "where": "local",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the API docs (checked 2026-11-03). Accounts are funded by depositing USDC on Arbitrum or other bridged chains; several third-party MCP servers in the registry sell Hyperliquid data by x402, none of them Hyperliquid's.",
        "endpoints": []
      },
      "toolCount": 0,
      "popularity": {
        "githubStars": 1873,
        "npmWeekly": null,
        "pypiWeekly": 167497,
        "asOf": "2026-11-03"
      },
      "docsUrl": "https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api",
      "llmsTxt": "https://hyperliquid.gitbook.io/hyperliquid-docs/llms.txt",
      "capabilities": [
        "exchange.derivatives",
        "exchange.spot-trading",
        "exchange.market-data",
        "exchange.balances",
        "exchange.transfers",
        "exchange.staking",
        "market.crypto",
        "wallet.onchain"
      ],
      "tags": [
        "official",
        "hosted",
        "closed-source",
        "llms-txt",
        "python",
        "rust",
        "sandbox",
        "usage-priced",
        "no-key",
        "no-status-page",
        "bug-bounty",
        "rest"
      ],
      "lastRelease": "2026-06-04",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 50,
        "grade": "D",
        "agentReady": false,
        "rank": 966,
        "ranked": true,
        "rankOf": 1349,
        "categoryRank": 19,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 70,
          "maintenance": 39,
          "payments": 55,
          "reliability": 40,
          "schema": 42,
          "security": 64,
          "transparency": 26
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-11-03"
        },
        "negative": 0,
        "verdict": "Hyperliquid's API needs no signup or key, an approved API wallet can trade but not withdraw, fees and rate limits are published with numbers, and a testnet mirrors mainnet. There is no official MCP server, OpenAPI file, status page, changelog or readable terms, and signing uses two schemes the docs say to leave to an SDK.",
        "bestFor": "An agent trading perpetuals or spot on chain from its own wallet with no account, or acting for a master account through an approved API wallet.",
        "strengths": [
          "API wallets approved by the master account can only sign trading actions; withdrawals and external transfers need the user's own key",
          "Numeric rate limits per IP and per address, with weights per request type and a paid `reserveRequestWeight` top-up",
          "Fees published per tier from 0.045% taker and 0.015% maker on perpetuals, with maker rebates and staking discounts",
          "A testnet at api.hyperliquid-testnet.xyz with the same API and a faucet of 1,000 mock USDC for addresses that have deposited on mainnet",
          "Client order IDs (`cloid`), `expiresAfter`, `noop` and a `scheduleCancel` dead man's switch for safe retries"
        ],
        "weaknesses": [
          "No official MCP server; the 23 registry entries are all third parties, several selling data by x402",
          "No OpenAPI file, no changelog, no API versioning and no status page found",
          "The terms of use and privacy policy at app.hyperliquid.xyz draw by script and hyperliquid.xyz/terms answered 403, so the restricted jurisdictions are unchecked",
          "Order errors are message strings without codes, and the docs give no 429 or Retry-After guidance beyond one request every 10 seconds when limited",
          "The official Python SDK is marked Alpha, last released 4 June 2026, with 112 open issues"
        ],
        "agentNotes": [
          "Generate a fresh API wallet, approve it with `approveAgent` with a name and expiry, sign with it, and query with the master address, never the agent address",
          "Use the Python SDK's `sign_l1_action` and `sign_user_signed_action`; mixing the two, field order in msgpack or an uppercase address gives \"User or API Wallet ... does not exist\"",
          "Set a `cloid` on every order and read the per-order `statuses` array; one batch-level error rejects the whole batch",
          "Budget address limits by volume (one action per 1 USDC traded after 10,000); batch orders to lower IP weight, and use WebSocket for data",
          "Arm `scheduleCancel` before unattended trading so open orders are cancelled if the agent stops"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "D",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 50
          }
        ],
        "editorialScores": {
          "ergonomics": 70,
          "maintenance": 39,
          "payments": 55,
          "reliability": 40,
          "schema": 42,
          "security": 64,
          "transparency": 20
        },
        "provenanceScore": 32,
        "checked": {
          "categories": {
            "ergonomics": "2026-11-03",
            "maintenance": "2026-11-03",
            "payments": "2026-11-03",
            "reliability": "2026-11-03",
            "schema": "2026-11-03",
            "security": "2026-11-03",
            "transparency": "2026-11-03"
          },
          "last": "2026-11-03",
          "oldest": "2026-11-03",
          "stale": false,
          "staleAfterDays": 90
        }
      },
      "connect": {
        "install": "pip install hyperliquid-python-sdk",
        "http": "curl -X POST https://api.hyperliquid.xyz/info -H 'Content-Type: application/json' -d '{\"type\":\"l2Book\",\"coin\":\"BTC\"}'"
      },
      "letme": {
        "capability": "https://letme.dev/exchange.derivatives",
        "tool": "https://letme.dev/hyperliquid"
      },
      "area": "payments",
      "unitPrices": [
        {
          "item": "Perpetuals taker fee, tier 0",
          "unit": "pct",
          "usd": 0.045,
          "note": "0.045% of notional; maker 0.015%"
        },
        {
          "item": "Spot taker fee, tier 0",
          "unit": "pct",
          "usd": 0.07,
          "note": "0.070% of notional; maker 0.040%"
        },
        {
          "item": "Bridge withdrawal",
          "unit": "tx",
          "usd": 1,
          "note": "$1 per withdrawal to the bridge contract"
        }
      ],
      "provenance": {
        "legalEntity": "",
        "domain": "hyperliquid.xyz",
        "domainRegistered": "2022-10-15",
        "endpointOnVendorDomain": true,
        "terms": "https://app.hyperliquid.xyz/terms",
        "privacy": "",
        "statusPage": "",
        "changelog": "",
        "securityTxt": "unknown",
        "checked": "2026-11-03",
        "notes": [
          "No legal entity found on a readable page. The docs name Hyperliquid Labs (self-funded) and the Hyper Foundation (bug bounty); app.hyperliquid.xyz/terms and hyperfoundation.org draw by script and hyperliquid.xyz/terms answered 403.",
          "RDAP gives hyperliquid.xyz a registration date of 15 October 2022, registrar Squarespace Domains.",
          "No status page found; status.hyperliquid.xyz did not resolve and the docs link none. No changelog; the docs have no dated release notes.",
          "https://hyperliquid.xyz/.well-known/security.txt answered 403, so security.txt is unknown. The docs' bug bounty page gives bugbounty@hyperfoundation.org.",
          "hyperliquid.gitbook.io/robots.txt allows everything with Content-Signal ai-input=yes; hyperliquid.xyz/robots.txt allows everything."
        ],
        "score": 32
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/hyperliquid.json",
      "live": {
        "slug": "hyperliquid",
        "versions": [
          {
            "registry": "github",
            "name": "hyperliquid-dex/hyperliquid-python-sdk",
            "version": "0.24.0",
            "released": "2026-06-04",
            "seenAt": "2026-11-04T20:25:22.19916859Z"
          },
          {
            "registry": "pypi",
            "name": "hyperliquid-python-sdk",
            "version": "0.24.0",
            "released": "2026-06-04",
            "seenAt": "2026-11-04T20:25:21.979453168Z"
          }
        ],
        "githubStars": 1876,
        "pypiWeekly": 167497,
        "securityTxt": {
          "url": "https://hyperliquid.xyz/.well-known/security.txt",
          "state": "unknown",
          "checkedAt": "2026-11-04T15:54:05.956872316Z"
        },
        "updatedAt": "2026-11-04T20:25:22.19916859Z"
      }
    },
    "edges": [
      {
        "by": 49,
        "category": "maintenance",
        "leads": "gemini-exchange",
        "name": "Maintenance \u0026 community",
        "reasons": {
          "a": "Read as a closed hosted service with an open repository. The revision history's latest entry is 28 October 2026 and the repository was pushed on 5 October (30). Thirteen dated entries between 2 September and 28 October 2026 (20). The nine open items on the repository are all pull requests with replies, Dependabot included, and the docs name trading@gemini.com for developer support; no public issue tracker was tested (15 of 25). Not in the official MCP registry, but current official SDKs, TypeScript 0.1.1 of 23 September and Go 0.1.0 of 29 August 2026 (15). CI workflows validate and publish both SDKs and the MCP server has tests; dependencies are current (8 of 10). 30 + 20 + 15 + 15 + 8 = 88.",
          "b": "Read as a closed hosted service with open SDKs. The API has no dated changelog, so the last dated change is the Python SDK's 0.24.0 on 4 June 2026, 152 days before this check; the node repository was pushed on 10 August 2026 and the docs describe newer actions (HIP-4 outcome markets, borrow and lend) without dates. Judgement call (10 of 30). No three dated releases in 90 days (0). Support through Discord and the docs' FAQ, 112 open issues on the SDK whose replies couldn't be read (8 of 25). Official Python and Rust SDKs, the Rust one last pushed 21 October 2025; no MCP registry entry (15). CI on Python 3.9 and 3.13 with Poetry, Dependabot badge, a lock file (6 of 10). Total 39."
        },
        "scores": {
          "a": 88,
          "b": 39
        }
      },
      {
        "by": 49,
        "category": "transparency",
        "leads": "gemini-exchange",
        "name": "Transparency \u0026 trust",
        "reasons": {
          "a": "The editorial half. A closed service under a user agreement that names its entities by state, with the MCP server and SDKs open under Apache-2.0 (18 of 30). The privacy policy of 11 May 2026 names entities and processing countries, ties retention to need without numbers and names provider categories only, with no DPA or subprocessor list found (16 of 30). The revision history records removals and type changes with dates, but the upcoming-changes page is \"TBD\" and no notice period is stated (8 of 20). Processing countries are named (US, Ireland, UK, Malta, Singapore, Australia) and providers by category, with no named subprocessors (12 of 20). 18 + 16 + 8 + 12 = 54.",
          "b": "The editorial half. The SDKs are MIT and the node repository Apache-2.0 with a Dockerfile around a binary; the API servers and front end are closed and the terms were unreadable (12 of 30). No privacy policy read and nothing in the docs on data handling (0 of 30). Deprecated actions are marked in the docs without dates or a policy (8 of 20). No subprocessors or data locations (0 of 20). Total 20."
        },
        "scores": {
          "a": 75,
          "b": 26
        }
      },
      {
        "by": 46,
        "category": "schema",
        "leads": "gemini-exchange",
        "name": "Schema \u0026 documentation",
        "reasons": {
          "a": "OpenAPI 3 for REST (specs/openapi/rest.yaml), AsyncAPI for WebSocket, a prediction-markets OpenAPI file and a specs/index.json catalogue; the MCP server's tools take zod schemas published as JSON Schema (25). llms.txt, llms-full.txt, agents.md, an agent card and an agent skills index (10). Endpoint pages state purpose, the Build an agent guide says what to establish before acting and when to stop, and MCP tool descriptions tell the model when to confirm; the docs don't say when not to use an endpoint (15 of 20). Typed inputs with enums for order types, options and sessions, required fields marked, decimals as strings since 7 July 2026 (12 of 15). Examples throughout, samples in three languages, and an error-codes page with 53 named reasons and their HTTP statuses (14 of 15). A revision history dated from 2015 to 28 October 2026 and versioned paths (v1, v2), but the upcoming-changes page reads \"TBD\" (12 of 15). 25 + 10 + 15 + 12 + 14 + 12 = 88.",
          "b": "No OpenAPI or other machine-readable contract; request and response shapes are tables and JSON examples in the docs (0 of 25). llms.txt and a Markdown twin of every page by appending .md (10). Each info type and exchange action has a short description of what it does, and the signing page lists common mistakes, but little says when to use one call over another (12 of 20). Fields are one-letter keys (`a`, `b`, `p`, `s`, `r`, `t`, `c`) with numbers as strings, enums such as `tif` Alo, Ioc or Gtc, and required fields marked in tables (9 of 15). An example for every call and a list of order and cancel error strings, with no HTTP error table (11 of 15). No API version, no changelog and no dated release notes; deprecated actions such as `userDexAbstraction` are marked in place (0 of 15). Total 42."
        },
        "scores": {
          "a": 88,
          "b": 42
        }
      },
      {
        "by": 33,
        "category": "reliability",
        "leads": "gemini-exchange",
        "name": "Reliability",
        "reasons": {
          "a": "Read with the hosted lines on the REST API at api.gemini.com. status.gemini.com is a Statuspage site with component history (20). Its Atom feed for 10 September to 3 November 2026 holds 25 entries, mostly scheduled trading and FIX upgrades of 15 to 60 minutes with possible order timeouts, single-network deposit delays, and incorrect perpetual index prices for about 3.5 hours on 15 and 16 October; a 3-hour scheduled eOTC window was planned and outside the core API. Minor only (20). Rate limits with numbers, 120 a minute public and 600 private plus per-endpoint limits (15). 429 is documented but with no Retry-After or backoff guidance, and client order ids are recommended without duplicate rejection, so retries are not safe by contract; the heartbeat cancel is a safety net rather than idempotency (8 of 15). No SLA found (0). Generally available (10). 20 + 20 + 15 + 8 + 0 + 10 = 73.",
          "b": "Read with the hosted lines on the REST API at api.hyperliquid.xyz, the surface an agent calls; the chain behind it is noted under details. No status page found in the docs, on hyperliquid.xyz or at status.hyperliquid.xyz, which did not resolve (0). No readable history (5). Rate limits documented with numbers per IP, per address and per WebSocket connection (15). When limited, an address gets one request every 10 seconds; no 429 shape or Retry-After is documented, but `cloid`, per-signer nonces, `expiresAfter` and `noop` make retries safe (10 of 15). No SLA (0). Mainnet is generally available (10). 0 + 5 + 15 + 10 + 0 + 10 = 40."
        },
        "scores": {
          "a": 73,
          "b": 40
        }
      },
      {
        "by": 15,
        "category": "payments",
        "leads": "hyperliquid",
        "name": "Payments \u0026 pricing",
        "reasons": {
          "a": "No machine payment protocol (0). The API fee schedule is public per tier without login, 0.6% maker and 1.2% taker at the base tier (20). The API is free to call, public market data needs no key, and the sandbox credits test funds with no card (20). A person must sign up in a browser with identity checks, mint a key or approve an OAuth grant, and production OAuth apps wait for Gemini's review (0). 0 + 20 + 20 + 0 = 40.",
          "b": "No machine payment protocol (0). Fees published per tier without login (20). No card anywhere; public info endpoints are free and the testnet faucet gives 1,000 mock USDC, though only to an address that has deposited on mainnet (15 of 20). No signup; an agent with a funded EVM wallet deposits USDC on a bridged chain and trades, subject to the unread terms (20). Total 55."
        },
        "scores": {
          "a": 40,
          "b": 55
        }
      },
      {
        "by": 14,
        "category": "security",
        "leads": "gemini-exchange",
        "name": "Security \u0026 auth",
        "reasons": {
          "a": "Revocable API keys with one role each (Trader, Fund Manager, Auditor, Administrator), HMAC-SHA384 signing with a nonce, and OAuth 2.0 with scopes, PKCE S256, single-use refresh tokens and RFC 7009 revocation; no IP allow-list documented and no key expiry (28 of 30). Auditor is read-only, a Trader key cannot withdraw, approved withdrawal addresses are a Fund Manager action, and the MCP server refuses funds-moving tools without `confirm: true` (18 of 20). The MCP server wraps every response in untrusted-output markers, strips control and bidi characters and redacts memos, labels and agreement text; the REST docs say nothing on the subject (13 of 15). Order and transfer history are readable, but no per-key audit log or API access log was found (5 of 15). security.txt with a PGP contact and a bug bounty paying $150 to $20,000, scoped to the sandbox hosts; no certification was read and no public advisory process was found (14 of 20). 28 + 18 + 13 + 5 + 14 = 78.",
          "b": "No shared secrets. Actions are signed by the wallet key or by an API wallet the master approves with a name and optional expiry; API wallets can only sign, withdrawals and external sends are user-signed, and approving a new wallet deregisters the old. No IP allow-list or address allow-list (24 of 30). An API wallet is a trading-only credential and info needs no key, but nothing limits order size or marks an action as needing approval (10 of 20). The API returns no untrusted content (10). Fills, historical orders, `userRole` and nonces are queryable per account; no per-wallet action log (8 of 15). A bug bounty run by the Hyper Foundation with rewards up to under 1 million USDC, a Zellic audit of the bridge contract, a SECURITY.md on the SDK; no security.txt (403), no SOC 2 (12 of 20). Total 64."
        },
        "scores": {
          "a": 78,
          "b": 64
        }
      }
    ],
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "Gemini Trust Company, LLC",
        "b": "Hyperliquid Labs",
        "name": "Vendor"
      },
      {
        "a": "no (local only)",
        "b": "no (local only)",
        "name": "Hosted endpoint"
      },
      {
        "a": "stdio",
        "b": "",
        "name": "Transports"
      },
      {
        "a": "OAuth or key",
        "b": "OAuth or key",
        "name": "Auth"
      },
      {
        "a": "Pay per use",
        "b": "Pay per use",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "Proprietary hosted API under Gemini's user agreement. The developer-platform repository (MCP server, TypeScript and Go SDKs, samples and skills) is Apache-2.0",
        "b": "The exchange runs on the Hyperliquid chain (HyperCore), whose node is distributed as a binary under an Apache-2.0 repository; the Python and Rust SDKs are MIT. The API servers and front end are closed",
        "name": "Licence"
      },
      {
        "a": "87",
        "b": "0",
        "name": "Tools exposed"
      },
      {
        "a": "yes",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "2026-10-28",
        "b": "2026-06-04",
        "name": "Last release"
      },
      {
        "a": "couldn't be read",
        "b": "couldn't be read",
        "name": "Terms last updated"
      },
      {
        "a": "no date given",
        "b": "no document linked",
        "name": "Privacy policy last updated"
      },
      {
        "a": "yes",
        "b": "couldn't be read",
        "name": "Customer content may train models"
      },
      {
        "a": "couldn't be read",
        "b": "couldn't be read",
        "name": "Terms restrict automated access"
      },
      {
        "a": "couldn't be read",
        "b": "couldn't be read",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "couldn't be read",
        "b": "couldn't be read",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "couldn't be read",
        "b": "couldn't be read",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "8 stars, 99 npm/wk",
        "b": "1.9k stars, 167k PyPI/wk",
        "name": "Popularity"
      }
    ],
    "faq": [
      {
        "answer": "Gemini Exchange API scores 74.6 (BB) on agent readiness against Hyperliquid's 50 (D), and leads in 6 of 7 scored categories. Hyperliquid leads on payments \u0026 pricing.",
        "question": "Which is better for AI agents, Gemini Exchange API or Hyperliquid?"
      },
      {
        "answer": "Both take an API key or an OAuth sign-in.",
        "question": "Do Gemini Exchange API and Hyperliquid need an API key?"
      },
      {
        "answer": "Gemini Exchange API runs on your own machine, with no hosted endpoint listed. No hosted endpoint is listed for Hyperliquid.",
        "question": "Can an agent call Gemini Exchange API and Hyperliquid without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Reliability, 73 against 40",
          "Schema \u0026 documentation, 88 against 42",
          "Agent ergonomics, 79 against 70",
          "Security \u0026 auth, 78 against 64",
          "Maintenance \u0026 community, 88 against 39",
          "Transparency \u0026 trust, 75 against 26"
        ],
        "also": [
          "Agent-ready, a grade of BB or better",
          "Runs on your own machine"
        ],
        "goodFor": "An agent trading spot, perpetuals or prediction markets for a US customer with a role-limited key and a sandbox to rehearse on.",
        "slug": "gemini-exchange",
        "watchFor": "Client order ids are only recommended to be unique and no duplicate rejection is documented, so a retried order can execute twice"
      },
      {
        "aheadOn": [
          "Payments \u0026 pricing, 55 against 40"
        ],
        "also": null,
        "goodFor": "An agent trading perpetuals or spot on chain from its own wallet with no account, or acting for a master account through an approved API wallet.",
        "slug": "hyperliquid",
        "watchFor": "No official MCP server; the 23 registry entries are all third parties, several selling data by x402"
      }
    ],
    "history": null,
    "job": {
      "capability": "exchange.market-data",
      "name": "Exchange market data"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/bitfinex-vs-gemini-exchange.json",
        "title": "Bitfinex API vs Gemini Exchange API",
        "url": "https://www.anchorterminal.com/compare/bitfinex-vs-gemini-exchange"
      },
      {
        "json": "https://www.anchorterminal.com/compare/bitfinex-vs-hyperliquid.json",
        "title": "Bitfinex API vs Hyperliquid",
        "url": "https://www.anchorterminal.com/compare/bitfinex-vs-hyperliquid"
      },
      {
        "json": "https://www.anchorterminal.com/compare/bitget-vs-gemini-exchange.json",
        "title": "Bitget vs Gemini Exchange API",
        "url": "https://www.anchorterminal.com/compare/bitget-vs-gemini-exchange"
      },
      {
        "json": "https://www.anchorterminal.com/compare/bitget-vs-hyperliquid.json",
        "title": "Bitget vs Hyperliquid",
        "url": "https://www.anchorterminal.com/compare/bitget-vs-hyperliquid"
      },
      {
        "json": "https://www.anchorterminal.com/compare/bithumb-vs-gemini-exchange.json",
        "title": "Bithumb Open API vs Gemini Exchange API",
        "url": "https://www.anchorterminal.com/compare/bithumb-vs-gemini-exchange"
      },
      {
        "json": "https://www.anchorterminal.com/compare/bithumb-vs-hyperliquid.json",
        "title": "Bithumb Open API vs Hyperliquid",
        "url": "https://www.anchorterminal.com/compare/bithumb-vs-hyperliquid"
      },
      {
        "json": "https://www.anchorterminal.com/compare/bitstamp-vs-gemini-exchange.json",
        "title": "Bitstamp API vs Gemini Exchange API",
        "url": "https://www.anchorterminal.com/compare/bitstamp-vs-gemini-exchange"
      },
      {
        "json": "https://www.anchorterminal.com/compare/bitstamp-vs-hyperliquid.json",
        "title": "Bitstamp API vs Hyperliquid",
        "url": "https://www.anchorterminal.com/compare/bitstamp-vs-hyperliquid"
      },
      {
        "json": "https://www.anchorterminal.com/compare/bybit-vs-gemini-exchange.json",
        "title": "Bybit vs Gemini Exchange API",
        "url": "https://www.anchorterminal.com/compare/bybit-vs-gemini-exchange"
      },
      {
        "json": "https://www.anchorterminal.com/compare/bybit-vs-hyperliquid.json",
        "title": "Bybit vs Hyperliquid",
        "url": "https://www.anchorterminal.com/compare/bybit-vs-hyperliquid"
      },
      {
        "json": "https://www.anchorterminal.com/compare/crypto-com-exchange-vs-gemini-exchange.json",
        "title": "Crypto.com Exchange API vs Gemini Exchange API",
        "url": "https://www.anchorterminal.com/compare/crypto-com-exchange-vs-gemini-exchange"
      },
      {
        "json": "https://www.anchorterminal.com/compare/crypto-com-exchange-vs-hyperliquid.json",
        "title": "Crypto.com Exchange API vs Hyperliquid",
        "url": "https://www.anchorterminal.com/compare/crypto-com-exchange-vs-hyperliquid"
      },
      {
        "json": "https://www.anchorterminal.com/compare/gate-io-vs-gemini-exchange.json",
        "title": "Gate vs Gemini Exchange API",
        "url": "https://www.anchorterminal.com/compare/gate-io-vs-gemini-exchange"
      },
      {
        "json": "https://www.anchorterminal.com/compare/gate-io-vs-hyperliquid.json",
        "title": "Gate vs Hyperliquid",
        "url": "https://www.anchorterminal.com/compare/gate-io-vs-hyperliquid"
      },
      {
        "json": "https://www.anchorterminal.com/compare/gemini-exchange-vs-htx.json",
        "title": "Gemini Exchange API vs HTX trading API",
        "url": "https://www.anchorterminal.com/compare/gemini-exchange-vs-htx"
      },
      {
        "json": "https://www.anchorterminal.com/compare/gemini-exchange-vs-kraken.json",
        "title": "Gemini Exchange API vs Kraken API",
        "url": "https://www.anchorterminal.com/compare/gemini-exchange-vs-kraken"
      },
      {
        "json": "https://www.anchorterminal.com/compare/gemini-exchange-vs-kucoin.json",
        "title": "Gemini Exchange API vs KuCoin",
        "url": "https://www.anchorterminal.com/compare/gemini-exchange-vs-kucoin"
      },
      {
        "json": "https://www.anchorterminal.com/compare/gemini-exchange-vs-mexc.json",
        "title": "Gemini Exchange API vs MEXC API",
        "url": "https://www.anchorterminal.com/compare/gemini-exchange-vs-mexc"
      },
      {
        "json": "https://www.anchorterminal.com/compare/gemini-exchange-vs-okx.json",
        "title": "Gemini Exchange API vs OKX API",
        "url": "https://www.anchorterminal.com/compare/gemini-exchange-vs-okx"
      },
      {
        "json": "https://www.anchorterminal.com/compare/gemini-exchange-vs-uniswap.json",
        "title": "Gemini Exchange API vs Uniswap Trading API",
        "url": "https://www.anchorterminal.com/compare/gemini-exchange-vs-uniswap"
      },
      {
        "json": "https://www.anchorterminal.com/compare/gemini-exchange-vs-upbit.json",
        "title": "Gemini Exchange API vs Upbit Open API",
        "url": "https://www.anchorterminal.com/compare/gemini-exchange-vs-upbit"
      },
      {
        "json": "https://www.anchorterminal.com/compare/htx-vs-hyperliquid.json",
        "title": "HTX trading API vs Hyperliquid",
        "url": "https://www.anchorterminal.com/compare/htx-vs-hyperliquid"
      },
      {
        "json": "https://www.anchorterminal.com/compare/hyperliquid-vs-upbit.json",
        "title": "Hyperliquid vs Upbit Open API",
        "url": "https://www.anchorterminal.com/compare/hyperliquid-vs-upbit"
      },
      {
        "json": "https://www.anchorterminal.com/compare/binance-vs-gemini-exchange.json",
        "title": "Binance API vs Gemini Exchange API",
        "url": "https://www.anchorterminal.com/compare/binance-vs-gemini-exchange"
      },
      {
        "json": "https://www.anchorterminal.com/compare/binance-vs-hyperliquid.json",
        "title": "Binance API vs Hyperliquid",
        "url": "https://www.anchorterminal.com/compare/binance-vs-hyperliquid"
      },
      {
        "json": "https://www.anchorterminal.com/compare/coinbase-advanced-trade-vs-gemini-exchange.json",
        "title": "Coinbase Advanced Trade API vs Gemini Exchange API",
        "url": "https://www.anchorterminal.com/compare/coinbase-advanced-trade-vs-gemini-exchange"
      },
      {
        "json": "https://www.anchorterminal.com/compare/coinbase-advanced-trade-vs-hyperliquid.json",
        "title": "Coinbase Advanced Trade API vs Hyperliquid",
        "url": "https://www.anchorterminal.com/compare/coinbase-advanced-trade-vs-hyperliquid"
      },
      {
        "json": "https://www.anchorterminal.com/compare/coinbase-mcp-vs-gemini-exchange.json",
        "title": "Coinbase MCP server (Coinbase for Agents) vs Gemini Exchange API",
        "url": "https://www.anchorterminal.com/compare/coinbase-mcp-vs-gemini-exchange"
      },
      {
        "json": "https://www.anchorterminal.com/compare/coinbase-mcp-vs-hyperliquid.json",
        "title": "Coinbase MCP server (Coinbase for Agents) vs Hyperliquid",
        "url": "https://www.anchorterminal.com/compare/coinbase-mcp-vs-hyperliquid"
      },
      {
        "json": "https://www.anchorterminal.com/compare/hyperliquid-vs-uniswap.json",
        "title": "Hyperliquid vs Uniswap Trading API",
        "url": "https://www.anchorterminal.com/compare/hyperliquid-vs-uniswap"
      },
      {
        "json": "https://www.anchorterminal.com/compare/deribit-vs-gemini-exchange.json",
        "title": "Deribit vs Gemini Exchange API",
        "url": "https://www.anchorterminal.com/compare/deribit-vs-gemini-exchange"
      },
      {
        "json": "https://www.anchorterminal.com/compare/deribit-vs-hyperliquid.json",
        "title": "Deribit vs Hyperliquid",
        "url": "https://www.anchorterminal.com/compare/deribit-vs-hyperliquid"
      },
      {
        "json": "https://www.anchorterminal.com/compare/dydx-vs-gemini-exchange.json",
        "title": "dYdX vs Gemini Exchange API",
        "url": "https://www.anchorterminal.com/compare/dydx-vs-gemini-exchange"
      },
      {
        "json": "https://www.anchorterminal.com/compare/dydx-vs-hyperliquid.json",
        "title": "dYdX vs Hyperliquid",
        "url": "https://www.anchorterminal.com/compare/dydx-vs-hyperliquid"
      },
      {
        "json": "https://www.anchorterminal.com/compare/hyperliquid-vs-kraken.json",
        "title": "Hyperliquid vs Kraken API",
        "url": "https://www.anchorterminal.com/compare/hyperliquid-vs-kraken"
      },
      {
        "json": "https://www.anchorterminal.com/compare/hyperliquid-vs-kucoin.json",
        "title": "Hyperliquid vs KuCoin",
        "url": "https://www.anchorterminal.com/compare/hyperliquid-vs-kucoin"
      },
      {
        "json": "https://www.anchorterminal.com/compare/hyperliquid-vs-mexc.json",
        "title": "Hyperliquid vs MEXC API",
        "url": "https://www.anchorterminal.com/compare/hyperliquid-vs-mexc"
      },
      {
        "json": "https://www.anchorterminal.com/compare/hyperliquid-vs-okx.json",
        "title": "Hyperliquid vs OKX API",
        "url": "https://www.anchorterminal.com/compare/hyperliquid-vs-okx"
      }
    ],
    "panel": null,
    "scores": [
      {
        "by": 33,
        "edge": "gemini-exchange",
        "gemini-exchange": 73,
        "hyperliquid": 40,
        "key": "reliability",
        "name": "Reliability",
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 46,
        "edge": "gemini-exchange",
        "gemini-exchange": 88,
        "hyperliquid": 42,
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "weight": 13
      },
      {
        "by": 9,
        "edge": "gemini-exchange",
        "gemini-exchange": 79,
        "hyperliquid": 70,
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "weight": 13
      },
      {
        "by": 14,
        "edge": "gemini-exchange",
        "gemini-exchange": 78,
        "hyperliquid": 64,
        "key": "security",
        "name": "Security \u0026 auth",
        "weight": 14
      },
      {
        "by": 15,
        "edge": "hyperliquid",
        "gemini-exchange": 40,
        "hyperliquid": 55,
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 49,
        "edge": "gemini-exchange",
        "gemini-exchange": 88,
        "hyperliquid": 39,
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "weight": 7
      },
      {
        "by": 49,
        "edge": "gemini-exchange",
        "gemini-exchange": 75,
        "hyperliquid": 26,
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "weight": 7
      }
    ],
    "summary": "Gemini Exchange API scores 74.6 (BB) on agent readiness against Hyperliquid's 50 (D), and leads in 6 of 7 scored categories. Hyperliquid leads on payments \u0026 pricing. Both do exchange market data.",
    "tasks": null,
    "tutorials": [],
    "verdicts": {
      "gemini-exchange": "Gemini publishes an OpenAPI and AsyncAPI contract, API key roles that keep withdrawals off a trading key, a funded sandbox, and an official MCP server whose tools carry read-only and destructive annotations and a confirm gate. Client order ids are not checked for duplicates, there is no SLA, and UK, EEA and Australian accounts closed in April 2026.",
      "hyperliquid": "Hyperliquid's API needs no signup or key, an approved API wallet can trade but not withdraw, fees and rate limits are published with numbers, and a testnet mirrors mainnet. There is no official MCP server, OpenAPI file, status page, changelog or readable terms, and signing uses two schemes the docs say to leave to an SDK."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/gemini-exchange-vs-hyperliquid",
    "json": "https://www.anchorterminal.com/compare/gemini-exchange-vs-hyperliquid.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/gemini-exchange-vs-hyperliquid.md",
    "mcp": "https://www.anchorterminal.com/mcp",
    "slim": "https://www.anchorterminal.com/compare/gemini-exchange-vs-hyperliquid.min.md"
  },
  "markdown": "Gemini Exchange API scores 74.6 (BB) on agent readiness against Hyperliquid's 50 (D), and leads in 6 of 7 scored categories. Hyperliquid leads on payments \u0026 pricing. Both do exchange market data.\n\n- Gemini Exchange API: grade BB, 74.6/100, rank #70 of 1349. Markdown https://www.anchorterminal.com/tools/gemini-exchange.md · JSON https://www.anchorterminal.com/api/v1/tools/gemini-exchange.json\n- Hyperliquid: grade D, 50/100, rank #966 of 1349. Markdown https://www.anchorterminal.com/tools/hyperliquid.md · JSON https://www.anchorterminal.com/api/v1/tools/hyperliquid.json\n- Best crypto exchange APIs and MCP servers for AI agents: https://www.anchorterminal.com/best/crypto-exchanges/index.md\n- All 210 exchanges comparisons: https://www.anchorterminal.com/compare/crypto-exchanges/index.md\n\n## Which one, for what\n\n### Gemini Exchange API (BB)\n\nGood for: An agent trading spot, perpetuals or prediction markets for a US customer with a role-limited key and a sandbox to rehearse on.\n\nAhead on:\n- Reliability, 73 against 40\n- Schema \u0026 documentation, 88 against 42\n- Agent ergonomics, 79 against 70\n- Security \u0026 auth, 78 against 64\n- Maintenance \u0026 community, 88 against 39\n- Transparency \u0026 trust, 75 against 26\n\nAlso in its favour:\n- Agent-ready, a grade of BB or better\n- Runs on your own machine\n\nWatch for: Client order ids are only recommended to be unique and no duplicate rejection is documented, so a retried order can execute twice\n\n### Hyperliquid (D)\n\nGood for: An agent trading perpetuals or spot on chain from its own wallet with no account, or acting for a master account through an approved API wallet.\n\nAhead on:\n- Payments \u0026 pricing, 55 against 40\n\nWatch for: No official MCP server; the 23 registry entries are all third parties, several selling data by x402\n\n\n## Why the edge\n\n### Maintenance \u0026 community: Gemini Exchange API +49\n\n- Gemini Exchange API (88): Read as a closed hosted service with an open repository. The revision history's latest entry is 28 October 2026 and the repository was pushed on 5 October (30). Thirteen dated entries between 2 September and 28 October 2026 (20). The nine open items on the repository are all pull requests with replies, Dependabot included, and the docs name trading@gemini.com for developer support; no public issue tracker was tested (15 of 25). Not in the official MCP registry, but current official SDKs, TypeScript 0.1.1 of 23 September and Go 0.1.0 of 29 August 2026 (15). CI workflows validate and publish both SDKs and the MCP server has tests; dependencies are current (8 of 10). 30 + 20 + 15 + 15 + 8 = 88.\n- Hyperliquid (39): Read as a closed hosted service with open SDKs. The API has no dated changelog, so the last dated change is the Python SDK's 0.24.0 on 4 June 2026, 152 days before this check; the node repository was pushed on 10 August 2026 and the docs describe newer actions (HIP-4 outcome markets, borrow and lend) without dates. Judgement call (10 of 30). No three dated releases in 90 days (0). Support through Discord and the docs' FAQ, 112 open issues on the SDK whose replies couldn't be read (8 of 25). Official Python and Rust SDKs, the Rust one last pushed 21 October 2025; no MCP registry entry (15). CI on Python 3.9 and 3.13 with Poetry, Dependabot badge, a lock file (6 of 10). Total 39.\n\n### Transparency \u0026 trust: Gemini Exchange API +49\n\n- Gemini Exchange API (75): The editorial half. A closed service under a user agreement that names its entities by state, with the MCP server and SDKs open under Apache-2.0 (18 of 30). The privacy policy of 11 May 2026 names entities and processing countries, ties retention to need without numbers and names provider categories only, with no DPA or subprocessor list found (16 of 30). The revision history records removals and type changes with dates, but the upcoming-changes page is \"TBD\" and no notice period is stated (8 of 20). Processing countries are named (US, Ireland, UK, Malta, Singapore, Australia) and providers by category, with no named subprocessors (12 of 20). 18 + 16 + 8 + 12 = 54.\n- Hyperliquid (26): The editorial half. The SDKs are MIT and the node repository Apache-2.0 with a Dockerfile around a binary; the API servers and front end are closed and the terms were unreadable (12 of 30). No privacy policy read and nothing in the docs on data handling (0 of 30). Deprecated actions are marked in the docs without dates or a policy (8 of 20). No subprocessors or data locations (0 of 20). Total 20.\n\n### Schema \u0026 documentation: Gemini Exchange API +46\n\n- Gemini Exchange API (88): OpenAPI 3 for REST (specs/openapi/rest.yaml), AsyncAPI for WebSocket, a prediction-markets OpenAPI file and a specs/index.json catalogue; the MCP server's tools take zod schemas published as JSON Schema (25). llms.txt, llms-full.txt, agents.md, an agent card and an agent skills index (10). Endpoint pages state purpose, the Build an agent guide says what to establish before acting and when to stop, and MCP tool descriptions tell the model when to confirm; the docs don't say when not to use an endpoint (15 of 20). Typed inputs with enums for order types, options and sessions, required fields marked, decimals as strings since 7 July 2026 (12 of 15). Examples throughout, samples in three languages, and an error-codes page with 53 named reasons and their HTTP statuses (14 of 15). A revision history dated from 2015 to 28 October 2026 and versioned paths (v1, v2), but the upcoming-changes page reads \"TBD\" (12 of 15). 25 + 10 + 15 + 12 + 14 + 12 = 88.\n- Hyperliquid (42): No OpenAPI or other machine-readable contract; request and response shapes are tables and JSON examples in the docs (0 of 25). llms.txt and a Markdown twin of every page by appending .md (10). Each info type and exchange action has a short description of what it does, and the signing page lists common mistakes, but little says when to use one call over another (12 of 20). Fields are one-letter keys (`a`, `b`, `p`, `s`, `r`, `t`, `c`) with numbers as strings, enums such as `tif` Alo, Ioc or Gtc, and required fields marked in tables (9 of 15). An example for every call and a list of order and cancel error strings, with no HTTP error table (11 of 15). No API version, no changelog and no dated release notes; deprecated actions such as `userDexAbstraction` are marked in place (0 of 15). Total 42.\n\n### Reliability: Gemini Exchange API +33\n\n- Gemini Exchange API (73): Read with the hosted lines on the REST API at api.gemini.com. status.gemini.com is a Statuspage site with component history (20). Its Atom feed for 10 September to 3 November 2026 holds 25 entries, mostly scheduled trading and FIX upgrades of 15 to 60 minutes with possible order timeouts, single-network deposit delays, and incorrect perpetual index prices for about 3.5 hours on 15 and 16 October; a 3-hour scheduled eOTC window was planned and outside the core API. Minor only (20). Rate limits with numbers, 120 a minute public and 600 private plus per-endpoint limits (15). 429 is documented but with no Retry-After or backoff guidance, and client order ids are recommended without duplicate rejection, so retries are not safe by contract; the heartbeat cancel is a safety net rather than idempotency (8 of 15). No SLA found (0). Generally available (10). 20 + 20 + 15 + 8 + 0 + 10 = 73.\n- Hyperliquid (40): Read with the hosted lines on the REST API at api.hyperliquid.xyz, the surface an agent calls; the chain behind it is noted under details. No status page found in the docs, on hyperliquid.xyz or at status.hyperliquid.xyz, which did not resolve (0). No readable history (5). Rate limits documented with numbers per IP, per address and per WebSocket connection (15). When limited, an address gets one request every 10 seconds; no 429 shape or Retry-After is documented, but `cloid`, per-signer nonces, `expiresAfter` and `noop` make retries safe (10 of 15). No SLA (0). Mainnet is generally available (10). 0 + 5 + 15 + 10 + 0 + 10 = 40.\n\n### Payments \u0026 pricing: Hyperliquid +15\n\n- Gemini Exchange API (40): No machine payment protocol (0). The API fee schedule is public per tier without login, 0.6% maker and 1.2% taker at the base tier (20). The API is free to call, public market data needs no key, and the sandbox credits test funds with no card (20). A person must sign up in a browser with identity checks, mint a key or approve an OAuth grant, and production OAuth apps wait for Gemini's review (0). 0 + 20 + 20 + 0 = 40.\n- Hyperliquid (55): No machine payment protocol (0). Fees published per tier without login (20). No card anywhere; public info endpoints are free and the testnet faucet gives 1,000 mock USDC, though only to an address that has deposited on mainnet (15 of 20). No signup; an agent with a funded EVM wallet deposits USDC on a bridged chain and trades, subject to the unread terms (20). Total 55.\n\n### Security \u0026 auth: Gemini Exchange API +14\n\n- Gemini Exchange API (78): Revocable API keys with one role each (Trader, Fund Manager, Auditor, Administrator), HMAC-SHA384 signing with a nonce, and OAuth 2.0 with scopes, PKCE S256, single-use refresh tokens and RFC 7009 revocation; no IP allow-list documented and no key expiry (28 of 30). Auditor is read-only, a Trader key cannot withdraw, approved withdrawal addresses are a Fund Manager action, and the MCP server refuses funds-moving tools without `confirm: true` (18 of 20). The MCP server wraps every response in untrusted-output markers, strips control and bidi characters and redacts memos, labels and agreement text; the REST docs say nothing on the subject (13 of 15). Order and transfer history are readable, but no per-key audit log or API access log was found (5 of 15). security.txt with a PGP contact and a bug bounty paying $150 to $20,000, scoped to the sandbox hosts; no certification was read and no public advisory process was found (14 of 20). 28 + 18 + 13 + 5 + 14 = 78.\n- Hyperliquid (64): No shared secrets. Actions are signed by the wallet key or by an API wallet the master approves with a name and optional expiry; API wallets can only sign, withdrawals and external sends are user-signed, and approving a new wallet deregisters the old. No IP allow-list or address allow-list (24 of 30). An API wallet is a trading-only credential and info needs no key, but nothing limits order size or marks an action as needing approval (10 of 20). The API returns no untrusted content (10). Fills, historical orders, `userRole` and nonces are queryable per account; no per-wallet action log (8 of 15). A bug bounty run by the Hyper Foundation with rewards up to under 1 million USDC, a Zellic audit of the bridge contract, a SECURITY.md on the SDK; no security.txt (403), no SOC 2 (12 of 20). Total 64.\n\n## Score by category\n\n| Category | Weight | Gemini Exchange API | Hyperliquid | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 73 | 40 | Gemini Exchange API +33 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 88 | 42 | Gemini Exchange API +46 |\n| Agent ergonomics | 13% (16.2 this run) | 79 | 70 | Gemini Exchange API +9 |\n| Security \u0026 auth | 14% (17.5 this run) | 78 | 64 | Gemini Exchange API +14 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 40 | 55 | Hyperliquid +15 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 88 | 39 | Gemini Exchange API +49 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 75 | 26 | Gemini Exchange API +49 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **74.6 · BB** | **50 · D** | |\n\n## Facts side by side\n\n| Fact | Gemini Exchange API | Hyperliquid |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Gemini Trust Company, LLC | Hyperliquid Labs |\n| Hosted endpoint | no (local only) | no (local only) |\n| Transports | stdio |  |\n| Auth | OAuth or key | OAuth or key |\n| Pricing | Pay per use | Pay per use |\n| x402 | no | no |\n| Licence | Proprietary hosted API under Gemini's user agreement. The developer-platform repository (MCP server, TypeScript and Go SDKs, samples and skills) is Apache-2.0 | The exchange runs on the Hyperliquid chain (HyperCore), whose node is distributed as a binary under an Apache-2.0 repository; the Python and Rust SDKs are MIT. The API servers and front end are closed |\n| Tools exposed | 87 | 0 |\n| Read-only variant documented | yes | no |\n| llms.txt | yes | yes |\n| Last release | 2026-10-28 | 2026-06-04 |\n| Terms last updated | couldn't be read | couldn't be read |\n| Privacy policy last updated | no date given | no document linked |\n| Customer content may train models | yes | couldn't be read |\n| Terms restrict automated access | couldn't be read | couldn't be read |\n| Terms restrict benchmarking | couldn't be read | couldn't be read |\n| Terms or service can change without notice | couldn't be read | couldn't be read |\n| Arbitration or class-action waiver | couldn't be read | couldn't be read |\n| Popularity | 8 stars, 99 npm/wk | 1.9k stars, 167k PyPI/wk |\n\n## Verdicts\n\n**Gemini Exchange API.** Gemini publishes an OpenAPI and AsyncAPI contract, API key roles that keep withdrawals off a trading key, a funded sandbox, and an official MCP server whose tools carry read-only and destructive annotations and a confirm gate. Client order ids are not checked for duplicates, there is no SLA, and UK, EEA and Australian accounts closed in April 2026.\n\n**Hyperliquid.** Hyperliquid's API needs no signup or key, an approved API wallet can trade but not withdraw, fees and rate limits are published with numbers, and a testnet mirrors mainnet. There is no official MCP server, OpenAPI file, status page, changelog or readable terms, and signing uses two schemes the docs say to leave to an SDK.\n\n## Before you call either\n\n### Gemini Exchange API\n\n1. Create a Trader key for order flow and a separate Fund Manager key only if withdrawals are in scope; never combine them, and keep the secret out of prompts and logs\n2. Set a `client_order_id` per order and look it up with `get_order_status` before resending after a timeout, because Gemini does not reject duplicates\n3. Start on api.sandbox.gemini.com with the same code; sandbox apps register at once, production OAuth apps wait for Gemini's review\n4. Stay under 1 public and 5 private requests a second; a 429 keeps answering 429 until the rate falls, with no Retry-After to read\n5. Check the person's country against the availability page first; UK, EEA and Australian accounts were closed on 6 April 2026\n\n### Hyperliquid\n\n1. Generate a fresh API wallet, approve it with `approveAgent` with a name and expiry, sign with it, and query with the master address, never the agent address\n2. Use the Python SDK's `sign_l1_action` and `sign_user_signed_action`; mixing the two, field order in msgpack or an uppercase address gives \"User or API Wallet ... does not exist\"\n3. Set a `cloid` on every order and read the per-order `statuses` array; one batch-level error rejects the whole batch\n4. Budget address limits by volume (one action per 1 USDC traded after 10,000); batch orders to lower IP weight, and use WebSocket for data\n5. Arm `scheduleCancel` before unattended trading so open orders are cancelled if the agent stops\n\n## Questions\n\n### Which is better for AI agents, Gemini Exchange API or Hyperliquid?\n\nGemini Exchange API scores 74.6 (BB) on agent readiness against Hyperliquid's 50 (D), and leads in 6 of 7 scored categories. Hyperliquid leads on payments \u0026 pricing.\n\n### Do Gemini Exchange API and Hyperliquid need an API key?\n\nBoth take an API key or an OAuth sign-in.\n\n### Can an agent call Gemini Exchange API and Hyperliquid without installing anything?\n\nGemini Exchange API runs on your own machine, with no hosted endpoint listed. No hosted endpoint is listed for Hyperliquid.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/gemini-exchange-vs-hyperliquid.json, and with the fewest tokens: https://www.anchorterminal.com/compare/gemini-exchange-vs-hyperliquid.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"gemini-exchange\", \"b\": \"hyperliquid\"}`. From a terminal: `anchor compare gemini-exchange hyperliquid`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/gemini-exchange.json and https://www.anchorterminal.com/api/v1/tools/hyperliquid.json\n\n## Other comparisons with Gemini Exchange API or Hyperliquid\n\n- [Bitfinex API vs Gemini Exchange API](https://www.anchorterminal.com/compare/bitfinex-vs-gemini-exchange.md)\n- [Bitfinex API vs Hyperliquid](https://www.anchorterminal.com/compare/bitfinex-vs-hyperliquid.md)\n- [Bitget vs Gemini Exchange API](https://www.anchorterminal.com/compare/bitget-vs-gemini-exchange.md)\n- [Bitget vs Hyperliquid](https://www.anchorterminal.com/compare/bitget-vs-hyperliquid.md)\n- [Bithumb Open API vs Gemini Exchange API](https://www.anchorterminal.com/compare/bithumb-vs-gemini-exchange.md)\n- [Bithumb Open API vs Hyperliquid](https://www.anchorterminal.com/compare/bithumb-vs-hyperliquid.md)\n- [Bitstamp API vs Gemini Exchange API](https://www.anchorterminal.com/compare/bitstamp-vs-gemini-exchange.md)\n- [Bitstamp API vs Hyperliquid](https://www.anchorterminal.com/compare/bitstamp-vs-hyperliquid.md)\n- [Bybit vs Gemini Exchange API](https://www.anchorterminal.com/compare/bybit-vs-gemini-exchange.md)\n- [Bybit vs Hyperliquid](https://www.anchorterminal.com/compare/bybit-vs-hyperliquid.md)\n- [Crypto.com Exchange API vs Gemini Exchange API](https://www.anchorterminal.com/compare/crypto-com-exchange-vs-gemini-exchange.md)\n- [Crypto.com Exchange API vs Hyperliquid](https://www.anchorterminal.com/compare/crypto-com-exchange-vs-hyperliquid.md)\n- [Gate vs Gemini Exchange API](https://www.anchorterminal.com/compare/gate-io-vs-gemini-exchange.md)\n- [Gate vs Hyperliquid](https://www.anchorterminal.com/compare/gate-io-vs-hyperliquid.md)\n- [Gemini Exchange API vs HTX trading API](https://www.anchorterminal.com/compare/gemini-exchange-vs-htx.md)\n- [Gemini Exchange API vs Kraken API](https://www.anchorterminal.com/compare/gemini-exchange-vs-kraken.md)\n- [Gemini Exchange API vs KuCoin](https://www.anchorterminal.com/compare/gemini-exchange-vs-kucoin.md)\n- [Gemini Exchange API vs MEXC API](https://www.anchorterminal.com/compare/gemini-exchange-vs-mexc.md)\n- [Gemini Exchange API vs OKX API](https://www.anchorterminal.com/compare/gemini-exchange-vs-okx.md)\n- [Gemini Exchange API vs Uniswap Trading API](https://www.anchorterminal.com/compare/gemini-exchange-vs-uniswap.md)\n- [Gemini Exchange API vs Upbit Open API](https://www.anchorterminal.com/compare/gemini-exchange-vs-upbit.md)\n- [HTX trading API vs Hyperliquid](https://www.anchorterminal.com/compare/htx-vs-hyperliquid.md)\n- [Hyperliquid vs Upbit Open API](https://www.anchorterminal.com/compare/hyperliquid-vs-upbit.md)\n- [Binance API vs Gemini Exchange API](https://www.anchorterminal.com/compare/binance-vs-gemini-exchange.md)\n- [Binance API vs Hyperliquid](https://www.anchorterminal.com/compare/binance-vs-hyperliquid.md)\n- [Coinbase Advanced Trade API vs Gemini Exchange API](https://www.anchorterminal.com/compare/coinbase-advanced-trade-vs-gemini-exchange.md)\n- [Coinbase Advanced Trade API vs Hyperliquid](https://www.anchorterminal.com/compare/coinbase-advanced-trade-vs-hyperliquid.md)\n- [Coinbase MCP server (Coinbase for Agents) vs Gemini Exchange API](https://www.anchorterminal.com/compare/coinbase-mcp-vs-gemini-exchange.md)\n- [Coinbase MCP server (Coinbase for Agents) vs Hyperliquid](https://www.anchorterminal.com/compare/coinbase-mcp-vs-hyperliquid.md)\n- [Hyperliquid vs Uniswap Trading API](https://www.anchorterminal.com/compare/hyperliquid-vs-uniswap.md)\n- [Deribit vs Gemini Exchange API](https://www.anchorterminal.com/compare/deribit-vs-gemini-exchange.md)\n- [Deribit vs Hyperliquid](https://www.anchorterminal.com/compare/deribit-vs-hyperliquid.md)\n- [dYdX vs Gemini Exchange API](https://www.anchorterminal.com/compare/dydx-vs-gemini-exchange.md)\n- [dYdX vs Hyperliquid](https://www.anchorterminal.com/compare/dydx-vs-hyperliquid.md)\n- [Hyperliquid vs Kraken API](https://www.anchorterminal.com/compare/hyperliquid-vs-kraken.md)\n- [Hyperliquid vs KuCoin](https://www.anchorterminal.com/compare/hyperliquid-vs-kucoin.md)\n- [Hyperliquid vs MEXC API](https://www.anchorterminal.com/compare/hyperliquid-vs-mexc.md)\n- [Hyperliquid vs OKX API](https://www.anchorterminal.com/compare/hyperliquid-vs-okx.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "attributionRequired": true,
    "credit": "CC BY 4.0, credit Anchor Terminal and link the page or API address you took it from (https://www.anchorterminal.com/terms/#data)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-11-04",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.7",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run",
    "terms": "https://www.anchorterminal.com/terms/#data"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Compare",
        "url": "https://www.anchorterminal.com/compare/"
      },
      {
        "name": "Gemini Exchange API vs Hyperliquid",
        "url": ""
      }
    ],
    "description": "Gemini Exchange scores 74.6 (BB) to Hyperliquid's 50 (D) for exchange market data. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "Gemini Exchange API BB 74.6",
      "Hyperliquid D 50",
      "scores"
    ],
    "h1": "Gemini Exchange API vs Hyperliquid",
    "image": "https://www.anchorterminal.com/assets/og/default.png",
    "path": "/compare/gemini-exchange-vs-hyperliquid",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Gemini Exchange vs Hyperliquid for AI agents (2026) | Anchor Terminal",
    "toc": null,
    "updated": "2026-11-04",
    "url": "https://www.anchorterminal.com/compare/gemini-exchange-vs-hyperliquid"
  },
  "tokens": {
    "markdown": 5300,
    "slim": 2930
  },
  "version": 1
}
