₿ FastPath API

Bitcoin Core + 5 EVM Chains + Cross-Chain Identity + On-Chain Attestations.
0ms cached responses. Pay with Lightning, get your API key instantly.

—
Block Height
0ms
Cached Response
5
EVM Chains
41Ɨ
Cache Speedup

šŸš€ Start in 3 Steps

Pay Lightning → get your key → make your first call. Under 2 minutes.

1

Get Your Key

Pick a tier below, scan the Lightning QR, and pay with any wallet.

⚔ Key delivered automatically — no emails, no waiting.

Start here →
2

Make Your First Call

One curl. That's it.

curl https://api.nativebtc.org/v1/block-height -H "X-API-Key: fp_your_key"

Works with ethers.js, web3.js, viem — just point your provider at /v1/rpc

3

Explore the API

Pre-built endpoints that replace dozens of raw RPC calls:

/api/evm/portfolio/:addr — 5-chain portfolio
/api/evm/gas — gas across all chains
/api/eth/leaderboard — 7ms for 100 players
/v1/mempool/stats — live mempool intel
See all endpoints ↓

šŸ–„ļø Try It Live

Hit real endpoints from this page. Public endpoints work without a key — paste yours to unlock everything.

šŸ”‘ API Key:
fp_2b3c••••••••••••••••••••••••2e38 (demo)
Try:
Ready
← Click a button or type an endpoint and hit Run

⚔ Quick Start — Code Examples

Copy-paste these to get running immediately.

curl — Bitcoin Block Height

# Get current Bitcoin block height
curl https://api.nativebtc.org/v1/block-height \
  -H "X-API-Key: fp_your_key_here"

curl — JSON-RPC (ethers.js / web3.js compatible)

# JSON-RPC — works with ethers.js, web3.js, viem
curl -X POST https://api.nativebtc.org/v1/rpc \
  -H "Content-Type: application/json" \
  -H "X-API-Key: fp_your_key_here" \
  -d '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}'

ethers.js Provider

const { JsonRpcProvider } = require('ethers');

const provider = new JsonRpcProvider(
  'https://api.nativebtc.org/v1/rpc',
  { name: 'bitcoin', chainId: 0xD9B4BEF9 },
  { staticNetwork: true, batchMaxCount: 1,
    fetchOptions: { headers: { 'X-API-Key': 'fp_your_key_here' } } }
);

const block = await provider.getBlockNumber();
console.log('Bitcoin block:', block);

šŸ“” Endpoints

MethodPathDescription
POST /v1/rpc JSON-RPC — eth_* translated to Bitcoin + native BTC methods
GET /v1/block-height Current Bitcoin block height
GET /v1/fee-estimate?blocks=6 Fee estimate (sat/vB) for target confirmation
GET /v1/balance/:address Address balance (Bitcoin or EVM-translated)
GET /v1/utxos/:address UTXO set for a Bitcoin address
GET /v1/tx/:txid Transaction details by txid
GET /v1/identity/evm-to-btc/:address Resolve EVM address → BTC identity
GET /v1/identity/btc-to-evm/:address Resolve BTC address → EVM identity
GET /v1/derive/:chain/:evmAddress Derive chain address (solana, xrp, cardano, polkadot, tron)
GET /v1/tiers Available API tiers no auth
GET /health Service health check no auth

🧠 Mempool Intelligence new

MethodPathDescription
GET /v1/mempool/stats Mempool size, fees, congestion level, fee estimates for 1–144 blocks
GET /v1/mempool/fees?target=10 Fee landscape — distribution histogram + recommended rate for target
GET /v1/mempool/txs?limit=25&sort=fee_desc Paginated mempool snapshot (sort: fee_desc, time_desc, size_desc)
GET /v1/mempool/address/:address Pending transactions for a Bitcoin address
GET /v1/mempool/tx/:txid Detailed mempool entry — fees, ancestors, descendants, RBF flag
GET /v1/mempool/tx/:txid/replacements RBF replacement tracking — was this tx bumped?
WS /v1/mempool/stream?key=fp_xxx WebSocket — live stream of new mempool transactions + stats

