Releases: cascade-protocol/sati
@cascade-fyi/sati-agent0-sdk@0.2.0
Breaking Changes
- Write operations now return
SolanaTransactionHandle<T>instead of raw promises. Use.hashfor the transaction signature,.waitMined()or.waitConfirmed()for the result. giveFeedback7th parameter (satiOptions) removed - passoutcomeandtaskRefvia thefeedbackFileparameter insteadagent.registerIPFS()/agent.registerHTTP()now returnSolanaTransactionHandle<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 callsagent.updateIPFS()andagent.updateHTTP(uri)methods- Server-side memcmp filtering for
searchFeedback - Lazy feedback stats in
searchAgents
Fixed
searchAgentsno longer fetches all agents before filtering - supports pagination and applies cheap filters first
@cascade-fyi/compression-kit@0.2.1
Fixed
MemcmpFilternow works with Photon RPC - filters are transformed to the correct wire format ({ memcmp: { offset, bytes } }with base58-encoded bytes)getCompressedAccountsByOwnerproperly passes memcmp filters to Photon for server-side filtering (previously filters were passed through raw and ignored)
Changed
- Removed unused
encodingfield fromMemcmpFilterinterface (was documented as "not yet supported") - Updated
MemcmpFilter.bytestype docs to reflect actual usage (base58 string or Uint8Array)
@cascade-fyi/sati-agent0-sdk@0.1.1
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 KeyPairSignerwithas TransactionSignerin browser wallet paths - semantically correct minimal interface - For
getTransferInstructionauthority, passAddressdirectly instead of casting (acceptsAddress | TransactionSigner) - Registration race condition in sender path - retry loop (3 attempts, 1.5s delay) handles concurrent PDA collisions
- Post-registration
memberNumberbug - use value from successful attempt instead of re-fetching (which could race)
Added
revokeFeedbackByAddress(compressedAddress)- stable address-based revoke alternative to index-basedrevokeFeedbackSatiWarningtype andonWarningcallback inSatiSDKConfigfor non-fatal warning reporting (RPC failures, signature lookups)
@cascade-fyi/sati-agent0-sdk@0.1.0
[0.1.0] - 2026-02-11
Added
SatiSDKclass with agent0-sdk compatible interface backed by SATI's Solana infrastructureSatiAgentclass 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) andprepareFeedback()/submitPreparedFeedback()(browser wallet flow) SatiFeedbackOptionsfor governance use cases: typedoutcome(Negative/Neutral/Positive) and deterministictaskRefparameters- 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
Fixed
- Close attestation off-by-one error: program was reading
agent_mint/counterpartyat offsets 32/64 instead of 33/65, skipping thelayout_versionbyte - caused every close/update attempt to fail withAgentMintAccountMismatch - Missing SAS CPI accounts (
sasEventAuthority,systemProgram) incloseRegularAttestationinstruction - previously caused runtime panics - Wired
sasEventAuthorityintocloseRegularAttestation()andupdateReputationScore()SDK methods
Added
deriveSasEventAuthorityPda()helper for SAS event authority PDA derivation
@cascade-fyi/sati-sdk@0.4.1
Fix published npm package having unresolved workspace:* dependency.
Fixed
@cascade-fyi/compression-kitdependency was published asworkspace:*in v0.4.0, breakingnpm installandyarn addfor non-pnpm users. Now correctly resolves to0.2.0.
Installation
npm install @cascade-fyi/sati-sdk@0.4.1npm: https://www.npmjs.com/package/@cascade-fyi/sati-sdk/v/0.4.1
@cascade-fyi/sati-sdk@0.4.0
Fix createReputationScore - was broken due to multiple stacked bugs in the SAS/ReputationScore path.
Fixed
- SAS authorized signers -
satiPdaadded to credentialDQHW6fAhPfGAENuwJVYfzEvUN12DakZgaaGtPPRfGei1viachangeAuthorizedSigners. 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 -
deriveReputationAttestationPdawas using wrong nonce format - Schema lookup -
fetchMaybeSchematruthiness check caused false negatives - Deploy script is now fully idempotent for authorized signer management
Added
updateReputationScoremethodvalidateReputationScoreContenthelper- Content validation in
createReputationScoreandupdateReputationScore - Bounds check on content length in deserialization
Installation
npm install @cascade-fyi/sati-sdk@0.4.0npm: https://www.npmjs.com/package/@cascade-fyi/sati-sdk/v/0.4.0
Mainnet verification tx: 5N967Lv2HFZp3rHN7pjW8j37ZsEoYT9icHXkNCLq1tGo5eFRHc6bHYyVS3eM6x8Z7L7AjAxLdXBa6zG6X3vq1Rqd
@cascade-fyi/compression-kit@0.2.0
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
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 agentsrevokeDelegateInstruction()- Revoke delegate authority- Ed25519 precompile signature extraction from transactions
- Content encryption/decryption utilities
- Mainnet and devnet deployed configurations
Changed
- Instruction names updated for clarity (
initializeAgent→registerAgent, 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.1npm: 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
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 indexergetCompressedAccount()- Fetch compressed account by hashgetCompressedAccountsByOwner()- Fetch all compressed accounts for ownergetCompressedTokenAccountsByOwner()- Fetch token accountsgetCompressedTokenBalancesByOwner()- Fetch token balancesgetValidityProof()- Get validity proofs for accounts/addressesgetMultipleCompressedAccounts()- Batch fetch accountsgetCompressionSignaturesForOwner()- Get transaction signaturesgetLatestCompressionSignatures()- Get recent signaturesgetIndexerHealth()/getIndexerSlot()- Health checks
-
Address Derivation
deriveAddressSeed()/deriveAddress()- V1 address derivationderiveAddressSeedV2()/deriveAddressV2()- V2 address derivationpackNewAddressParams()- Pack address params for instructionsaddressToBytes()/bytesToAddress()- Address conversions
-
BN254 Field Operations
createBN254()- Create field element from bigintbn254FromBytes()/bn254ToBytes()- Byte conversionsbn254Add()/bn254Sub()/bn254Mul()- Field arithmeticisSmallerThanFieldSize()- Field size validationencodeBN254toBase58()/encodeBN254toHex()- Encoding utilities
-
Instruction Building
PackedAccounts- Helper class for building instruction accountsgetLightSystemAccountMetas()- Get Light system account metas (V1)getLightSystemAccountMetasV2()- Get Light system account metas (V2)createSystemAccountConfig()- Create system account configurationgetCpiSignerPda()- 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
- Program IDs:
Notes
- Uses native
bigintinstead of BN.js for better performance - Uses
Addresstype from@solana/kitinstead ofPublicKey - Compatible with edge runtimes (Cloudflare Workers, Deno, browsers)
npm: https://www.npmjs.com/package/@cascade-fyi/compression-kit/v/0.1.0