๐Ÿง™Solana Actions

Execute transactions on Solana vaults including deposits, withdrawals, and queries. All operations follow the same pattern as EVM vaults for consistency.

Overview

Solana vault interactions use the same pattern as EVM:

  1. Use sdk.getVault() to query vault data

  2. Use sdk.solana.vaultDeposit() to deposit

  3. Use sdk.solana.vaultRedeem() to withdraw

The SDK handles all Solana-specific complexities (PDAs, token accounts, etc.) automatically.

Setup

Basic Initialization

Include Solana RPC endpoint when initializing the SDK:

import { AugustSDK } from '@augustdigital/sdk';

const sdk = new AugustSDK({
  providers: {
    -1: 'https://api.mainnet-beta.solana.com', // Solana Mainnet
  },
});

// Access Solana adapter
const solana = sdk.solana;

Custom RPC Endpoint

For Write Operations

To execute transactions, you need to set a wallet provider:

Adapter API

Methods

setWalletProvider()

Set the wallet provider for write operations.

Parameters:

  • publicKey: User's Solana public key

  • signTransaction: Function to sign transactions (from wallet adapter)

Example:

Get Vault Data

Query Solana vault information using the same sdk.getVault() method as EVM vaults.

Parameters

Parameter
Type
Required
Description

vault

string

Yes

Solana vault program ID

options.solanaWallet

string

No

User's Solana public key for position data

Example

Get All Solana Vaults

Get User Positions

Vault Deposit

Deposit tokens into a Solana vault. The SDK automatically handles token accounts, PDAs, and Anchor program interactions.

Parameters

Parameter
Type
Required
Description

vault

string

Yes

Solana vault program ID

amount

string | number | bigint

Yes

Amount to deposit

wallet

string

Yes

User's Solana public key

wait

boolean

No

Wait for confirmation (default: false)

Returns

Transaction signature as string

Example

Behavior

The SDK automatically:

  1. Fetches vault state and PDAs

  2. Gets or creates associated token accounts

  3. Handles token approvals if needed

  4. Converts amount to proper decimals

  5. Submits transaction via wallet adapter

  6. Optionally waits for confirmation

Vault Withdraw

Request withdrawal from a Solana vault.

Parameters

Parameter
Type
Required
Description

vault

string

Yes

Solana vault program ID

amount

string | number | bigint

Yes

Amount of shares to redeem

wallet

string

Yes

User's Solana public key

wait

boolean

No

Wait for confirmation

Returns

Transaction signature as string

Example

Examples

Complete Deposit Flow

Complete Withdrawal Flow

Query Vault Before Depositing

Advanced Operations

For advanced use cases, the Solana adapter exposes low-level methods and utilities.

Direct Program Access

Access Solana connection and provider for custom operations:

Utility Functions

deriveShareMintPda()

Derive the share mint PDA for a vault.

getToken()

Get token metadata from mint address.

getVaultStateReadOnly()

Get vault state without a wallet provider.

getProvider()

Create an Anchor provider with wallet.

getReadOnlyProvider()

Create a read-only Anchor provider.

getProgram()

Create an Anchor program instance.

Constants

The Solana adapter provides useful constants:

Vault IDL

Program IDs

Fallback Values

Error Handling

Connection Errors

Transaction Errors

Last updated