Developer Council 2025 08 22 - algorandfoundation/technical-adoption-committee GitHub Wiki
Box storage discussion
Patrick Bennett (NFD):
- Limit box size to ~1900 bytes per call; chunks data with suffixes (e.g., _00001, _00002) to support ~190KB total.
- On-chain contract can recombine suffixes for off-chain reads; only ~1KB can be returned via logs on-chain.
Concerns that flattening JSON keys doesn’t fit the key size (64B) limit:
- Hashing keys can help handle long key names.
- Ethereum’s approach (hashing variables/arrays to storage slots) was discussed as an analogy.
John Jannotti:
- Proposed a fully generic scheme; treat boxes as a (64B) address space with pointers (like C heap).
Use cases and ARC considerations about box storage
Group agreed to treat ARC-87 more as an idea/motivation paper than a finalized standard for now:
- Specific use cases should be defined before moving forward
Practical difficulties working with box storage using only the devportal
- It isn't easy to find how to fill 32K boxes using Algorand Python
- Needed to use resize and splice, current abstractions make byte ops confusing
Upcoming features
- Ability to reference boxes during contract creation in groups.
Concerns about resource population & testnet/mainnet differences
Kyle Breeding: had escrow registry issues—worked on localnet, but breaks on testnet because app IDs differ.
- Discussion about detecting new creatables and possibly exposing transaction counters to avoid this pitfall.
URI-based ASA swap proposal
We still need to figure out whether to standardize swaps via URI.
- Technical limitations (transaction size, 16 txn cap, 45-minute window). Kyle described his HyperSwap contract using Merkle trees to support larger swaps beyond URI constraints.
- Standardizing Merkle trees could avoid duplicated efforts.
Next steps
- Merge ARC-87 as a draft, but don’t move further in the ARC process yet.
- Possible follow-up ARC for URI swaps if use case raises, or leave as Lute-only feature.
- Loop back with the team for clearer docs and dev tooling for box storage.