Definition
A call from one Solana program to another within the same transaction, for example a DeFi program calling the Token Program to move tokens. Invoking a program ID supplied by the caller without checking it is a classic vulnerability.
Why it matters
Composability on Solana runs through CPIs, and so do many exploits: calling an unchecked program ID, or passing signer privileges further than intended. Auditors spend a large share of their time on CPI paths.
What to check
- Ask how program IDs passed into CPIs are verified.
- Ask how PDA signer seeds are scoped so they cannot be reused elsewhere.
Related terms
- ProgramSolana’s term for a smart contract: executable code deployed to an account.
- PDA (program derived address)An address derived deterministically from seeds and a program ID that has no private key, so only that program can sign for it.
- Compute units (CU)The measure of computation a Solana transaction may use.
- AccountThe unit of storage on Solana.
Get an indicative price range and timeline for auditing your Solana programs, then compare verified auditors.
Estimate your audit cost →