Skip to content

Tool SDK

Dev Tools

Is this your project? Claim and verify →

SDK to help creators create tools for ERC-8257: Agent Tool Registry

What HEY knows

Building
Last shipped 13 days agoActive: 2 meaningful events in 30 days; latest ship 13 days ago. Evidence Source

Build Momentum 43How it is measured

Latest ship
v0.31.1 · · GitHub release

Why it matters: One of a run of ships in the 30 days to it: building continued, not a one-off.

Follow puts Tool SDK on your private watchlist; its changes then lead “Since you were last here” when you come back. Following needs an account; browsing never does.

No account? Email me Tool SDK’s changes

No account and no password. HEY stores the address and what you asked for, sends one confirmation, and nothing else until you confirm. Every email has a one-click unsubscribe that deletes the address.

Or read its RSS feed.

Token market · context
No token tracked
Not yet known
Unknown3 gaps: Official docs (no source), API description (no source), Official site changes (no source). No official website on record.

HEY can answer 8 of the 11 research questions that apply · Research coverage

Compare with…The same summary, with every line’s evidence: snapshot API
What HEY checked — why it says this
Active.
“Active” by the activity rule: 2 meaningful events in the last 30 days, the newest 2026-10-06.
SourceRepositories, changelogs and feeds HEY reads for this project, and the ship events recorded from them.ReadRecordsv0.31.1v0.31.0v0.30.1+2 moreWhat HEY derivedHEY’s activity rule reads the counted events as “Active”.Not concludedIt says what HEY can read of the building, not how good the project is, who is behind it, or what its token will do. Quiet or unknown is not "abandoned".
Verified Builder.
The quality gate found verified building evidence from the project's own sources.
Source1 registered source, 0 of them context only.ReadRecordsv0.31.1v0.31.0v0.30.1+3 moreWhat HEY derivedThe quality gate’s stored decision: “Verified Builder”.Not concludedA verified builder is one whose shipping HEY confirmed from public evidence. It does not say who runs the project — that is the ownership claim, a separate check.
Market figures are context only and never change activity status. Methodology

Latest ship

Checked

v0.31.1

GitHub releaseSource verified

