Lux Docs

RPC Operations

JSON-RPC calls to Lux nodes using the Go SDK

The Go SDK provides typed wrappers around all Lux node JSON-RPC endpoints. Each chain type (P, X, C, Subnet EVM) has its own client.

C-Chain (EVM) RPC

Use the standard github.com/luxfi/geth/ethclient package for EVM calls:

package main

import (
    "context"
    "fmt"

    "github.com/luxfi/geth/common"
    "github.com/luxfi/geth/ethclient"
)

func main() {
    client, err := ethclient.Dial(
        "https://api.lux.network/mainnet/ext/bc/C/rpc",
    )
    if err != nil {
        panic(err)
    }

    // Get latest block number
    block, err := client.BlockNumber(context.Background())
    if err != nil {
        panic(err)
    }
    fmt.Println("C-Chain block:", block)

    // Get balance
    addr := common.HexToAddress("0x9011E888251AB053B7bD1cdB598Db4f9DEd94714")
    balance, err := client.BalanceAt(context.Background(), addr, nil)
    if err != nil {
        panic(err)
    }
    fmt.Println("Balance (wei):", balance)
}

P-Chain RPC

Platform chain operations use the platformvm client for validator and staking queries:

import "github.com/luxfi/sdk/platformvm"

client := platformvm.NewClient(
    "https://api.lux.network/mainnet/ext/bc/P",
)

// Get current validators
validators, err := client.GetCurrentValidators(
    context.Background(), nil,
)

X-Chain RPC

Exchange chain operations for UTXO-based asset management:

import "github.com/luxfi/sdk/avm"

client := avm.NewClient(
    "https://api.lux.network/mainnet/ext/bc/X",
)

// Get asset description
asset, err := client.GetAssetDescription(
    context.Background(), "LUX",
)

Subnet EVM RPC

Subnet EVM chains use the same ethclient interface with a different endpoint:

// Zoo chain RPC
zooClient, _ := ethclient.Dial(
    "https://api.lux.network/mainnet/ext/bc/zoo/rpc",
)

// Hanzo chain RPC
hanzoClient, _ := ethclient.Dial(
    "https://api.lux.network/mainnet/ext/bc/hanzo/rpc",
)

Network Endpoints

NetworkBase URL
Mainnethttps://api.lux.network/mainnet/ext
Testnethttps://api.lux.network/testnet/ext
Devnethttps://api.lux.network/devnet/ext
Localhttp://127.0.0.1:9630/ext

On this page