šŸ” Bitcoin Attestations for Smart Contracts new

MethodPathDescription
GET /v1/attest/signer Public signer address — set as trustedSigner in your contract no auth
POST /v1/attest/balance Signed BTC balance proof — verifiable on-chain via EIP-712
POST /v1/attest/ownership Signed UTXO ownership proof — prove you own a specific Bitcoin UTXO

šŸŽ® Gaming-Grade EVM API new

Cached, batched, multi-chain. 0ms cached responses. One call replaces dozens of raw RPC calls.

MethodPathDescription
GET /api/evm/chains List supported EVM chains (ETH, ARB, BASE, OP, POLYGON) no auth
GET /api/evm/:chain/balance/:address Native balance on any chain — cached 15s
GET /api/evm/:chain/tokens/:address ERC-20 token balances (USDC, USDT, DAI, WETH, + more) — one call
GET /api/evm/:chain/wallet/:address Balance + tx count + EOA vs contract detection — 3 RPC calls, 0ms cached
GET /api/evm/portfolio/:address Full portfolio across all 5 chains — native balances + tx counts in one call
GET /api/evm/gas Gas prices on all 5 chains — one call, 6s cache
GET /api/evm/multichain-balance/:address Native balance on all chains — select chains with ?chains=ethereum,arbitrum
POST /api/evm/:chain/batch-balances Up to 200 addresses in one call — ranked by balance, batch RPC
GET /api/eth/leaderboard 100-player leaderboard — 7ms cached, 193ms cold. Alchemy: ~2 seconds
GET /api/evm/multichain-leaderboard Leaderboard ranked by TOTAL balance across all chains — nobody else has this
POST /api/evm/:chain/call Cached eth_call — read any contract, any method, 12s cache
GET /api/cache/stats Cache hit/miss stats, singleflight dedup, TTL config no auth

šŸ”Œ Supported RPC Methods

All standard Ethereum JSON-RPC methods are translated to Bitcoin equivalents in real-time.

EVM MethodBitcoin EquivalentNotes
eth_chainId—Returns 0xD9B4BEF9 (Bitcoin mainnet magic)
eth_blockNumbergetblockcountCurrent block height
eth_getBalanceUTXO scanAddress balance in satoshis
eth_gasPriceestimatesmartfeeFee rate in sat/vB
eth_getBlockByNumbergetblockFull block data
eth_getTransactionByHashgetrawtransactionDecoded transaction
eth_sendRawTransactionsendrawtransactionBroadcast signed tx

Native Bitcoin RPC methods (getblock, estimatesmartfee, etc.) are also supported directly.

🧠 Mempool Intelligence

Real-time mempool data direct from our Bitcoin Core pruned node. Fee sniping, RBF tracking, congestion monitoring.

Fee Landscape

# Get fee distribution + recommended rate for 6-block target
curl "https://api.nativebtc.org/v1/mempool/fees?target=6" \
  -H "X-API-Key: fp_your_key_here"

# Response includes histogram of fee rates across entire mempool

Live Mempool Stream (WebSocket)

const ws = new WebSocket(
  'wss://api.nativebtc.org/v1/mempool/stream?key=fp_your_key_here'
);

ws.onmessage = (event) => {
  const msg = JSON.parse(event.data);

  if (msg.type === 'new_txs') {
    console.log(`${msg.count} new txs`, msg.transactions);
  }

  if (msg.type === 'stats') {
    console.log('Mempool:', msg.data.mempool.size, 'txs');
  }
};

// Commands: subscribe:txs, subscribe:stats, filter:address:bc1q...
ws.send('subscribe:stats');

Track Address for Incoming Payments

# See pending transactions for any Bitcoin address
curl "https://api.nativebtc.org/v1/mempool/address/bc1q..." \
  -H "X-API-Key: fp_your_key_here"

