- Introduce a program which manages on-chain address lookup tables
- Add a new transaction format which can make use of the above on-chain address lookup tables

Address LUTs
The idea behind Address LUTs is to store account addresses in array-like data structures on-chain. Once accounts are stored in this table, the address of the table can be referenced in a transaction message using 1-byte u8 indices.
RPC changes
Transaction responses will require a new version field:maxSupportedTransactionVersion
to indicate to clients which transaction structure needs to be followed for deserialisation.
The following methods need to be updated to avoid errors:
getTransaction
getBlock
maxSupportedTransactionVersion: 0
If maxSupportedTransactionVersion
is not explicitly added to the request, the transaction version will fallback to legacy
. Any block that contains a versioned transaction will return with an error by the client in the case of a legacy transaction.
You can set this via JSON formatted requests to the RPC endpoint like below: