Skip to main content

Function Signature

Description

Prepares and executes a claim of every reward the wallet has accrued in an Earn vault: it builds the payload with prepareClaimRewards and executes its ordered Solana transaction sequence with executeEarnTransaction. Rewards are supported only for vaults from some providers; for any other provider the API rejects the request with an HTTP 400 error. See Provider support.

Parameters

Required Parameters

  • vaultId (string): The vault identifier from listVaults.
  • walletMetadata (WalletMetadata): Non-sensitive wallet metadata persisted from createWalletAccount() / importPrivateKey(). Its chainName must be 'SVM'.

Optional Parameters

  • password (string): Required if the wallet was created with backUpToDynamic: true. Used for backup decryption when externalServerKeyShares is not provided.
  • externalServerKeyShares (ServerKeyShare[]): Caller-supplied plaintext shares.
  • sponsored (boolean): When true, sponsors every transaction in the sequence. See SVM Gas Sponsorship.
  • rpcUrl (string): Solana RPC endpoint. Defaults to the public cluster for the payload’s chainId (101 mainnet, 103 devnet).
  • chainId (string): The Solana chain identifier.
  • context (SignMessageContext): Signing context forwarded to the transaction signer.
  • onStepChange ((step: EarnExecutionStep) => void): Reports transaction once per transaction in the sequence.
  • onTransactionStepChange ((step: EarnTransactionStepProgress) => void): Invoked as each transaction is about to be signed, with its ordinal, the total, and an optional label.
  • traceContext (TraceContext): Trace context forwarded to the Dynamic API.

Returns

  • Promise<EarnTransactionResult>: An object with transactionHash, the signature of the last transaction in the sequence.

Example

Error Handling

Fails with an HTTP 403 error when Earn is not enabled for your environment, an HTTP 400 error when the vault’s provider does not support rewards, or an HTTP 422 error when the wallet has nothing to claim. Throws when walletMetadata.chainName is not 'SVM', when the payload carries no transactions sequence, or when a sequence step expires or fails; see executeEarnTransaction for EarnSolanaStepError.

See Also

Last modified on October 29, 2026