# Returns direction (incoming/outgoing), fee rate, value

RBF Replacement Detection

# Check if a transaction was replaced (fee bumped)
curl "https://api.nativebtc.org/v1/mempool/tx/abc123.../replacements" \
  -H "X-API-Key: fp_your_key_here"

# Returns: wasReplaced, replacedBy txid, fee delta

šŸŽ® EVM API — Faster Than Alchemy

Alchemy sells raw RPC. We sell pre-cached, batched, structured data. One endpoint replaces dozens of RPC calls.

⚔ Speed Benchmarks (100 players, live server)

ScenarioFastPathAlchemyVerdict
ETH leaderboard (100 players, cached)7ms~2,000ms286Ɨ faster
Portfolio (5 chains, cached)0ms~800msāˆž
Token balances (6 tokens, cached)0ms~500msāˆž
Gas oracle (5 chains, cached)4ms~400ms100Ɨ faster
Leaderboard polling (p50)4.5msN/Aexclusive
Multichain leaderboard~50msN/Aexclusive
šŸ“‹ All benchmarks measured on this live server with real blockchain data — not synthetic lab tests.
Alchemy estimates based on equivalent multi-RPC call chains required to assemble the same response.

Portfolio — All Chains, One Call

# Vitalik's full portfolio across 5 chains
curl "https://api.nativebtc.org/api/evm/portfolio/0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045"

# Response: 0ms cached, 204ms cold
{
  "totalNativeEth": "527.644853",
  "portfolio": {
    "ethereum":  { "eth": "32.13",  "transactionCount": 1647 },
    "polygon":   { "eth": "495.20", "transactionCount": 1 },
    "arbitrum":  { "eth": "0.06",  "transactionCount": 13 },
    "optimism":  { "eth": "0.18",  "transactionCount": 40 },
    "base":      { "eth": "0.07",  "transactionCount": 16 }
  }
}

100-Player Leaderboard — 7ms

# Send up to 200 addresses, get ranked leaderboard
curl "https://api.nativebtc.org/api/eth/leaderboard?addresses=0xBE0e...,0xF977...,0x28C6..."

# Cached response: 7ms for 100 players
{
  "loadTimeMs": 7,
  "cacheHits": 100,
  "leaderboard": [
    { "rank": 1, "address": "0xC02a...", "eth": "2084580.50" },
    { "rank": 2, "address": "0xBE0e...", "eth": "1996008.37" },
    // ...
  ]
}

ERC-20 Token Balances

# Get USDC, USDT, DAI, WETH, LINK, UNI balances in one call
curl "https://api.nativebtc.org/api/evm/ethereum/tokens/0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045"

# Filter specific tokens:
curl "https://api.nativebtc.org/api/evm/arbitrum/tokens/0x...?tokens=USDC,ARB"

Batch Balances (POST)

# Send 200 addresses, get all balances ranked
curl -X POST "https://api.nativebtc.org/api/evm/ethereum/batch-balances" \
  -H "Content-Type: application/json" \
  -d '{"addresses": ["0xBE0e...", "0xF977...", "0x28C6..."]}'
šŸŽ®
Game Leaderboards
100 players ranked in 7ms. Poll every 500ms.
šŸ“Š
Portfolio Dashboards
5 chains, one call, 0ms cached.
⛽
Gas Optimization
Compare gas across all chains in real-time.
šŸ”
Wallet Intelligence
EOA vs contract, tx count, activity scoring.

šŸ” Bitcoin → EVM Attestations

Signed proofs of Bitcoin balance and UTXO ownership that smart contracts can verify on-chain. Like Chainlink for BTC state.

How It Works

₿
Bitcoin Core
Reads real UTXOs & balances from your pruned node
→
šŸ”
FastPath API
Signs an EIP-712 typed attestation with an isolated key
→
šŸ“œ
Your Contract
Verifies signature on-chain, acts on real BTC data
šŸ”‘ Attestation Signer Address
0xef0FEb834a58c66629e2B4BE88fA8b35ad9d95AC
This is the Ethereum address that signs every attestation from the FastPath API.
Hardcode it in your smart contract to verify signatures are genuine.
⛨ Signing-only key — it holds no funds and cannot submit transactions.

