Class SolanaAgentKit

Main class for interacting with Solana blockchain Provides a unified interface for token operations, NFT management, trading and more

SolanaAgentKit

Constructors

Properties

Methods

approveMultisigProposal batchOrder burnTokens cancelAllOrders checkDebridgeTransactionStatus closeAccounts closeEmptyTokenAccounts closePerpTradeLong closePerpTradeShort create3LandCollection create3LandNft createDebridgeOrder createDriftUserAccount createDriftVault createGibworkTask createMultisigProposal createSquadsMultisig createTiplink CreateWebhook deleteWebhook deployCollection deployToken depositIntoDriftVault depositToDriftUserAccount depositToMultisig deriveDriftVaultAddress doesUserHaveDriftAccount driftSpotTokenSwap driftUserAccountInfo executeDebridgeOrder executeMultisigTransaction fetchTokenDetailedReport fetchTokenPrice fetchTokenReportSummary flashCloseTrade flashOpenTrade fluxbeamCreatePool getAllAssetsbyOwner getAllDomainsTLDs getAllRegisteredAllDomains getAllTopics getAsset getAssetsByAuthority getAssetsByCreator getAvailableDriftMarkets getBalance getBalanceOther getDebridgeSupportedChains getDebridgeTokensInfo getDriftVaultInfo getEntryQuoteOfPerpTrade getInferenceByTopicId getLendAndBorrowAPY getMainAllDomainsDomain getOwnedAllDomains getOwnedDomainsForTLD getPerpMarketFundingRate getPriceInference getPrimaryDomain getPythPrice getPythPriceFeedID getTokenBalances getTokenDataByAddress getTokenDataByTicker getTPS getWebhook heliusParseTransactions launchPumpFunToken lendAssets limitOrder luloLend luloWithdraw manifestCreateMarket mergeTokens meteoraCreateDlmmPool meteoraCreateDynamicPool mintNFT openbookCreateMarket openPerpTradeLong openPerpTradeShort orcaClosePosition orcaCreateCLMM orcaCreateSingleSidedLiquidityPool orcaFetchPositions orcaOpenCenteredPositionWithLiquidity orcaOpenSingleSidedPosition raydiumCreateAmmV4 raydiumCreateClmm raydiumCreateCpmm registerDomain rejectMultisigProposal requestFaucetFunds requestUnstakeFromDriftInsuranceFund requestWithdrawalFromDriftVault resolveAllDomains resolveSolDomain restake rockPaperScissors sendCompressedAirdrop sendTranctionWithPriority simulateSwitchboardFeed spreadToken stake stakeToDriftInsuranceFund swap tensorCancelListing tensorListNFT trade tradeUsingDelegatedDriftVault tradeUsingDriftPerpAccount transfer transferFromMultisig unstakeFromDriftInsuranceFund updateDriftVault updateDriftVaultDelegate voltrDepositStrategy voltrGetPositionValues voltrWithdrawStrategy withdrawAll withdrawFromDriftAccount withdrawFromDriftVault

Constructors

  • Parameters

    • private_key: string
    • rpc_url: string
    • openai_api_key: null | string

    Returns SolanaAgentKit

    Using openai_api_key directly in constructor is deprecated. Please use the new constructor with Config object instead:

    const agent = new SolanaAgentKit(privateKey, rpcUrl, {
    OPENAI_API_KEY: 'your-key'
    });
  • Parameters

    • private_key: string
    • rpc_url: string
    • config: Config

    Returns SolanaAgentKit

Properties

config: Config

Configuration object

connection: Connection

Solana RPC connection

wallet: Keypair

Wallet keypair for signing transactions

wallet_address: PublicKey

Public key of the wallet

