Out of curiosity, I was wondering if there was a way to tell just by looking at the address, if one can tell if the address is a data account or a pda instead.

I'm personally having a hard time differentiating between the two when I view my transaction through solscan or solana explorer.

My only way of telling is by looking at the fields of each corresponding addresses.

As an example, in the context of NFTs, I can tell that an address is a pda (associated token account) since the owner of that account is a wallet address that belongs to me whereas, a token mint account would have # of supplies, mint authority etc..

Programs are definitely easier to tell since they all contain a generic enum in their addresses.

1 Answer 1


Yes, you can use the Pubkey::is_on_curve method from rust or PublicKey.isOnCurve method from javascript (@solana/web3.js). Being on the curve means there exists a keypair for that public key and a PDA is defined as being off the curve.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.