⚡ Stax Network Developer Portal

TESTNET

Network

Network Name
Stax Network
Chain ID
284224050226
RPC URL
https://stax.network/rpc
WebSocket
wss://stax.network/ws
Symbol / Decimals
BTC / 18
Block Time
~2 seconds

Quick Start

hardhat.config.ts

// npm install --save-dev hardhat @nomicfoundation/hardhat-toolbox
import { HardhatUserConfig } from "hardhat/config";

const config: HardhatUserConfig = {
  networks: {
    btcl2: {
      url:     "https://stax.network/rpc",
      chainId: 284224050226,
      accounts: [process.env.PRIVATE_KEY!],
    },
  },
  solidity: "0.8.20",
};
export default config;

Deploy a contract

npx hardhat run scripts/deploy.ts --network btcl2

Get testnet BTC

curl -X POST https://stax.network/faucet \
  -H "Content-Type: application/json" \
  -d '{"address": "0xYourAddress"}'
# Sends 1 BTC (1e18 wei) to your address

foundry.toml

[profile.default]
src = "src"
out = "out"
libs = ["lib"]

[rpc_endpoints]
btcl2 = "https://stax.network/rpc"

Deploy with forge

# Deploy
forge create src/MyContract.sol:MyContract \
  --rpc-url https://stax.network/rpc \
  --private-key $PRIVATE_KEY \
  --broadcast

# Run a script
forge script script/Deploy.s.sol \
  --rpc-url https://stax.network/rpc \
  --private-key $PRIVATE_KEY \
  --broadcast

# Call a contract
cast call 0xContractAddr "balanceOf(address)(uint256)" 0xYourAddr \
  --rpc-url https://stax.network/rpc

Get testnet BTC

cast send --rpc-url https://stax.network/rpc \
  $(curl -s -X POST https://stax.network/faucet \
    -H "Content-Type: application/json" \
    -d '{"address":"'$ETH_FROM'"}' | jq -r .tx_hash)

Configure viem / wagmi

// npm install viem
import { createPublicClient, createWalletClient, http, defineChain } from 'viem';

export const btcL2 = defineChain({
  id: 284224050226,
  name: 'Stax Network',
  nativeCurrency: { name: 'Bitcoin', symbol: 'BTC', decimals: 18 },
  rpcUrls: {
    default: { http: ['https://stax.network/rpc'],
               webSocket: ['wss://stax.network/ws'] },
  },
  blockExplorers: {
    default: { name: 'Stax Explorer', url: 'https://stax.network/explorer/' },
  },
});

const publicClient = createPublicClient({ chain: btcL2, transport: http() });
const balance = await publicClient.getBalance({ address: '0xYour...' });

ethers.js v6

// npm install ethers
import { JsonRpcProvider, Wallet } from 'ethers';

const provider = new JsonRpcProvider('https://stax.network/rpc', {
  chainId: 284224050226,
  name: 'btcl2',
});

const wallet = new Wallet(process.env.PRIVATE_KEY!, provider);
const balance = await provider.getBalance(wallet.address);
console.log('Balance:', balance); // in wei (1 BTC = 1e18)

WebSocket provider

import { WebSocketProvider } from 'ethers';
const ws = new WebSocketProvider('wss://stax.network/ws');
ws.on('block', (blockNumber) => console.log('New block:', blockNumber));

Deployed DeFi Contracts

All contracts are pre-deployed on the testnet and available for integration.

ContractAddressDescriptionABI
Loading...

Full ABI + addresses: /contracts

Supported JSON-RPC Methods

eth_chainId eth_blockNumber eth_getBalance eth_getTransactionCount eth_sendRawTransaction eth_call eth_estimateGas eth_getCode eth_getStorageAt eth_getLogs eth_getTransactionReceipt eth_getBlockByNumber eth_getTransactionByHash eth_gasPrice eth_feeHistory eth_subscribe (WS) eth_unsubscribe (WS) debug_traceTransaction eth_newFilter eth_getFilterChanges

green = full implementation   orange = stub / basic

ZK Proof Integration

Proof System
SP1 Groth16 (Succinct)
Verification
25 seconds / block
# Get proof for block 42
curl https://stax.network/proof/42

# Response includes:
{
  "block_number": 42,
  "proof_type": "groth16",
  "proof_hex": "0x...",          // 356 bytes
  "public_values_hex": "0x...",
  "evm_verify": {
    "verified": true,
    "vk_hash": "0x5487..."     // SP1 v6.x verification key
  }
}

Faucet

# Request 1 BTC (limit: 10 BTC max balance)
curl -X POST https://stax.network/faucet \
  -H "Content-Type: application/json" \
  -d '{"address": "0xYourAddress"}'

# Or use the UI on the main page
open https://stax.network/