Signed identity and execution state stay separate

Signed identity and execution state stay separate A data-flow diagram generated by Archify. 01 / Signed input 02 / Decode 03 / Preserve + resolve 04 / Execute 05 / Outputs Wallet envelope · signatures + exact message · 01 / Signed input Wallet envelope signatures + exact message Native Borsh · separately signed encoding · 01 / Signed input Native Borsh separately signed encoding Strict decoder · sanitize either input · 02 / Decode Strict decoder sanitize either input Signed identity · retained original message · 03 / Preserve + resolve Signed identity retained original message ALT lookup · authoritative v0 account keys · 03 / Preserve + resolve ALT lookup authoritative v0 account keys Execution view · signed context + loaded keys · 04 / Execute Execution view signed context + loaded keys Journal · transaction-local writes · 05 / Outputs Journal transaction-local writes Execution result · receipt + account diff · 05 / Outputs Execution result receipt + account diff public wire fallback exact bytes v0 lookup context loaded keys stage writes result

Loaded keys never alter the signature or transaction hash

  • • The wallet signs canonical legacy/v0 message bytes. Address tables append writable keys, then readonly keys, only to the execution view. There is no path back into signed identity.

Input, execution and output are different boundaries

  • • Native Borsh is a separate accepted encoding, not a rewrite of a signed Solana message. Receipts and account diffs are execution products, not SimplexBlock fields.