How to Get Wallet Holdings Using AutoHedge: A Complete Developer Guide

AutoHedge bundles a lightweight Python wrapper around the Jupiter Ultra Swap API that enables you to retrieve Solana wallet balances programmatically via the get_holdings function or the built-in CLI.

AutoHedge is an open-source automation framework for Solana trading strategies. If you need to monitor token balances as part of your trading workflow, the library provides a direct interface to fetch complete wallet snapshots without managing RPC connections manually.

Understanding the get_holdings Implementation

The core functionality resides in autohedge/tools/ultra_tools.py. This module exposes a thin wrapper that communicates with Jupiter's Ultra API to fetch on-chain balance data.

Method Signature and API Endpoint

The get_holdings function accepts a single parameter and returns a JSON string:

get_holdings(address: str) -> str

Internally, the function constructs a GET request to:


https://api.jup.ag/ultra/v1/holdings/<address>

When the JUPITER_API_KEY environment variable is present, the request automatically includes the x-api-key header for higher rate limits. The function validates the supplied address and propagates HTTP errors with detailed logging.

Tool Registry Integration

According to the AutoHedge source code, get_holdings is registered in autohedge/tools/tools_registry.py. This registration makes the function discoverable to the CLI and other components that load the tool pool, ensuring consistent access patterns across the application.

Environment Setup

Before querying holdings, configure your environment variables in a .env file at the project root:

JUPITER_API_KEY=your-jupiter-api-key

While JUPITER_API_KEY is optional for basic queries, it provides elevated rate limits. Note that SOLANA_PRIVATE_KEY is only required for signed transactions, not for balance queries.

How to Query Wallet Holdings

AutoHedge offers two primary interfaces for retrieving holdings: direct Python import and command-line access.

Programmatic Access with Python

Import get_holdings directly from the ultra_tools module to integrate balance checks into your trading scripts:

from autohedge.tools.ultra_tools import get_holdings

wallet_address = "BQ72nSv9f3PRyRKCBnHLVrerrv37CYTHm5h3s9VSGQDV"

try:
    holdings_json = get_holdings(wallet_address)
    print("Wallet holdings:", holdings_json)
except Exception as e:
    print("Error retrieving holdings:", e)

The function returns a JSON string containing your SOL balance in lamports and a comprehensive dictionary of SPL-token accounts. Each token entry includes fields such as amount, uiAmount, and decimals for precise balance calculations.

Command Line Interface

After installing the package from the repository root with pip install ., the autohedge CLI becomes available:

autohedge holdings BQ72nSv9f3PRyRKCBnHLVrerrv37CYTHm5h3s9VSGQDV

The CLI entry point in autohedge/cli.py parses this command and invokes get_holdings internally, streaming the JSON response to stdout for shell scripting or manual inspection.

Summary

  • AutoHedge provides the get_holdings function in autohedge/tools/ultra_tools.py as a thin wrapper around the Jupiter Ultra API.
  • The function queries https://api.jup.ag/ultra/v1/holdings/<address> and returns JSON containing SOL and SPL-token balances.
  • Set JUPITER_API_KEY in your environment for higher API rate limits, though it remains optional for basic queries.
  • Access holdings programmatically via Python import or through the autohedge holdings <address> CLI command.
  • The function is registered in autohedge/tools/tools_registry.py for discovery by automated agents and CLI tools.

Frequently Asked Questions

Do I need a Jupiter API key to check wallet holdings using AutoHedge?

No, the JUPITER_API_KEY environment variable is optional for balance queries. However, as implemented in autohedge/tools/ultra_tools.py, providing this key attaches the x-api-key header to your requests, which unlocks higher rate limits from the Jupiter Ultra API.

What information does the get_holdings function return?

The function returns a JSON string containing your wallet's SOL balance measured in lamports, plus a dictionary of all SPL-token accounts associated with the address. Each token entry includes raw amount, human-readable uiAmount, and decimals for accurate financial calculations.

Can I query any Solana wallet address, or only my own?

You can query any valid Solana public address. The get_holdings function in autohedge/tools/ultra_tools.py performs read-only queries against the Jupiter Ultra API, requiring no private key signature. You only need SOLANA_PRIVATE_KEY for transaction signing, not for balance retrieval.

Where is the holdings function registered in the AutoHedge codebase?

The get_holdings function is exposed through the tools registry in autohedge/tools/tools_registry.py. This registration pattern allows the CLI handler in autohedge/cli.py and other autonomous agents to discover and invoke the function dynamically without hard-coding import paths.

Have a question about this repo?

These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:

Share the following with your agent to get started:
curl -s "https://instagit.com/install.md"

Works with
Claude Codex Cursor VS Code OpenClaw Any MCP Client

Maintain an open-source project? Get it listed too →