Skip to content

Releases: cascade-protocol/sati

@cascade-fyi/sati-agent0-sdk@0.2.0

12 Feb 12:39
735f89a

Choose a tag to compare

Breaking Changes

  • Write operations now return SolanaTransactionHandle<T> instead of raw promises. Use .hash for the transaction signature, .waitMined() or .waitConfirmed() for the result.
  • giveFeedback 7th parameter (satiOptions) removed - pass outcome and taskRef via the feedbackFile parameter instead
  • agent.registerIPFS() / agent.registerHTTP() now return SolanaTransactionHandle<RegistrationFile>
  • All throw new Error(...) replaced with typed error classes

Added

  • SolanaTransactionHandle<T> - agent0-sdk TransactionHandle pattern for Solana
  • Typed error classes: SatiError, AgentNotFoundError, ReadOnlyError, SignerRequiredError, SchemaNotDeployedError, InvalidAgentIdError, UnsupportedOperationError
  • FeedbackCache - TTL cache for feedback queries, reducing redundant RPC calls
  • agent.updateIPFS() and agent.updateHTTP(uri) methods
  • Server-side memcmp filtering for searchFeedback
  • Lazy feedback stats in searchAgents

Fixed

  • searchAgents no longer fetches all agents before filtering - supports pagination and applies cheap filters first

@cascade-fyi/compression-kit@0.2.1

12 Feb 12:39
735f89a

Choose a tag to compare

Fixed

  • MemcmpFilter now works with Photon RPC - filters are transformed to the correct wire format ({ memcmp: { offset, bytes } } with base58-encoded bytes)
  • getCompressedAccountsByOwner properly passes memcmp filters to Photon for server-side filtering (previously filters were passed through raw and ignored)

Changed

  • Removed unused encoding field from MemcmpFilter interface (was documented as "not yet supported")
  • Updated MemcmpFilter.bytes type docs to reflect actual usage (base58 string or Uint8Array)

@cascade-fyi/sati-agent0-sdk@0.1.1

11 Feb 22:46
d77c9e8

Choose a tag to compare

Fixed

  • Client-side reviewer and multi-agent filtering in searchFeedback - underlying RPC only filters by schema and agent mint, so reviewer/agents filters were silently ignored
  • Safe JSON parsing for on-chain attestation content - malformed data no longer crashes entire queries
  • Replace as KeyPairSigner with as TransactionSigner in browser wallet paths - semantically correct minimal interface
  • For getTransferInstruction authority, pass Address directly instead of casting (accepts Address | TransactionSigner)
  • Registration race condition in sender path - retry loop (3 attempts, 1.5s delay) handles concurrent PDA collisions
  • Post-registration memberNumber bug - use value from successful attempt instead of re-fetching (which could race)

Added

  • revokeFeedbackByAddress(compressedAddress) - stable address-based revoke alternative to index-based revokeFeedback
  • SatiWarning type and onWarning callback in SatiSDKConfig for non-fatal warning reporting (RPC failures, signature lookups)

@cascade-fyi/sati-agent0-sdk@0.1.0

11 Feb 21:07
29a3414

Choose a tag to compare

[0.1.0] - 2026-02-11

Added

  • SatiSDK class with agent0-sdk compatible interface backed by SATI's Solana infrastructure
  • SatiAgent class with fluent builders for endpoints, metadata, trust models, and on-chain registration (IPFS and HTTP)
  • CAIP-2 agent IDs (solana:<chainRef>:<mintAddress>) for cross-chain compatibility
  • Agent search with 20+ filters (name, capabilities, endpoints, trust models, feedback stats)
  • Feedback creation via giveFeedback() (server-side) and prepareFeedback()/submitPreparedFeedback() (browser wallet flow)
  • SatiFeedbackOptions for governance use cases: typed outcome (Negative/Neutral/Positive) and deterministic taskRef parameters
  • Feedback search, revocation, and reputation summary
  • Validation attestation search via searchValidations()
  • Config accessors for schema addresses and lookup tables
  • Data format converters between SATI and agent0
  • Endpoint capability auto-fetching for MCP and A2A
  • OASF skill and domain management
  • Transaction sender support for browser wallet integration
  • Re-exports of agent0-sdk types and SATI constants for consumer convenience