Methods

  • Parameters

    • OptionaltransactionIndex: number | bigint

    Returns Promise<string>

  • Parameters

    • mints: string[]

    Returns Promise<string[]>

  • Parameters

    • marketId: PublicKey

    Returns Promise<string>

  • Parameters

    • mints: string[]

    Returns Promise<string[]>

  • Returns Promise<{ signature: string; size: number }>

  • Parameters

    • args: Omit<{ agent: SolanaAgentKit; price: number; tradeMint: PublicKey }, "agent">

    Returns Promise<string>

  • Parameters

    • args: Omit<{ agent: SolanaAgentKit; price: number; tradeMint: PublicKey }, "agent">

    Returns Promise<string>

  • Parameters

    • collectionOpts: CreateCollectionOptions
    • isDevnet: boolean = false
    • OptionalpriorityFeeParam: number

    Returns Promise<string>

  • Parameters

    • collectionAccount: string
    • createItemOptions: CreateSingleOptions
    • isDevnet: boolean = false
    • withPool: boolean = false
    • OptionalpriorityFeeParam: number

    Returns Promise<string>

  • Parameters

    • depositAmount: number
    • depositSymbol: string

    Returns Promise<
        | { account: PublicKey; message?: undefined; txSignature: string }
        | { account: PublicKey; message: string; txSignature?: undefined },
    >

  • Parameters

    • params: {
          hurdleRate?: number;
          managementFee: number;
          marketName: `${string}-${string}`;
          maxTokens: number;
          minDepositAmount: number;
          name: string;
          permissioned?: boolean;
          profitShare: number;
          redeemPeriod: number;
      }

    Returns Promise<string>

  • Parameters

    • title: string
    • content: string
    • requirements: string
    • tags: string[]
    • tokenMintAddress: string
    • tokenAmount: number
    • Optionalpayer: string

    Returns Promise<GibworkCreateTaskReponse>

  • Parameters

    • OptionaltransactionIndex: number | bigint

    Returns Promise<string>

  • Parameters

    • creator: PublicKey

    Returns Promise<string>

  • Parameters

    • amount: number
    • OptionalsplmintAddress: PublicKey

    Returns Promise<{ signature: string; url: string }>

  • Parameters

    • webhookID: string

    Returns Promise<any>

  • Parameters

    • name: string
    • uri: string
    • symbol: string
    • decimals: number = DEFAULT_OPTIONS.TOKEN_DECIMALS
    • OptionalinitialSupply: number

    Returns Promise<{ mint: PublicKey }>

  • Parameters

    • amount: number
    • vault: string

    Returns Promise<string>

  • Parameters

    • amount: number
    • symbol: string
    • OptionalisRepayment: boolean

    Returns Promise<TxSigAndSlot>

  • Parameters

    • amount: number
    • vaultIndex: number = 0
    • Optionalmint: PublicKey

    Returns Promise<string>

  • Parameters

    • name: string

    Returns Promise<PublicKey>

  • Returns Promise<{ account: PublicKey; hasAccount: boolean }>

  • Parameters

    • params: { fromSymbol: string; slippage?: number; toSymbol: string } & (
          { toAmount: number }
          | { fromAmount: number }
      )

    Returns Promise<string>

  • Returns Promise<
        {
            accountAddress: string;
            authority: PublicKey;
            lastActiveSlot: number;
            name: number[];
            overallBalance: number;
            perpPositions: {
                baseAssetAmount: number;
                market: string;
                openAsks: number;
                openBids: number;
                openOrders: number;
                positionType: string;
                quoteAssetAmount: number;
                quoteBreakEvenAmount: number;
                quoteEntryAmount: number;
                settledPnl: number;
            }[];
            settledPerpPnl: string;
            spotPositions: (
                | undefined
                | {
                    availableBalance: number;
                    openAsks: number;
                    openBids: number;
                    openOrders: number;
                    symbol: string;
                    type: string;
                }
            )[];
        },
    >

  • Parameters

    • transactionData: string

    Returns Promise<string>

  • Parameters

    • OptionaltransactionIndex: number | bigint

    Returns Promise<string>

  • Parameters

    • mint: string

    Returns Promise<string>

  • Opens a new trading position on Flash.Trade

    Parameters

    • params: FlashTradeParams

      Flash trade parameters including market, side, collateral, leverage, and pool name

    Returns Promise<string>

    Transaction signature

  • Parameters

    • token_a: PublicKey
    • token_a_amount: number
    • token_b: PublicKey
    • token_b_amount: number

    Returns Promise<string>

  • Parameters

    • owner: PublicKey
    • limit: number

    Returns Promise<any>

  • Parameters

    • assetId: string

    Returns Promise<DasApiAsset>

  • Parameters

    • params: GetAssetsByAuthorityRpcInput

    Returns Promise<DasApiAssetList>

  • Parameters

    • params: GetAssetsByCreatorRpcInput

    Returns Promise<DasApiAssetList>

  • Parameters

    • Optionaltype: "spot" | "perp"

    Returns
        | SpotMarketConfig[]
        | PerpMarketConfig[]
        | { perp: PerpMarketConfig[]; spot: SpotMarketConfig[] }

  • Parameters

    • Optionaltoken_address: PublicKey

    Returns Promise<number>

  • Parameters

    • walletAddress: PublicKey
    • OptionaltokenAddress: PublicKey

    Returns Promise<number>

  • Parameters

    • vaultName: string

    Returns Promise<
        {
            address: string;
            balance: string;
            delegate: string;
            hurdleRate: number;
            managementFee: number;
            marketName: string;
            maxTokens: number;
            minDepositAmount: number;
            name: string;
            permissioned: boolean;
            profitShare: number;
            redeemPeriod: number;
        },
    >

  • Parameters

    • amount: number
    • symbol: `${string}-PERP`
    • action: "long" | "short"

    Returns Promise<
        {
            bestPrice: number;
            entryPrice: number;
            priceImpact: number;
            worstPrice: number;
        },
    >

  • Parameters

    • topicId: number

    Returns Promise<AlloraInference>

  • Parameters

    • symbol: string

    Returns Promise<{ borrowAPY: number; lendingAPY: number }>

  • Parameters

    • owner: PublicKey

    Returns Promise<null | string>

  • Parameters

    • owner: PublicKey

    Returns Promise<string[]>

  • Parameters

    • tld: string

    Returns Promise<string[]>

  • Parameters

    • symbol: `${string}-PERP`
    • period: "year" | "hour" = "year"

    Returns Promise<{ friendlyString: string; longRate: number; shortRate: number }>

  • Parameters

    • tokenSymbol: string
    • timeframe: string

    Returns Promise<string>

  • Parameters

    • account: PublicKey

    Returns Promise<string>

  • Parameters

    • priceFeedID: string

    Returns Promise<string>

  • Parameters

    • tokenSymbol: string

    Returns Promise<string>

  • Parameters

    • Optionalwallet_address: PublicKey

    Returns Promise<
        {
            sol: number;
            tokens: {
                balance: number;
                decimals: number;
                name: string;
                symbol: string;
                tokenAddress: string;
            }[];
        },
    >

  • Parameters

    • transactionId: string

    Returns Promise<any>

  • Parameters

    • amount: number

    Returns Promise<string>

  • Parameters

    • marketId: PublicKey
    • quantity: number
    • side: string
    • price: number

    Returns Promise<string>

  • Parameters

    • mintAddress: string
    • amount: number

    Returns Promise<string>

  • Parameters

    • mintAddress: string
    • amount: number

    Returns Promise<string>

  • Parameters

    • baseMint: PublicKey
    • quoteMint: PublicKey

    Returns Promise<string[]>

  • Parameters

    • inputAssets: InputAssetStruct[]
    • outputMint: string
    • priorityFee: PriorityFee

    Returns Promise<string[]>

  • Parameters

    • tokenAMint: PublicKey
    • tokenBMint: PublicKey
    • binStep: number
    • initialPrice: number
    • priceRoundingUp: boolean
    • feeBps: number
    • activationType: number
    • hasAlphaVault: boolean
    • activationPoint: undefined | BN

    Returns Promise<string>

  • Parameters

    • tokenAMint: PublicKey
    • tokenBMint: PublicKey
    • tokenAAmount: BN
    • tokenBAmount: BN
    • tradeFeeNumerator: number
    • activationPoint: null | BN
    • hasAlphaVault: boolean
    • activationType: number

    Returns Promise<string>

  • Parameters

    • collectionMint: PublicKey
    • metadata: {
          creators?: { address: string; share: number }[];
          name: string;
          sellerFeeBasisPoints?: number;
          uri: string;
      }
    • Optionalrecipient: PublicKey

    Returns Promise<MintCollectionNFTResponse>

  • Parameters

    • baseMint: PublicKey
    • quoteMint: PublicKey
    • lotSize: number = 1
    • tickSize: number = 0.01

    Returns Promise<string[]>

  • Parameters

    • args: Omit<
          {
              agent: SolanaAgentKit;
              collateralAmount: number;
              collateralMint?: PublicKey;
              leverage?: number;
              price: number;
              slippage?: number;
              tradeMint?: PublicKey;
          },
          "agent",
      >

    Returns Promise<string>

  • Parameters

    • args: Omit<
          {
              agent: SolanaAgentKit;
              collateralAmount: number;
              collateralMint?: PublicKey;
              leverage?: number;
              price: number;
              slippage?: number;
              tradeMint?: PublicKey;
          },
          "agent",
      >

    Returns Promise<string>

  • Parameters

    • positionMintAddress: PublicKey

    Returns Promise<string>

  • Parameters

    • mintDeploy: PublicKey
    • mintPair: PublicKey
    • initialPrice: Decimal
    • feeTier: 1 | 2 | 4 | 5 | 16 | 30 | 65 | 100 | 200

    Returns Promise<string>

  • Parameters

    • depositTokenAmount: number
    • depositTokenMint: PublicKey
    • otherTokenMint: PublicKey
    • initialPrice: Decimal
    • maxPrice: Decimal
    • feeTier: 1 | 2 | 4 | 5 | 16 | 30 | 65 | 100 | 200

    Returns Promise<string>

  • Parameters

    • whirlpoolAddress: PublicKey
    • priceOffsetBps: number
    • inputTokenMint: PublicKey
    • inputAmount: Decimal

    Returns Promise<string>

  • Parameters

    • whirlpoolAddress: PublicKey
    • distanceFromCurrentPriceBps: number
    • widthBps: number
    • inputTokenMint: PublicKey
    • inputAmount: Decimal

    Returns Promise<string>

  • Parameters

    • marketId: PublicKey
    • baseAmount: BN
    • quoteAmount: BN
    • startTime: BN

    Returns Promise<string>

  • Parameters

    • mint1: PublicKey
    • mint2: PublicKey
    • configId: PublicKey
    • initialPrice: Decimal
    • startTime: BN

    Returns Promise<string>

  • Parameters

    • mint1: PublicKey
    • mint2: PublicKey
    • configId: PublicKey
    • mintAAmount: BN
    • mintBAmount: BN
    • startTime: BN

    Returns Promise<string>

  • Parameters

    • name: string
    • OptionalspaceKB: number

    Returns Promise<string>

  • Parameters

    • OptionaltransactionIndex: number | bigint

    Returns Promise<string>

  • Parameters

    • amount: number
    • symbol: string

    Returns Promise<string>

  • Parameters

    • amount: number
    • vault: string

    Returns Promise<string>

  • Parameters

    • domain: string

    Returns Promise<undefined | PublicKey>

  • Parameters

    • domain: string

    Returns Promise<PublicKey>

  • Parameters

    • amount: number

    Returns Promise<string>

  • Parameters

    • amount: number
    • choice: "rock" | "paper" | "scissors"

    Returns Promise<string>

  • Parameters

    • mintAddress: string
    • amount: number
    • decimals: number
    • recipients: string[]
    • priorityFeeInLamports: number
    • shouldLog: boolean

    Returns Promise<string[]>

  • Parameters

    • priorityLevel: string
    • amount: number
    • to: PublicKey
    • OptionalsplmintAddress: PublicKey

    Returns Promise<{ fee: number; transactionId: string }>

  • Parameters

    • feed: string
    • crossbarUrl: string

    Returns Promise<string>

  • Parameters

    • inputAsset: InputAssetStruct
    • targetTokens: TargetTokenStruct[]
    • priorityFee: PriorityFee

    Returns Promise<string[]>

  • Parameters

    • amount: number

    Returns Promise<string>

  • Parameters

    • amount: number
    • symbol: string

    Returns Promise<string>

  • Parameters

    • amount: string
    • fromChain: string
    • fromToken: string
    • toChain: string
    • toToken: string
    • dstAddr: string
    • OptionalslippageBps: number

    Returns Promise<string>

  • Parameters

    • nftMint: PublicKey

    Returns Promise<string>

  • Parameters

    • nftMint: PublicKey
    • price: number

    Returns Promise<string>

  • Parameters

    • outputMint: PublicKey
    • inputAmount: number
    • OptionalinputMint: PublicKey
    • slippageBps: number = DEFAULT_OPTIONS.SLIPPAGE_BPS

    Returns Promise<string>

  • Parameters

    • vault: string
    • amount: number
    • symbol: string
    • action: "long" | "short"
    • type: "market" | "limit"
    • Optionalprice: number

    Returns Promise<TxSigAndSlot>

  • Parameters

    • amount: number
    • symbol: string
    • action: "long" | "short"
    • type: "market" | "limit"
    • Optionalprice: number

    Returns Promise<string>

  • Parameters

    • to: PublicKey
    • amount: number
    • Optionalmint: PublicKey

    Returns Promise<string>

  • Parameters

    • amount: number
    • to: PublicKey
    • vaultIndex: number = 0
    • Optionalmint: PublicKey

    Returns Promise<string>

  • Parameters

    • symbol: string

    Returns Promise<string>

  • Parameters

    • vaultAddress: string
    • params: {
          hurdleRate?: number;
          managementFee: number;
          marketName: `${string}-${string}`;
          maxTokens: number;
          minDepositAmount: number;
          name: string;
          permissioned?: boolean;
          profitShare: number;
          redeemPeriod: number;
      }

    Returns Promise<string>

  • Parameters

    • vaultAddress: string
    • delegate: string

    Returns Promise<string>

  • Parameters

    • depositAmount: BN
    • vault: PublicKey
    • strategy: PublicKey

    Returns Promise<string>

  • Parameters

    • vault: PublicKey

    Returns Promise<string>

  • Parameters

    • withdrawAmount: BN
    • vault: PublicKey
    • strategy: PublicKey

    Returns Promise<string>

  • Parameters

    • marketId: PublicKey

    Returns Promise<string>

  • Parameters

    • amount: number
    • symbol: string
    • OptionalisBorrow: boolean

    Returns Promise<TxSigAndSlot>

  • Parameters

    • vault: string

    Returns Promise<string>