Devnet Feature Sweep - 2026-04-06
runtime/devnet-feature-sweep-2026-04-06.md
Boundary
This route preserves legacy markdown access inside the Next.js surface. The raw repository file remains authoritative.
Open raw file<!-- SPDX-License-Identifier: AGPL-3.0-or-later -->
Devnet Feature Sweep - 2026-04-06
This note records the CLI/on-chain Devnet sweep for the current PrivateDAO confidential operations stack. It intentionally excludes private keys and plaintext compensation data.
Environment
- Network: Devnet
- Program:
5AhUsbQ4mJ8Xh7QJEomuS85qGgmK9iNvFqzF669Y7Psx - DAO:
9yi2TGLcENufbRPVbEJH3BWJWrqsGxLfG6G7qJmUS8r6 - Governance mint:
9RqMo8zzCwH3XDCJq6STJSzrVS39MkWz4q7zXsYznsdC - Treasury:
9o592knjUisbN5pFbecfuDfUiBKpENgffYXfBbfmffgK - MagicBlock API:
https://payments.magicblock.app - MagicBlock validator:
MAS1Dt9qreoRMQ14YQuhg8UTZMMzDdKhmkZMECCzk57 - MagicBlock transfer queue:
FgUh7pocATTbVxJeorMb5iZwMQWcoVAAzy1PcCz2suZT
Fixes Applied During Sweep
- Corrected signer account ordering for direct execute and confidential payout execute paths after a self-recipient execute path exposed
AccountNotSigner. - Switched the MagicBlock default API base to
https://payments.magicblock.app. - Normalized MagicBlock numeric request amounts before sending JSON bodies.
- Serialized MagicBlock object-shaped errors instead of emitting opaque
[object Object]. - Rebuilt MagicBlock route hashes with Node
sha256byte output to avoid invalid route-hash material. - Prevented CLI argument parsing from coercing long hash strings into unsafe JavaScript numbers.
- Increased the frontend DAO builder reveal-window default from
5sto180s.
Encryption Boundary
The confidential payout test now uses an AES-256-GCM encrypted manifest artifact:
- Encrypted artifact:
docs/runtime/confidential-manifests/devnet-stable-magicblock-refhe.enc.json - Algorithm:
aes-256-gcm - Manifest hash:
8a86a995e53f11f70285f8339236cabd499a449558aaa4f40a068dfe96f12531 - Ciphertext hash:
243859fb964a105d6bb581d5ef01543e558a6a85fa387d23417a1581f1faa186
The plaintext fixture and key were kept outside git. The committed artifact contains ciphertext, IV, auth tag, and hashes only. npm run verify:confidential-manifest checks that the committed artifact is structurally encrypted and does not leak the known plaintext terms used by the test fixture.
Successful Simple Governance Path
- Proposal:
7UEiPzwnpT6vkCepr2MmGjvT828vgtoZZREmm9UnCwv7 - Commit txs:
4vbBYRv8hh5ybn1qiS84dogbbZzBcv6D8CAj8pMvKkeog4euEnEny7RzTF7eas4xwDxjR6x94pXZSb1EGVgn6H6k2vsoKvRJAEwMRZxQ69TTxSz8Gffe57Uwvp7MeaQfH7ffi88siJ7PiXQmXtWsrJx2kuaXBiKWXoqNVw54ZKkdeBn72dQsYzi2xy3ocPiZDN9YxBpAy3RWLLBgVs2dbizhyoSTNB43AqEuSj6G1gE55LsHH7Tc4Mg5hNb48XNwozPWVNkm- Reveal txs:
56zf5NGAfnyY6fF4mXJ9HjKV4p3BkRdBH6JvNFfhwPZGhmARggb6dqMnqHqNFqDKJGPFEBvuKrVU2VMRBeoNFVjK5ZTPdtrXcjS5sWti5hcTNEWvGQAAZtph3ZLZAzvLsCBWVqJR4Rzxb5cCxHdzufYHLmhjZM6RBSM41HnMSe7PgjvYABiHEHSei7VcRfS9LbfUMZudqZEYXs8rrvXLFRWAVVMRz7kvNvFPuYijYepS8y68zBiDW26msjWaqd3UHyuQjbD- Finalize tx:
4cQQhAfpRYWWiCoRySia2Qmi9LBMwKyqMCYJauRYjZooW6v8L3dSZvUrMDCQ1mQnHRQKomn3Lwhg2iNFoK74i8n3 - Execute tx:
5UYACiN5oe437ay17kLkRiJtwyuibcDAbh2Zf2YHBevNXMnrzuqPNzLRjc6PDc3JoiDg23jhiwBHBgpJprjURhqL - Replay result: rejected with
Treasury action already executed.
Successful Confidential MagicBlock + REFHE Path
- Proposal:
52UpWHJodPWQzpR8u2qqpgwo3jRB7mvjgwCnf8oSJuXX - Payout plan:
ELG1u6ZCmZeQsudRfqGfg4jBgfMSsU1vc9r9aZcTB9Ka - MagicBlock corridor:
8YH5f29UX363oMM1mqsXDyyBtyu4Y1b1BBuikV4xkAys - REFHE envelope:
75QH1NdLyWcpcuKSDD1n3hLDG4VHPANGf2zDQZsiesFo - Proposal tx:
3t9RDeRJsZiWWQfm1LTj8i5KMCcyZ8v7yUnCGXDMFN3YLnYUQrezsq6hZWPi7F4w79aDLDo6eJHnYF2TChp3S34f - Payout config tx:
AN95vnzyUe4B5Xs4438euseizdRwjbqmjmUuLtcHbJZddQZKMpxF9hFXBm7AVFzjjKbZ46Htk8uiX4MZLcHGffb - MagicBlock config tx:
uK1sYSVMsFDZUEofyjAuL7XdrUsHi9XsANRZnrUD8WoRJHrMPbTSQ1T24DhV75nf2eFTq14F6frpm4JgzNzxSx4 - REFHE config tx:
52GEG7cK8XUgmE2fKWsimvdxkxQ9MWh39kSBFZH4rpyBaywecqzw6dTaPsweaz7E7hcyhqw7pNLJEAGKdhUtLh2k - Commit tx:
5BgXt79swqxZ74F8X1eBFpqEZq2SadNeqU8rTTGGoXPZ6LRADpwTnn2WmiE8Laqs3oqSkCQuwLkZ8ZCBEXeMKqEY - MagicBlock deposit tx:
3FV1LENXhfzktPUQh6rK1mRhEk4aJf2snFhfMSK3nLM4au2y4n1smbEGCEWr5x8kJ7t86ZcAivB5HhsMqMWpkRJC - MagicBlock private transfer tx:
662meytSDxGaCpkkkvMwqo6ZLFNvbC8jswHUw4sCaJmaYpov1995Xoik97CoWUHu6vvYigNdvfWSGBMfktzwbRr4 - MagicBlock withdraw tx:
23VxsHqP9aDWTLCdPmRep5UxRXzj9mpvR9B5HGDC8Nt9tKNrVxiwCHCpzm7BLHg8TrChdpmx4awtHyUEW1QPdEBC - REFHE settle tx:
2LX58NEfCtA6TNYpQQ1hpBe7MqmDtU8o2KesujmBvmp34F9JN3tZwP8niiFvc1u1aqTHAvCcq8P3JQPqh4pW3VHt - MagicBlock settle tx:
56zD3JYxYssgAkSsmxoh2zGzs11SakCXmUviMF53rdHy1HHcNQGqq72Jo9cbww2m67k7XsD5gqTB42HXMC8YEHHM - Reveal tx:
qMHR64PLpa9be6yhGWgPL4aHyK2VWG8NEAsJPZ3CgJuHCiSzZJgqMKr4N5wxEeHfJ83fhdsYdz4Hirbh4purzky - Finalize tx:
4jkBREvqGei17W5L6oG3ECAPtV662TiA9ga9VC3Fwbr7W32qFU6qYPi9LbXdmMusoxz5zqmysPWp3YiUxxDwwPLS - Execute tx:
LoNED2YKkYWxaQbFV4y8fCzqGi5YrpPSruJYppqfvcTyAJ2zU5HM92QEsPNydQb26abE7qp2kB7hCNPJFbVUUPA - Replay result: rejected with
Treasury action already executed.
Operational Findings
20svoting windows are too short for advanced proposal setup because proposal creation, confidential payout configuration, MagicBlock configuration, and REFHE configuration are separate Devnet transactions.240swas used for the successful encrypted-manifest-bound run.180sreveal windows were sufficient for the successful CLI flow. The frontend default was updated accordingly for normal users.- Browser wallet diagnostics remain pending for Phantom/Solflare/Backpack/Glow/mobile captures. This sweep proves the CLI/on-chain path; it does not claim browser-specific wallet capture coverage.