Skip to content

Rename Vault Strategy to Managed Fund, and Token Fundraiser to Fundraiser - #167

Merged
mikemaccana merged 2 commits into
mainfrom
claude/blissful-cannon-k8qhra
Sep 29, 2026
Merged

mikemaccana merged 2 commits into
mainfrom
claude/blissful-cannon-k8qhra

Conversation

@mikemaccana

@mikemaccana mikemaccana commented Sep 28, 2026 •

Copy link
Copy Markdown
Collaborator

Two renames that make the finance examples use the finance names for what they build.

Vault Strategy → Managed Fund

The example is a manager-run fund: investors deposit for shares priced at net asset value, and a manager allocates the pool across a basket of approved assets. Finance calls that a managed fund, the onchain equivalent of a mutual fund. It isn't an index fund, because the manager chooses the weights. "Vault" also meant two things here: the whole product and the single-asset token accounts it owns. Now it means only the token accounts.

  • finance/vault-strategy → finance/managed-fund, covering Anchor v2, Anchor v1, Quasar, the Kani proofs and the web app.
  • Renames: Strategy → Fund, initialize_strategy → initialize_fund, StrategyNotFullyAllocated → FundNotFullyAllocated, VaultError → FundError, crate vault-strategy → managed-fund.
  • Addresses change: the fund PDA's seed changes from "strategy" to "fund", so every fund address changes. The program IDs and behavior do not change.
  • The committed IDLs carry the new discriminators and seed bytes. The app's client and env vars follow (VITE_FUND_INDEX, VITE_FUND_PROGRAM_ID).
  • CI (typescript.yml, kani.yml) and the root Cargo.toml/Cargo.lock follow the new path.

Token Fundraiser → Fundraiser

Contributors receive no token, only a refund if the target is missed, so "Token" described something the program does not do.

  • finance/token-fundraiser → finance/fundraiser. The Quasar crate becomes quasar-fundraiser and the proofs crate fundraiser-kani-proofs. The Anchor programs were already named fundraiser. Accounts, handlers and behavior are unchanged.

Finding the examples under their old names

  • The root README.md, llms.txt and each example's READMEs say which name each example had before.
  • finance/vault-strategy/README.md and finance/token-fundraiser/README.md stay at the old paths and point old links to the new locations.
  • CHANGELOG entries are added at the root and in each version. Historical entries are left as they were.

Testing

Run locally with Solana 3.1.14, building each program per manifest with cargo build-sbf, then cargo test:

  • Managed fund: Anchor v2 24/24, Anchor v1 24/24, Quasar 6/6, Kani proof tests 4/4. Both apps pass pnpm typecheck, pnpm verify and pnpm build.
  • Fundraiser: Anchor v2 19/19, Anchor v1 19/19, Quasar 17/17, Kani proof tests 2/2.
  • cargo fmt --check and biome check pass.

The book follows in quicknode/solana-book#184. This PR should merge first.

🤖 Generated with Claude Code

https://claude.ai/code/session_01JTaqedahgCHQbzXPcHDPok

The example is a manager-run fund: investors deposit for shares priced at
net asset value and a manager allocates across approved assets. Finance
calls that a managed fund (the onchain equivalent of a mutual fund), and
"vault" also meant both the product and its token accounts. Now the product
is the fund and a vault is only a single-asset token account it owns.

- finance/vault-strategy moves to finance/managed-fund (Anchor v2, Anchor
  v1, Quasar, Kani proofs, web app). Strategy -> Fund,
  initialize_strategy -> initialize_fund, StrategyNotFullyAllocated ->
  FundNotFullyAllocated, VaultError -> FundError, PDA seed "strategy" ->
  "fund". Program IDs and behavior are unchanged.
- The committed IDLs get the new discriminators and seed bytes; the web
  app's client and env vars follow.
- README, llms.txt and the example READMEs say it was formerly Vault
  Strategy, and finance/vault-strategy/README.md points old links to the
  new location.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JTaqedahgCHQbzXPcHDPok
Contributors receive no token, only a refund if the target is missed, so
"Token Fundraiser" described something the program does not do.

- finance/token-fundraiser moves to finance/fundraiser (Anchor v2, Anchor
  v1, Quasar, Kani proofs). The Quasar crate is quasar-fundraiser and the
  proofs crate fundraiser-kani-proofs; the Anchor programs were already
  named fundraiser. Behavior is unchanged.
- README, llms.txt and the example READMEs say it was formerly Token
  Fundraiser, and finance/token-fundraiser/README.md points old links to
  the new location.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JTaqedahgCHQbzXPcHDPok
@mikemaccana mikemaccana changed the title Rename Vault Strategy to Managed Fund Rename Vault Strategy to Managed Fund, and Token Fundraiser to Fundraiser Sep 28, 2026
@mikemaccana
mikemaccana merged commit c48e8ce into main Sep 29, 2026
33 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant