Skip to content

Releases: ProjectOpenSea/tool-sdk

v0.10.0

19 May 17:58

Choose a tag to compare

What's Changed

Minor

Canonicalize SubscriptionPredicate v0.2 on Ethereum mainnet and Base. The predicate now ships in script/Deploy.s.sol and the SDK at the same deterministic CREATE2 address on chain 1 and 8453: 0xCBe0cd9B1d99d95Baa9c58f2767246C52e461f25.

SubscriptionPredicateClient no longer requires predicateAddress — it defaults to the canonical deployment for the configured chain, matching ERC721OwnerPredicateClient and ERC1155OwnerPredicateClient. Pass predicateAddress only to target a non-canonical instance.

New SDK export: SUBSCRIPTION_PREDICATE (the Deployment record), alongside the existing ERC721_OWNER_PREDICATE / ERC1155_OWNER_PREDICATE / TOOL_REGISTRY.

Full Changelog: ProjectOpenSea/opensea-devtools@tool-sdk-v0.9.0...tool-sdk-v0.10.0

v0.9.0

18 May 16:43

Choose a tag to compare

What's Changed

Targets the new v0.2 ToolRegistry + canonical predicates deployed on Ethereum mainnet (chain 1) and Base (chain 8453). Same CREATE2 address on both chains:

  • TOOL_REGISTRY0x265BB2DBFC0A8165C9A1941Eb1372F349baD2cf1
  • ERC721_OWNER_PREDICATE0xc8721c9A776958FfFfEb602DA1b708bf1D318379
  • ERC1155_OWNER_PREDICATE0x77373Dc3c1AE9A1e937eF3e5E08F4807D47c7c11

Breaking changes (pre-beta — no legacy support)

Removed from public API:

  • ERC721_OWNER_PREDICATE_V1 (value export)
  • getPredicateForRegistryVersion (function export)
  • PredicateKind (type export)
  • PredicateClientConfig.registryVersion (option)

CLI commands (register, set-collections, set-collection-tokens, get-collections) no longer probe registry.version() to pick a predicate — they always resolve to the canonical v0.2 deployment.

Full Changelog: v0.8.1...v0.9.0

v0.8.1

13 May 00:32

Choose a tag to compare

What's Changed

  • ERC-8257 §Predicate Introspection Hardening ceilings in describeToolAccess — defensive bounds against malicious predicates returning megabyte-scale getRequirements() / name() data. Caps mirror the manifest-side bounds in schema.ts.
  • inspect CLI wallet-state-attestation dispatch fix — render on requirement kind (0x7a111640) instead of predicate name(), so third-party attestation issuers (e.g., the InsumerAccessPredicate reference implementation) get the issuer-JWKS / condition-hash output.

Community Contributions

Full Changelog: v0.8.0...v0.8.1

v0.8.0

12 May 20:23

Choose a tag to compare

What's Changed

Add IWalletStateAttestation requirement type support (kind 0x7a111640):

  • New WALLET_STATE_ATTESTATION_KIND constant and DecodedWalletStateAttestationRequirement type
  • decodeRequirement() now decodes wallet-state attestation data (issuerJwksUri, conditionHash)
  • CLI inspect command displays decoded attestation fields for WalletStateAttestationPredicate
  • SKILLS.md documents the new predicate type with manifest and decoder examples

This is a third-party predicate type for gating tool access based on offchain-signed cross-chain wallet state (e.g., Solana, XRPL, Bitcoin holdings verified via RIP-7212 P-256 signature verification). Each issuer deploys their own predicate instance — no canonical deployment.

Community Contributions

Full Changelog: tool-sdk-v0.7.1...tool-sdk-v0.8.0

v0.7.1

10 May 01:14

Choose a tag to compare

What's Changed

