{
  "data": {
    "a": {
      "slug": "openfort",
      "name": "Openfort",
      "vendor": "Openfort (Alamas Labs Inc.)",
      "vendorUrl": "https://www.openfort.io",
      "kind": "http-api",
      "category": "agent-wallets",
      "summary": "Openfort is wallet infrastructure from Alamas Labs. Its REST API, Node SDK and CLI create backend wallets held in a trusted execution environment, with signing policies, session keys and gas sponsorship. It also sells embedded wallets for apps.",
      "url": "https://www.anchorterminal.com/tools/openfort",
      "markdownUrl": "https://www.anchorterminal.com/tools/openfort.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/openfort.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/openfort.json",
      "repo": "https://github.com/openfort-xyz/openfort-node",
      "license": "Proprietary service under the Openfort Developer Terms of Service. The Node SDK and OpenSigner are MIT. The CLI repository and package state no licence",
      "transports": [
        "http",
        "stdio"
      ],
      "remoteUrl": "https://api.openfort.io",
      "packages": [
        {
          "registry": "npm",
          "name": "@openfort/openfort-node"
        },
        {
          "registry": "npm",
          "name": "@openfort/cli"
        }
      ],
      "auth": "api-key",
      "authNotes": "A secret key (`sk_test_` or `sk_live_`) from the self-serve dashboard goes in `Authorization: Bearer`. Secret keys carry scopes (26 named, such as `accounts:sign`, `policies:write` and `accounts:export`), and a key made without a scope list gets all but four. Backend wallet signing also needs an `x-wallet-auth` ES256 JWT signed with a separate wallet secret, with a nonce and a request hash. Test and live keys are isolated. No OAuth (https://www.openfort.io/docs/api-reference/authentication).",
      "pricing": "freemium",
      "pricingNotes": "Free plan with 2,000 operations a month and no card, then $0.01 an operation. Growth $99 a month (25,000 operations, $0.008 extra), Pro $249 (100,000, $0.006), Scale $599 (500,000, $0.004). An operation is a wallet creation, signature, broadcast, policy evaluation, webhook or key import or export. Sponsored gas carries a 10 per cent surcharge, 5 per cent on Pro and Scale. Enterprise is priced by sales (https://www.openfort.io/pricing.md, checked 2026-10-09).",
      "priceSummary": "$99 / mo",
      "where": "both",
      "x402": {
        "level": "partial",
        "evidence": "Openfort wallets pay as a buyer. The docs carry an x402 recipe for USDC payments from embedded and backend wallets and an MPP recipe for an agent paying HTTP services on Tempo. Openfort's own API is not paid over x402. Its 402 status means the plan's operations are used up with no payment method (https://www.openfort.io/docs/llms.txt; https://www.openfort.io/docs/api-reference/errors, checked 2026-10-09).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 10,
        "npmWeekly": 7647,
        "pypiWeekly": null,
        "asOf": "2026-10-09"
      },
      "docsUrl": "https://www.openfort.io/docs/products/server/workflows/agentic-wallets",
      "llmsTxt": "https://www.openfort.io/llms.txt",
      "openapi": "https://www.openfort.io/docs/openapi.json",
      "capabilities": [
        "wallet.onchain",
        "wallet.spend-limits",
        "wallet.custody",
        "payments.x402"
      ],
      "tags": [
        "hosted",
        "freemium",
        "free-tier",
        "api-key",
        "openapi",
        "llms-txt",
        "mcp",
        "cli",
        "typescript",
        "wallet",
        "stablecoin",
        "x402",
        "tee",
        "status-page",
        "webhooks"
      ],
      "lastRelease": "2026-09-28",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 70.1,
        "grade": "BB",
        "agentReady": true,
        "rank": 163,
        "ranked": true,
        "rankOf": 950,
        "categoryRank": 4,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 65,
          "maintenance": 87,
          "payments": 60,
          "reliability": 88,
          "schema": 89,
          "security": 65,
          "transparency": 69
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-09"
        },
        "negative": -5,
        "negativeNotes": [
          "9 October 2026. The agent wallets page says a signing policy is evaluated server-side on every operation against value caps and allowlists and that caps are enforced at signing time. The policies docs say an EVM backend send is evaluated only as `signEvmHash`, so those rules cannot block one. The docs disclose this plainly, so 3 points (https://www.openfort.io/agent-wallets; https://www.openfort.io/docs/configuration/policies).",
          "28 September 2026. The changelog says tokens from a third-party login provider were still accepted after the provider was disabled. Fixed and documented in the changelog, with no advisory found, so 2 points (https://www.openfort.io/changelog)."
        ],
        "verdict": "Backend wallets sign inside a GCP Confidential Space enclave, secret keys carry 26 scopes, and rate limits, errors and prices are published. On EVM, a backend send reaches the policy engine only as a hash, so address and value rules bind only when the caller runs the pre-flight check first.",
        "bestFor": "A team that wants server-held wallets for agents on EVM chains and Solana with enclave signing, a free start and a CLI an agent can drive.",
        "strengths": [
          "Backend wallet keys are generated and used inside a GCP Confidential Space enclave with AMD SEV-SNP, wrapped by an HSM-backed Cloud KMS key",
          "Secret keys carry 26 named scopes, and backend signing also needs an ES256 JWT from a separate wallet secret that can be rotated",
          "Policy engine rejects any operation no rule matches, with account and project scopes and a pre-flight `POST /v2/policies/evaluate`",
          "Rate limits are published per plan (100 to 1,200 requests a minute) and a 429 carries `Retry-After`",
          "Free plan of 2,000 operations a month with no card, and per-operation overage prices on every plan"
        ],
        "weaknesses": [
          "An EVM backend send is evaluated only as `signEvmHash`, so address, value and calldata rules do not block it unless the caller pre-flights",
          "Signing policies cap value per transaction. No daily or rolling cap was found in the reviewed policy pages",
          "The CLI MCP server exposes 72 commands as tools, among them `accounts_evm_export`, which returns a private key",
          "A default secret key includes `accounts:export` and `accounts:sign`",
          "No SOC 2 report (the vendor says so), no security.txt and no bug bounty found"
        ],
        "agentNotes": [
          "Call `policies.evaluate` with operation `signEvmTransaction` before every EVM backend send. The send itself is checked only as `signEvmHash`",
          "Keep the signing policy and the gas sponsorship policy separate. Linking a signing policy to a fee sponsorship stops it working as a guardrail",
          "Pass a fee sponsorship on EVM sends. Without one the transaction stays pending with no error",
          "Give an agent a secret key without `accounts:export`, and limit the CLI MCP server to the tools it needs",
          "On a 5xx after a write, read the resource before retrying. On a 429, wait the full `Retry-After`"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "BB",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 70.1
          }
        ],
        "editorialScores": {
          "ergonomics": 65,
          "maintenance": 87,
          "payments": 60,
          "reliability": 88,
          "schema": 89,
          "security": 65,
          "transparency": 64
        },
        "provenanceScore": 73
      },
      "connect": {
        "install": "npm install @openfort/openfort-node",
        "http": "curl https://api.openfort.io/v2/transactions -H \"Authorization: Bearer sk_test_...\"",
        "claudeCode": "claude mcp add --transport http openfort-docs https://www.openfort.io/api/mcp",
        "config": {
          "mcpServers": {
            "openfort": {
              "args": [
                "@openfort/cli",
                "--mcp"
              ],
              "command": "npx",
              "env": {
                "OPENFORT_API_KEY": "${OPENFORT_API_KEY}"
              }
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/wallet.onchain",
        "tool": "https://letme.dev/openfort"
      },
      "area": "payments",
      "unitPrices": [
        {
          "item": "Growth plan",
          "unit": "month",
          "usd": 99,
          "note": "25,000 operations included"
        },
        {
          "item": "Pro plan",
          "unit": "month",
          "usd": 249,
          "note": "100,000 operations included"
        },
        {
          "item": "Scale plan",
          "unit": "month",
          "usd": 599,
          "note": "500,000 operations included"
        },
        {
          "item": "Extra operation, Free plan",
          "unit": "call",
          "usd": 0.01,
          "note": "per operation above 2,000 a month"
        },
        {
          "item": "Extra operation, Growth plan",
          "unit": "call",
          "usd": 0.008,
          "note": "per operation above 25,000 a month"
        },
        {
          "item": "Extra operation, Scale plan",
          "unit": "call",
          "usd": 0.004,
          "note": "per operation above 500,000 a month"
        }
      ],
      "provenance": {
        "legalEntity": "Alamas Labs Inc.",
        "domain": "openfort.io",
        "domainRegistered": "",
        "endpointOnVendorDomain": true,
        "terms": "https://www.openfort.io/developer-terms",
        "privacy": "https://www.openfort.io/privacy",
        "statusPage": "https://status.openfort.io",
        "changelog": "https://www.openfort.io/changelog",
        "securityTxt": "none",
        "checked": "2026-10-09",
        "notes": [
          "The Developer Terms of Service (last updated 16 January 2026) and the privacy policy (last updated 4 September 2026) both name Alamas Labs Inc. doing business as Openfort. The terms are governed by Delaware law.",
          "The API answers at https://api.openfort.io and the docs, OpenAPI file and docs MCP server at www.openfort.io.",
          "https://www.openfort.io/.well-known/security.txt answered 404. The security page gives security@openfort.io for reports.",
          "rdap.org answered that no RDAP service is available for openfort.io, so the registration date is not recorded.",
          "robots.txt on www.openfort.io allows every path and carries `Content-Signal: search=yes, ai-input=yes, ai-train=no`."
        ],
        "score": 73
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/openfort.json",
      "live": {
        "slug": "openfort",
        "probe": {
          "target": "https://api.openfort.io",
          "method": "get",
          "lastAt": "2026-10-10T04:40:58.442608474Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 111,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 119,
          "p95ms24h": 216,
          "samples24h": 133,
          "samples30d": 133,
          "days": [
            {
              "date": "2026-10-09",
              "probes": 85,
              "ok": 85
            },
            {
              "date": "2026-10-10",
              "probes": 48,
              "ok": 48
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.openfort.io",
          "indicator": "unknown",
          "summary": "no machine-readable status found",
          "checkedAt": "2026-10-10T00:51:06.10917188Z"
        },
        "versions": [
          {
            "registry": "github",
            "name": "openfort-xyz/openfort-node",
            "version": "v0.13.1",
            "released": "2026-09-26",
            "seenAt": "2026-10-09T17:10:51.27158188Z"
          },
          {
            "registry": "npm",
            "name": "@openfort/cli",
            "version": "0.2.2",
            "seenAt": "2026-10-09T17:10:50.094981492Z"
          },
          {
            "registry": "npm",
            "name": "@openfort/openfort-node",
            "version": "0.13.1",
            "seenAt": "2026-10-09T17:10:49.071091624Z"
          }
        ],
        "githubStars": 10,
        "npmWeekly": 7647,
        "pages": [
          {
            "url": "https://www.openfort.io/changelog",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-09T18:52:45.881124774Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "f46241d68d76"
          },
          {
            "url": "https://www.openfort.io/pricing.md",
            "kind": "pricing",
            "status": 200,
            "checkedAt": "2026-10-09T18:52:49.918241068Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "85d4cce5d750"
          },
          {
            "url": "https://www.openfort.io/privacy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-09T18:52:51.997983732Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "92d5a24cf4eb"
          },
          {
            "url": "https://www.openfort.io/developer-terms",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-09T18:52:48.217259445Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "c5c4280eac9f"
          }
        ],
        "updatedAt": "2026-10-10T04:40:58.442608474Z"
      }
    },
    "answer": "Turnkey Agentic Wallets scores 76 (BB) on agent readiness against Openfort's 70.1 (BB), and leads in 3 of 7 scored categories. Openfort leads on reliability and schema \u0026 documentation.",
    "b": {
      "slug": "turnkey-agentic-wallets",
      "name": "Turnkey Agentic Wallets",
      "vendor": "Turnkey Global, Inc.",
      "vendorUrl": "https://www.turnkey.com",
      "kind": "http-api",
      "category": "agent-wallets",
      "summary": "Turnkey's signing API gives an AI agent its own non-root user and P-256 key over a company wallet. Policies evaluated in secure enclaves set what the agent may sign, and can require a person's approval.",
      "url": "https://www.anchorterminal.com/tools/turnkey-agentic-wallets",
      "markdownUrl": "https://www.anchorterminal.com/tools/turnkey-agentic-wallets.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/turnkey-agentic-wallets.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/turnkey-agentic-wallets.json",
      "repo": "https://github.com/tkhq/turnkey-agent-skills",
      "license": "Proprietary service under Turnkey's terms of service. The SDKs, the CLI and the agent skills on GitHub are Apache-2.0",
      "transports": [
        "http"
      ],
      "remoteUrl": "https://api.turnkey.com",
      "packages": [
        {
          "registry": "npm",
          "name": "@turnkey/sdk-server"
        },
        {
          "registry": "npm",
          "name": "@turnkey/viem"
        },
        {
          "registry": "pypi",
          "name": "turnkey-http"
        }
      ],
      "auth": "api-key",
      "authNotes": "Self-serve. A person creates an organisation at app.turnkey.com with an email address and a passkey, then registers a P-256 public key. Every request is a JSON POST signed with that key in an `X-Stamp` header. There are no bearer tokens. An agent gets its own non-root user and key, created through the API by a root user, and can do only what policies allow.",
      "pricing": "freemium",
      "pricingNotes": "25 free signatures a month on Pay as You Go, then $0.10 a signature. Pro is $99 a month and $0.05 a signature. Enterprise is custom, from $0.0015 a signature, and adds gas sponsorship, SLAs and up to 250 policies. The free allowance needs no card, so an agent can start without a contract. Transaction management and swaps are priced per transaction on request (https://www.turnkey.com/pricing, checked 2026-10-08).",
      "priceSummary": "$0.10 / call",
      "where": "hosted",
      "x402": {
        "level": "partial",
        "evidence": "Turnkey documents paying over x402 and MPP as a buyer. A viem account from `@turnkey/viem` signs in the enclave and is passed to the `@x402/fetch` or `mppx` client. Turnkey's own API is not paid over either protocol (https://docs.turnkey.com/solutions/company-wallets/agentic-payments, checked 2026-10-08).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": null,
        "npmWeekly": 304389,
        "pypiWeekly": 11903,
        "asOf": "2026-10-08"
      },
      "docsUrl": "https://docs.turnkey.com/solutions/company-wallets/agentic-wallets",
      "llmsTxt": "https://docs.turnkey.com/llms.txt",
      "openapi": "https://docs.turnkey.com/public_api.swagger.json",
      "capabilities": [
        "wallet.onchain",
        "wallet.spend-limits",
        "wallet.custody",
        "payments.x402"
      ],
      "tags": [
        "hosted",
        "freemium",
        "free-tier",
        "openapi",
        "llms-txt",
        "typescript",
        "go",
        "python",
        "rust",
        "ruby",
        "wallet",
        "policy-engine",
        "x402",
        "status-page",
        "bug-bounty",
        "soc2",
        "closed-source",
        "webhooks",
        "skills"
      ],
      "lastRelease": "2026-10-08",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 76,
        "grade": "BB",
        "agentReady": true,
        "rank": 39,
        "ranked": true,
        "rankOf": 950,
        "categoryRank": 1,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 77,
          "maintenance": 83,
          "payments": 58,
          "reliability": 75,
          "schema": 79,
          "security": 85,
          "transparency": 72
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-08"
        },
        "negative": 0,
        "verdict": "An agent gets a non-root user that can sign nothing until a policy allows it, with DENY rules taking precedence and human co-approval available. Policies cap value per transaction only, with no daily or rolling limit found, and each organisation gets five policies below Enterprise. Signing endpoints returned elevated errors for five hours on 27 August 2026.",
        "bestFor": "A company that wants agents to sign from its own wallets under rules checked in an enclave, with a person co-approving large transactions, across EVM, Solana, Bitcoin, Tron and other chains.",
        "strengths": [
          "Non-root users have no permissions until an ALLOW policy exists, and any matching DENY policy wins",
          "Consensus expressions can require the agent and a named person to approve before the enclave signs",
          "API private keys are generated by the customer and never sent to Turnkey. Keys can carry an expiry",
          "Submissions are idempotent by request body, so a retry with the same body returns the same activity",
          "Public Swagger 2.0 spec with 186 paths, llms.txt, a full-text docs feed and nine Apache-2.0 agent skills"
        ],
        "weaknesses": [
          "Policy conditions cap value per transaction. No daily, rolling or cumulative spending limit was found in the policy language",
          "Free, Pay as You Go and Pro organisations are limited to five policies and a default of 1 to 3 requests a second",
          "Root users bypass the policy engine entirely, and the first user of a new organisation is root",
          "Signing endpoints returned elevated errors from 00:44 to 05:53 EDT on 27 August 2026",
          "429 responses carry no `Retry-After` header, and the terms forbid benchmarking and availability monitoring"
        ],
        "agentNotes": [
          "Use a non-root user's key. Refuse root credentials for unattended work, because root bypasses every policy",
          "Scope every signing ALLOW policy by `wallet.id` or `wallet_account.address`, or it covers every key the user can reach",
          "Check the activity status on each response. `ACTIVITY_STATUS_CONSENSUS_NEEDED` means a person must approve within 24 hours",
          "Retry with the identical body to stay idempotent. Changing `timestampMs` creates a new activity",
          "Back off with jitter on 429 and poll `get_activity` sparingly, since polling counts against the same 1 to 3 requests a second"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "BB",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 76
          }
        ],
        "editorialScores": {
          "ergonomics": 77,
          "maintenance": 83,
          "payments": 58,
          "reliability": 75,
          "schema": 79,
          "security": 85,
          "transparency": 50
        },
        "provenanceScore": 94
      },
      "connect": {
        "install": "npm install @turnkey/sdk-server",
        "claudeCode": "claude mcp add --transport http turnkey https://docs.turnkey.com/mcp"
      },
      "letme": {
        "capability": "https://letme.dev/wallet.onchain",
        "tool": "https://letme.dev/turnkey-agentic-wallets"
      },
      "area": "payments",
      "unitPrices": [
        {
          "item": "Signature, Pay as You Go",
          "unit": "call",
          "usd": 0.1,
          "note": "after 25 free signatures a month"
        },
        {
          "item": "Pro plan",
          "unit": "month",
          "usd": 99,
          "note": "monthly minimum, up to 2,000 wallets"
        },
        {
          "item": "Signature, Pro",
          "unit": "call",
          "usd": 0.05,
          "note": "per signature on the Pro plan"
        }
      ],
      "provenance": {
        "legalEntity": "Turnkey Global, Inc.",
        "domain": "turnkey.com",
        "domainRegistered": "1994-12-20",
        "endpointOnVendorDomain": true,
        "terms": "https://www.turnkey.com/legal/terms",
        "privacy": "https://www.turnkey.com/legal/privacy",
        "statusPage": "https://www.turnkey-status.com",
        "changelog": "https://github.com/tkhq/sdk/blob/main/packages/sdk-server/CHANGELOG.md",
        "securityTxt": "valid",
        "checked": "2026-10-08",
        "notes": [
          "The terms of service (updated 6 August 2026) are the agreement for the services and the API. They name Turnkey Global, Inc., give 15 W. 18th Street, New York as the notice address and choose New York law.",
          "The terms have a section on automated and AI-mediated access. It treats agents using a customer's credentials as authorised users and makes the customer responsible for their actions.",
          "The privacy policy (updated 29 June 2026) covers the services and says Turnkey is a processor where it serves a business customer's users.",
          "The API answers at api.turnkey.com. The status page is on a second domain, turnkey-status.com, hosted by Atlassian Statuspage.",
          "www.turnkey.com/.well-known/security.txt gives a policy URL, a contact form, security@turnkey.com and a PGP key. It has no Expires field.",
          "No changelog for the API was found in the docs. The link is the server SDK's changelog on GitHub.",
          "RDAP for turnkey.com gives a registration date of 1994-12-20."
        ],
        "score": 94
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/turnkey-agentic-wallets.json",
      "live": {
        "slug": "turnkey-agentic-wallets",
        "probe": {
          "target": "https://api.turnkey.com",
          "method": "get",
          "lastAt": "2026-10-10T04:41:07.304529705Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 76,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 91,
          "p95ms24h": 186,
          "samples24h": 217,
          "samples30d": 217,
          "days": [
            {
              "date": "2026-10-09",
              "probes": 169,
              "ok": 169
            },
            {
              "date": "2026-10-10",
              "probes": 48,
              "ok": 48
            }
          ]
        },
        "vendorStatus": {
          "page": "https://www.turnkey-status.com",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-10-10T04:41:33.36820014Z"
        },
        "versions": [
          {
            "registry": "github",
            "name": "tkhq/turnkey-agent-skills",
            "version": "v1.0.0",
            "released": "2026-05-19",
            "seenAt": "2026-10-09T17:25:22.864443702Z"
          },
          {
            "registry": "npm",
            "name": "@turnkey/sdk-server",
            "version": "8.6.0",
            "seenAt": "2026-10-09T17:25:20.465140372Z"
          },
          {
            "registry": "npm",
            "name": "@turnkey/viem",
            "version": "0.14.45",
            "seenAt": "2026-10-09T17:25:21.350311781Z"
          },
          {
            "registry": "pypi",
            "name": "turnkey-http",
            "version": "0.1.0",
            "released": "2026-03-09",
            "seenAt": "2026-10-09T17:25:22.68301933Z"
          }
        ],
        "githubStars": 2,
        "npmWeekly": 207310,
        "pypiWeekly": 12703,
        "securityTxt": {
          "url": "https://turnkey.com/.well-known/security.txt",
          "state": "valid",
          "checkedAt": "2026-10-09T15:39:21.78683052Z"
        },
        "llmsTxt": {
          "url": "https://docs.turnkey.com/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-10-09T14:02:55.810753459Z"
        },
        "pages": [
          {
            "url": "https://raw.githubusercontent.com/tkhq/sdk/main/packages/sdk-server/CHANGELOG.md",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-09T18:46:15.152528037Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "2235cbc3dc12"
          },
          {
            "url": "https://www.turnkey.com/pricing",
            "kind": "pricing",
            "status": 200,
            "checkedAt": "2026-10-09T18:55:12.033523114Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "04bad09d0ee2"
          },
          {
            "url": "https://www.turnkey.com/legal/privacy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-09T18:55:07.940606607Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "619efc11837c"
          },
          {
            "url": "https://www.turnkey.com/legal/terms",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-09T18:55:10.028916745Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "7eb4d66a4178"
          }
        ],
        "updatedAt": "2026-10-10T04:41:33.36820014Z"
      }
    },
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "Openfort (Alamas Labs Inc.)",
        "b": "Turnkey Global, Inc.",
        "name": "Vendor"
      },
      {
        "a": "https://api.openfort.io",
        "b": "https://api.turnkey.com",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP, stdio",
        "b": "HTTP",
        "name": "Transports"
      },
      {
        "a": "API key",
        "b": "API key",
        "name": "Auth"
      },
      {
        "a": "Freemium",
        "b": "Freemium",
        "name": "Pricing"
      },
      {
        "a": "payer tooling only",
        "b": "payer tooling only",
        "name": "x402"
      },
      {
        "a": "Proprietary service under the Openfort Developer Terms of Service. The Node SDK and OpenSigner are MIT. The CLI repository and package state no licence",
        "b": "Proprietary service under Turnkey's terms of service. The SDKs, the CLI and the agent skills on GitHub are Apache-2.0",
        "name": "Licence"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "2026-09-28",
        "b": "2026-10-08",
        "name": "Last release"
      },
      {
        "a": "2026-01-16",
        "b": "2026-08-06",
        "name": "Terms last updated"
      },
      {
        "a": "2026-09-04",
        "b": "2026-06-29",
        "name": "Privacy policy last updated"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Customer content may train models"
      },
      {
        "a": "not found in the text",
        "b": "yes",
        "name": "Terms restrict automated access"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "not found in the text",
        "b": "yes",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "10 stars, 7.6k npm/wk",
        "b": "304k npm/wk, 12k PyPI/wk",
        "name": "Popularity"
      }
    ],
    "faq": [
      {
        "answer": "Turnkey Agentic Wallets scores 76 (BB) on agent readiness against Openfort's 70.1 (BB), and leads in 3 of 7 scored categories. Openfort leads on reliability and schema \u0026 documentation.",
        "question": "Which is better for AI agents, Openfort or Turnkey Agentic Wallets?"
      },
      {
        "answer": "Both need an API key.",
        "question": "Do Openfort and Turnkey Agentic Wallets need an API key?"
      },
      {
        "answer": "Yes. Openfort has a hosted endpoint at https://api.openfort.io and Turnkey Agentic Wallets at https://api.turnkey.com.",
        "question": "Can an agent call Openfort and Turnkey Agentic Wallets without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Reliability, 88 against 75",
          "Schema \u0026 documentation, 89 against 79"
        ],
        "also": [
          "Runs on your own machine"
        ],
        "goodFor": "A team that wants server-held wallets for agents on EVM chains and Solana with enclave signing, a free start and a CLI an agent can drive.",
        "slug": "openfort",
        "watchFor": "An EVM backend send is evaluated only as `signEvmHash`, so address, value and calldata rules do not block it unless the caller pre-flights"
      },
      {
        "aheadOn": [
          "Agent ergonomics, 77 against 65",
          "Security \u0026 auth, 85 against 65"
        ],
        "also": [
          "No incidents deducted, where Openfort loses 5 points for them"
        ],
        "goodFor": "A company that wants agents to sign from its own wallets under rules checked in an enclave, with a person co-approving large transactions, across EVM, Solana, Bitcoin, Tron and other chains.",
        "slug": "turnkey-agentic-wallets",
        "watchFor": "Policy conditions cap value per transaction. No daily, rolling or cumulative spending limit was found in the policy language"
      }
    ],
    "job": {
      "capability": "wallet.onchain",
      "name": "Onchain wallets"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/circle-wallets-vs-openfort.json",
        "title": "Circle Wallets (Agent Wallets, Programmable Wallets) vs Openfort",
        "url": "https://www.anchorterminal.com/compare/circle-wallets-vs-openfort"
      },
      {
        "json": "https://www.anchorterminal.com/compare/circle-wallets-vs-turnkey-agentic-wallets.json",
        "title": "Circle Wallets (Agent Wallets, Programmable Wallets) vs Turnkey Agentic Wallets",
        "url": "https://www.anchorterminal.com/compare/circle-wallets-vs-turnkey-agentic-wallets"
      },
      {
        "json": "https://www.anchorterminal.com/compare/coinbase-cdp-agentkit-vs-openfort.json",
        "title": "Coinbase Developer Platform (Agentic Wallet, AgentKit, CDP MCP) vs Openfort",
        "url": "https://www.anchorterminal.com/compare/coinbase-cdp-agentkit-vs-openfort"
      },
      {
        "json": "https://www.anchorterminal.com/compare/coinbase-cdp-agentkit-vs-turnkey-agentic-wallets.json",
        "title": "Coinbase Developer Platform (Agentic Wallet, AgentKit, CDP MCP) vs Turnkey Agentic Wallets",
        "url": "https://www.anchorterminal.com/compare/coinbase-cdp-agentkit-vs-turnkey-agentic-wallets"
      },
      {
        "json": "https://www.anchorterminal.com/compare/openfort-vs-privy.json",
        "title": "Openfort vs Privy Wallets (server wallets, agent wallets, policy engine)",
        "url": "https://www.anchorterminal.com/compare/openfort-vs-privy"
      },
      {
        "json": "https://www.anchorterminal.com/compare/openfort-vs-sponge-wallet.json",
        "title": "Openfort vs Sponge Wallet",
        "url": "https://www.anchorterminal.com/compare/openfort-vs-sponge-wallet"
      },
      {
        "json": "https://www.anchorterminal.com/compare/privy-vs-turnkey-agentic-wallets.json",
        "title": "Privy Wallets (server wallets, agent wallets, policy engine) vs Turnkey Agentic Wallets",
        "url": "https://www.anchorterminal.com/compare/privy-vs-turnkey-agentic-wallets"
      },
      {
        "json": "https://www.anchorterminal.com/compare/sponge-wallet-vs-turnkey-agentic-wallets.json",
        "title": "Sponge Wallet vs Turnkey Agentic Wallets",
        "url": "https://www.anchorterminal.com/compare/sponge-wallet-vs-turnkey-agentic-wallets"
      },
      {
        "json": "https://www.anchorterminal.com/compare/agentcard-vs-openfort.json",
        "title": "Agentcard vs Openfort",
        "url": "https://www.anchorterminal.com/compare/agentcard-vs-openfort"
      },
      {
        "json": "https://www.anchorterminal.com/compare/agentcard-vs-turnkey-agentic-wallets.json",
        "title": "Agentcard vs Turnkey Agentic Wallets",
        "url": "https://www.anchorterminal.com/compare/agentcard-vs-turnkey-agentic-wallets"
      }
    ],
    "scores": [
      {
        "by": 13,
        "edge": "openfort",
        "key": "reliability",
        "name": "Reliability",
        "openfort": 88,
        "turnkey-agentic-wallets": 75,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 10,
        "edge": "openfort",
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "openfort": 89,
        "turnkey-agentic-wallets": 79,
        "weight": 13
      },
      {
        "by": 12,
        "edge": "turnkey-agentic-wallets",
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "openfort": 65,
        "turnkey-agentic-wallets": 77,
        "weight": 13
      },
      {
        "by": 20,
        "edge": "turnkey-agentic-wallets",
        "key": "security",
        "name": "Security \u0026 auth",
        "openfort": 65,
        "turnkey-agentic-wallets": 85,
        "weight": 14
      },
      {
        "by": 2,
        "edge": "openfort",
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "openfort": 60,
        "turnkey-agentic-wallets": 58,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 4,
        "edge": "openfort",
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "openfort": 87,
        "turnkey-agentic-wallets": 83,
        "weight": 7
      },
      {
        "by": 3,
        "edge": "turnkey-agentic-wallets",
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "openfort": 69,
        "turnkey-agentic-wallets": 72,
        "weight": 7
      }
    ],
    "summary": "Turnkey Agentic Wallets scores 76 (BB) on agent readiness against Openfort's 70.1 (BB), and leads in 3 of 7 scored categories. Openfort leads on reliability and schema \u0026 documentation. Both do onchain wallets.",
    "verdicts": {
      "openfort": "Backend wallets sign inside a GCP Confidential Space enclave, secret keys carry 26 scopes, and rate limits, errors and prices are published. On EVM, a backend send reaches the policy engine only as a hash, so address and value rules bind only when the caller runs the pre-flight check first.",
      "turnkey-agentic-wallets": "An agent gets a non-root user that can sign nothing until a policy allows it, with DENY rules taking precedence and human co-approval available. Policies cap value per transaction only, with no daily or rolling limit found, and each organisation gets five policies below Enterprise. Signing endpoints returned elevated errors for five hours on 27 August 2026."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/openfort-vs-turnkey-agentic-wallets",
    "json": "https://www.anchorterminal.com/compare/openfort-vs-turnkey-agentic-wallets.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/openfort-vs-turnkey-agentic-wallets.md",
    "slim": "https://www.anchorterminal.com/compare/openfort-vs-turnkey-agentic-wallets.min.md"
  },
  "markdown": "Turnkey Agentic Wallets scores 76 (BB) on agent readiness against Openfort's 70.1 (BB), and leads in 3 of 7 scored categories. Openfort leads on reliability and schema \u0026 documentation. Both do onchain wallets.\n\n- Openfort: grade BB, 70.1/100, rank #163 of 950. Markdown https://www.anchorterminal.com/tools/openfort.md · JSON https://www.anchorterminal.com/api/v1/tools/openfort.json\n- Turnkey Agentic Wallets: grade BB, 76/100, rank #39 of 950. Markdown https://www.anchorterminal.com/tools/turnkey-agentic-wallets.md · JSON https://www.anchorterminal.com/api/v1/tools/turnkey-agentic-wallets.json\n- Best agent wallets and spending controls: https://www.anchorterminal.com/best/agent-wallets/index.md\n- All 23 wallets comparisons: https://www.anchorterminal.com/compare/agent-wallets/index.md\n\n## Which one, for what\n\n### Openfort (BB)\n\nGood for: A team that wants server-held wallets for agents on EVM chains and Solana with enclave signing, a free start and a CLI an agent can drive.\n\nAhead on:\n- Reliability, 88 against 75\n- Schema \u0026 documentation, 89 against 79\n\nAlso in its favour:\n- Runs on your own machine\n\nWatch for: An EVM backend send is evaluated only as `signEvmHash`, so address, value and calldata rules do not block it unless the caller pre-flights\n\n### Turnkey Agentic Wallets (BB)\n\nGood for: A company that wants agents to sign from its own wallets under rules checked in an enclave, with a person co-approving large transactions, across EVM, Solana, Bitcoin, Tron and other chains.\n\nAhead on:\n- Agent ergonomics, 77 against 65\n- Security \u0026 auth, 85 against 65\n\nAlso in its favour:\n- No incidents deducted, where Openfort loses 5 points for them\n\nWatch for: Policy conditions cap value per transaction. No daily, rolling or cumulative spending limit was found in the policy language\n\n\n## Score by category\n\n| Category | Weight | Openfort | Turnkey Agentic Wallets | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 88 | 75 | Openfort +13 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 89 | 79 | Openfort +10 |\n| Agent ergonomics | 13% (16.2 this run) | 65 | 77 | Turnkey Agentic Wallets +12 |\n| Security \u0026 auth | 14% (17.5 this run) | 65 | 85 | Turnkey Agentic Wallets +20 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 60 | 58 | Openfort +2 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 87 | 83 | Openfort +4 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 69 | 72 | Turnkey Agentic Wallets +3 |\n| Negative events | ≤15 | -5 | 0 | |\n| **Total** | | **70.1 · BB** | **76 · BB** | |\n\n## Facts side by side\n\n| Fact | Openfort | Turnkey Agentic Wallets |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Openfort (Alamas Labs Inc.) | Turnkey Global, Inc. |\n| Hosted endpoint | `https://api.openfort.io` | `https://api.turnkey.com` |\n| Transports | HTTP, stdio | HTTP |\n| Auth | API key | API key |\n| Pricing | Freemium | Freemium |\n| x402 | payer tooling only | payer tooling only |\n| Licence | Proprietary service under the Openfort Developer Terms of Service. The Node SDK and OpenSigner are MIT. The CLI repository and package state no licence | Proprietary service under Turnkey's terms of service. The SDKs, the CLI and the agent skills on GitHub are Apache-2.0 |\n| Read-only variant documented | no | no |\n| llms.txt | yes | yes |\n| Last release | 2026-09-28 | 2026-10-08 |\n| Terms last updated | 2026-01-16 | 2026-08-06 |\n| Privacy policy last updated | 2026-09-04 | 2026-06-29 |\n| Customer content may train models | not found in the text | not found in the text |\n| Terms restrict automated access | not found in the text | yes |\n| Terms restrict benchmarking | yes | yes |\n| Terms or service can change without notice | not found in the text | yes |\n| Arbitration or class-action waiver | yes | yes |\n| Popularity | 10 stars, 7.6k npm/wk | 304k npm/wk, 12k PyPI/wk |\n\n## Verdicts\n\n**Openfort.** Backend wallets sign inside a GCP Confidential Space enclave, secret keys carry 26 scopes, and rate limits, errors and prices are published. On EVM, a backend send reaches the policy engine only as a hash, so address and value rules bind only when the caller runs the pre-flight check first.\n\n**Turnkey Agentic Wallets.** An agent gets a non-root user that can sign nothing until a policy allows it, with DENY rules taking precedence and human co-approval available. Policies cap value per transaction only, with no daily or rolling limit found, and each organisation gets five policies below Enterprise. Signing endpoints returned elevated errors for five hours on 27 August 2026.\n\n## Before you call either\n\n### Openfort\n\n1. Call `policies.evaluate` with operation `signEvmTransaction` before every EVM backend send. The send itself is checked only as `signEvmHash`\n2. Keep the signing policy and the gas sponsorship policy separate. Linking a signing policy to a fee sponsorship stops it working as a guardrail\n3. Pass a fee sponsorship on EVM sends. Without one the transaction stays pending with no error\n4. Give an agent a secret key without `accounts:export`, and limit the CLI MCP server to the tools it needs\n5. On a 5xx after a write, read the resource before retrying. On a 429, wait the full `Retry-After`\n\n### Turnkey Agentic Wallets\n\n1. Use a non-root user's key. Refuse root credentials for unattended work, because root bypasses every policy\n2. Scope every signing ALLOW policy by `wallet.id` or `wallet_account.address`, or it covers every key the user can reach\n3. Check the activity status on each response. `ACTIVITY_STATUS_CONSENSUS_NEEDED` means a person must approve within 24 hours\n4. Retry with the identical body to stay idempotent. Changing `timestampMs` creates a new activity\n5. Back off with jitter on 429 and poll `get_activity` sparingly, since polling counts against the same 1 to 3 requests a second\n\n## Questions\n\n### Which is better for AI agents, Openfort or Turnkey Agentic Wallets?\n\nTurnkey Agentic Wallets scores 76 (BB) on agent readiness against Openfort's 70.1 (BB), and leads in 3 of 7 scored categories. Openfort leads on reliability and schema \u0026 documentation.\n\n### Do Openfort and Turnkey Agentic Wallets need an API key?\n\nBoth need an API key.\n\n### Can an agent call Openfort and Turnkey Agentic Wallets without installing anything?\n\nYes. Openfort has a hosted endpoint at https://api.openfort.io and Turnkey Agentic Wallets at https://api.turnkey.com.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/openfort-vs-turnkey-agentic-wallets.json, and with the fewest tokens: https://www.anchorterminal.com/compare/openfort-vs-turnkey-agentic-wallets.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"openfort\", \"b\": \"turnkey-agentic-wallets\"}`. From a terminal: `anchor compare openfort turnkey-agentic-wallets`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/openfort.json and https://www.anchorterminal.com/api/v1/tools/turnkey-agentic-wallets.json\n\n## Other comparisons with Openfort or Turnkey Agentic Wallets\n\n- [Circle Wallets (Agent Wallets, Programmable Wallets) vs Openfort](https://www.anchorterminal.com/compare/circle-wallets-vs-openfort.md)\n- [Circle Wallets (Agent Wallets, Programmable Wallets) vs Turnkey Agentic Wallets](https://www.anchorterminal.com/compare/circle-wallets-vs-turnkey-agentic-wallets.md)\n- [Coinbase Developer Platform (Agentic Wallet, AgentKit, CDP MCP) vs Openfort](https://www.anchorterminal.com/compare/coinbase-cdp-agentkit-vs-openfort.md)\n- [Coinbase Developer Platform (Agentic Wallet, AgentKit, CDP MCP) vs Turnkey Agentic Wallets](https://www.anchorterminal.com/compare/coinbase-cdp-agentkit-vs-turnkey-agentic-wallets.md)\n- [Openfort vs Privy Wallets (server wallets, agent wallets, policy engine)](https://www.anchorterminal.com/compare/openfort-vs-privy.md)\n- [Openfort vs Sponge Wallet](https://www.anchorterminal.com/compare/openfort-vs-sponge-wallet.md)\n- [Privy Wallets (server wallets, agent wallets, policy engine) vs Turnkey Agentic Wallets](https://www.anchorterminal.com/compare/privy-vs-turnkey-agentic-wallets.md)\n- [Sponge Wallet vs Turnkey Agentic Wallets](https://www.anchorterminal.com/compare/sponge-wallet-vs-turnkey-agentic-wallets.md)\n- [Agentcard vs Openfort](https://www.anchorterminal.com/compare/agentcard-vs-openfort.md)\n- [Agentcard vs Turnkey Agentic Wallets](https://www.anchorterminal.com/compare/agentcard-vs-turnkey-agentic-wallets.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-10",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.4",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Compare",
        "url": "https://www.anchorterminal.com/compare/"
      },
      {
        "name": "Openfort vs Turnkey Agentic Wallets",
        "url": ""
      }
    ],
    "description": "Turnkey Agentic Wallets scores 76 (BB) to Openfort's 70.1 (BB) for onchain wallets. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "Openfort BB 70.1",
      "Turnkey Agentic Wallets BB 76",
      "scores"
    ],
    "h1": "Openfort vs Turnkey Agentic Wallets",
    "image": "https://www.anchorterminal.com/assets/og/compare-openfort-vs-turnkey-agentic-wallets.png",
    "path": "/compare/openfort-vs-turnkey-agentic-wallets",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Openfort vs Turnkey Agentic Wallets for AI agents (2026)",
    "toc": null,
    "updated": "2026-10-09",
    "url": "https://www.anchorterminal.com/compare/openfort-vs-turnkey-agentic-wallets"
  },
  "tokens": {
    "markdown": 2300,
    "slim": 680
  },
  "version": 1
}