@cascade-fyi/sati-sdk@0.4.2

10 Feb 14:53
484219f

Choose a tag to compare

Fixed

  • Close attestation off-by-one error: program was reading agent_mint/counterparty at offsets 32/64 instead of 33/65, skipping the layout_version byte - caused every close/update attempt to fail with AgentMintAccountMismatch
  • Missing SAS CPI accounts (sasEventAuthority, systemProgram) in closeRegularAttestation instruction - previously caused runtime panics
  • Wired sasEventAuthority into closeRegularAttestation() and updateReputationScore() SDK methods

Added

  • deriveSasEventAuthorityPda() helper for SAS event authority PDA derivation

@cascade-fyi/sati-sdk@0.4.1

09 Feb 18:36
2d3f6cd

Choose a tag to compare

Fix published npm package having unresolved workspace:* dependency.

Fixed

  • @cascade-fyi/compression-kit dependency was published as workspace:* in v0.4.0, breaking npm install and yarn add for non-pnpm users. Now correctly resolves to 0.2.0.

Installation

npm install @cascade-fyi/sati-sdk@0.4.1

npm: https://www.npmjs.com/package/@cascade-fyi/sati-sdk/v/0.4.1

@cascade-fyi/sati-sdk@0.4.0

09 Feb 18:20
c6bb12a

Choose a tag to compare

Fix createReputationScore - was broken due to multiple stacked bugs in the SAS/ReputationScore path.

Fixed

  • SAS authorized signers - satiPda added to credential DQHW6fAhPfGAENuwJVYfzEvUN12DakZgaaGtPPRfGei1 via changeAuthorizedSigners. The credential was deployed with empty signers, so CPI calls from the SATI program to SAS were rejected.
  • Schema layout - Migrated to ReputationScoreV3 with VecU8 content layout, fixing variable-length JSON content support. New schema: 7MoXgvrFhMxmB84AfAtp8LGfC4sEXUHD6JCQJpfj2jTj
  • PDA derivation - deriveReputationAttestationPda was using wrong nonce format
  • Schema lookup - fetchMaybeSchema truthiness check caused false negatives
  • Deploy script is now fully idempotent for authorized signer management

Added

  • updateReputationScore method
  • validateReputationScoreContent helper
  • Content validation in createReputationScore and updateReputationScore
  • Bounds check on content length in deserialization

Installation

npm install @cascade-fyi/sati-sdk@0.4.0

npm: https://www.npmjs.com/package/@cascade-fyi/sati-sdk/v/0.4.0
Mainnet verification tx: 5N967Lv2HFZp3rHN7pjW8j37ZsEoYT9icHXkNCLq1tGo5eFRHc6bHYyVS3eM6x8Z7L7AjAxLdXBa6zG6X3vq1Rqd

@cascade-fyi/compression-kit@0.2.0

04 Jan 14:04
6c01b00

Choose a tag to compare

Added

  • Web Crypto Utilities

    • importEd25519PublicKey() - Import Ed25519 public keys using Web Crypto API for signature verification
  • RPC Types

    • MemcmpFilter - Interface for memory comparison filtering in Photon RPC queries

Changed

  • Upgraded TypeScript target to ES2022 with ES2023 lib for better performance
  • Added DOM type definitions for Web Crypto API compatibility
  • Improved npm package metadata and publishing configuration
  • CHANGELOG.md now included in published npm package

npm: https://www.npmjs.com/package/@cascade-fyi/compression-kit/v/0.2.0

@cascade-fyi/sati-sdk@1.0.0-rc.1

