AccountActions: {
    requestFaucet: (
        options: Omit<RequestFaucetOptions, "address">,
    ) => Promise<SignatureResult>;
    signMessage: (
        options: Omit<SignMessageOptions, "address">,
    ) => Promise<SignatureResult>;
    signTransaction: (
        options: Omit<SignTransactionOptions, "address">,
    ) => Promise<SignatureResult>;
    transfer: (
        options: Omit<TransferOptions, "from">,
    ) => Promise<SignatureResult>;
}

Type declaration

  • requestFaucet: (options: Omit<RequestFaucetOptions, "address">) => Promise<SignatureResult>

    Requests funds from a Solana faucet.

    // Create a Solana account
    const account = await cdp.solana.createAccount();

    // Request funds from the Solana faucet
    const result = await account.requestFaucet({
    token: "sol",
    });
  • signMessage: (options: Omit<SignMessageOptions, "address">) => Promise<SignatureResult>

    Signs a message.

    // Create a Solana account
    const account = await cdp.solana.createAccount();

    // Sign a message
    const { signature } = await account.signMessage({
    message: "Hello, world!",
    });
  • signTransaction: (options: Omit<SignTransactionOptions, "address">) => Promise<SignatureResult>

    Signs a transaction.

    // Create a Solana account
    const account = await cdp.solana.createAccount();

    // Add your transaction instructions here
    const transaction = new Transaction()

    // Make sure to set requireAllSignatures to false, since signing will be done through the API
    const serializedTransaction = transaction.serialize({
    requireAllSignatures: false,
    });

    // Base64 encode the serialized transaction
    const transaction = Buffer.from(serializedTransaction).toString("base64");

    // When you want to sign a transaction, you can do so by address and base64 encoded transaction
    const { signature } = await account.signTransaction({
    transaction,
    });
  • transfer: (options: Omit<TransferOptions, "from">) => Promise<SignatureResult>

    Transfers SOL or SPL tokens between accounts

    import { LAMPORTS_PER_SOL } from "@solana/web3.js";

    const account = await cdp.solana.getAccount({ name: "Account" });

    const { signature } = await account.transfer({
    token: "sol",
    amount: 5 * LAMPORTS_PER_SOL,
    to: "3KzDtddx4i53FBkvCzuDmRbaMozTZoJBb1TToWhz3JfE",
    network: "devnet",
    });