Releases: ShellDAO/shell-sdk
Release list
shell-sdk v0.13.0
Highlights
- Typed staking governance helpers: encodeSetValidatorStake and proposeSetValidatorStake.
- Validator snapshots expose stakeDerivedWeights.
- Finality tags, nullable terminal epochs, and session authorization hashing align with shell-chain v0.27.x.
Verification
- TypeScript typecheck
- 134 unit tests passed; testnet e2e remains opt-in
- Package build and npm pack dry run passed
The npm package is intentionally not published by this release workflow; the maintainer will publish shell-sdk@0.13.0 manually.
shell-sdk v0.12.0
Summary
- Added typed wrappers and public types for shell-chain v0.25 RPCs.
- Validated addresses, hashes, block numbers, quantities, and validator weights before wrapper requests.
- Updated README/changelog compatibility notes for shell-chain v0.25.x.
Verification
- npm run typecheck
- npm test
- npm run build
- npm audit --omit=dev --audit-level=moderate
- npm pack --dry-run
shell-sdk v0.11.1
Summary
Patch release for RPC v2 fallback and contract receipt polling behavior.
Changes
- Limit
getTransactionsByAddressV2legacy fallback tomethod not foundresponses from older nodes. - Reject ascending cursor history on legacy nodes instead of returning mislabeled descending data.
- Clamp receipt polling intervals below 100ms to avoid tight RPC loops.
Verification
- GitHub CI passed on PR #33.
- Local
npm run typecheck,npm test, andnpm run buildpassed.
Shell SDK v0.11.0
Highlights
- Adds public
shell-sdk/contractsruntime helpers for smart contract deploy/read/write flows. - Adds Node-only
shell-sdk/contracts/compilerSolidity artifact helpers. - Adds
shell-sdkCLI contract commands: compile, deploy, write, read, and smoke. - Aligns contract APIs with Shell 32-byte address semantics while keeping Solidity
addressABI selectors intact. - Keeps browser consumers free from bundling
solcunless they import the Node compiler subpath.
Verification
npm run typechecknpm testnpm run buildnpm audit --omit=dev --audit-level=moderate
Published to npm as shell-sdk@0.11.0 after manual OTP confirmation. The tag workflow checks passed through build and failed only at the npm 2FA publish step.
shell-sdk v0.10.0
[0.10.0] — 2026-06-15
Added
- PQ-HD wallet derivation helpers and canonical test vectors.
- Session-key authorization helpers and exports for AA session flows.
- Contract compile fixture support and PQVM contract integration fixtures.
- Additional public exports for
./sessionand./hdwallet.
Changed
- Aligns SDK public API and documentation with
shell-chain v0.24.x. - Keeps
v0.9.xsigning-hash compatibility while adding new PQ-HD/session
functionality as a minor-version feature release.
shell-sdk v0.9.3 — Domain-Separated Signing, Security Hardening & Doc Fixes
What's Changed
Security
- 16-byte domain separators on all signing hashes — Transaction, AA batch, paymaster, and session signing hash preimages now include a unique 16-byte domain prefix, preventing cross-context replay attacks. Rust compatibility vectors updated. (#23)
- Real key-material erasure — KDF output and intermediate key bytes are now zeroed after use instead of being silently GC'd. (#22)
- SSRF guard: IPv6 link-local and unique-local blocked —
validateRpcUrlpreviously only checked IPv4 private ranges; URLs likehttps://[fe80::1]passed through. AddedisPrivateIpv6covering::1,fe80::/10,fc00::/7, and all IPv4-mapped::ffff:*addresses. (#24) - BLAKE3 hash alignment — signing hash preimages aligned with shell-chain Rust implementation. (#21)
- Input validation hardening — additional server-side input validation and memory clearing. (#22)
Bug Fixes
- Algorithm ID comments corrected —
types.tsJSDoc wrongly labelled ML-DSA-65 as ID 0; correct values: Dilithium3=0, ML-DSA-65/MlDsa65=1. (#24) - SessionAuth
auth_hashpreimage corrected — domain is the 16-bytePQTX_SESSION_V1\0prefix + 32-byte target (was documented as0x81+ 20-byte), now matchingshell-chain/crates/core/src/transaction.rs. (#24)
Tests
- 55 tests pass (up from 51), covering new IPv6 SSRF cases and existing Rust compatibility vectors.
Upgrade Notes
The signing hash domain separator change is wire-compatible with shell-chain v0.24.1+ which introduced the same domain prefixes on the Rust side. If you are signing transactions for an older node, pin to v0.9.1.
Full Changelog: v0.9.1...v0.9.3
v0.9.1
First published release with 0x hex address format (shell-chain >= v0.23.0). Breaking from 0.8.x: bech32m removed. 48/48 tests pass.
shell-sdk v0.8.2 — aligned with shell-chain v0.22.2
What's Changed
Compatibility
- Version bump aligned with shell-chain v0.22.2
- No breaking API changes from v0.8.1
Full Changelog: v0.8.1...v0.8.2
shell-sdk v0.8.0
shell-sdk v0.8.0 — Proof Input Decode Types
Aligned with shell-chain v0.22.0.
Added
ShellDecodedProofInputtype: structured proof amendment payload decoded fromstarkRewardsettlement transactions (requiresshell-chain v0.22+).
Fields:layer,blockNumber,startBlock,endBlock,nSigs,compressedSize,originalSize,settlementTxHash.ShellRpcTransaction.decodedInput?: ShellDecodedProofInput | null— filled by the node forstarkRewardsystem transactions;null/absent otherwise.ShellDecodedProofInputexported from the package root.
Changed
- Aligned with
shell-chain v0.22.0RPC surface.
npm install @shellprotocol/shell-sdk@0.8.0
shell-sdk v0.7.1
Added
- Typed Shell RPC reward metadata for address-history and transaction-summary responses, including block gas rewards, STARK rewards, reward layers, source hashes, and compression accounting fields.
Changed
- Preserve pq1-only compatibility from
0.7.0while aligning the SDK type surface withshell-chain v0.21.1.