Overview
This consensus upgrade release brings post-quantum (Falcon-1024) account signatures, support for larger "big" transactions with per-byte fee pricing, and AVM v13. It also removes the long-deprecated dryrun REST endpoint and tealdbg tool in favor of simulate.
What's New
- Post-quantum accounts: native Falcon-1024 account signatures, PQ delegated LogicSigs, and new
algokey pqcommands for PQ key management - Big transactions: larger transactions (notes up to 4KB, up to 7 extra program pages, larger LogicSigs) priced via a per-byte fee surcharge, with simulate reporting fee usage
- AVM v13:
poseidon2hash function,app_params_set, new box params and "foreign" box opcodes, variable-length branches, and automatic salting of v13 programs to avoid on-curve LogicSig hashes - New node API:
GET /v2/node/peersendpoint andgoal node peerscommand - Removed:
dryrunandtealdbg(usesimulateinstead)
Protocol Upgrade
This release contains a protocol upgrade.
Indexer and conduit runners will need to update their installations to support the new consensus upgrade. You can find pre-release binaries to support BetaNet here:
Conduit:
https://github.com/algorand/conduit/releases/tag/v1.10.0-rc1
Indexer:
https://github.com/algorand/indexer/releases/tag/v3.10.0-rc2
Changelog
New Features
- AVM: poseidon2 hash function (#6560)
- Fnet: add fnet1..4 consensus versions, genesis, and docker (#6675)
- Logic: add autosalt pragma (#6653)
- Transactions: allow large lsigs with size pricing (#6637)
Enhancements
- API: Add
GET /v2/node/peersendpoint andgoal node peerscommand (#6674) - API: Big transactions simulate fee usage (#6636)
- AVM: improve byte constant immediate reporting (#6692)
- AVM: report actual inner group fee shortfall (#6693)
- AVM: pq delegated lsig (#6663)
- AVM: app_params_set, new box params, and "foreign" box opcodes (#6596)
- AVM: auto-salt TEAL v13 programs to avoid on-curve LogicSig hashes (#6592)
- AVM: Variable length branches (#6600)
- Agreement: bump sortition dependency to v1.1.1 (#6696)
- Build: dependabot-7-28-26 (#6686)
- Build: dependabot-7-8-26 (#6660)
- Build: locate e2e test binaries via
go env, not $GOPATH (#6638) - Catchup: log early exit reason at Info level (#6655)
- Chore: Export PQSig to SDK signature.go (#6683)
- Chore: Remove dryrun and tealdbg (#6651)
- Chore: ensure heartbeat lsig is an invalid ed25519 point (#6628)
- Crypto: use batch verification for OneTimeSignature (votes, heartbeats) (#6635)
- Crypto: use specific error assertions in tests (#6543)
- Docs: Add more data to our langspec.json files (#6617)
- Eval: handle error in gload of a txn that didn't run a program (#6649)
- Eval: Big transactions (#6528)
- Falcon: sign ToBeHashed, not Hashed (#6669)
- Fees: Handle rounding of fees with non-integral usage better (#6650)
- Goal: add empty refs flag (#6633)
- Network: harden DNS bootstrap resolution and surface failures (#6652)
- Network: avoid panic on invalid fallback DNS resolver (#6654)
- Sortition: use SelectF128 (#6672)
- Tools: bump msgp to v1.1.63 (#6647)
- Tools: Default Cloudflare DNS records to 60s TTL (#6630)
- Txn: Make challenge discount explicit in HeartbeatTransaction (#6666)
- Txn: native PQ accounts (#6639)
Bugfixes
- AVM: Fix reversed costs arguments (#6695)
- AVM: fix teal disassembly for deadcode (#6594)
- Assembler: Properly perform stack type tracking for match opcode (#6618)
- Build: rebuild copied libsodium tree from scratch (#6616)
- Build: fix allocbound directive lookup (#6615)
- Goal: don't fail asset info when the reserve holds nothing (#6662)
- Txn: Check for local schema setting in update (#6682)
