UpshiftDocs

AugustSDK

API reference for the AugustSDK class — the main entry point for interacting with Upshift vaults and services across EVM, Solana, Sui, and Stellar.

The main Upshift SDK class.

Main SDK class for interacting with Upshift vaults and services. Provides unified access to EVM, Solana, Sui, and Stellar blockchain adapters.

Extends: AugustBase

Constructors

Constructor

new AugustSDK(baseConfig): AugustSDK

Initialize the Upshift SDK with provider configuration. Automatically sets up EVM adapter and optionally initializes Solana if RPC URL is provided.

Parameters

ParameterType
baseConfigIAugustBase

Returns

AugustSDK

Overrides

AugustBase.constructor

Properties

PropertyModifierTypeDescriptionInherited from
activeNetwork?publicIActiveNetwork-AugustBase.activeNetwork
appNamepublicstringValidated app-name slug from the constructor.AugustBase.appName
authorizedpublicboolean-AugustBase.authorized
evmpublicdefault--
keyspublicIKeys-AugustBase.keys
monitoringpublicIMonitoring-AugustBase.monitoring
providerspublicIProvidersConfig-AugustBase.providers
solanapublicdefault--
stellarpublicStellarAdapter--
suipublicdefault--

Accessors

apiModule

Get Signature

get apiModule(): AugustApi

Get the backend API module instance (AugustApi) — read-only access to backend-computed data with no on-chain equivalent: the unrealized-PnL series and the transparency dashboard (position snapshot, backing series, smoothed APY, allocations, fee config, governance).

Returns

AugustApi

subAccountsModule

Get Signature

get subAccountsModule(): AugustSubAccounts

Get the Sub-Accounts module instance.

Returns

AugustSubAccounts

vaultsModule

Get Signature

get vaultsModule(): AugustVaults

Get the Vaults module instance.

Returns

AugustVaults

Methods

clearWallet()

clearWallet(): void

Clear the active wallet address from the SDK state and monitoring headers.

Returns

void

Overrides

AugustBase.clearWallet

fetchPointsLeaderboard()

fetchPointsLeaderboard(params?): Promise<any>

Fetch the points leaderboard data.

Parameters

ParameterTypeDescription
params?{ page?: number; perPage?: number; sortBy?: "streakDays" | "totalPoints" }Optional parameters for pagination and sorting
params.page?number-
params.perPage?number-
params.sortBy?"streakDays" | "totalPoints"-

Returns

Promise<any>

Leaderboard response data

getLatestUnrealizedPnl()

getLatestUnrealizedPnl(): Promise<IUnrealizedPnlSnapshot[]>

Fetch the latest unrealized-PnL snapshot for every tracked vault. Delegates to AugustApi.getLatestUnrealizedPnl — see it for return shape and thrown errors.

Returns

Promise<IUnrealizedPnlSnapshot[]>

getLayerZeroDeposits()

getLayerZeroDeposits(props): Promise<ILayerZeroDeposit[]>

Query LayerZero USDC deposits from the august-layerzero subgraphs. Returns all deposits or filters by sender wallet address if provided.

Important Notes:

  • Only deposit transactions are tracked (not withdrawals or other operations)
  • Sender and recipient addresses are stored in bytes32 format in the subgraph
  • Timestamps are available from the subgraph

Supported Vaults:

  • upusdc: 0x80E1048eDE66ec4c364b4F22C8768fc657FF6A42
  • coreusdc: 0xE9B725010A9E419412ed67d0fA5f3A5f40159D32
  • earnausd: 0x36eDbF0C834591BFdfCaC0Ef9605528c75c406aA

Parameters

ParameterTypeDescription
props{ receiptToken: "upusdc" | "coreusdc" | "earnausd"; wallet?: 0x${string} }Receipt token type ('upusdc', 'coreusdc', or 'earnausd') and optional wallet address to filter by sender
props.receiptToken"upusdc" | "coreusdc" | "earnausd"-
props.wallet?`0x${string}`-

Returns

Promise<ILayerZeroDeposit[]>

