Learn-skills.dev helius-api

Enhanced Solana RPC with DAS API, parsed transactions, webhooks, and priority fee estimation via Helius

install
source · Clone the upstream repo
git clone https://github.com/NeverSight/learn-skills.dev
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/NeverSight/learn-skills.dev "$T" && mkdir -p ~/.claude/skills && cp -r "$T/data/skills-md/agiprolabs/claude-trading-skills/helius-api" ~/.claude/skills/neversight-learn-skills-dev-helius-api && rm -rf "$T"
manifest: data/skills-md/agiprolabs/claude-trading-skills/helius-api/SKILL.md
source content

Helius API — Enhanced Solana RPC

Helius extends standard Solana RPC with parsed transaction history, a unified Digital Asset Standard (DAS) API, webhooks, and priority fee estimation. Essential for wallet analysis, token metadata, and transaction monitoring.

Quick Start

1. Get an API Key

Sign up at dashboard.helius.dev — free tier available (1M credits/mo, no card required).

export HELIUS_API_KEY="your-api-key"

2. Install Dependencies

uv pip install httpx python-dotenv

3. Two Base URLs

Helius uses different base URLs depending on the API:

APIBase URLProtocol
RPC / DAS / Priority Fees
https://mainnet.helius-rpc.com/?api-key=KEY
JSON-RPC 2.0
Enhanced Transactions / Webhooks
https://api-mainnet.helius-rpc.com/v0/...?api-key=KEY
REST

DAS API (Digital Asset Standard)

Unified interface for querying all Solana digital assets — fungible tokens, NFTs, compressed NFTs, Token-2022.

Get Asset Metadata

import httpx, os

API_KEY = os.environ["HELIUS_API_KEY"]
RPC_URL = f"https://mainnet.helius-rpc.com/?api-key={API_KEY}"

resp = httpx.post(RPC_URL, json={
    "jsonrpc": "2.0", "id": 1,
    "method": "getAsset",
    "params": {
        "id": "So11111111111111111111111111111111111111112",  # wSOL
        "options": {"showFungible": True}
    }
})
asset = resp.json()["result"]
# asset.content.metadata.name, asset.token_info.decimals, etc.

Get All Assets for a Wallet

resp = httpx.post(RPC_URL, json={
    "jsonrpc": "2.0", "id": 1,
    "method": "getAssetsByOwner",
    "params": {
        "ownerAddress": "WALLET_ADDRESS",
        "page": 1,
        "limit": 100,
        "displayOptions": {
            "showFungible": True,
            "showNativeBalance": True,
            "showZeroBalance": False,
        }
    }
})
assets = resp.json()["result"]["items"]

Search Assets with Filters

resp = httpx.post(RPC_URL, json={
    "jsonrpc": "2.0", "id": 1,
    "method": "searchAssets",
    "params": {
        "ownerAddress": "WALLET_ADDRESS",
        "tokenType": "fungible",      # fungible | nonFungible | all
        "page": 1,
        "limit": 50,
    }
})

All DAS Methods

MethodPurposeCredits
getAsset
Single asset metadata10
getAssetBatch
Up to 1,000 assets10
getAssetsByOwner
All assets for a wallet10
getAssetsByGroup
Assets by collection10
getAssetsByCreator
Assets by creator10
getAssetsByAuthority
Assets by update authority10
searchAssets
Multi-criteria filtered search10
getAssetProof
Merkle proof (compressed NFTs)10
getAssetProofBatch
Batch proofs10
getSignaturesForAsset
Tx history for an asset10
getNftEditions
All editions of a master10
getTokenAccounts
Token accounts by mint/owner10

See

references/das_api.md
for complete field documentation.

Enhanced Transactions API

Transforms raw Solana transactions into human-readable structured data with categorized types and sources.

Parse a Transaction

API_URL = f"https://api-mainnet.helius-rpc.com/v0/transactions?api-key={API_KEY}"

resp = httpx.post(API_URL, json={
    "transactions": ["SIGNATURE_HERE"],
})
parsed = resp.json()[0]
# parsed["type"]        → "SWAP"
# parsed["source"]      → "JUPITER"
# parsed["description"] → "User swapped 1 SOL for 150 USDC on Jupiter"
# parsed["tokenTransfers"] → [{mint, amount, from, to}, ...]
# parsed["nativeTransfers"] → [{from, to, amount}, ...]

