3

I am trying to understand Solana Confidential Transfers, so I ran this script from the official Solana repository for a simple demonstration

https://github.com/solana-labs/solana-program-library/blob/master/token/cli/examples/confidential-transfer.sh

However, I received an error when running this line in the script above, when trying to configure the confidential transfer account

spl-token create-account "$mint_pubkey" confidential-source.json

The error is shown below

+ spl-token configure-confidential-transfer-account --address DCCjUaxxhBHn8ZSddFRxfYLr7mbXE5dP2DzV3mn3is4C

Error: Client(Error { request: Some(SendTransaction), kind: RpcError(RpcResponseError { code: -32002, message: "Transaction simulation failed: Attempt to load a program that does not exist", data: SendTransactionPreflightFailure(RpcSimulateTransactionResult { err: Some(ProgramAccountNotFound), logs: Some([]), accounts: None, units_consumed: Some(0), return_data: None }) }) })

enter image description here

I ensured that the command below was run beforehand

spl-token create-account "$mint_pubkey" confidential-source.json

Am new to Solana, came from EVM background so I may be missing some gaps in my understanding

1 Answer 1

3

I think the token proof program for confidential transfers is not yet deployed to mainnet. It will come with Solana version 1.18.x.

https://github.com/anza-xyz/agave/wiki/v1.18-Release-Schedule

They may be already on devnet. Not sure. But you can for sure run them locally already:

  1. Clone the token extensions repo: https://github.com/solana-labs/solana-program-library/tree/master/token/program-2022
  2. run cargo build-sbf to build the program
  3. start the test validator solana-test-validator --bpf-program TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb path/to/your/solana-program-library/target/deploy/spl_token_2022.so
  4. cargo install --version 3.4.0 spl-token-cli ; this install the binary to ~/.cargo/bin/spl-token for me
  5. run spl-token --version ; if this still gives 3.3.0, then the path to spl-token command is set to spl-token binary that comes with the solana-install package. You can verify this by running which spl-token.
  6. If step 2 gives 3.4.0, then you should be able to run the confidential transfers no problem. If it gives 3.3.0, then you can update the path (temporarily if you like) so that ~/.cargo/bin/spl-token takes precedence over the solana release active package (for me it is ~/.local/share/solana/install/active_release/bin/spl-token).
2
  • 1
    Thank you for this, I was playing around with devnet instead of mainnet with this command solana config set --url https://api.devnet.solana.com From the link that you shared, it looks like Solana version 1.18 been released to testnet.
    – 0xSOL
    Commented May 1 at 14:06
  • I updated to answer to include instructions to run locally in case you need that. Not sure if its already on devnet
    – Jonas H.
    Commented May 1 at 18:51

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.