Network models3 min read

Solana Inner Instructions and Program Calls

Use inner-instruction evidence to understand composed Solana execution, while preserving top-level instruction context and decoder coverage.

Editorial illustration accompanying solana inner instructions and program calls.

Overview

When translating these concepts into an integration, keep the scope described by the wallet history api with the result. The examples in wallet transaction history and smart contract event logs show how the same distinction affects neighbouring data questions.

A top-level Solana instruction can invoke another program. Those inner calls can explain token movements or other effects that are not obvious from the outer instruction label.

Keep the execution hierarchy

Record which outer instruction produced each inner-instruction group. Preserve program identity, account references and raw instruction bytes. A parsed label is useful only within the parser’s supported programs and versions. Missing parsed details should not be silently treated as an operation with no effects.

Worked example: a composed swap

A router instruction invokes programs that transfer two token assets. A view that reads only the outer instruction may show a generic program call. Inner instructions and balance metadata help explain the execution, while the final swap label remains a derived interpretation that should link back to the underlying instruction evidence.

Test parser boundaries

Include unsupported programs, failed execution and versioned transactions. Keep fees and account-lifecycle effects separate from token transfers. A decoder should expose partial interpretation when only some instructions are understood. Preserve undecoded bytes and account mappings so adding a parser later does not require pretending the original record was complete.

A practical acceptance test

Use a known outer program with an unsupported inner program, then reverse that arrangement. The parser should report which portions are understood in both cases. Verify that a generic outer label does not suppress supported inner transfer evidence, and that an unsupported inner instruction is retained rather than translated into an invented no-effect result.

Questions about the topic

Frequently asked questions

Is a parsed outer instruction always enough?

No. Program composition can place important effects in inner calls.

Does an unsupported parser mean no activity occurred?

No. It means interpretation is incomplete.

Standards & technical documentation

Further reading

{{TODO: author name}}

Practical explanations of blockchain data, software integration and the context behind a record.

About Indexbase
← Back to all articles

Build with better context.

Get an update when private beta opens.

Form setup in progress. Nothing entered here is sent or saved. {{TODO: endpoint}} See the full form and email alternative.