Array of deposit events with the following structure:

  • assetAmt: Amount of assets deposited (as string)
  • shareAmt: Amount of shares received (as string)
  • sender: Sender address in bytes32 format
  • recipient: Recipient address in bytes32 format
  • dstEid: Destination endpoint ID (LayerZero chain identifier)
  • transactionHash_: Transaction hash

Throws

Error if receipt token is invalid or GraphQL request fails

Example

// Get all coreUSDC deposits
const allDeposits = await sdk.getLayerZeroDeposits({
  receiptToken: 'coreusdc'
});

// Get deposits for a specific wallet
const userDeposits = await sdk.getLayerZeroDeposits({
  receiptToken: 'upusdc',
  wallet: '0xb0280B58F541131b29D1B33319CD440a99eA0305'
});

getLayerZeroRedeems()

getLayerZeroRedeems(props?): Promise<ILayerZeroRedeem[]>

Get LayerZero redeems for earnAUSD vault

Parameters

ParameterType
props?{ wallet?: 0x${string} }
props.wallet?`0x${string}`

Returns

Promise<ILayerZeroRedeem[]>

Example

// Get all earnAUSD redeems
const allRedeems = await sdk.getLayerZeroRedeems();

// Get redeems for a specific wallet
const userRedeems = await sdk.getLayerZeroRedeems({
  wallet: '0x2de1DCB8EaAd40fAd327fa3eE3F48774b8e20649'
});

getPrice()

getPrice(symbol): Promise<number>

Get the current USD price of a token by symbol or contract address. Falls back to CoinGecko if primary price source fails.

Parameters

ParameterTypeDescription
symbolstringToken symbol or contract address

Returns

Promise<number>

Current price in USD

getSwapRouterEligibleVaults()

getSwapRouterEligibleVaults(chainId, options?): Promise<0x${string}[]>

Resolve the vaults currently eligible for the any-token SwapRouter deposit surface on a chain — every vault the router has enableVault-ed whose on-chain registration is still live.

Delegates to AugustVaults.getSwapRouterEligibleVaults, which reconstructs the set from the router's VaultEnabled events and verifies each vault's current vaultInfo registration (not enumerable). Returns [] when no router is deployed on chainId or no provider is configured for it. On-chain eligibility only — app-level policy (e.g. OVault exclusions) remains the caller's responsibility.

Parameters

ParameterTypeDescription
chainIdnumberEVM chain ID to resolve eligible vaults for.
options?{ fromBlock?: number }Optional fromBlock to override the deploy-block scan floor.
options.fromBlock?number-

Returns

Promise<0x${string}[]>

Checksummed eligible vault addresses; [] when unavailable.

Throws

AugustSDKError when an eth_getLogs scan chunk fails.

Example

const vaults = await augustSdk.getSwapRouterEligibleVaults(1);

getSwapRouterWhitelistedTokens()

getSwapRouterWhitelistedTokens(chainId, options?): Promise<0x${string}[]>

Resolve the ERC-20 tokens currently whitelisted for the SwapRouter on a chain — the any-token set a deposit UI can offer as swap-and-deposit inputs.

Delegates to AugustVaults.getSwapRouterWhitelistedTokens, which reconstructs the set from the router's TokenEnabled events and verifies each against the on-chain whitelistedTokens mapping (not enumerable). Returns [] when no router is deployed on chainId or no provider is configured for it.

Parameters

ParameterTypeDescription
chainIdnumberEVM chain ID to resolve the allowlist for.
options?{ fromBlock?: number }Optional fromBlock to override the deploy-block scan floor.
options.fromBlock?number-

Returns

Promise<0x${string}[]>

Checksummed whitelisted token addresses; [] when unavailable.

Throws

AugustSDKError when an eth_getLogs scan chunk fails.

Example

const tokens = await augustSdk.getSwapRouterWhitelistedTokens(1);

getTotalDeposited()

getTotalDeposited(options?): Promise<number>

Parameters

ParameterType
options?{ loadSnapshots?: boolean; loadSubaccounts?: boolean }
options.loadSnapshots?boolean
options.loadSubaccounts?boolean

Returns

Promise<number>

getUserPoints()

getUserPoints(userAddress): Promise<any>

Get user points from the backend API. This fetches processed points data directly from the backend, removing the need for client-side points calculation.

Parameters

