Skip to main content

Overview

This release targets the regenerated smart account contract surface from the latest uploaded testnet WASM set. It is a clean-cut migration - the SDK no longer preserves the legacy Signatures tuple flow or the removed get_context_rules(...) contract method.

New Contract Addresses (Testnet)

ContractAddress / Hash
Smart account WASM hash3e51f5b222dec74650f0b33367acb42a41ce497f72639230463070e666abba2c
WebAuthn verifier WASM hashd84af9e7c31afece287fee8276ef7d6a64b236d596c043594c003e0f4032d1c7
Ed25519 verifier WASM hashe88b7989f8c5e69d6a72cda8419844ef2753ab249fef422f31436c5c32e28623
Threshold policy WASM hash5c87cedc0e485152a084c4b5435bdec88e41304a4316e82e37a84910715639f6
Spending-limit policy WASM hasheca96954a8e76e366e74fbc95eced11666c939e130a5cc302b8363622e931018
WebAuthn verifierCATPTBRWVMH5ZCIKO5HN2F4FMPXVZEXC56RKGHRXCM7EEZGGXK7PICEH
Ed25519 verifierCAIKK32K3BZJYTWVTXHZFPIEEDBR6YCVTGPABH4UQUQ4XFA3OLYXG27G
Threshold policyCDDQLFG7CV74QHWPSP6NZIPNBR2PPCMTUVYCJF4P3ONDYHODRFGR7LWC
Spending-limit policyCBYLPYZGLQ6JVY2IQ5P23QLQPR3KAMMKMZLNWG6RUUKJDNYGPLVHK7U4
There is intentionally no checked-in smart-account contract ID in the default config. Smart-account deployment is parameterized and requires constructor args for signers and policies, so the repo defaults to the uploaded smart-account WASM hash.

Breaking Changes

Signing flow

The old Signatures tuple encoding has been replaced with explicit AuthPayload encoding. If you were manually constructing auth payloads, update them to use the new AuthPayload type.

Removed contract methods

get_context_rules(...) has been removed from the contract surface. Use kit.rules.list() (indexer-backed) or kit.rules.get(id) (direct chain read) instead.

Generated bindings

packages/smart-account-kit-bindings has been regenerated from the new WASM hash. The following contract surface changes apply:
ChangeDetails
add_signerNow returns u32 (the new signer ID)
add_policyNow returns u32 (the new policy ID)
get_context_rules_countNew - returns the total count of context rules
get_signer_idNew - resolve a signer to its on-chain ID
get_policy_idNew - resolve a policy to its on-chain ID
AuthPayloadNew - explicit auth payload type used in signing flow

Migration Steps

  1. Update your .env - Replace all contract addresses and WASM hashes with the new testnet values above (or deploy your own from stellar-contracts).
  2. Regenerate bindings - Run pnpm run build:all to fetch the new contract metadata and regenerate TypeScript bindings.
  3. Remove legacy auth code - If you were manually building Signatures tuples or calling get_context_rules(...), remove that code. Use kit.rules.list() for rule enumeration.
  4. Update auth payload handling - If you interact with auth payloads directly, import and use the new AuthPayload type from smart-account-kit.