What's Changed · Docs: close a stray code fence in the predicate gating guide that turned the delegated access section into a code block. · List bankr among the --wallet-provider values in the bundled skill and the Vercel template. Community Contributions · Predicate gating… Show all
  • What's Changed
  • Docs: close a stray code fence in the predicate gating guide that turned the delegated access section into a code block.
  • List bankr among the --wallet-provider values in the bundled skill and the Vercel template. Community Contributions
  • Predicate gating guide fence fix, thanks @CryptAm (tool-sdk#33) Full Changelog: https://github.com/ProjectOpenSea/tool-sdk/compare/v0.31.0...v0.31.1

Record ship:05c1f2ed… · HEY counts it as building; it does not judge the release’s quality or what it means for the token.

Builder activity

Bars: meaningful, source-backed ships per week (count). Weeks run Monday to Sunday, UTC, labelled by their Monday. Commits are aggregated, a code week counted once. Hatched: 3 weeks before HEY began reading this project’s sources — not yet read, not zero.

Questions HEY can answer about Tool SDK — as of 2026-10-19

Is Tool SDK still being built?
DerivedActive: 2 meaningful events in 30 days; latest ship 13 days ago. Evidence
What did Tool SDK ship last?
Factv0.31.1 — GitHub release, 13 days ago. Evidence
What does HEY not know about Tool SDK?
Unknown3 gaps: Official docs (no source), API description (no source), Official site changes (no source). No official website on record. Details

Build timeline

  1. v0.31.0

    GitHub releaseSource verified

    What's Changed · Bind free predicateGate EIP-3009 authorizations to the endpoint URL, tool ID and operator, and make eip3009AuthenticatedFetch verify that audience before signing. Add an optional shared replayGuard to enforce single-use identity authorizations. · Point the… Show all
    • What's Changed
    • Bind free predicateGate EIP-3009 authorizations to the endpoint URL, tool ID and operator, and make eip3009AuthenticatedFetch verify that audience before signing. Add an optional shared replayGuard to enforce single-use identity authorizations.
    • Point the Robinhood Chain explorer apiUrl at the Etherscan v2 API (chainid=4663) instead of Blockscout, which returns a Cloudflare 403 to scripted clients.
    • Correct the WalletStateAttestationPredicate entry in skill/references/known-predicates.md: the reference implementation's hasAccess takes the issuer's…
  2. Code changes, week of 2026-09-21 – 2026-09-27 · 1 commit

    Code activitySource linked

    1 active day in projectopensea/tool-sdk.

    Automated commits only — not counted as building. 1 automated commit (bot accounts or a repeating scripted message) not counted.

  3. Code changes, week of 2026-09-14 – 2026-09-20 · at least 1 commit

    Code activitySource linked

    1 active day in projectopensea/tool-sdk.

    Automated commits only — not counted as building. 1 automated commit (bot accounts or a repeating scripted message) not counted.

  4. v0.30.1

    GitHub releaseSource verified

    What's Changed · Point the Robinhood Chain block explorer at robin.etherscan.io. Full Changelog: https://github.com/ProjectOpenSea/opensea-devtools/compare/tool-sdk-v0.30.0...tool-sdk-v0.30.1 Show all
    • What's Changed
    • Point the Robinhood Chain block explorer at robin.etherscan.io. Full Changelog: https://github.com/ProjectOpenSea/opensea-devtools/compare/tool-sdk-v0.30.0...tool-sdk-v0.30.1
  5. v0.30.0

    GitHub releaseSource verified

    What's Changed Picks up @opensea/wallet-adapters@1.0.0 and re-exports its Solana surface. PrivySvmAdapter, SvmWalletAdapter, SvmTransactionRequest and WalletSelector are now available from the package root, alongside the existing WalletAdapter exports. createWalletFromEnv({… Show all

    What's Changed Picks up @opensea/wallet-adapters@1.0.0 and re-exports its Solana surface. PrivySvmAdapter, SvmWalletAdapter, SvmTransactionRequest and WalletSelector are now available from the package root, alongside the existing WalletAdapter exports. createWalletFromEnv({ chainType: "svm" }) selects a Solana wallet, and with no argument it still returns the EVM one, so existing callers are unchanged. Two flows that are EVM-only in substance now reject a Solana wallet with a message naming the reason rather than failing later on a missing method: x402 settlement, which is…

  6. Code changes, week of 2026-09-07 – 2026-09-13

    Code activitySource linked

    14 active days in ProjectOpenSea/tool-sdk.

    Automated commits only — not counted as building. 1 automated commit (bot accounts or a repeating scripted message) not counted.

  7. Code changes, week of 2026-08-31 – 2026-09-06 · at least 1 commit

    Code activitySource linked

    What changed, in the repository’s own words:

    1 active day in projectopensea/tool-sdk.

    This week HEY looked inside 1 commit to see what changed: 1 changed code.

  8. v0.29.0

    GitHub releaseSource verified

    What's changed Breaking. A paid tool whose settlement fails now returns 502 without the output, instead of 200 with the result. createToolHandler gains settlement, defaulting to "required". Set settlement: "best-effort" to restore the previous behavior, which only suits callers… Show all
    • What's changed Breaking. A paid tool whose settlement fails now returns 502 without the output, instead of 200 with the result. createToolHandler gains settlement, defaulting to "required". Set settlement: "best-effort" to restore the previous behavior, which only suits callers who reconcile failed settlements out of band. This is a minor version because the package is pre-1.0, not because the change is small. Also in this release:
    • replayGuard on the hosted x402 gates and paidPredicateGate, an optional single-use claim over each authorization's (payer, nonce) pair. Off…
  9. Code changes, week of 2026-08-17 – 2026-08-23

    Code activitySource linked

    18 active days in ProjectOpenSea/tool-sdk.

    Automated commits only — not counted as building. 1 automated commit (bot accounts or a repeating scripted message) not counted.

  10. v0.28.5

    GitHub releaseSource verified

    What's Changed · Normalize x402 registry references to the public usage-reporting source tokens. Full Changelog: https://github.com/ProjectOpenSea/opensea-devtools/compare/tool-sdk-v0.28.4...tool-sdk-v0.28.5 Show all
    • What's Changed
    • Normalize x402 registry references to the public usage-reporting source tokens. Full Changelog: https://github.com/ProjectOpenSea/opensea-devtools/compare/tool-sdk-v0.28.4...tool-sdk-v0.28.5
  11. v0.28.4

    GitHub releaseSource verified

    What's Changed · Reject negative and malformed x402 payment amounts. A negative maxAmountRequired previously slipped under the signed-BigInt maxAmount cap check and, when signed, wrapped into a huge positive uint256 EIP-3009 authorization, bypassing the caller's spending limit.… Show all
    • What's Changed
    • Reject negative and malformed x402 payment amounts. A negative maxAmountRequired previously slipped under the signed-BigInt maxAmount cap check and, when signed, wrapped into a huge positive uint256 EIP-3009 authorization, bypassing the caller's spending limit. Amounts are now validated as canonical non-negative integers in validatePaymentRequirements (unconditionally, even without a cap) and again in the EIP-3009 signer as defense-in-depth for direct signX402Payment callers. (#530)
    • Updated dependency @opensea/wallet-adapters to 0.3.3 (EIP-712 encoding…
  12. v0.28.3

    GitHub releaseSource verified

    What's Changed · fix(tool-sdk): scope predicate gate reads to the configured chain (#520): predicateGate/paidPredicateGate no longer force reads to the Base RPC when rpcUrl is unset, so a non-Base registry chain is actually queried. The x402 identity/payment chain… Show all
    • What's Changed
    • fix(tool-sdk): scope predicate gate reads to the configured chain (#520): predicateGate/paidPredicateGate no longer force reads to the Base RPC when rpcUrl is unset, so a non-Base registry chain is actually queried. The x402 identity/payment chain (Base/Base-Sepolia) is decoupled from the registry chain so non-Base gating no longer fails closed. Includes regression tests for a non-Base registry with Base identity/payment. Full Changelog: https://github.com/ProjectOpenSea/opensea-devtools/compare/tool-sdk-v0.28.2...tool-sdk-v0.28.3
  13. v0.28.2

    GitHub releaseSource verified

    What's Changed Security and hardening patch release. Security · paidAuthenticatedFetch per-invocation maxAmount cap (#508): at most one nonzero x402 authorization is signed per call, and cumulative authorized value can never exceed maxAmount. Closes a double-challenge bypass… Show all
    • What's Changed Security and hardening patch release. Security
    • paidAuthenticatedFetch per-invocation maxAmount cap (#508): at most one nonzero x402 authorization is signed per call, and cumulative authorized value can never exceed maxAmount. Closes a double-challenge bypass where a malicious tool could obtain two independently-settleable authorizations, each under the cap.
    • verifyXPaymentAuth hardening (#509): the free predicateGate rejects non-zero-value X-Payment authorizations, validBefore is capped to 1h, the resolved chainId is pinned to the gate's chain…
  14. v0.28.1

    GitHub releaseSource verified

    What's Changed Security · eip3009AuthenticatedFetch now validates the 402 challenge's asset and network before signing: the network must be supported and the asset must be the canonical USDC contract for that network. This closes a signature-phishing surface where a zero-value… Show all
    • What's Changed Security
    • eip3009AuthenticatedFetch now validates the 402 challenge's asset and network before signing: the network must be supported and the asset must be the canonical USDC contract for that network. This closes a signature-phishing surface where a zero-value challenge could name an arbitrary verifying contract / EIP-712 domain and still get signed (#507).
    • eip3009AuthenticatedFetch enforces the documented zero-value guarantee: it only signs X-Payment authorizations with value: 0, and returns non-zero (or unparseable-amount) 402 challenges as-is instead…
  15. v0.28.0

    GitHub releaseSource verified

    What's Changed · Add Robinhood Chain (4663) support: --network robinhood on all CLI commands (custom viem chain definition until viem ships one) and 4663 added to every canonical Deployment.chains array in chains.ts. · Fix x402 CAIP-2 network handling asymmetry: server-side… Show all
    • What's Changed
    • Add Robinhood Chain (4663) support: --network robinhood on all CLI commands (custom viem chain definition until viem ships one) and 4663 added to every canonical Deployment.chains array in chains.ts.
    • Fix x402 CAIP-2 network handling asymmetry: server-side predicate gates now accept CAIP-2 (eip155:8453) and numeric (8453) network identifiers in the X-Payment payload, and the client normalizes the v1 payload network to the canonical short name.
    • Fix x402 usage reporting when the facilitator returns a CAIP-2/numeric network: settle() resolves the…
  16. v0.27.0

    GitHub releaseSource verified

    What's Changed · feat: add Monad (chain 143) support. The --network flag now accepts monad in addition to base, mainnet, shape, and abstract. Monad is defined locally (mirroring viem's definition) because the pinned viem version predates Monad mainnet. 143 is added to every… Show all
    • What's Changed
    • feat: add Monad (chain 143) support. The --network flag now accepts monad in addition to base, mainnet, shape, and abstract. Monad is defined locally (mirroring viem's definition) because the pinned viem version predates Monad mainnet. 143 is added to every Deployment.chains array in chains.ts, and the deployed-address docs are updated: the canonical v0.2 addresses are identical on Monad (verified via CREATE2 dry-run). (#477) Full Changelog: https://github.com/ProjectOpenSea/opensea-devtools/compare/tool-sdk-v0.26.1...tool-sdk-v0.27.0
  17. v0.26.1

    GitHub releaseSource verified

    What's Changed · Fix createBankrAccount reading the wrong shape from Bankr's /wallet/me. The endpoint returns { wallets: [{ chain, address }, ...] } (no top-level address), so the account was created with an undefined address. Now resolves the EVM entry from wallets[]. (#473)… Show all
    • What's Changed
    • Fix createBankrAccount reading the wrong shape from Bankr's /wallet/me. The endpoint returns { wallets: [{ chain, address }, ...] } (no top-level address), so the account was created with an undefined address. Now resolves the EVM entry from wallets[]. (#473)
    • Picks up the @opensea/wallet-adapters@0.3.2 dependency bump (BigInt EIP-712 signing fix). Full Changelog: https://github.com/ProjectOpenSea/opensea-devtools/compare/tool-sdk-v0.26.0...tool-sdk-v0.26.1
  18. v0.26.0

    GitHub releaseSource verified

    What's Changed Minor Changes · BREAKING: Unify predicateGate to use the standard 402 + X-Payment (EIP-3009) auth flow only (#471). · PredicateGateConfig.operatorAddress is now required (was optional) · Authorization: EIP-3009 header is no longer accepted: use the X-Payment… Show all
    • What's Changed Minor Changes
    • BREAKING: Unify predicateGate to use the standard 402 + X-Payment (EIP-3009) auth flow only (#471).
    • PredicateGateConfig.operatorAddress is now required (was optional)
    • Authorization: EIP-3009 header is no longer accepted: use the X-Payment header via the 402 challenge flow
    • Authorization: SIWE . header is no longer accepted (was already deprecated)
    • CLI dry-run-predicate-gate now requires --operator-address and asserts a 402 response Fixes
    • Use the Bankr /wallet/me endpoint instead of /wallet/info…
  19. v0.25.0

    GitHub releaseSource verified

    What's Changed · feat: The register command now validates that the manifest URL and declared endpoint share the same origin before sending the onchain transaction. Previously only verify and deploy checked this, so a developer could burn gas registering a tool the indexer would… Show all
    • What's Changed
    • feat: The register command now validates that the manifest URL and declared endpoint share the same origin before sending the onchain transaction. Previously only verify and deploy checked this, so a developer could burn gas registering a tool the indexer would immediately reject. All three commands (register, verify, deploy) now show a consistent, actionable error message that explicitly calls out subdomains as different origins and explains how to fix it. (#465) Full Changelog…
  20. v0.24.0

    GitHub releaseSource verified

    What's Changed · Add support for the upto x402 payment scheme, which allows variable pricing (charge up to amountPerCall, with the actual charge potentially less). createX402Client now registers both ExactEip3009Scheme and UptoEip3009Scheme internally, letting @x402/core route… Show all
    • What's Changed
    • Add support for the upto x402 payment scheme, which allows variable pricing (charge up to amountPerCall, with the actual charge potentially less). createX402Client now registers both ExactEip3009Scheme and UptoEip3009Scheme internally, letting @x402/core route to the correct scheme based on the challenge's scheme field. The pay CLI, paidFetch, and paidAuthenticatedFetch route to the appropriate scheme automatically, so callers no longer need to know which scheme to instantiate. (#459) Full Changelog…
  21. v0.23.1

    GitHub releaseSource verified

    What's Changed · --tool-ref and the usage reporters now support non-address registries such as x402:bazaar and x402:bankr for tools that are not registered onchain (#455). toolRegistryAddress is widened to string, and toolOnchainId is kept as a string to preserve precision for… Show all
    • What's Changed
    • --tool-ref and the usage reporters now support non-address registries such as x402:bazaar and x402:bankr for tools that are not registered onchain (#455). toolRegistryAddress is widened to string, and toolOnchainId is kept as a string to preserve precision for IDs exceeding Number.MAX_SAFE_INTEGER.
    • --tool-ref now uses a comma delimiter (chainId,registryAddress,onchainId) instead of a colon, so a registry identifier that itself contains a colon stays unambiguous (#457). Example: 8453,x402:bazaar,8679018179619845322. Full Changelog…
  22. v0.23.0

    GitHub releaseSource verified

    What's Changed · Caller-side usage reporting can now identify a tool by its ERC-8257 composite key instead of only its endpoint URL. reportCallerX402Usage accepts optional toolChainId, toolRegistryAddress, and toolOnchainId, and the pay CLI gains a --tool-ref… Show all
    • What's Changed
    • Caller-side usage reporting can now identify a tool by its ERC-8257 composite key instead of only its endpoint URL. reportCallerX402Usage accepts optional toolChainId, toolRegistryAddress, and toolOnchainId, and the pay CLI gains a --tool-ref <chainId:registryAddress:onchainId> flag (e.g. --tool-ref 8453:0x265b...2cf1:65). When supplied, these are sent in place of tool_endpoint, matching the server-side reporter's payload. This fixes the 400 Multiple tools registered for endpoint error when reporting usage for a tool whose endpoint maps to more than one…
  23. v0.22.0

    GitHub releaseSource verified

    What's Changed · Migrate paidFetch, paidAuthenticatedFetch, and the pay CLI to the @x402/core client infrastructure (x402Client, x402HTTPClient, SchemeNetworkClient) for payment payload creation and header encoding. Adds an ExactEip3009Scheme adapter wrapping tool-sdk's existing… Show all
    • What's Changed
    • Migrate paidFetch, paidAuthenticatedFetch, and the pay CLI to the @x402/core client infrastructure (x402Client, x402HTTPClient, SchemeNetworkClient) for payment payload creation and header encoding. Adds an ExactEip3009Scheme adapter wrapping tool-sdk's existing EIP-3009 signing into the standard x402 scheme interface. No public API changes. (#447) This also resolves a payment-blocking bug in the previous home-rolled encoder: btoa(JSON.stringify(...)) threw InvalidCharacterError whenever a server's 402 challenge echoed a non-Latin1 character (e.g. an…
  24. v0.21.0

    GitHub releaseSource verified

    What's Changed · Usage report fires via platform waitUntil (createToolHandler): the fire-and-forget usage report now runs as keep-alive-after-response work instead of being awaited inline. This removes reporting latency from every successful call and closes a billing edge — x402… Show all
    • What's Changed
    • Usage report fires via platform waitUntil (createToolHandler): the fire-and-forget usage report now runs as keep-alive-after-response work instead of being awaited inline. This removes reporting latency from every successful call and closes a billing edge — x402 settlement runs before the report, so awaiting it meant a function freeze in that window could charge a paid caller without returning a result. Auto-detected on Vercel (no @vercel/functions dependency), wired on Cloudflare via toCloudflareHandler (its fetch gains an optional ctx arg), overridable…

Research notes

Written by HEY researchers and reviewed before publishing. Commentary with sources — not the project's own claims, and not evidence of shipping.

Know something about Tool SDK? Sign in with GitHub to submit a research note. Notes are reviewed before they appear here.

What changed

39 changes on HEY’s record for Tool SDK: 34 releases · 5 weeks of code pushed.

All 39 changes for Tool SDK →

The full change record holds 3 more, of kinds this list leaves out — lock records and HEY’s own research bookkeeping among them. Full record (JSON)

Research coverage

HEY can answer 8 of the 11 research questions that apply.

8 of 11 applicable dimensions measuredShow each dimension

Identity

  • IdentityMeasuredRead 1mo ago.

Building

  • Building activityMeasuredRead 5h ago.
  • RepositoriesMeasured
  • ReleasesMeasuredRead 13d ago.
  • TimelineMeasured

Official site

  • Official docsNo sourceNo official website on record.
  • API descriptionNo sourceNo official website on record.
  • Official site changesNo sourceNo official website on record.

Code and packages

  • Repository detailsMeasuredRead 10h ago.
  • Published packagesMeasuredRead 33m ago.
  • Package advisoriesMeasuredRead 7d ago.

Not applicable here: Contract creation, Contract activity, Verified source, Contract interface, Current market, Market history, Supply distribution, Locks, Market checks, Protocol economics.

A count of what HEY has read, never a score: projects are not compared or ordered by it. Unknown is never zero. The same states: coverage API.

Sources