ParameterTypeDescription
userAddress`0x${string}`User wallet address

Returns

Promise<any>

Points data from the backend API

getVault()

getVault(props): Promise<IVault>

Fetch detailed information for a specific vault.

Parameters

ParameterTypeDescription
props{ chainId?: number; loadSnapshots?: boolean; loadSubaccounts?: boolean; options?: IVaultCustomOptions; vault: 0x${string} }Vault address, chain ID, and optional enrichment options
props.chainId?number-
props.loadSnapshots?boolean-
props.loadSubaccounts?boolean-
props.options?IVaultCustomOptions-
props.vault`0x${string}`-

Returns

Promise<IVault>

Single vault object with full metadata

getVaultActivity()

getVaultActivity(props): Promise<IVaultUserHistoryItem[]>

Get a vault's deposit/withdrawal activity across every participant.

The vault-wide counterpart to AugustSDK.getVaultUserHistory — use it to answer flow questions ("how many deposits in the last 7 days", "net flow this week") that point-in-time TVL cannot. Reads from the Goldsky subgraph, paginated so busy vaults are not truncated; a sinceTs window keeps short lookbacks cheap.

Parameters

ParameterTypeDescription
props{ chainId?: number; sinceTs?: number; types?: ("deposit" | "withdraw-request" | "withdraw-processed" | "redeem")[]; untilTs?: number; vault: 0x${string} }Vault address, optional chain id, optional sinceTs/untilTs Unix-second bounds, and an optional types filter.
props.chainId?number-
props.sinceTs?number-
props.types?("deposit" | "withdraw-request" | "withdraw-processed" | "redeem")[]-
props.untilTs?number-
props.vault`0x${string}`-

Returns

Promise<IVaultUserHistoryItem[]>

Array of activity items (oldest-first) with normalized amounts, actor addresses, event type, and transaction hashes.

Throws

If vault is not a valid address or no chain id can be resolved.

Example

const weekAgo = Math.floor(Date.now() / 1000) - 7 * 86_400;
const items = await sdk.getVaultActivity({ vault, chainId: 143, sinceTs: weekAgo });

getVaultAllocations()

getVaultAllocations(props): Promise<IVaultAllocations | { message: string; status: number }>

Get vault asset allocations across DeFi protocols, CeFi, and OTC positions.

This is the data behind the "Vault Exposure" section of the Upshift app — a partner rendering that section in their own frontend needs only this call. Read exposurePerCategory for the pre-bucketed view the UI renders (supplying / borrowing / wallet / lending legs plus per-category USD totals) and netValue for the headline figure; the raw defi / cefi / otc arrays back the drill-downs. See Get Vault Allocations in the vaults docs for a faithful reproduction.

Stellar vaults resolve their DeFi exposure through the Untangled portfolio API instead of DeBank — one extra HTTP call, covering the idle buffer, Stellar protocol positions, custody wallets and bridged capital. If that call fails the exposure legs come back empty rather than throwing, so CeFi, OTC and loan allocations still resolve.

Parameters

ParameterTypeDescription
props{ chainId?: number; vault: 0x${string} }Vault address and chain ID
props.chainId?number-
props.vault`0x${string}`-

Returns

Promise<IVaultAllocations | { message: string; status: number }>

Detailed breakdown of vault allocations by category

Example

const { exposurePerCategory, netValue } = await sdk.getVaultAllocations({
  vault: '0xcd69123b3FBBfC666E1f6a501da27B564C00De54',
  chainId: 1,
});
for (const item of exposurePerCategory?.supplying ?? []) {
  console.log(item.protocol, item.symbol, item.amount);
}

getVaultAnnualizedApy()

getVaultAnnualizedApy(props): Promise<IVaultAnnualizedApy>

Get annualized APY metrics for a vault.

Supported Vaults: cUSDO, tETH, wstETH, rsETH

Parameters

ParameterTypeDescription
props{ vault: 0x${string} }Vault address
props.vault`0x${string}`-

Returns

Promise<IVaultAnnualizedApy>

Annualized APY data including liquidity APY

Deprecated

The hgETH30dLiquidAPY and hgETH7dLiquidAPY response fields are deprecated. These fields will be removed on 2026-01-01. Use liquidAPY30Day and liquidAPY7Day fields instead.