Get Parsed Transaction History for a Wallet

url = f"https://api-mainnet.helius-rpc.com/v0/addresses/{wallet}/transactions"
resp = httpx.get(url, params={
    "api-key": API_KEY,
    "limit": 50,
    "type": "SWAP",  # optional filter
})
history = resp.json()

Transaction Types (151+)

Key types for trading analysis:

TypeMeaning
SWAP
DEX swap
TRANSFER
Token/SOL transfer
ADD_LIQUIDITY
/
REMOVE_LIQUIDITY
LP operations
NFT_SALE
/
NFT_MINT
/
NFT_LISTING
NFT marketplace
STAKE_SOL
/
UNSTAKE_SOL
Staking
CREATE_ORDER
/
FILL_ORDER
Limit orders

Transaction Sources (50+)

JUPITER
,
RAYDIUM
,
ORCA
,
MAGIC_EDEN
,
TENSOR
,
MARINADE
,
METEORA
,
PHANTOM
, etc.

See

references/enhanced_transactions.md
for full type/source enums.

Webhooks

Real-time notifications for on-chain events — no polling required.

Create a Webhook

url = f"https://api-mainnet.helius-rpc.com/v0/webhooks?api-key={API_KEY}"
resp = httpx.post(url, json={
    "webhookURL": "https://your-server.com/helius-hook",
    "transactionTypes": ["SWAP", "TRANSFER"],
    "accountAddresses": ["WalletAddress1", "WalletAddress2"],
    "webhookType": "enhanced",
    "authHeader": "your-secret-token",
})
webhook_id = resp.json()["webhookID"]

Webhook Types

TypeData FormatFiltering
enhanced
Parsed (like Enhanced Transactions API)By transaction type + account
raw
Unprocessed transaction dataBy account only (lower latency)
discord
Formatted messages to Discord channelBy transaction type + account

Manage Webhooks

# List all
webhooks = httpx.get(f"{url}?api-key={API_KEY}").json()

# Update
httpx.put(f"{url}/{webhook_id}?api-key={API_KEY}", json={
    "webhookURL": "https://new-url.com/hook",
    "transactionTypes": ["SWAP"],
    "accountAddresses": ["NewWallet..."],
    "webhookType": "enhanced",
})

# Delete
httpx.delete(f"{url}/{webhook_id}?api-key={API_KEY}")

Up to 100,000 addresses per webhook (via API). 1 credit per event delivered.

Priority Fee API

Estimate optimal priority fees for transaction landing.

resp = httpx.post(RPC_URL, json={
    "jsonrpc": "2.0", "id": 1,
    "method": "getPriorityFeeEstimate",
    "params": [{
        "accountKeys": ["JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4"],
        "options": {
            "includeAllPriorityFeeLevels": True,
            "recommended": True,
        }
    }]
})
fees = resp.json()["result"]
# fees["priorityFeeEstimate"]  → recommended fee (microlamports/CU)
# fees["priorityFeeLevels"]    → {min, low, medium, high, veryHigh, unsafeMax}
LevelPercentileUse Case
min
0-20thNon-urgent
low
20-40thStandard transfers
medium
40-60thDEX swaps (recommended default)
high
60-80thTime-sensitive
veryHigh
80-95thCritical timing
unsafeMax
100thEmergency only

Fee in microlamports/CU. Total priority fee = microlamports/CU × compute units consumed.

Pricing & Rate Limits

PlanPrice/moCreditsRPC req/sDAS req/s
Free$01M102
Developer$4910M5010
Business$499100M20050
Professional$999200M500100

Credit costs: Standard RPC = 1, DAS = 10, Enhanced Txns = 100, Webhooks = 1/event. Additional credits: $5/million.

Files

References

  • references/das_api.md
    — Complete DAS API field reference and response schemas
  • references/enhanced_transactions.md
    — Transaction types, sources, and response structure
  • references/webhooks.md
    — Webhook setup, management, and event handling
  • references/error_handling.md
    — Rate limits, error codes, and retry strategies

Scripts

  • scripts/wallet_analysis.py
    — Fetch wallet assets and parsed transaction history
  • scripts/token_lookup.py
    — Look up token metadata and holder information via DAS