Introduction
Program permissions control which Solana applications a role may invoke.- Use when: a role needs to transfer, swap, or interact with a particular Solana application.
- For: integrations that delegate wallet execution to an application signer or session key.
How it works
- Identify the programs invoked by the intended transaction.
- Grant the matching program permission on the role.
- Add the spending limits needed for the assets involved.
- Authorize the operation with that role through Signing.
Permissions
- Prefer
Programfor a known integration and add each required program explicitly. ProgramScopeis not a standalone program allowlist. Classic’sprogramScopeBasic()does not provide a usable scoped flow; useprogramLimit()for an explicit program allowlist.ProgramCurateddepends on the deployed program’s list; use explicit IDs when the application needs a fixed allowlist.ProgramAllis highly privileged. Use it only when arbitrary program invocation is intended.
SDK example
Allow System Program transfers.actions to Add a role. This grants System Program
access and a total 0.1 SOL budget. For a routed swap, identify every required
program and asset allowance before collecting the user’s authorization.