getVaultApy()

getVaultApy(props): Promise<object[]>

Get current or historical APY for a vault.

Parameters

ParameterTypeDescription
props{ historical?: { daysAgo?: number }; vault: 0x${string} }Vault address and optional historical lookback period
props.historical?{ daysAgo?: number }-
props.historical.daysAgo?number-
props.vault`0x${string}`-

Returns

Promise<object[]>

APY data including rewards breakdown

Deprecated

use getVaultHistoricalTimeseries instead

getVaultAvailableRedemptions()

getVaultAvailableRedemptions(props): Promise<{ availableRedemptions: IVaultAvailableRedemption[]; pendingRedemptions: IVaultAvailableRedemption[]; processedWithdrawals: ISubgraphWithdrawProccessed[]; requestedWithdrawals: ISubgraphWithdrawRequest[] }>

Get redemption requests that are ready to be claimed.

Parameters

ParameterTypeDescription
props{ chainId?: number; vault: 0x${string}; verbose?: boolean; wallet?: 0x${string} }Vault address, chain ID, and optional wallet filter
props.chainId?number-
props.vault`0x${string}`-
props.verbose?boolean-
props.wallet?`0x${string}`-

Returns

Promise<{ availableRedemptions: IVaultAvailableRedemption[]; pendingRedemptions: IVaultAvailableRedemption[]; processedWithdrawals: ISubgraphWithdrawProccessed[]; requestedWithdrawals: ISubgraphWithdrawRequest[] }>

Array of available redemption requests with amounts and timestamps

getVaultBorrowerHealthFactor()

getVaultBorrowerHealthFactor(props?): Promise<Record<string, IVaultBorrowerHealthFactor[]> | Record<string, IVaultBorrowerHealthFactor[]>[]>

Get the borrower's health factor by vault.

Pass vault whenever the caller knows which pool it cares about — it skips the all-vaults cross-chain fanout and only reads the loans for that one pool. The response map is keyed by lowercased vault address; look entries up with address.toLowerCase().

Parameters

ParameterTypeDescription
props?{ chainId?: number; vault?: 0x${string} }-
props.chainId?numberOptional chain to scope the read to.
props.vault?`0x${string}`Optional vault address. When provided alongside chainId, only that vault's borrower-health-factor data is fetched.

Returns

Promise<Record<string, IVaultBorrowerHealthFactor[]> | Record<string, IVaultBorrowerHealthFactor[]>[]>

Object containing the borrower's health factor by vault.

getVaultHistoricalTimeseries()

getVaultHistoricalTimeseries(props): Promise<IHistoricalTimeseriesResponse>

Get historical timeseries data for a vault.

Parameters

ParameterTypeDescription
props{ nDays?: number; vault: 0x${string} }Vault address and optional number of days
props.nDays?number-
props.vault`0x${string}`-

Returns

Promise<IHistoricalTimeseriesResponse>

Historical timeseries data with TVL, APY, PnL, share price, and other metrics

getVaultLoans()

getVaultLoans(props): Promise<IVaultLoan[]>

Get active loans deployed from a vault.

Parameters

ParameterTypeDescription
props{ chainId?: number; vault: 0x${string} }Vault address and chain ID
props.chainId?number-
props.vault`0x${string}`-

Returns

Promise<IVaultLoan[]>

Array of loan details including borrower, principal, APR

getVaultPnl()

getVaultPnl(props): Promise<IVaultPnl>

Get PnL for a vault (vault-level, not user-specific). Returns the vault's overall profit and loss across all users.

Parameters

ParameterTypeDescription
props{ chainId?: number; vault: 0x${string} }Vault address and optional chain ID
props.chainId?number-
props.vault`0x${string}`-

Returns

Promise<IVaultPnl>

Vault PnL in USD and notional value

getVaultPositions()

getVaultPositions(props): Promise<IVaultPosition[]>

Get user positions across vaults including shares and claimable redemptions. Supports both EVM and Solana vaults.

Parameters

