withdraw()

Create withdrawal request transaction.

This method calls /solana/{network}/staking/withdraw to create a new unsigned transaction which, if signed and broadcasted, will create a new withdrawal request.

Parameters

await client.solana.withdraw({
  network: 'mainnet-beta',
  feePayer: '9i5cTqci1W6DHdYfT7WbiNhP5DXvnPNTXvS9fTBFfuSw',
  stakeAccount: '9i5cTqci1W6DHdYfT7WbiNhP5DXvnPNTXvS9fTBFfuSw',
  withdrawAuthority: '9i5cTqci1W6DHdYfT7WbiNhP5DXvnPNTXvS9fTBFfuSw',
  recipient: '9i5cTqci1W6DHdYfT7WbiNhP5DXvnPNTXvS9fTBFfuSw',
  amount: 1002282880,
});

network string, required
Solana network:
mainnet-beta — production network.
testnet — testnet.

feePayer string, required
Account address that will pay the fee for the transaction.

stakeAccount string, required
Account address that stores tokens for staking.

withdrawAuthority string, required
Account address that can perform staking operations with the staking account.

recipient string, required
Account address to which tokens will be sent.

amount number ≥ 1, required
Amount of tokens to withdraw in lamports (1 SOl = 10⁹ lamports).

nonceAccount string
Account address that keeps the value of the nonce.

computeUnitLimit number ≥ 1
Maximum computational effort limit for the transaction measured in compute units.

computeUnitPrice number ≥ 1
Price of compute unit for transaction.

Result

The method returns a JSON object that contains a base64-encoded unsigned transaction and some metadata about it.

You can decode the transaction using decodeTransaction() or pass it directly to signWithKeypairs().

{
  "feePayer": "9i5cTqci1W6DHdYfT7WbiNhP5DXvnPNTXvS9fTBFfuSw",
  "stakeAccount": "9i5cTqci1W6DHdYfT7WbiNhP5DXvnPNTXvS9fTBFfuSw",
  "withdrawAuthority": "9i5cTqci1W6DHdYfT7WbiNhP5DXvnPNTXvS9fTBFfuSw",
  "recipient": "9i5cTqci1W6DHdYfT7WbiNhP5DXvnPNTXvS9fTBFfuSw",
  "amount": 1,
  "unsignedTransaction": "AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAcJjkQt4XcX43Vk8FZ7QbUVXSF5oo9jt7x2Dm0E9ut/y+jagnMHpK8BDHt0PpssHwXGD2fBxS6MWBoxptD2u9TvrgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA1NjSeWM5+GSJdoQd43Al9SVVXC9FfWGwbe7icpomwAUGodgXkTdUKpg0N73+KnqyVX9TXIp4citopJ3AAAAAAAah2BelAgULaAeR5s5tuI4eW3FQ9h/GeQpOtNEAAAAABqfVFxjHdMkoVmOYaR1etoteuKObS21cc1VbIQAAAAAGp9UXGSxcUSGMyUw9SvF/WNruCJuh/UTj29mKAAAAAAan1RcZNYTQ/u2bs0MdEyBr5UQoG1e4VmzFN1/0AAAAijW940iwWddz25ZC37fI0ue5fa+eTbC2ynBM3b0t4pcDAgMAAQBgAwAAAI5ELeF3F+N1ZPBWe0G1FV0heaKPY7e8dg5tBPbrf8voBAAAAAAAAABzZWVkgJaYAAAAAADIAAAAAAAAAAah2BeRN1QqmDQ3vf4qerJVf1NcinhyK2ikncAAAAAABAIBB3QAAAAAjkQt4XcX43Vk8FZ7QbUVXSF5oo9jt7x2Dm0E9ut/y+iORC3hdxfjdWTwVntBtRVdIXmij2O3vHYObQT263/L6AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQGAQMGCAUABAIAAAA=",
  "createdAt": "2023-08-24T08:14:50.455Z"
}

feePayer string, required
Account address that will pay the fee for the transaction.

stakeAccount string
Account address that stores tokens for staking.

withdrawAuthority string
Account address that can perform withdrawal operations with the staking account.

recipient string
Account address to which tokens will be sent.

amount number, required
Amount of tokens to withdraw in lamports (1 SOl = 10⁹ lamports).

unsignedTransaction string, required
Unsigned transaction in Base64 encrypted format. Sign the transaction and submit it to the blockchain to perform the called action.

createdAt string, required
Timestamp of the transaction in the ISO 8601 format.

What's next?