Patch Changes

  • docs: update README and SKILLS.md for F4a–F4g changes (#292)
    • README: document --nft-gate, --predicate-config, --wallet-provider, --rpc-url flags on register
    • README: document --auth siwe, --manifest, --chain flags on pay
    • README: add CLI reference sections for smoke, set-collections, get-collections, set-collection-tokens
    • SKILLS.md: replace cast send with set-collections CLI in Example C

Full Changelog: ProjectOpenSea/opensea-devtools@tool-sdk-v0.7.0...tool-sdk-v0.7.1

v0.7.0

10 May 00:09

Choose a tag to compare

What's Changed

Minor Changes

  • Add --predicate-config flag to register command (F4d) — bundle predicate setup with registration; CLI now identifies predicate type via name() and validates --access-predicate addresses (#288)
  • Add set-collections, get-collections, and set-collection-tokens CLI commands for managing ERC-721/ERC-1155 collection gates on already-registered tools (F4c) (#283)
  • Fix --nft-gate broken end-to-end on Base mainnet (F4a) — register now queries the registry's version() and selects the matching predicate deployment automatically. Adds ERC721_OWNER_PREDICATE_V1 deployment, getPredicateForRegistryVersion(), and registryVersion option to PredicateClientConfig (#282)
  • Add --auth siwe flag to the pay CLI command — uses paidAuthenticatedFetch (SIWE + x402 payment) instead of payment-only flow; auto-enables when --manifest has an access block (#287)
  • Add SubscriptionPredicateClient and CompositePredicateClient typed clients matching tool-registry example predicates. Add missing CollectionsSet event to ERC721OwnerPredicateABI (#281)
  • BREAKING: Remove deprecated nftGate middleware and NFTGateConfig. Use predicateGate({ toolId }) with --access-predicate instead (#280)

Patch Changes

  • Treat 4xx probe responses (e.g. 400 from Zod validation) as endpoint reachable instead of printing a misleading WARN. Only 5xx responses are flagged as failures (F4g) (#284)
  • Treat 402 with valid accepts array as auth-OK in smoke command — paywalled tools no longer fail smoke tests after SIWE auth (#286)

Full Changelog: ProjectOpenSea/opensea-devtools@tool-sdk-v0.6.0...tool-sdk-v0.7.0

v0.6.0

08 May 17:25

Choose a tag to compare

What's Changed

Minor Changes

  • Add defineVerifiability() typed builder for verifiability blocks (#272) — three tier-narrowed factory methods (selfAttested, hardwareAttested, verifiable) produce correct verifiability objects for defineManifest(). Invalid tier/field combos are rejected at the TypeScript type level rather than only at validation time.
  • Adopt ERC-8257 assignment (#264) — replace ERC-Draft placeholder references with the officially assigned ERC-8257 number across CLI help text, documentation, and test vectors. Manifest schema type URL switched to the canonical ERCs site (https://ercs.ethereum.org/ERCS/erc-8257#tool-manifest-v1); test vectors and pinned hashes regenerated against the new canonical bytes.

Full Changelog: ProjectOpenSea/opensea-devtools@tool-sdk-v0.5.0...tool-sdk-v0.6.0

v0.5.0

07 May 23:18

Choose a tag to compare

What's Changed

Minor Changes

  • Add toManifestAccess() to ERC721OwnerPredicateClient and ERC1155OwnerPredicateClient for programmatic manifest access generation with deterministic OpenSea collection links. Export shared requirement-kind constants (ERC721_KIND, ERC1155_KIND, SUBSCRIPTION_KIND).
  • Suggest manifest access block when registering with --nft-gate. The register CLI command now detects when a manifest is missing the access field and the user is registering with --nft-gate. It generates the correct access object using ERC721OwnerPredicateClient.toManifestAccess() and prints it as a suggestion. The preview appears in both --dry-run and normal mode. In normal mode the user is prompted to view copy-paste instructions for updating their manifest.
  • Enforce bidirectional tier consistency checks in manifest validator. The verifiability schema now rejects all 4 invalid tier/field combinations:
    • hardware-attested requires tee or e2ee execution
    • hardware-attested requires an attestation field
    • self-attested cannot use tee or e2ee execution
    • self-attested cannot include an attestation field

Patch Changes

  • access.links values now require valid HTTPS URLs; non-HTTPS values (onchain addresses, http://, ipfs://) are rejected by schema validation.
  • Enforce ERC-spec parser caps on access.requirements: max 256 entries, max 4,096 decoded bytes per access[].data field.
  • Enforce access label limit as 256 bytes (UTF-8) instead of 256 characters, aligning with the updated ERC spec.
  • Enforce lowercase-only hex in manifest schema fields (access[].kind, access[].data, attestation.enclaveHash, reproducibleBuild.buildHash, creatorAddress) to match the tightened ERC spec. Normalize wallet and onchain addresses to lowercase before comparison in register and update-metadata commands.

Full Changelog: v0.4.2...v0.5.0

v0.4.2

06 May 22:35

Choose a tag to compare

What's Changed

Patch release. Picks up @opensea/wallet-adapters@0.3.0 (provider-aware wallet hardening across Privy, Turnkey, Fireblocks, and Bankr) via the workspace dep.

No tool-sdk source changes.

Full Changelog: ProjectOpenSea/opensea-devtools@tool-sdk-v0.4.1...tool-sdk-v0.4.2

v0.4.1

06 May 02:14

Choose a tag to compare

What's Changed

  • Replace ERC-XXXX placeholder references with ERC-Draft throughout CLI help text, schema defaults, and documentation.

Full Changelog: ProjectOpenSea/opensea-devtools@tool-sdk-v0.4.0...tool-sdk-v0.4.1