ParameterTypeDescription
props{ chainId?: number; options?: IVaultBaseOptions; showAllVaults?: boolean; solanaWallet?: string; stellarWallet?: string; vault?: 0x${string}; wallet?: 0x${string} }Wallet address, chain ID, and optional vault filter
props.chainId?number-
props.options?IVaultBaseOptions-
props.showAllVaults?boolean-
props.solanaWallet?string-
props.stellarWallet?string-
props.vault?`0x${string}`-
props.wallet?`0x${string}`-

Returns

Promise<IVaultPosition[]>

Array of positions with balances and pending redemptions

getVaultRedemptionHistory()

getVaultRedemptionHistory(props): Promise<IVaultRedemptionHistoryItem[]>

Get historical redemption requests for a vault (settled, cancelled, pending-but-out-of-window), optionally filtered to one wallet.

Parameters

ParameterTypeDescription
props{ chainId?: number; lookbackBlocks?: number; vault: 0x${string}; wallet?: 0x${string} }Vault address, chain ID, optional wallet, and an optional lookbackBlocks for how far back to scan.
props.chainId?number-
props.lookbackBlocks?number-
props.vault`0x${string}`-
props.wallet?`0x${string}`-

Returns

Promise<IVaultRedemptionHistoryItem[]>

Historical redemption records, newest first.

getVaults()

getVaults(options?): Promise<IVault[]>

Fetch all available vaults across configured networks. Optionally filter by chain IDs and include loan/allocation data.

Parameters

ParameterTypeDescription
options?IGetVaultsOptionsConfiguration for filtering and enriching vault data — see IGetVaultsOptions for the full surface (includeClosed portfolio mode, maxRetries/baseDelay retry tuning)

Returns

Promise<IVault[]>

Array of vault objects with metadata and optional position data

getVaultStakingPositions()

getVaultStakingPositions(props): Promise<IActiveStakingPosition[]>

Get user's staking positions for vault receipt tokens.

Parameters

ParameterTypeDescription
props{ chainId?: number; wallet?: 0x${string} }Wallet address and optional chain ID
props.chainId?number-
props.wallet?`0x${string}`-

Returns

Promise<IActiveStakingPosition[]>

Array of staking positions with rewards

getVaultSummary()

getVaultSummary(props): Promise<IVaultSummary>

Get summary data for a vault (name, type, chain, recent returns).

Parameters

ParameterTypeDescription
props{ vault: 0x${string} }Vault address
props.vault`0x${string}`-

Returns

Promise<IVaultSummary>

Vault summary data

getVaultTvl()

getVaultTvl(props): Promise<object[]>

Get current or historical TVL for a vault.

Parameters

ParameterTypeDescription
props{ chainId?: number; historical?: IVaultHistoricalParams; vault: 0x${string} }Vault address and optional historical parameters
props.chainId?number-
props.historical?IVaultHistoricalParams-
props.vault`0x${string}`-

Returns

Promise<object[]>

TVL in vault's base asset units

getVaultUnrealizedPnlHistory()

getVaultUnrealizedPnlHistory(params): Promise<IUnrealizedPnlSnapshot[]>

Fetch the historical unrealized-PnL series for a vault, newest first. Delegates to AugustApi.getVaultUnrealizedPnlHistory — see it for parameter semantics and thrown errors.

Parameters

ParameterType
params{ limit?: number; vault: string }
params.limit?number
params.vaultstring

Returns

Promise<IUnrealizedPnlSnapshot[]>

getVaultUserHistory()

getVaultUserHistory(props): Promise<IVaultUserHistoryItem[]>

Get user's historical vault interactions including deposits and withdrawals.

Parameters

ParameterTypeDescription
props{ chainId?: number; options?: IVaultBaseOptions; vault?: 0x${string}; wallet: 0x${string} }Wallet address and optional vault/chain filters
props.chainId?number-
props.options?IVaultBaseOptions-
props.vault?`0x${string}`-
props.wallet`0x${string}`-

Returns

Promise<IVaultUserHistoryItem[]>

Array of historical transactions with amounts and timestamps

getVaultUserLifetimePnl()

getVaultUserLifetimePnl(props): Promise<IVaultUserLifetimePnl>

Get lifetime PnL for a user in a specific vault. Calculates realized and unrealized PnL based on deposit/withdrawal history and current position.

