ShainShain/docs
Shain/Docs/Changelog
Reference

Changelog

Release-by-release history. Mirrors CHANGELOG.md in the repo.

Unreleased

Project renamed from Shackle to Shain. PDA seeds now use the shain_* prefix. All SDK exports, public surfaces and cross-verify files updated. Program key rotated.

[0.4.1] — 2026-04-16

Fixed

  • Refund rent correctly when closing sessions that were opened and re-opened multiple times by the same signer.
  • Guard start_session against double-open when the previous session is still within its expiry window.

[0.4.0] — 2026-03-28

Added

  • gated_action(tag) instruction. Dapps can gate a downstream CPI behind an active session using any u64 tag for instrumentation.
  • close_session() instruction — anyone can close an expired session and return rent to the original owner.
  • Workspace-level Cargo manifest with centralized dependency versions.

Changed

  • Bumped Anchor to 1.0.0 and Solana toolchain to 3.1.x.
  • Moved from raw SPL transfer CPI to anchor_spl::token::Transfer.

[0.3.0] — 2026-02-15

Added

  • initialize(params) accepts optional overrides for session duration, fee, and minimum holding.
  • ShainConfig tracks lifetime total_sessions and total_fees_collected.

Fixed

  • Session PDA derivation now uses the full user pubkey instead of only the first 16 bytes.

[0.2.0] — 2026-01-10

Added

  • First working start_session() instruction. Charges the session fee and records expiry.
  • 9 integration tests covering happy paths and the main failure modes.

[0.1.0] — 2025-12-02

Added

  • Initial scaffolding generated by anchor init.
  • ShainConfig and ShainSession account definitions.
  • Basic initialize() instruction that writes the config PDA.