Execute transactions on EVM vaults including deposits, withdrawals, and approvals. All write operations are available via `sdk.evm.*` methods.
Overview
EVM write operations require a connected wallet with a signer. The SDK supports all vault versions (evm-0, evm-1, evm-2) and automatically selects the correct contract ABI and function signatures.
Setup
import { ethers } from'ethers';import { AugustSDK } from'@augustdigital/sdk';// Initialize SDKconstsdk=newAugustSDK({ providers: {1:'https://eth-mainnet.g.alchemy.com/v2/YOUR_KEY', },});// Connect wallet and set signerconstprovider=newethers.BrowserProvider(window.ethereum);constsigner=awaitprovider.getSigner();sdk.evm.setSigner(signer);constuserAddress=awaitsigner.getAddress();
Vault Deposit
Deposit tokens into a vault. The SDK automatically handles different vault versions (evm-0, evm-1, evm-2) and adapter deposits.
Vault Version Detection
The SDK automatically detects the vault version and uses the correct deposit method:
Version
Deposit Function
Parameters
Use Case
evm-0
deposit(uint256, address)
2 params
Legacy vaults
evm-1
deposit(uint256, address)
2 params
Standard vaults
evm-2
deposit(address, uint256, address)
3 params
Multi-asset vaults
Adapter
Various
Depends on adapter type
Alternative token deposits
You don't need to specify the version - the SDK detects it automatically from the vault's version field.
Accepts multiple whitelisted tokens (listed in vault.depositAssets)
3 parameters: asset address, amount, and receiver
Automatic approval of selected token to vault
Example:
Note: For EVM-2 vaults, you can optionally specify depositAsset. If omitted, SDK uses the first asset in depositAssets array (usually the primary/underlying token).
Adapter Vaults (Alternative Tokens)
Contract Functions: Various depending on adapter type
Behavior:
Enables deposits with tokens beyond the vault's standard accepted tokens
Uses wrapper contracts or swap protocols
Requires depositAsset, chainId, and sometimes poolName parameters
Adapter Types:
Native Token Adapter (e.g., ETH โ wstETH)
Wraps native tokens before depositing
Uses WrapperAdapter contract
Example: Treehouse Growth
Token Wrapper Adapter (e.g., WETH โ wstETH)
Wraps ERC20 tokens before depositing
Uses WrapperAdapter contract
Example: Treehouse Growth
Swap Adapter (e.g., USDC โ WBTC)
Swaps tokens via Paraswap before depositing
Uses PoolAdapter contract
Example: BTC Multi-Token
Example: Native ETH Deposit
Example: WETH Deposit (via adapter)
Example: Swap Adapter Deposit
Automatic Detection Flow
When to Use Each Parameter
Parameter
Required
Use When
target
โ Always
Vault address
wallet
โ Always
User's address
amount
โ Always
Deposit amount
wait
โ Optional
Want to wait for confirmation
depositAsset
โ ๏ธ Sometimes
Using adapter OR EVM-2 with non-primary token
chainId
โ ๏ธ Sometimes
Using adapter
poolName
โ ๏ธ Sometimes
Using adapter (helps with routing)
Quick Reference: Vault Versions
How to check which version a vault uses:
Common Vaults by Version:
Vault Name
Version
Deposit Tokens
Notes
Upshift USDC
evm-1
USDC only
Standard deposit
Upshift USDT
evm-1
USDT only
Standard deposit
Treehouse Growth
evm-1
wstETH, WETH, ETH
Has adapters
Kelp TAC rsETH
evm-1
rsETH, stETH, ETHx, WETH, ETH
Has adapters
Wild USD
evm-2
USDC, USDT, DAI
Multi-asset
BTC Multi-Token
evm-1
WBTC, USDC (via swap)
Has swap adapter
Decision Tree
Adapter Deposits
Deposit with alternative tokens beyond the vault's underlying asset.
Check Available Tokens
Deposit with Alternative Token
Deposit Native ETH
Supported Adapter Vaults
Vault
Supported Tokens
Type
Treehouse Growth
wstETH, WETH, ETH
Native deposits
Kelp TAC rsETH
stETH, ETHx, WETH, ETH
Native deposits
BTC Multi-Token
WBTC, cbBTC, tBTC
Swap adapter (Paraswap)
AVAX Strategy
WAVAX, AVAX
Native deposits
Request Withdrawal
Request to withdraw tokens from a vault. Subject to lag period before claiming.
Do you have a depositAsset parameter?
โ
โโ NO โ Standard deposit with underlying token
โ โโ EVM-0/1: 2-param deposit
โ โโ EVM-2: 3-param deposit with first depositAsset
โ
โโ YES โ Is depositAsset different from underlying?
โ
โโ NO โ Standard deposit (same as above)
โ
โโ YES โ Is vault EVM-2 with depositAsset whitelisted?
โ
โโ YES โ Multi-asset deposit (3-param)
โ
โโ NO โ Adapter deposit
โโ Native token? โ Wrapper adapter
โโ Different ERC20? โ Swap adapter
โโ Wrapped version? โ Wrapper adapter
const vault = await sdk.getVault({ vault, chainId });
if (vault.isDepositPaused) {
throw new Error('Deposits are currently paused');
}
if (vault.isWithdrawalPaused) {
throw new Error('Withdrawals are currently paused');
}