confidential transfer instructions like transfer, withdraw, deposit require you to provide zk-proofs from the client side, is there a workaround where i can transfer tokens confidentially from a PDA as the token account authority?

1 Answer 1


It's a bit tricky -- this is only possible if you have access to the secret key for the ElGamal key on the account owned by the PDA. By default, the ElGamal key is derived from the owner, so you'll have to configure the account in a different way.

Note that we're considering other options for this situation, and perhaps allowing a fake proof to be generated, similar to how PDAs don't use real signatures.

  • Could you go into more detail? If a program owns a PDA why won’t it have the ElGamal key if it’s derived from the owner?
    – techiejd
    Commented Mar 29 at 3:57
  • Essentially, the ElGamal key is derived from a signature, which requires a private key. PDAs don't have private keys and can't generate signatures
    – Jon C
    Commented Mar 29 at 11:44

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.