> For the complete documentation index, see [llms.txt](https://docs.everstake.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.everstake.com/integrations/everstake-products/wallet-sdk/all-wallet-sdk-methods.md).

# All Wallet SDK methods

### Aptos <a href="#aptos" id="aptos"></a>

* <mark style="color:yellow;">`stake(token, address, amount)`</mark>: Stakes user tokens. For the initial stake, you need to stake a minimum of 10 APT. However, if you already have an active stake more than or equal to 10 APT, the minimum amount you can add is 0.1 Aptos.
* <mark style="color:yellow;">`reactivate(token, address, amount)`</mark>: Reactivates user Stake. The user can only reactivate that number of APT, which was unlocked previously. If a user possesses 15 unlocked APT, they are only able to reactivate the entire amount. This is due to the fact that the condition specifying the remaining unlocked amount must be equal to or greater than 10 APT is not met when unlocking just 10 APT.
* <mark style="color:yellow;">`unlock(token, address, amount)`</mark>: Unlocks user tokens. The user can only unlock more than 10 APT and must have more than or equal to 10 APT in the active stake.If a user possesses 15 APT, they are only able to unlock the entire amount. This is due to the fact that the condition specifying the remaining active stake must be equal to or greater than 10 APT is not met when unlocking just 10 APT.
* <mark style="color:yellow;">`unstake(token, address, amount)`</mark>: Unstakes user tokens. The user can only unstake that number of APT, which was unlocked previously. If a user possesses 15 unlocked APT, they are only able to unstake the entire amount. This is due to the fact that the condition specifying the remaining unlocked amount must be equal to or greater than 10 APT is not met when ustaking just 10 APT.
* <mark style="color:yellow;">`sendTransfer(address, recipientAddress, amount)`</mark>: Transfers user tokens. Using this method user can transfer APT from one wallet address to another.
* <mark style="color:yellow;">`getBalanceByAddress(address)`</mark>: Gets user balance.
* <mark style="color:yellow;">`getStakeBalanceByAddress(address)`</mark>: Gets user stake balance.
* <mark style="color:yellow;">`getMinAmountForStake(address)`</mark>: Gets user min amount for stake.
* <mark style="color:yellow;">`getLockupSecs()`</mark>: Get validator lockup timeout in seconds

### Ethereum JS library methods <a href="#ethereum-js-library-methods" id="ethereum-js-library-methods"></a>

#### Actions <a href="#actions" id="actions"></a>

* <mark style="color:yellow;">`stake(address, amount, source)`</mark>: Stakes funds into pool. The minimum amount required for staking is 0.1 ETH.
* <mark style="color:yellow;">`activateStake()`</mark>: Activates the pending stake by interchanging it with a withdrawal requests.
* <mark style="color:yellow;">`autocompound(address)`</mark>: Claims all autocompound user rewards and restakes them into new pool automatically.
* <mark style="color:yellow;">`unstake(address, amount, allowedInterchangeNum, source)`</mark>: You can unstake value from autocompound balance. Your ETH can be unstaked immediately if value <= pool pending balance. Also, if 'allowedInterchangeNum > 0', an instant ustake is possible. Else, you need to create a withdraw request. Please note that the execution of a withdraw request may take some time.
* <mark style="color:yellow;">`simulateUnstake(address, amount, allowedInterchangeNum, source)`</mark>: Simulates transactions without committing them. It is required, especially for predicting transaction outcomes and gas fees in Ethereum blockchain.
* <mark style="color:yellow;">`unstakePending(address, amount)`</mark>: Unstakes pending amount. Your ETH will be unstaked immediately. Smart contract checks remainder of pending balance after unstake. It should be greater or equal min stake amount (0.1 ETH for now).
* <mark style="color:yellow;">`claimWithdrawRequest(address)`</mark>: Claims funds requested by withdraw

#### Getting Info <a href="#getting-info" id="getting-info"></a>

* <mark style="color:yellow;">`balance()`</mark>: Returns total deposited and activated pools balance. The total amount of ETH that has been staked.
* <mark style="color:yellow;">`pendingBalance()`</mark>: Returns the pending balance of staked ETH in the pool, which is always less than 32 ETH.
* <mark style="color:yellow;">`pendingBalanceOf(address)`</mark>: Returns the pending balance of the user, which represents the amount of ETH staked but not yet active due to the pool not being fully filled. There is one type of pending balance: "Autocompound," which represents rewards earned by the user that are automatically staked but not yet active.
* <mark style="color:yellow;">`pendingDepositedBalance()`</mark>: Returns pool pending deposited balance. Balance was deposited into Beacon deposit contract but validators are still not active.
* <mark style="color:yellow;">`pendingRestakedRewards()`</mark>: Returns pool restaked rewards which in pending status.
* <mark style="color:yellow;">`pendingDepositedBalanceOf(address)`</mark>: Returns user pending deposited balance. Balance which deposited into validator but not active yet. Pending deposited balance can't be unstake till validator activation.
* <mark style="color:yellow;">`pendingRestakedRewardOf(address)`</mark>: Returns user restaked rewards in pending state.
* <mark style="color:yellow;">`RestakedRewardOf(address)`</mark>: Returns total user restaked rewards. Includes rewards in pending state.
* <mark style="color:yellow;">`depositedBalanceOf(address)`</mark>: Returns user active origin deposited balance.
* <mark style="color:yellow;">`getPoolFee()`</mark>: Returns Pool fee in bips (1/10000). To obtain the pool fee percentage, simply multiply it by 100.
* <mark style="color:yellow;">`autocompoundBalanceOf(address)`</mark>: Returns total user autocompound balance. The "Autocompound balance" refers to the user's actively staked ETH balance that continuously increases as rewards are restaked. Part of this balance could be in pending state after rewards autocompound.
* <mark style="color:yellow;">`withdrawRequestQueueParams()`</mark>: Provides a overview of the withdrawal request queue. It retrieves information about the total amount of funds requested for withdrawal over the entire operational period, giving an insight into the overall demand for withdrawals. Additionally, the function details the current amount that is permissible for interchange with deposits, which is crucial for maintaining a balanced liquidity between incoming and outgoing funds.
* <mark style="color:yellow;">`withdrawRequest(address)`</mark>: Returns user withdraw request info. Actual requested amount and amount ready for claim
* <mark style="color:yellow;">`minStakeAmount()`</mark>: Returns the minimum amount required for a single user stake.

#### Getting Validator Info <a href="#getting-validator-info" id="getting-validator-info"></a>

* <mark style="color:yellow;">`closeValidatorsStat()`</mark>: Returns the number of validators expected to stop.
* <mark style="color:yellow;">`getPendingValidatorCount()`</mark>: Returns number of validators prepared for deposit.
* <mark style="color:yellow;">`getPendingValidator(index)`</mark>: By using an index, retrieve the pending validator public key. Please note that the list of pending validators is dynamic, and the ordering may be unstable.
* <mark style="color:yellow;">`getValidatorCount()`</mark>: Returns the total number of known validators. Validators can be in one of the following statuses: pending, deposited, or exited. Exited validators will be replaced by new pending validators to optimize memory usage.
* <mark style="color:yellow;">`getValidator(index)`</mark>: Returns validator pubkey and status.

### Polygon <a href="#polygon" id="polygon"></a>

* <mark style="color:yellow;">`delegate(address, amount, isPOL = false)`</mark>: Delegate user tokens.
* <mark style="color:yellow;">`restake(address, isPOL = false))`</mark>: Restake user tokens (Claim reward and auto delegate them).
* <mark style="color:yellow;">`undelegate(address, amount, isPOL = false))`</mark>: Undelegate user's tokens.
* <mark style="color:yellow;">`reward(address, isPOL = false))`</mark>: Reward user tokens (Claim reward).
* <mark style="color:yellow;">`claimUndelegate(address, isPOL = false))`</mark>: Claim undelegate user's tokens.
* <mark style="color:yellow;">`isTransactionLoading(hash)`</mark>: Waits for a transaction to be processed and returns the status of the transaction.
* <mark style="color:yellow;">`getReward(address)`</mark>: Gets the user's reward balance in tokens.
* <mark style="color:yellow;">`getTotalDelegate(address)`</mark>: Gets the user's delegate balance in tokens.
* <mark style="color:yellow;">`getUnbond(address)`</mark>: Gets the user's unbond balance in tokens.
* <mark style="color:yellow;">`getBalanceOf(address, isPOL = false)`</mark>: Gets the user's balance.
* <mark style="color:yellow;">`getCurrentEpoch()`</mark>: Gets current epoch.
* <mark style="color:yellow;">`getUnbondNonces(address)`</mark>: Gets unbound nonce by address.

### Cosmos <a href="#cosmos" id="cosmos"></a>

* <mark style="color:yellow;">`delegate(token, address, amount)`</mark>: Delegate user tokens.
* <mark style="color:yellow;">`redelegate(token, address, amount, validatorSrcAddress)`</mark>: Redelegate user tokens.
* <mark style="color:yellow;">`undelegate(token, address, amount)`</mark>: Undelegate user tokens.
* <mark style="color:yellow;">`withdrawRewards(address)`</mark>: Reward user tokens (Claim reward).
* <mark style="color:yellow;">`getDelegations(address)`</mark>: Gets all user delegation.

### Solana <a href="#solana" id="solana"></a>

* <mark style="color:yellow;">`createAccount(address, lamports, source)`</mark>: Create Account for Delegate user tokens.
* <mark style="color:yellow;">`delegate(token, address, lamports, stakeAccount)`</mark>: Delegate user tokens.
* <mark style="color:yellow;">`stake(token, address, lamports, source)`</mark>: Stake user tokens.
* <mark style="color:yellow;">`deactivate(address, stakeAccountPublicKey`</mark>`)`: Deactivate user tokens.
* <mark style="color:yellow;">`withdraw(token, address, stakeAccountPublicKey, stakeBalance)`</mark>: Withdraw user tokens.
* <mark style="color:yellow;">`getDelegations(address)`</mark>: Get all user delegations.
* <mark style="color:yellow;">`unstake(address, lamports)`</mark>: Unstake user tokens.
* <mark style="color:yellow;">`claim(address, stakeAccount)`</mark>: Claim rewards for a staking account.

### Berrachain <a href="#berrachain" id="berrachain"></a>

* <mark style="color:yellow;">`stake(address, amount)`</mark>: Stake (boost) user tokens.
* <mark style="color:yellow;">`activateStake(address, amount)`</mark>: Activate stake (boost).
* <mark style="color:yellow;">`cancelStake(address, amount)`</mark>: Cancel stake from queue (boost).
* <mark style="color:yellow;">`queueUnstake(address, amount)`</mark>: Add unstake to queue (drop) specific amount of boost.
* <mark style="color:yellow;">`cancelUnstake(address, amount)`</mark>: Cancel specific amount of stake (boost).
* <mark style="color:yellow;">`unstake(address, amount)`</mark>: Confirm unstake (drop) of specific amount of boost.
* <mark style="color:yellow;">`balanceOf(address)`</mark>: Gets user's token balance by address.
* <mark style="color:yellow;">`boosted(address)`</mark>: Gets user's boosted balance by address.
* <mark style="color:yellow;">`boosts(address)`</mark>: Gets all user's boost balances by address.
* <mark style="color:yellow;">`boostedQueue(address)`</mark>: Gets user's boost queue balance by address.

### Sui <a href="#sui" id="sui"></a>

* <mark style="color:yellow;">`getStakeBalanceByAddress(address)`</mark>: Retrieves the stakes for a given address.
* <mark style="color:yellow;">`stake(amount)`</mark>: Creates a transaction to stake SUI tokens with a validator.
* <mark style="color:yellow;">`unstake(stakedSuiId)`</mark>: Creates a transaction to unstake previously staked SUI tokens.
* <mark style="color:yellow;">`sendTransfer(recipientAddress, amount)`</mark>: Creates a transaction to transfer SUI tokens to a recipient.
* <mark style="color:yellow;">`getBalanceByAddress(address)`</mark>: Retrieves the Sui balance for a given address.

### Cardano <a href="#cardano" id="cardano"></a>

* <mark style="color:yellow;">`stake()`</mark>: Creates a transaction to register stake account, delegate and vote.
* <mark style="color:yellow;">`delegateTx()`</mark>: Creates a transaction to delegate to staking pool.
* <mark style="color:yellow;">`registerTx()`</mark>: Creates a transaction to register stake account.
* <mark style="color:yellow;">`deregisterTx()`</mark>: Creates a transaction to deregister stake account also withdraw stake and rewards.
* <mark style="color:yellow;">`withdrawRewardsTx()`</mark>: Creates a transaction to withdraw rewards.
* <mark style="color:yellow;">`getStakeInfo()`</mark>: Get information about current stake.
* <mark style="color:yellow;">`getRewardHistory()`</mark>: Get list of rewards grouped by epochs.
* <mark style="color:yellow;">`getDelegations()`</mark>: Get list of delegations.
* <mark style="color:yellow;">`getStakeActivation()`</mark>: Get information about last delegation status.
* <mark style="color:yellow;">`getPoolIDs()`</mark>: Get list of internal pools.
* <mark style="color:yellow;">`isInternalPoolDelegation()`</mark>: Shows delegation is to internal pool.

### HYSP Vault <a href="#hysp-vault" id="hysp-vault"></a>

#### Actions <a href="#actions-1" id="actions-1"></a>

* <mark style="color:yellow;">`depositInstant(sender, tokenIn, amount, minReceiveAmount, referrerId)`</mark>: Prepares an instant deposit transaction with auto mint if account fits daily limit and token allowance.
* <mark style="color:yellow;">`redeemInstant(sender, tokenOut, amount, minReceiveAmount)`</mark>: Prepares an instant redeem transaction from mToken to tokenOut if daily limit and allowance not exceeded.
* <mark style="color:yellow;">`redeemRequest(sender, tokenOut, amount)`</mark>: Prepares a redeem request transaction if tokenOut is not fiat.
* <mark style="color:yellow;">`approveToIssuanceVault(sender, tokenAddress, amount)`</mark>: Prepares an approval transaction for the issuance vault to spend a specified amount of a given token.
* <mark style="color:yellow;">`approveToRedemptionVault(sender, amount)`</mark>: Prepares an approval transaction for the redemption vault to spend a specified amount of the collateral token.

#### Getting Info <a href="#getting-info-1" id="getting-info-1"></a>

* <mark style="color:yellow;">`getInstantRedeemLiquidityAmount(outTokenAddress?)`</mark>: Retrieves the liquidity available for instant redemption in the redemption vault.
* <mark style="color:yellow;">`minRedeemAmount(outTokenAddress?)`</mark>: Retrieves the minimum redeem amount from the redemption vault contract.
* <mark style="color:yellow;">`getInstantDepositFee()`</mark>: Retrieves the instant deposit fee from the issuance vault contract.
* <mark style="color:yellow;">`getInstantRedeemFee()`</mark>: Retrieves the instant redeem fee from the redemption vault contract.
* <mark style="color:yellow;">`getPrice()`</mark>: Retrieves the price from the oracle contract.
* <mark style="color:yellow;">`balanceOf(address, erc20contractAddress?)`</mark>: Retrieves the balance of ERC20 token or collateral token.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.everstake.com/integrations/everstake-products/wallet-sdk/all-wallet-sdk-methods.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
