{
  "data": {
    "a": {
      "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": 1018,
        "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",
        "securityTxt": {
          "url": "https://hyperliquid.xyz/.well-known/security.txt",
          "state": "unknown",
          "checkedAt": "2026-11-04T15:54:05.956872316Z"
        },
        "updatedAt": "2026-11-04T15:54:05.956872316Z"
      }
    },
    "answer": "Upbit Open API scores 54.7 (C) on agent readiness against Hyperliquid's 50 (D), and leads in 4 of 7 scored categories. Hyperliquid leads on security \u0026 auth and payments \u0026 pricing.",
    "b": {
      "slug": "upbit",
      "name": "Upbit Open API",
      "vendor": "Dunamu Inc.",
      "vendorUrl": "https://docs.upbit.com",
      "kind": "http-api",
      "category": "crypto-exchanges",
      "summary": "Upbit, the Korean exchange run by Dunamu, has a REST and WebSocket Open API for KRW, BTC and USDT market data, orders, balances, deposits and withdrawals, with official SDKs, a CLI and agent skills but no MCP server.",
      "url": "https://www.anchorterminal.com/tools/upbit",
      "markdownUrl": "https://www.anchorterminal.com/tools/upbit.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/upbit.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/upbit.json",
      "dns": "upbit.grade.anchorterminal.com",
      "repo": "https://github.com/upbit-official",
      "transports": [],
      "packages": [
        {
          "registry": "npm",
          "name": "@upbit-official/upbit-cli"
        },
        {
          "registry": "pypi",
          "name": "upbit-sdk"
        }
      ],
      "auth": "api-key",
      "authNotes": "Access and secret keys issued on the PC web site under My Page \u003e Open API Management after identity verification and two-factor authentication. At issuance the person picks the functions the key may use and must register at least one public IPv4 address, since the allow-list is mandatory. Each request carries a JWT signed with HMAC SHA512 over the access key, a fresh nonce and a SHA512 hash of the query, as a Bearer token. A key with withdrawal permission gets a withdrawal safe-lock by default that is lifted only in the mobile app. Up to 10 keys on the main pocket and 5 per sub-pocket; expired keys answer expired_access_key (https://docs.upbit.com/kr/docs/api-key.md, checked 2026-11-03).",
      "pricing": "usage",
      "pricingNotes": "Trading fees per fill. The fee schedule is on upbit.com, whose robots.txt disallows every path for our crawler, so no rate is recorded. Public quotation endpoints need no key and no account (https://upbit.com/robots.txt, checked 2026-11-03).",
      "priceSummary": "Pay per use",
      "where": "local",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the developer docs, llms.txt, the SDK licence or the CLI docs (checked 2026-11-03). Fees are taken from each fill.",
        "endpoints": []
      },
      "toolCount": 0,
      "popularity": {
        "githubStars": 91,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-11-03"
      },
      "docsUrl": "https://docs.upbit.com/kr/reference/api-overview",
      "llmsTxt": "https://docs.upbit.com/llms.txt",
      "capabilities": [
        "exchange.market-data",
        "exchange.spot-trading",
        "exchange.balances",
        "exchange.transfers",
        "market.crypto"
      ],
      "tags": [
        "hosted",
        "api-key",
        "closed-source",
        "usage-priced",
        "cli",
        "agent-skills",
        "llms-txt",
        "python",
        "typescript",
        "go",
        "no-status-page"
      ],
      "lastRelease": "2026-10-20",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 54.7,
        "grade": "C",
        "agentReady": false,
        "rank": 860,
        "ranked": true,
        "rankOf": 1349,
        "categoryRank": 14,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 70,
          "maintenance": 83,
          "payments": 15,
          "reliability": 42,
          "schema": 66,
          "security": 59,
          "transparency": 54
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-11-03"
        },
        "negative": 0,
        "verdict": "Upbit's Open API has a mandatory IP allow-list, scoped keys with a default withdrawal lock, per-group rate limits with 429 and 418 signalling, an order-test endpoint, official SDKs, a CLI and agent skills with a CONFIRM gate. There is no MCP server, sandbox or status page, and the fees and terms sit on a host our crawler may not read.",
        "bestFor": "KRW-market trading for agents acting for a verified Korean account, with first-party SDKs, a CLI and skills but no MCP.",
        "strengths": [
          "Keys need a registered public IP, carry only the chosen functions and get a withdrawal safe-lock by default that only the mobile app lifts",
          "Rate limits published per group with numbers, a Remaining-Req header on every response, 429 then 418 with a stated block length",
          "POST /v1/orders/test checks an order and the pair's state at no cost, and the skills run it before a live order",
          "Official Python, TypeScript and Go SDKs at v1.1.0 (20 October 2026), a CLI with JSON output and agent skills that require a typed CONFIRM before any write",
          "Notices carry effective dates, such as the path-format change of 16 November 2026"
        ],
        "weaknesses": [
          "No MCP server; the agent route is the CLI through skills, which need a terminal",
          "No sandbox or testnet beyond the order-test endpoint, and no status page or SLA",
          "Keys can only be issued on the PC web site after Korean identity verification and 2FA, and the exchange serves the Korean market",
          "The fee schedule, user terms and Open API terms are on upbit.com, which disallows every crawler path, so none is recorded first-hand",
          "The SDK licence page says the SDK material is not open source while the GitHub repositories carry Apache-2.0"
        ],
        "agentNotes": [
          "Ask the person for a key with only the functions the task needs and your server's public IPv4 address registered; a private or unregistered IP is refused",
          "Sign every request with a fresh JWT (HS512, new nonce, SHA512 query hash) and branch on error.name, not error.message",
          "Run POST /v1/orders/test before a live order; it costs nothing and shares the 8-a-second order-test group",
          "Read Remaining-Req and keep orders under 12 a second per pocket; on 429 wait for the next second and on 418 wait out the stated block",
          "Leave the withdrawal safe-lock on unless the person lifts it in the app, and send paths with single slashes and no trailing slash before 16 November 2026"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "C",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 54.7
          }
        ],
        "editorialScores": {
          "ergonomics": 70,
          "maintenance": 83,
          "payments": 15,
          "reliability": 42,
          "schema": 66,
          "security": 59,
          "transparency": 42
        },
        "provenanceScore": 66,
        "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 -g @upbit-official/upbit-cli",
        "http": "curl 'https://api.upbit.com/v1/ticker?markets=KRW-BTC'"
      },
      "letme": {
        "capability": "https://letme.dev/exchange.market-data",
        "tool": "https://letme.dev/upbit"
      },
      "area": "payments",
      "provenance": {
        "legalEntity": "Dunamu Inc.",
        "domain": "upbit.com",
        "domainRegistered": "2004-01-10",
        "endpointOnVendorDomain": true,
        "terms": "",
        "privacy": "https://docs.upbit.com/kr/page/privacy_policy_v1_5.md",
        "statusPage": "",
        "changelog": "https://docs.upbit.com/kr/changelog",
        "securityTxt": "unknown",
        "checked": "2026-11-03",
        "notes": [
          "Dunamu Inc. is named as the licensor in the Upbit Developer SDK License v1.0 and as the company in the developer centre's privacy policy V1.5 (from 18 May 2026).",
          "upbit.com/robots.txt disallows every path for User-agent * (a second group adds /terms_and_policy and others), allowing only Googlebot, MSNBot, Yeti and Daumoa; sg.upbit.com and www.dunamu.com do the same. The user terms, the Open API terms, the fee schedule and security.txt on those hosts were therefore not fetched; the terms URL is left empty.",
          "docs.upbit.com/robots.txt allows everything but edit, login and api-next paths and points to llms.txt, with Content-Signal ai-train=yes, search=yes, ai-input=yes.",
          "RDAP gives upbit.com a registration date of 10 January 2004.",
          "No status page found; the API has a service-status (wallet status) endpoint and an announcements WebSocket stream."
        ],
        "score": 66
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/upbit.json",
      "live": {
        "slug": "upbit",
        "securityTxt": {
          "url": "https://upbit.com/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-11-04T15:53:27.560288922Z"
        },
        "updatedAt": "2026-11-04T15:53:27.560288922Z"
      }
    },
    "edges": [
      {
        "by": 44,
        "category": "maintenance",
        "leads": "upbit",
        "name": "Maintenance \u0026 community",
        "reasons": {
          "a": "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.",
          "b": "Read as a closed service. SDK v1.1.0 on 20 October 2026 (30). The CLI 1.0.0 on 1 September, the rate-limit update of 7 October, the SDK on 20 October and the path-format notice for 16 November 2026 (20). open-api@upbit.com answers in turn on weekdays per the support notice, notices carry dates, and the six upbit-official repositories show no open issues (12 of 15). Current official SDKs in Python, TypeScript and Go (15). Apache-2.0 repositories pushed in October 2026; CI not checked (6 of 10). 30 + 20 + 12 + 15 + 6 = 83."
        },
        "scores": {
          "a": 39,
          "b": 83
        }
      },
      {
        "by": 40,
        "category": "payments",
        "leads": "hyperliquid",
        "name": "Payments \u0026 pricing",
        "reasons": {
          "a": "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.",
          "b": "No machine payment protocol (0). The fee schedule is on upbit.com, which disallows every crawler path, so no price is recorded (0 of 20, unchecked). Public quotation endpoints need no key, card or account; trading needs a verified Korean account. Judgement call (15 of 20). A person must sign up, pass identity checks and issue keys on the PC web site (0). 0 + 0 + 15 + 0 = 15."
        },
        "scores": {
          "a": 55,
          "b": 15
        }
      },
      {
        "by": 28,
        "category": "transparency",
        "leads": "upbit",
        "name": "Transparency \u0026 trust",
        "reasons": {
          "a": "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.",
          "b": "The editorial half. A closed service whose user and Open API terms could not be fetched under upbit.com's robots.txt, and whose SDK licence page calls the SDK material not open source while the repositories carry Apache-2.0 (8 of 30). The developer centre's privacy policy names Dunamu Inc., gives retention periods and names Zendesk in Japan; the main privacy policy was not read (14 of 30). Notices with effective dates, including the path-format change and the deprecated Remaining-Req min field (12 of 20). Zendesk and Google Analytics named with a location for the developer centre only (8 of 20). 8 + 14 + 12 + 8 = 42."
        },
        "scores": {
          "a": 26,
          "b": 54
        }
      },
      {
        "by": 24,
        "category": "schema",
        "leads": "upbit",
        "name": "Schema \u0026 documentation",
        "reasons": {
          "a": "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.",
          "b": "No OpenAPI found; the reference is a readme.io site with a Markdown twin of every page (5 of 25). llms.txt on docs.upbit.com and a kr/llms.txt index (10). Each reference page states what the endpoint does, its group and its errors, with warnings such as market_offline after maintenance (14 of 20). Typed parameters with enums for order type, side and time in force and required flags (11 of 15). Recipes in Python, Java and Node.js and an error format of error.name and error.message with HTTP statuses (13 of 15). Feature versions in page histories (v1.6.1) and dated notices with effective dates, no single API version (13 of 15). 5 + 10 + 14 + 11 + 13 + 13 = 66."
        },
        "scores": {
          "a": 42,
          "b": 66
        }
      },
      {
        "by": 5,
        "category": "security",
        "leads": "hyperliquid",
        "name": "Security \u0026 auth",
        "reasons": {
          "a": "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.",
          "b": "Keys limited to chosen functions, a mandatory public IPv4 allow-list, a JWT per request with a fresh nonce, keys listed with expiry through the API, and a withdrawal safe-lock on by default (27 of 30). Read-only keys, the default withdrawal lock lifted only in the app, and skills that require a typed CONFIRM before writes (17 of 20). The API returns exchange data and announcements, no third-party content (10 of 15). An API key list endpoint; no per-call log for the operator (5 of 15). No disclosure policy, bug bounty or certification found; security.txt on upbit.com could not be fetched under its robots.txt (0 of 20). 27 + 17 + 10 + 5 + 0 = 59."
        },
        "scores": {
          "a": 64,
          "b": 59
        }
      }
    ],
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "Hyperliquid Labs",
        "b": "Dunamu Inc.",
        "name": "Vendor"
      },
      {
        "a": "no (local only)",
        "b": "no (local only)",
        "name": "Hosted endpoint"
      },
      {
        "a": "",
        "b": "",
        "name": "Transports"
      },
      {
        "a": "OAuth or key",
        "b": "API key",
        "name": "Auth"
      },
      {
        "a": "Pay per use",
        "b": "Pay per use",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "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",
        "b": "none",
        "name": "Licence"
      },
      {
        "a": "0",
        "b": "0",
        "name": "Tools exposed"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "2026-06-04",
        "b": "2026-10-20",
        "name": "Last release"
      },
      {
        "a": "couldn't be read",
        "b": "no document linked",
        "name": "Terms last updated"
      },
      {
        "a": "no document linked",
        "b": "no date given",
        "name": "Privacy policy last updated"
      },
      {
        "a": "couldn't be read",
        "b": "not read yet",
        "name": "Customer content may train models"
      },
      {
        "a": "couldn't be read",
        "b": "not read yet",
        "name": "Terms restrict automated access"
      },
      {
        "a": "couldn't be read",
        "b": "not read yet",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "couldn't be read",
        "b": "not read yet",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "couldn't be read",
        "b": "not read yet",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "1.9k stars, 167k PyPI/wk",
        "b": "91 stars",
        "name": "Popularity"
      }
    ],
    "faq": [
      {
        "answer": "Upbit Open API scores 54.7 (C) on agent readiness against Hyperliquid's 50 (D), and leads in 4 of 7 scored categories. Hyperliquid leads on security \u0026 auth and payments \u0026 pricing.",
        "question": "Which is better for AI agents, Hyperliquid or Upbit Open API?"
      },
      {
        "answer": "Hyperliquid takes an API key or an OAuth sign-in. Upbit Open API needs an API key.",
        "question": "Do Hyperliquid and Upbit Open API need an API key?"
      },
      {
        "answer": "No hosted endpoint is listed for Hyperliquid. No hosted endpoint is listed for Upbit Open API.",
        "question": "Can an agent call Hyperliquid and Upbit Open API without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Security \u0026 auth, 64 against 59",
          "Payments \u0026 pricing, 55 against 15"
        ],
        "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"
      },
      {
        "aheadOn": [
          "Schema \u0026 documentation, 66 against 42",
          "Maintenance \u0026 community, 83 against 39",
          "Transparency \u0026 trust, 54 against 26"
        ],
        "also": null,
        "goodFor": "KRW-market trading for agents acting for a verified Korean account, with first-party SDKs, a CLI and skills but no MCP.",
        "slug": "upbit",
        "watchFor": "No MCP server; the agent route is the CLI through skills, which need a terminal"
      }
    ],
    "history": null,
    "job": {
      "capability": "exchange.market-data",
      "name": "Exchange market data"
    },
    "others": [
      {
        "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/bitfinex-vs-upbit.json",
        "title": "Bitfinex API vs Upbit Open API",
        "url": "https://www.anchorterminal.com/compare/bitfinex-vs-upbit"
      },
      {
        "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/bitget-vs-upbit.json",
        "title": "Bitget vs Upbit Open API",
        "url": "https://www.anchorterminal.com/compare/bitget-vs-upbit"
      },
      {
        "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/bithumb-vs-upbit.json",
        "title": "Bithumb Open API vs Upbit Open API",
        "url": "https://www.anchorterminal.com/compare/bithumb-vs-upbit"
      },
      {
        "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/bitstamp-vs-upbit.json",
        "title": "Bitstamp API vs Upbit Open API",
        "url": "https://www.anchorterminal.com/compare/bitstamp-vs-upbit"
      },
      {
        "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/bybit-vs-upbit.json",
        "title": "Bybit vs Upbit Open API",
        "url": "https://www.anchorterminal.com/compare/bybit-vs-upbit"
      },
      {
        "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/crypto-com-exchange-vs-upbit.json",
        "title": "Crypto.com Exchange API vs Upbit Open API",
        "url": "https://www.anchorterminal.com/compare/crypto-com-exchange-vs-upbit"
      },
      {
        "json": "https://www.anchorterminal.com/compare/deribit-vs-upbit.json",
        "title": "Deribit vs Upbit Open API",
        "url": "https://www.anchorterminal.com/compare/deribit-vs-upbit"
      },
      {
        "json": "https://www.anchorterminal.com/compare/dydx-vs-upbit.json",
        "title": "dYdX vs Upbit Open API",
        "url": "https://www.anchorterminal.com/compare/dydx-vs-upbit"
      },
      {
        "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/gate-io-vs-upbit.json",
        "title": "Gate vs Upbit Open API",
        "url": "https://www.anchorterminal.com/compare/gate-io-vs-upbit"
      },
      {
        "json": "https://www.anchorterminal.com/compare/gemini-exchange-vs-hyperliquid.json",
        "title": "Gemini Exchange API vs Hyperliquid",
        "url": "https://www.anchorterminal.com/compare/gemini-exchange-vs-hyperliquid"
      },
      {
        "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/htx-vs-upbit.json",
        "title": "HTX trading API vs Upbit Open API",
        "url": "https://www.anchorterminal.com/compare/htx-vs-upbit"
      },
      {
        "json": "https://www.anchorterminal.com/compare/kucoin-vs-upbit.json",
        "title": "KuCoin vs Upbit Open API",
        "url": "https://www.anchorterminal.com/compare/kucoin-vs-upbit"
      },
      {
        "json": "https://www.anchorterminal.com/compare/mexc-vs-upbit.json",
        "title": "MEXC API vs Upbit Open API",
        "url": "https://www.anchorterminal.com/compare/mexc-vs-upbit"
      },
      {
        "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/binance-vs-upbit.json",
        "title": "Binance API vs Upbit Open API",
        "url": "https://www.anchorterminal.com/compare/binance-vs-upbit"
      },
      {
        "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-advanced-trade-vs-upbit.json",
        "title": "Coinbase Advanced Trade API vs Upbit Open API",
        "url": "https://www.anchorterminal.com/compare/coinbase-advanced-trade-vs-upbit"
      },
      {
        "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/coinbase-mcp-vs-upbit.json",
        "title": "Coinbase MCP server (Coinbase for Agents) vs Upbit Open API",
        "url": "https://www.anchorterminal.com/compare/coinbase-mcp-vs-upbit"
      },
      {
        "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/kraken-vs-upbit.json",
        "title": "Kraken API vs Upbit Open API",
        "url": "https://www.anchorterminal.com/compare/kraken-vs-upbit"
      },
      {
        "json": "https://www.anchorterminal.com/compare/okx-vs-upbit.json",
        "title": "OKX API vs Upbit Open API",
        "url": "https://www.anchorterminal.com/compare/okx-vs-upbit"
      },
      {
        "json": "https://www.anchorterminal.com/compare/uniswap-vs-upbit.json",
        "title": "Uniswap Trading API vs Upbit Open API",
        "url": "https://www.anchorterminal.com/compare/uniswap-vs-upbit"
      },
      {
        "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-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": 2,
        "edge": "upbit",
        "hyperliquid": 40,
        "key": "reliability",
        "name": "Reliability",
        "upbit": 42,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 24,
        "edge": "upbit",
        "hyperliquid": 42,
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "upbit": 66,
        "weight": 13
      },
      {
        "by": 0,
        "edge": "",
        "hyperliquid": 70,
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "upbit": 70,
        "weight": 13
      },
      {
        "by": 5,
        "edge": "hyperliquid",
        "hyperliquid": 64,
        "key": "security",
        "name": "Security \u0026 auth",
        "upbit": 59,
        "weight": 14
      },
      {
        "by": 40,
        "edge": "hyperliquid",
        "hyperliquid": 55,
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "upbit": 15,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 44,
        "edge": "upbit",
        "hyperliquid": 39,
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "upbit": 83,
        "weight": 7
      },
      {
        "by": 28,
        "edge": "upbit",
        "hyperliquid": 26,
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "upbit": 54,
        "weight": 7
      }
    ],
    "summary": "Upbit Open API scores 54.7 (C) on agent readiness against Hyperliquid's 50 (D), and leads in 4 of 7 scored categories. Hyperliquid leads on security \u0026 auth and payments \u0026 pricing. Both do exchange market data.",
    "tasks": null,
    "tutorials": [],
    "verdicts": {
      "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.",
      "upbit": "Upbit's Open API has a mandatory IP allow-list, scoped keys with a default withdrawal lock, per-group rate limits with 429 and 418 signalling, an order-test endpoint, official SDKs, a CLI and agent skills with a CONFIRM gate. There is no MCP server, sandbox or status page, and the fees and terms sit on a host our crawler may not read."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/hyperliquid-vs-upbit",
    "json": "https://www.anchorterminal.com/compare/hyperliquid-vs-upbit.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/hyperliquid-vs-upbit.md",
    "mcp": "https://www.anchorterminal.com/mcp",
    "slim": "https://www.anchorterminal.com/compare/hyperliquid-vs-upbit.min.md"
  },
  "markdown": "Upbit Open API scores 54.7 (C) on agent readiness against Hyperliquid's 50 (D), and leads in 4 of 7 scored categories. Hyperliquid leads on security \u0026 auth and payments \u0026 pricing. Both do exchange market data.\n\n- Hyperliquid: grade D, 50/100, rank #1018 of 1349. Markdown https://www.anchorterminal.com/tools/hyperliquid.md · JSON https://www.anchorterminal.com/api/v1/tools/hyperliquid.json\n- Upbit Open API: grade C, 54.7/100, rank #860 of 1349. Markdown https://www.anchorterminal.com/tools/upbit.md · JSON https://www.anchorterminal.com/api/v1/tools/upbit.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### 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- Security \u0026 auth, 64 against 59\n- Payments \u0026 pricing, 55 against 15\n\nWatch for: No official MCP server; the 23 registry entries are all third parties, several selling data by x402\n\n### Upbit Open API (C)\n\nGood for: KRW-market trading for agents acting for a verified Korean account, with first-party SDKs, a CLI and skills but no MCP.\n\nAhead on:\n- Schema \u0026 documentation, 66 against 42\n- Maintenance \u0026 community, 83 against 39\n- Transparency \u0026 trust, 54 against 26\n\nWatch for: No MCP server; the agent route is the CLI through skills, which need a terminal\n\n\n## Why the edge\n\n### Maintenance \u0026 community: Upbit Open API +44\n\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- Upbit Open API (83): Read as a closed service. SDK v1.1.0 on 20 October 2026 (30). The CLI 1.0.0 on 1 September, the rate-limit update of 7 October, the SDK on 20 October and the path-format notice for 16 November 2026 (20). open-api@upbit.com answers in turn on weekdays per the support notice, notices carry dates, and the six upbit-official repositories show no open issues (12 of 15). Current official SDKs in Python, TypeScript and Go (15). Apache-2.0 repositories pushed in October 2026; CI not checked (6 of 10). 30 + 20 + 12 + 15 + 6 = 83.\n\n### Payments \u0026 pricing: Hyperliquid +40\n\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- Upbit Open API (15): No machine payment protocol (0). The fee schedule is on upbit.com, which disallows every crawler path, so no price is recorded (0 of 20, unchecked). Public quotation endpoints need no key, card or account; trading needs a verified Korean account. Judgement call (15 of 20). A person must sign up, pass identity checks and issue keys on the PC web site (0). 0 + 0 + 15 + 0 = 15.\n\n### Transparency \u0026 trust: Upbit Open API +28\n\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- Upbit Open API (54): The editorial half. A closed service whose user and Open API terms could not be fetched under upbit.com's robots.txt, and whose SDK licence page calls the SDK material not open source while the repositories carry Apache-2.0 (8 of 30). The developer centre's privacy policy names Dunamu Inc., gives retention periods and names Zendesk in Japan; the main privacy policy was not read (14 of 30). Notices with effective dates, including the path-format change and the deprecated Remaining-Req min field (12 of 20). Zendesk and Google Analytics named with a location for the developer centre only (8 of 20). 8 + 14 + 12 + 8 = 42.\n\n### Schema \u0026 documentation: Upbit Open API +24\n\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- Upbit Open API (66): No OpenAPI found; the reference is a readme.io site with a Markdown twin of every page (5 of 25). llms.txt on docs.upbit.com and a kr/llms.txt index (10). Each reference page states what the endpoint does, its group and its errors, with warnings such as market_offline after maintenance (14 of 20). Typed parameters with enums for order type, side and time in force and required flags (11 of 15). Recipes in Python, Java and Node.js and an error format of error.name and error.message with HTTP statuses (13 of 15). Feature versions in page histories (v1.6.1) and dated notices with effective dates, no single API version (13 of 15). 5 + 10 + 14 + 11 + 13 + 13 = 66.\n\n### Security \u0026 auth: Hyperliquid +5\n\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- Upbit Open API (59): Keys limited to chosen functions, a mandatory public IPv4 allow-list, a JWT per request with a fresh nonce, keys listed with expiry through the API, and a withdrawal safe-lock on by default (27 of 30). Read-only keys, the default withdrawal lock lifted only in the app, and skills that require a typed CONFIRM before writes (17 of 20). The API returns exchange data and announcements, no third-party content (10 of 15). An API key list endpoint; no per-call log for the operator (5 of 15). No disclosure policy, bug bounty or certification found; security.txt on upbit.com could not be fetched under its robots.txt (0 of 20). 27 + 17 + 10 + 5 + 0 = 59.\n\n## Score by category\n\n| Category | Weight | Hyperliquid | Upbit Open API | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 40 | 42 | Upbit Open API +2 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 42 | 66 | Upbit Open API +24 |\n| Agent ergonomics | 13% (16.2 this run) | 70 | 70 | even |\n| Security \u0026 auth | 14% (17.5 this run) | 64 | 59 | Hyperliquid +5 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 55 | 15 | Hyperliquid +40 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 39 | 83 | Upbit Open API +44 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 26 | 54 | Upbit Open API +28 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **50 · D** | **54.7 · C** | |\n\n## Facts side by side\n\n| Fact | Hyperliquid | Upbit Open API |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Hyperliquid Labs | Dunamu Inc. |\n| Hosted endpoint | no (local only) | no (local only) |\n| Transports |  |  |\n| Auth | OAuth or key | API key |\n| Pricing | Pay per use | Pay per use |\n| x402 | no | no |\n| Licence | 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 | none |\n| Tools exposed | 0 | 0 |\n| Read-only variant documented | no | no |\n| llms.txt | yes | yes |\n| Last release | 2026-06-04 | 2026-10-20 |\n| Terms last updated | couldn't be read | no document linked |\n| Privacy policy last updated | no document linked | no date given |\n| Customer content may train models | couldn't be read | not read yet |\n| Terms restrict automated access | couldn't be read | not read yet |\n| Terms restrict benchmarking | couldn't be read | not read yet |\n| Terms or service can change without notice | couldn't be read | not read yet |\n| Arbitration or class-action waiver | couldn't be read | not read yet |\n| Popularity | 1.9k stars, 167k PyPI/wk | 91 stars |\n\n## Verdicts\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**Upbit Open API.** Upbit's Open API has a mandatory IP allow-list, scoped keys with a default withdrawal lock, per-group rate limits with 429 and 418 signalling, an order-test endpoint, official SDKs, a CLI and agent skills with a CONFIRM gate. There is no MCP server, sandbox or status page, and the fees and terms sit on a host our crawler may not read.\n\n## Before you call either\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### Upbit Open API\n\n1. Ask the person for a key with only the functions the task needs and your server's public IPv4 address registered; a private or unregistered IP is refused\n2. Sign every request with a fresh JWT (HS512, new nonce, SHA512 query hash) and branch on error.name, not error.message\n3. Run POST /v1/orders/test before a live order; it costs nothing and shares the 8-a-second order-test group\n4. Read Remaining-Req and keep orders under 12 a second per pocket; on 429 wait for the next second and on 418 wait out the stated block\n5. Leave the withdrawal safe-lock on unless the person lifts it in the app, and send paths with single slashes and no trailing slash before 16 November 2026\n\n## Questions\n\n### Which is better for AI agents, Hyperliquid or Upbit Open API?\n\nUpbit Open API scores 54.7 (C) on agent readiness against Hyperliquid's 50 (D), and leads in 4 of 7 scored categories. Hyperliquid leads on security \u0026 auth and payments \u0026 pricing.\n\n### Do Hyperliquid and Upbit Open API need an API key?\n\nHyperliquid takes an API key or an OAuth sign-in. Upbit Open API needs an API key.\n\n### Can an agent call Hyperliquid and Upbit Open API without installing anything?\n\nNo hosted endpoint is listed for Hyperliquid. No hosted endpoint is listed for Upbit Open API.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/hyperliquid-vs-upbit.json, and with the fewest tokens: https://www.anchorterminal.com/compare/hyperliquid-vs-upbit.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"hyperliquid\", \"b\": \"upbit\"}`. From a terminal: `anchor compare hyperliquid upbit`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/hyperliquid.json and https://www.anchorterminal.com/api/v1/tools/upbit.json\n\n## Other comparisons with Hyperliquid or Upbit Open API\n\n- [Bitfinex API vs Hyperliquid](https://www.anchorterminal.com/compare/bitfinex-vs-hyperliquid.md)\n- [Bitfinex API vs Upbit Open API](https://www.anchorterminal.com/compare/bitfinex-vs-upbit.md)\n- [Bitget vs Hyperliquid](https://www.anchorterminal.com/compare/bitget-vs-hyperliquid.md)\n- [Bitget vs Upbit Open API](https://www.anchorterminal.com/compare/bitget-vs-upbit.md)\n- [Bithumb Open API vs Hyperliquid](https://www.anchorterminal.com/compare/bithumb-vs-hyperliquid.md)\n- [Bithumb Open API vs Upbit Open API](https://www.anchorterminal.com/compare/bithumb-vs-upbit.md)\n- [Bitstamp API vs Hyperliquid](https://www.anchorterminal.com/compare/bitstamp-vs-hyperliquid.md)\n- [Bitstamp API vs Upbit Open API](https://www.anchorterminal.com/compare/bitstamp-vs-upbit.md)\n- [Bybit vs Hyperliquid](https://www.anchorterminal.com/compare/bybit-vs-hyperliquid.md)\n- [Bybit vs Upbit Open API](https://www.anchorterminal.com/compare/bybit-vs-upbit.md)\n- [Crypto.com Exchange API vs Hyperliquid](https://www.anchorterminal.com/compare/crypto-com-exchange-vs-hyperliquid.md)\n- [Crypto.com Exchange API vs Upbit Open API](https://www.anchorterminal.com/compare/crypto-com-exchange-vs-upbit.md)\n- [Deribit vs Upbit Open API](https://www.anchorterminal.com/compare/deribit-vs-upbit.md)\n- [dYdX vs Upbit Open API](https://www.anchorterminal.com/compare/dydx-vs-upbit.md)\n- [Gate vs Hyperliquid](https://www.anchorterminal.com/compare/gate-io-vs-hyperliquid.md)\n- [Gate vs Upbit Open API](https://www.anchorterminal.com/compare/gate-io-vs-upbit.md)\n- [Gemini Exchange API vs Hyperliquid](https://www.anchorterminal.com/compare/gemini-exchange-vs-hyperliquid.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- [HTX trading API vs Upbit Open API](https://www.anchorterminal.com/compare/htx-vs-upbit.md)\n- [KuCoin vs Upbit Open API](https://www.anchorterminal.com/compare/kucoin-vs-upbit.md)\n- [MEXC API vs Upbit Open API](https://www.anchorterminal.com/compare/mexc-vs-upbit.md)\n- [Binance API vs Hyperliquid](https://www.anchorterminal.com/compare/binance-vs-hyperliquid.md)\n- [Binance API vs Upbit Open API](https://www.anchorterminal.com/compare/binance-vs-upbit.md)\n- [Coinbase Advanced Trade API vs Hyperliquid](https://www.anchorterminal.com/compare/coinbase-advanced-trade-vs-hyperliquid.md)\n- [Coinbase Advanced Trade API vs Upbit Open API](https://www.anchorterminal.com/compare/coinbase-advanced-trade-vs-upbit.md)\n- [Coinbase MCP server (Coinbase for Agents) vs Hyperliquid](https://www.anchorterminal.com/compare/coinbase-mcp-vs-hyperliquid.md)\n- [Coinbase MCP server (Coinbase for Agents) vs Upbit Open API](https://www.anchorterminal.com/compare/coinbase-mcp-vs-upbit.md)\n- [Hyperliquid vs Uniswap Trading API](https://www.anchorterminal.com/compare/hyperliquid-vs-uniswap.md)\n- [Kraken API vs Upbit Open API](https://www.anchorterminal.com/compare/kraken-vs-upbit.md)\n- [OKX API vs Upbit Open API](https://www.anchorterminal.com/compare/okx-vs-upbit.md)\n- [Uniswap Trading API vs Upbit Open API](https://www.anchorterminal.com/compare/uniswap-vs-upbit.md)\n- [Deribit vs Hyperliquid](https://www.anchorterminal.com/compare/deribit-vs-hyperliquid.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": "Hyperliquid vs Upbit Open API",
        "url": ""
      }
    ],
    "description": "Upbit Open scores 54.7 (C) to Hyperliquid's 50 (D) for exchange market data. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "Hyperliquid D 50",
      "Upbit Open API C 54.7",
      "scores"
    ],
    "h1": "Hyperliquid vs Upbit Open API",
    "image": "https://www.anchorterminal.com/assets/og/default.png",
    "path": "/compare/hyperliquid-vs-upbit",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Hyperliquid vs Upbit Open for AI agents in 2026: scores and prices",
    "toc": null,
    "updated": "2026-11-03",
    "url": "https://www.anchorterminal.com/compare/hyperliquid-vs-upbit"
  },
  "tokens": {
    "markdown": 4450,
    "slim": 2280
  },
  "version": 1
}
