This report records the current Testnet migration state for PrivateDAO. It is intentionally factual: Devnet browser-wallet evidence remains the mobile/product proof, while Testnet now has a deployed program and a completed standard governance treasury lifecycle rehearsal.
- Devnet: verified product execution, wallet UX, governance lifecycle, and reviewer evidence.
- Testnet: active migration target for release-candidate rehearsal, RPCFast-backed infrastructure validation, and pre-mainnet monitoring.
- Mainnet-beta: not claimed until custody, audit, monitoring delivery, settlement receipts, and release ceremony evidence are closed.
- Anchor CLI previously observed on default PATH:
0.31.1 - AVM current Anchor version available:
0.32.1 - Solana CLI:
3.1.8 - Rust:
1.94.0 - Preserved program ID:
5AhUsbQ4mJ8Xh7QJEomuS85qGgmK9iNvFqzF669Y7Psx - Deploy authority wallet:
4Mm5YTRbJuyA8NcWM85wTnx6ZQMXNph2DSnzCCKLhsMD - Deployment keypair path:
target/deploy/private_dao-keypair.json - IDL path:
target/idl/private_dao.json - TS type path:
target/types/private_dao.ts
Anchor.tomlnow targetstestnetby default and includes a[programs.testnet]entry for the preserved program ID.- Anchor Rust dependencies moved from
0.31.1to0.32.1. - TypeScript Anchor dependency moved from
^0.31.1to^0.32.1. - Package scripts now route build/deploy through AVM's Anchor 0.32.1 path.
- Added
npm run setup:testnet. - Added
npm run deploy:devnetandnpm run deploy:testnet. - Public site status banner now states that Testnet transition is in progress without claiming Mainnet readiness.
npm install --package-lock-only --ignore-scriptscompleted and updated dependency resolution.cargo update -p anchor-lang --precise 0.32.1completed.cargo update -p anchor-spl --precise 0.32.1completed.npm run anchor:versionreturnedanchor-cli 0.32.1.npm run buildcompleted with Anchor 0.32.1.
Build warning boundary:
- The build still emits known
unexpected cfgwarnings from Anchor/Solana macro expansion. They did not block build output.
- Initial observed Testnet deployer balance:
0 SOL - CLI airdrop attempt: failed due faucet/rate-limit response.
- Manual funding received:
10 SOL npm run setup:testnetconfirmed Testnet RPChttps://api.testnet.solana.comand deployer balance10 SOL.npm run deploy:testnetstarted and created a deploy buffer.- Deploy attempt failed with:
25 write transactions failed. - Post-attempt deployer balance:
0.1551256 SOL - Testnet program account readout:
AccountNotFound
Existing Testnet deploy buffer:
- Buffer address:
9vwrTpLeCeKjH6jFPyKiMPPDeGD9FkYtTcPGZxhkUvS8 - Buffer authority:
4Mm5YTRbJuyA8NcWM85wTnx6ZQMXNph2DSnzCCKLhsMD - Buffer balance:
9.8328444 SOL
The buffer is not lost. It should either be reused to complete deployment or closed if a clean redeploy is chosen.
Second funding received:
- Additional funding:
10 SOL - Pre-deploy observed balance:
10.1549656 SOL
Deployment result:
- Command:
npm run deploy:testnet - Cluster:
https://api.testnet.solana.com - Program ID:
5AhUsbQ4mJ8Xh7QJEomuS85qGgmK9iNvFqzF669Y7Psx - Deploy signature:
4a2gsFSJ6EpgqZjVaMSZx72LVvz2o1XfXBzJ8PHLz5Q8YStNYmdhk6YBDoMe2fjxb6TPrr8s5mydqeFQwPgHnqdy - Status:
Deploy success - IDL account:
BKV4bWESswfKteav82yZWPdN6wCd172UryGkaN8mxfGR
Post-deploy program readout:
- Owner:
BPFLoaderUpgradeab1e11111111111111111111111 - ProgramData address:
CeggEn3sNVbiuJHLKDaCPMH4uLczu1Dr3ZGKKcaKBqeN - Upgrade authority:
4Mm5YTRbJuyA8NcWM85wTnx6ZQMXNph2DSnzCCKLhsMD - Last deployed slot:
402746196 - Data length:
1412592bytes - Program account balance:
9.8328444 SOL - Deployer wallet balance after deploy readout:
10.0050118 SOL - Remaining buffers for deploy authority: none shown by
solana program show --buffers --buffer-authority 4Mm5YTRbJuyA8NcWM85wTnx6ZQMXNph2DSnzCCKLhsMD --url testnet
Standard governance and SOL treasury execution completed on Testnet.
- Rehearsal report:
docs/testnet-lifecycle-rehearsal-2026-04-18.md - Rehearsal JSON:
docs/testnet-lifecycle-rehearsal-2026-04-18.json - DAO:
HZkVYf1bizstbEonRr7AS8HRQdR6sAgTB5Av9EuJFvGa - Proposal:
HXMsqWWKosqgTM1PnPTeHrzq1i5ZygtrKZ5kjozH3T4A - Treasury:
9iyaSYfLNXbf99zcUfuoUDZLSQvui8dQP598wgKwX3pa - Recipient:
61NFdkAfRbF1V6qTNnRoj5weRDvXSjDYzeBoRpJ8kS6K - Result:
Passed - Executed:
true - Treasury delta:
5000000lamports - Recipient delta:
5000000lamports
Lifecycle transaction hashes:
- mint governance voting power:
66RML9rzsbBGT2ZGXjsXh4gJbLZvT6e8pwjeiXbBLBBt8TeyasSh9Rqj6tXpJSB5w7iGm6Ac9bUQbNfvbNmhiEob - fund recipient system account:
64ZeVQjJLRRpf4myVtWtJj5okNrjXCwvBFmvxYJCmBwom1obZ5yz1imGdmTgvCDb94ZnoNM2TXf4UKGoc3Hvcwox - create DAO:
5kDcY9hBdCboSs3Hivijhzt9NZFJc2jzYFqwcJuRTCKTHBtLJAMinq8pGqiSadP4F7tdPn5dfkapZffh178JvNbo - create treasury proposal:
XNg9X14NTh1MBfGGoR2JFnEZ93UZswFyQUeZ5Ca4r2c4UqViJoTgBXTM7sUQassGjhqT5mAF2KGnxvRQxbBAm6f - deposit treasury:
2jX5S19NvhbfPPJUxSg1GofVMPJPSmXbo4vkjWaShNYGgwXN57fVzX4MuWBzhv24MB9MePUVbnDvBMJK4DGrqAV2 - commit vote:
2g7VgBcDQWGRj53p3ZHjqJphA5tRj4YxmuTA8u14JQ3KSaq4AonMB2tDnaBWcNpEDpQuFmHjKaZegBbHgTP2G33b - reveal vote:
4tBdoy1FcTc8ZPRouhNAkkoZ77gsw5MVrZ27ANW8EG3TkDrcquY9CHsBEDiugjwciT2GjDedJRLtELN3Fj5w9WnX - finalize proposal:
5dWoDDCGKUVtYG8tu1ZJt6MoqEefapLAyVDXw7fJBpAMBgjb1Rcut7vepev5AAQHp7tqyP3yN4shdKcKxiyMHg9u - execute proposal:
5rLufq61qfdtgcaWtorYCy7CzDuxsYt13McxBi5MwgmHEKVmmdsxXqA6FMzz9ZxzQJGrdXj3iG6CbJpS59uMmFeD
Observed operational note:
- The first reveal submission hit a transient retry and the second attempt succeeded. This is recorded as a public Testnet RPC/timing resilience event, not as a failed lifecycle.
Current deployer Testnet balance after rehearsal:
9.95454956 SOL
Testnet deployment and the standard lifecycle rehearsal are complete. The next step is to refresh reviewer/business/security packets and external submissions against this new Testnet truth boundary.
npm run setup:testnet
solana program show 5AhUsbQ4mJ8Xh7QJEomuS85qGgmK9iNvFqzF669Y7Psx --url testnet
solana account BKV4bWESswfKteav82yZWPdN6wCd172UryGkaN8mxfGR --url testnetIf public Testnet RPC continues to drop write transactions, set a supported Testnet RPC endpoint in host secrets:
export RPCFAST_TESTNET_RPC_URL="https://..."
npm run setup:testnet
npm run deploy:testnetNo RPC API keys should be committed to Git.
These items are still separate and should not be implied by the standard lifecycle rehearsal:
- browser-wallet Testnet capture
- custody/multisig authority transfer
- confidential payout settlement receipt closure
- external audit/security review closure
- monitoring alert delivery destination proof
- mainnet-beta readiness