Parameters

ParameterTypeDescription
props{ chainId?: number; vault: 0x${string}; wallet: 0x${string} }Vault address, wallet address, and optional chain ID
props.chainId?number-
props.vault`0x${string}`-
props.wallet`0x${string}`-

Returns

Promise<IVaultUserLifetimePnl>

Lifetime PnL data including realized and unrealized PnL in both native token and USD

getVaultUserTransfers()

getVaultUserTransfers(props): Promise<object[]>

Get user's vault share transfer history from subgraph.

Parameters

ParameterTypeDescription
props{ chainId?: number; options?: IVaultBaseOptions; vault?: 0x${string}; wallet: 0x${string} }Wallet address and optional vault/chain filters
props.chainId?number-
props.options?IVaultBaseOptions-
props.vault?`0x${string}`-
props.wallet`0x${string}`-

Returns

Promise<object[]>

Array of transfer events

getVaultWithdrawals()

getVaultWithdrawals(props): Promise<IVaultWithdrawals>

Get withdrawal summary and pending queue for a vault.

Parameters

ParameterTypeDescription
props{ chainId?: number; vault: 0x${string} }Vault address and optional chain ID
props.chainId?number-
props.vault`0x${string}`-

Returns

Promise<IVaultWithdrawals>

Withdrawal summary and pending queue

getYieldLastRealizedOn()

getYieldLastRealizedOn(props): Promise<number>

Get the timestamp when yield was last realized for a vault.

Parameters

ParameterTypeDescription
props{ chainId?: number; vault: 0x${string} }Vault address and optional chain ID
props.chainId?number-
props.vault`0x${string}`-

Returns

Promise<number>

Timestamp (Unix timestamp in seconds) when yield was last realized

init()

init(): Promise<void>

Verify API keys and authorize SDK usage.

Returns

Promise<void>

Inherited from

AugustBase.init

previewRedemption()

previewRedemption(props): Promise<INormalizedNumber>

Preview the amount of assets that would be received for redeeming shares (queued redemption).

Parameters

ParameterTypeDescription
props{ chainId?: number; sharesAmount: string | number | bigint; vault: 0x${string} }Vault contract address, shares amount, and optional chain ID
props.chainId?number-
props.sharesAmountstring | number | bigint-
props.vault`0x${string}`-

Returns

Promise<INormalizedNumber>

The amount of assets as INormalizedNumber

registerUserForPoints()

registerUserForPoints(userAddress, referrerAddress, chainId, signature, nonce, expiry): Promise<Response>

Register a user for the points program, authenticated by a wallet signature.

The caller produces a personal_sign signature over a canonical message containing the user address, referrer (or "none"), chain, nonce, and expiry — see AugustVaults.registerUserForPoints for the exact template.

Parameters

ParameterTypeDescription
userAddress`0x${string}`EVM wallet address being registered.
referrerAddress`0x${string}`Optional EVM referrer address.
chainIdnumberChain on which the wallet signed; powers the EIP-1271 fallback for smart-contract wallets and pins the signature cross-chain.
signaturestring0x-prefixed personal_sign signature over the canonical message.
noncestringSingle-use random string (8–128 chars).
expirynumberUnix seconds; must be in the future, within the backend's TTL.

Returns

Promise<Response>

Raw Response from the backend.

switchNetwork()

switchNetwork(chainId): void

Switch the active network for vault operations. Updates the SDK's active chain and RPC provider.

Parameters

ParameterType
chainIdnumber

Returns

void

Overrides

AugustBase.switchNetwork

updateWallet()

updateWallet(address): void

Set the active wallet address for tracking user-specific vault data. Updates monitoring headers with the wallet address.

Parameters

ParameterType
address`0x${string}`

Returns

void

Overrides

AugustBase.updateWallet

vaultDeposit()

vaultDeposit(signer, options): Promise<string>

Fetch all available vaults across configured networks. Optionally filter by chain IDs and include loan/allocation data.

Parameters

ParameterTypeDescription
signerSigner | Wallet-
optionsIContractWriteOptionsConfiguration for filtering and enriching vault data

Returns

Promise<string>

Array of vault objects with metadata and optional position data