04 Jan 14:18
c56ad2c

Choose a tag to compare

Pre-release

Release candidate for SATI SDK v1.0.0 - Solana Agent Trust Infrastructure.

Highlights

  • Mainnet deployment - Program deployed and verified on mainnet
  • Delegation support - Delegate schemas for authorized agent actions
  • Layout versioning - Universal base layout with version field for future upgrades
  • SIWS signatures - Sign-In With Solana inspired counterparty signing
  • E2E encryption - X25519-XChaCha20-Poly1305 content encryption

Added

  • createDelegateInstruction() - Create delegate authority for agents
  • revokeDelegateInstruction() - Revoke delegate authority
  • Ed25519 precompile signature extraction from transactions
  • Content encryption/decryption utilities
  • Mainnet and devnet deployed configurations

Changed

  • Instruction names updated for clarity (initializeAgentregisterAgent, etc.)
  • Universal base layout with discriminator, layout version, authority
  • Schema configs with versioned naming

Installation

# Install release candidate
npm install @cascade-fyi/sati-sdk@next
# or explicitly
npm install @cascade-fyi/sati-sdk@1.0.0-rc.1

npm: https://www.npmjs.com/package/@cascade-fyi/sati-sdk/v/1.0.0-rc.1
Mainnet program: satiR3q7XLdnMLZZjgDTaJLFTwV6VqZ5BZUph697Jvz

@cascade-fyi/compression-kit@0.1.0

04 Jan 14:05
27f6fca

Choose a tag to compare

Initial release of @cascade-fyi/compression-kit - Solana Kit native implementation of Light Protocol compression.

Added

  • Photon RPC Client

    • createPhotonRpc() - Create RPC client for Light Protocol indexer
    • getCompressedAccount() - Fetch compressed account by hash
    • getCompressedAccountsByOwner() - Fetch all compressed accounts for owner
    • getCompressedTokenAccountsByOwner() - Fetch token accounts
    • getCompressedTokenBalancesByOwner() - Fetch token balances
    • getValidityProof() - Get validity proofs for accounts/addresses
    • getMultipleCompressedAccounts() - Batch fetch accounts
    • getCompressionSignaturesForOwner() - Get transaction signatures
    • getLatestCompressionSignatures() - Get recent signatures
    • getIndexerHealth() / getIndexerSlot() - Health checks
  • Address Derivation

    • deriveAddressSeed() / deriveAddress() - V1 address derivation
    • deriveAddressSeedV2() / deriveAddressV2() - V2 address derivation
    • packNewAddressParams() - Pack address params for instructions
    • addressToBytes() / bytesToAddress() - Address conversions
  • BN254 Field Operations

    • createBN254() - Create field element from bigint
    • bn254FromBytes() / bn254ToBytes() - Byte conversions
    • bn254Add() / bn254Sub() / bn254Mul() - Field arithmetic
    • isSmallerThanFieldSize() - Field size validation
    • encodeBN254toBase58() / encodeBN254toHex() - Encoding utilities
  • Instruction Building

    • PackedAccounts - Helper class for building instruction accounts
    • getLightSystemAccountMetas() - Get Light system account metas (V1)
    • getLightSystemAccountMetasV2() - Get Light system account metas (V2)
    • createSystemAccountConfig() - Create system account configuration
    • getCpiSignerPda() - Derive CPI signer PDA
  • Constants

    • Program IDs: LIGHT_SYSTEM_PROGRAM, ACCOUNT_COMPRESSION_PROGRAM, COMPRESSED_TOKEN_PROGRAM
    • Tree addresses for mainnet and devnet
    • Fee constants and configuration values

Notes

  • Uses native bigint instead of BN.js for better performance
  • Uses Address type from @solana/kit instead of PublicKey
  • Compatible with edge runtimes (Cloudflare Workers, Deno, browsers)

npm: https://www.npmjs.com/package/@cascade-fyi/compression-kit/v/0.1.0