1. Get a Balance Attestation

# Request a signed proof of Bitcoin balance
curl -X POST "https://api.nativebtc.org/v1/attest/balance" \
  -H "Content-Type: application/json" \
  -H "X-API-Key: fp_your_key_here" \
  -d '{"evmAddress": "0xYourWallet", "btcAddress": "bc1q...", "chainId": 1}'

# Response:
{
  "success": true,
  "attestation": {
    "message": {
      "evmAddress": "0xYourWallet",
      "btcAddress": "bc1q...",
      "balanceSats": "150000000",    // 1.5 BTC
      "timestamp": 1772236005,
      "nonce": 2993801780
    },
    "signature": "0xcacf38...",
    "signerAddress": "0xef0FEb..."
  }
}

2. Submit to Smart Contract

// User calls your contract with the attestation data
const tx = await vault.attestBalance(
  attestation.message.btcAddress,
  attestation.message.balanceSats,
  attestation.message.timestamp,
  attestation.message.nonce,
  attestation.signature
);
// Contract verifies signature → credits user's BTC collateral

3. Contract Verifies On-Chain

// In your Solidity contract — import FastpathAttestationVerifier
function attestBalance(
    string calldata btcAddress,
    uint256 balanceSats,
    uint256 timestamp,
    uint256 nonce,
    bytes calldata signature
) external {
    // Verifies EIP-712 sig, checks expiry + nonce replay
    verifier.verifyBalance(
        msg.sender, btcAddress, balanceSats,
        timestamp, nonce, signature
    );

    // āœ… Balance is verified — lend, mint NFT, gate access, etc.
    positions[msg.sender].btcBalanceSats = balanceSats;
}

What You Can Build

šŸ¦
BTC-Backed Lending
Borrow stablecoins against real Bitcoin balance
šŸŽØ
BTC-Gated NFTs
Mint only if you hold Bitcoin
šŸ—³ļø
BTC-Weighted DAOs
Voting power = BTC holdings
šŸ”
UTXO Proof-of-Reserve
Prove specific UTXO ownership on-chain

šŸ“¦ Solidity Contracts (Open Source)

IFastpathAttestation.sol — Interface for your contracts
FastpathAttestationVerifier.sol — Verifier with nonce + expiry protection
BTCBackedVaultV2.sol — Example lending vault using real BTC balance
Security: EIP-712 typed sigs • Nonce replay protection • 5-min expiry • Signer rotation

šŸ’° Pricing

⚔ Instant Lightning Checkout

Click a tier → Scan the QR → Get your API key in seconds.
Payment is verified automatically. No accounts, no emails, no waiting.

Works with any Lightning wallet — Wallet of Satoshi, Phoenix, Breez, Zeus, etc.

Micro

1,000 sats
~$1 USD
100 API calls
Try it out
⚔ Buy Now

Starter

10,000 sats
~$10 USD
1,000 API calls
All endpoints
Small projects
⚔ Buy Now

Custom

You negotiate
Whatever you need
Dedicated resources
High volume
Contact us →

šŸ”‘ Authentication

Pass your API key via the X-API-Key header on every request:

curl https://api.nativebtc.org/v1/block-height \
  -H "X-API-Key: fp_your_key_here"

Rate limit info is returned in response headers: X-RateLimit-Limit, X-RateLimit-Remaining, X-DailyLimit-Remaining.

If you exceed your limit, you'll receive a 429 with a Retry-After header.

šŸš€ Ready to Build?

Scan. Pay. Build. Your API key is delivered the moment payment confirms.

⚔ Get API Key — 1,000 sats (~$1)

Bitcoin-only. Lightning-fast. No accounts. No sign-ups.