Build on Solana
Skim through the following sections. You can always come back to them.
D. Program Derived Addresses (PDAs)
A Program Derived Address (PDA) is a special type of account in Solana that is derived from a base public key and a program ID, but does not have a known private key. Despite not having a known private key, a PDA can own data and tokens, and it can sign transactions, but only through the program that it's associated with.
PDAs are useful for a variety of reasons:
- Security: Since PDAs do not have a known private key, only the program that the PDA is derived from can make changes to the PDA, which provides a strong layer of security.
- Authority Delegation: PDAs can be used to delegate authority. For example, a program can use a PDA as an intermediary to hold funds. The program can then allow specific users to initiate transactions that transfer funds from the PDA, effectively delegating authority to those users.