Solana program-derived addresses explained
A Solana program-derived address (PDA) is deterministically derived from seeds and a program ID and lies off the Ed25519 curve. It does not have a corresponding private key.
Worked example
| Account category | How address is obtained | Authority context |
|---|---|---|
| Ordinary keypair account | Public key from a keypair | Private-key signatures |
| Program-derived address | Seeds, program ID and bump | Program can sign via runtime rules |
| Associated token account | Deterministic derivation | Token account for owner and mint |
Why identical-looking text misleads
PDAs use the same account-address display encoding as ordinary accounts. A text-only shape test cannot tell them apart or decide which program may operate on them. Read the account’s owner and data on the correct cluster.
Receiving is application-specific
A derived token account may be the expected destination in a particular workflow. That does not make every PDA a general receiving wallet. Use a wallet or service’s documented receive flow rather than constructing an address manually from a tutorial.
Common pitfalls
- Do not search for a private key corresponding to a PDA.
- Off-curve status alone does not identify an account’s purpose.
Related references
Primary sources
Examples explain identifiers. They are not investment recommendations.