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.