Anchor 1 Migration Evidence - 2026-04-30
anchor-1-migration-evidence-2026-04-30.md
Boundary
This route preserves legacy markdown access inside the Next.js surface. The raw repository file remains authoritative.
Open raw fileAnchor 1 Migration Evidence - 2026-04-30
Summary
PrivateDAO was migrated from the Anchor 0.32 line to Anchor 1.0.1 at the Rust program/toolchain layer. The migration is not a cosmetic version bump: the program source was updated for Anchor 1 CPI API changes, the IDL build path was repaired, the program ID was regenerated to a clean unused Testnet deploy target, and active web/Android client constants were updated.
Current Program
- Program ID:
EP9xE8MJZ6FfyEwLqns6HDdUZBknEa7WGYs1Jzsecuva - Cluster: Testnet
- Explorer:
https://solscan.io/account/EP9xE8MJZ6FfyEwLqns6HDdUZBknEa7WGYs1Jzsecuva?cluster=testnet - Deploy signature:
2HucNtqnL3fxAvW911b6poj3hJWTUg2EN344EhRruhPyxxHmt8P4ba3gnnHxmRnjBU3Kps3V1hevt61W9Lik1bvm - ProgramData:
FKyt5DcmRQcCF8kzMGjCvfGb3ZPHMQnH1SqiG9Mi8xEc - Upgrade authority:
4Mm5YTRbJuyA8NcWM85wTnx6ZQMXNph2DSnzCCKLhsMD
Toolchain Evidence
avm list:1.0.1 (latest)cargo search anchor-lang: latest crateanchor-lang = "1.0.1"Anchor.toml:anchor_version = "1.0.1"Cargo.toml:anchor-lang = "1.0.1"andanchor-spl = "1.0.1"npm view @coral-xyz/anchor version:0.32.1
The JavaScript client remains pinned to the latest published npm package, while Rust program crates use Anchor 1.0.1.
Build Evidence
Command:
PATH="$HOME/.avm/bin:$PATH" anchor buildResult:
- SBF release build completed.
- Anchor IDL/test crate build completed.
- Generated artifacts now match
declare_id!("EP9xE8MJZ6FfyEwLqns6HDdUZBknEa7WGYs1Jzsecuva").
Deployment Status
Deployment completed on Testnet after the successful Anchor 1.0.1 build.
2oq56CUPwsnxbHAdmbQswFR3DWAQ3EBinrNDNSAJMTTScould not be used as the program address because it was already created as a funded System account.- A fresh unused program keypair was generated for
EP9xE8MJZ6FfyEwLqns6HDdUZBknEa7WGYs1Jzsecuva. - The final deployment used public hosted asset listed above as fee payer and upgrade authority.
- RPC write mode hit retry limits during buffer writes, so the successful deployment used QUIC transport.
Successful command:
solana program deploy target/deploy/private_dao.so \
--program-id target/deploy/private_dao-keypair.json \
--buffer target/deploy/private_dao-buffer-keypair.json \
--keypair local Testnet operator keypair (not committed) \
--fee-payer local Testnet operator keypair (not committed) \
--upgrade-authority local Testnet operator keypair (not committed) \
--url testnet \
--use-quic \
--skip-feature-verify \
--max-sign-attempts 20 \
--verbosesolana program show readout:
Program Id: EP9xE8MJZ6FfyEwLqns6HDdUZBknEa7WGYs1Jzsecuva
Owner: BPFLoaderUpgradeab1e11111111111111111111111
ProgramData Address: FKyt5DcmRQcCF8kzMGjCvfGb3ZPHMQnH1SqiG9Mi8xEc
Authority: 4Mm5YTRbJuyA8NcWM85wTnx6ZQMXNph2DSnzCCKLhsMD
Last Deployed In Slot: 405189011
Data Length: 1356304 (0x14b210) bytes
Balance: 9.44107992 SOLActive Client Updates
Updated active program constants in:
Anchor.tomlprograms/private-dao/src/lib.rsapps/web/src/lib/dao-bootstrap.tsapps/web/src/lib/custody-evidence.tsapps/web/src/lib/onchain-parity.generated.tsapps/web/src/lib/technical-eligibility.tsapps/android-native/app/src/main/java/io/xpact/privatedao/android/config/PrivateDaoConfig.ktscripts/verify-program-id-consistency.tsscripts/build-onchain-ui-parity.ts
Known Follow-Ups
- Migrate deprecated
AccountInfofields toUncheckedAccount. - Fix pre-existing web typecheck alias/generated-file failures.
- Fix pre-existing lint findings.
- Re-run full live-style test suite after tuning test durations under Anchor 1.0.1.