bitcain docs
API Reference

Solana

Solana On-Chain API

Self-hosted Solana blockchain API that replaces Helius ($49-999/mo) with free public RPC endpoints, edge caching, and load balancing. All endpoints are under /api/v1/solana/.

Architecture

Client → api.bitcain.net/api/v1/solana/* → Cloud Run Backend
  → solana-rpc.bitcain.net (CF Worker, RPC load balancer)
    → Free public Solana RPC endpoints (round-robin + failover)

DEX data flows separately via cat-piss streaming:

Solana WebSocket → cat-piss (parse/detect) → AgentDB (RAG) → Supabase (storage)

GET /api/v1/solana/health

Check Solana RPC proxy health and current network status.

Response:

{
  "status": "healthy",
  "rpc_health": "ok",
  "current_slot": 312847562
}

GET /api/v1/solana/wallet/{address}

Get complete wallet state: SOL balance + all SPL token holdings.

Parameters:

NameInTypeRequiredDescription
addresspathstringYesSolana wallet address (base58, 32-44 chars)

Response:

{
  "status": "success",
  "data": {
    "address": "vines1vzrYbzLMRdu58ou5XTby4qAqVRLmqo36NKPTg",
    "sol_balance": {
      "address": "vines1vzr...",
      "lamports": 1000000000,
      "sol": "1.0"
    },
    "tokens": [
      {
        "mint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
        "owner": "vines1vzr...",
        "token_account": "...",
        "amount": "100.50",
        "raw_amount": "100500000",
        "decimals": 6,
        "symbol": null,
        "name": null
      }
    ],
    "total_tokens": 1,
    "fetched_at": "2026-03-22T12:00:00Z"
  }
}

GET /api/v1/solana/transactions/{address}

Get parsed transaction history for an address. Replaces Helius Enhanced Transactions API.

Parameters:

NameInTypeRequiredDefaultDescription
addresspathstringYesSolana wallet address
limitqueryintegerNo20Max transactions (1-100)
beforequerystringNoSignature to paginate before

Response:

{
  "status": "success",
  "data": [
    {
      "signature": "5abc...",
      "block_time": "2026-03-22T12:00:00Z",
      "slot": 312847562,
      "fee_lamports": 5000,
      "fee_sol": "0.000005",
      "success": true,
      "tx_type": "swap",
      "description": "Swapped via Jupiter v6",
      "source": "vines1vzr...",
      "program_ids": ["JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4"]
    }
  ],
  "count": 1
}

Transaction Types: transfer, token_transfer, swap, stake, unstake, create_account, close_account, nft_mint, nft_transfer, program_interaction, unknown


GET /api/v1/solana/fees

Get priority fee estimates based on recent transactions. Replaces Helius Priority Fee API.

Parameters:

NameInTypeRequiredDescription
accountsquerystringNoComma-separated account addresses to scope fees

Response:

{
  "status": "success",
  "data": {
    "min_fee": 0,
    "low_fee": 1000,
    "medium_fee": 5000,
    "high_fee": 25000,
    "very_high_fee": 100000,
    "max_fee": 500000,
    "sample_count": 150,
    "fetched_at": "2026-03-22T12:00:00Z"
  }
}

Fee values are in micro-lamports per compute unit.

TierPercentileUse Case
low_fee25thEconomy — non-urgent transactions
medium_fee50thStandard — most transactions
high_fee75thFast — time-sensitive trades
very_high_fee95thUrgent — competitive MEV scenarios

POST /api/v1/solana/send

Send a signed transaction to the Solana network. Our RPC proxy fans out to multiple endpoints for better landing rates (replaces Helius Sender).

Request Body:

{
  "signed_transaction": "base64-encoded-signed-transaction",
  "skip_preflight": false
}

Response:

{
  "signature": "5abc...",
  "status": "sent"
}

Error Responses

All endpoints return errors in a consistent format:

{
  "status": "error",
  "error": "Invalid Solana address length: 10",
  "code": "INVALID_ADDRESS"
}
CodeDescription
INVALID_ADDRESSMalformed Solana address (not valid base58)
SOLANA_ERRORGeneric RPC or processing error
SEND_FAILEDTransaction sending failed on all endpoints

On this page