Accounts
The account list is part of the instruction
The message comes first
A Solana transaction carries one account list. Every instruction in that transaction points into the list by index. The program does not search the chain for whatever address feels relevant. It is handed the accounts the sender placed on the message, in the order the instruction declared.
That order is easy to skip because the handler’s variable names sound like roles: vault, owner, mint. The runtime does not know those names. If index 2 and index 3 are swapped, the program will treat a mint as a vault or the reverse, unless the handler checks the owner and the shape of the data.
Signer and writable
Each entry is marked signer or not, and writable or not. The runtime checks the signature before the program body runs. Inside the program, a signer check reads that flag. It does not perform a second cryptographic pass over the message.
Writable is a promise the runtime enforces as well. An account left read-only cannot be changed by the instruction, which is why a concept session treats the flag as part of the design and not as a client detail. If the flag is wrong, the instruction is wrong, even when the public key looks familiar from last week’s packet.
Ownership sits beside the key
Every account has an owner program. A token account is owned by the token program. A program may write data on accounts it owns, and the usual lamport rules follow the same line: you do not debit an account your program does not own.
When a Wednesday session stalls, it is usually here. Someone has named the right public key and the wrong owner. On our packet the owner is a column of its own, written before anyone discusses the handler body.
How the August packet was marked
In the August 2026 open session the escrow instruction had seven accounts. Two were signers. One was a program-derived vault. The rest were records the instruction only read, or accounts the system program still owned. We filled a four-column sheet: index, role, owner, signer.
The copy sent five days ahead has those cells empty. Filling them is the session. Visitors who arrive with the cells already guessed are welcome; we still check each guess against the instruction, not against memory.