OptionalapplyPending?: booleanSpend what is pending too (default true): when incoming transfers or deposits wait in the
pending balance, the one-transaction transfer applies them first, in the same transaction, so
the recipient of earlier payments never has to call applyPendingBalance. If another credit lands
while the transaction is on its way, Token-2022 refuses it as a whole and the call builds it
again (up to three times). With proof accounts (singleTransaction: false, or a transaction too
large) only the available balance is spent.
OptionalauditorElgamalPubkey?: AddressThe mint's auditor ElGamal key; the amount is also encrypted to it. Read from the mint when not given (since 3.3.0), so it is only needed to override that.
OptionaldestinationElgamalPubkey?: AddressThe recipient's ElGamal key as the application knows it (from its own records of the recipient, not from this RPC). When given, the transfer is refused (RECIPIENT_KEY_MISMATCH) before anything is encrypted or signed if the RPC reports another key for the recipient's account: an RPC that substituted its own key would otherwise receive the amount encrypted to that key.
OptionaldestinationOwner?: AddressOwner of the destination account: the transfer goes to its associated token account, unless
destinationToken is given. Given with destinationToken, it must be that account's owner.
OptionaldestinationToken?: AddressDestination token account; must be configured for confidential transfers. Takes the place of
destinationOwner's associated token account; if both are given, the call is refused
(INVALID_INPUT) unless destinationOwner owns this account.
Optionalkeys?: ConfidentialKeypairsThe owner's keys from deriveConfidentialKeys; skips the message signature.
Source account owner: the transfer authority, and the key source unless keys is given.
Pays the transaction fees, and the rent of proof accounts if any (refunded when they close).
OptionalprogramAddress?: AddressToken program. Default: Token-2022.
RPC client, e.g. createSolanaRpc(url).
Used to confirm the transaction(s).
OptionalsingleTransaction?: booleanSend the transfer as one transaction with its proofs inside (default true). That needs a v1
transaction (up to 4,096 bytes), which Solana accepts since September 2026. Set false for a
wallet or RPC that cannot handle v1 transactions: the proofs then go into proof accounts, as
before 1.0.0. The SDK falls back to proof accounts by itself when the one transaction would be
too large, e.g. with a transfer hook that asks for many accounts.
OptionalsourceToken?: AddressSource token account (defaults to the owner's ATA).
Amount in base units. Up to 2^48 - 1 per transfer.