Skip to main content
Get your RPC proxy running and make your first request in under 5 minutes.

Quick start

1

Prerequisites

Before you begin, ensure you have:
  • Elixir 1.17+ (elixir --version)
  • Erlang/OTP 26+ (erl -version)
  • Node.js 18+ (for asset compilation)
Don’t have these installed? See the Installation guide for platform-specific instructions.
2

Clone and install

# Clone the repository
git clone https://github.com/jaxernst/lasso-rpc
cd lasso-rpc

# Install dependencies
mix deps.get

# Start the server
mix phx.server
The application will be available at http://localhost:4000 and the dashboard at http://localhost:4000/dashboard.
3

Make your first request

Test the RPC proxy with a simple eth_blockNumber call:
curl -X POST http://localhost:4000/rpc/ethereum \
  -H 'Content-Type: application/json' \
  -d '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}'
You’ll get a response like:
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": "0x12a4567"
}

Try different routing strategies

Lasso routes requests using intelligent strategies. Try each one:
# Route to the fastest provider based on measured latency
curl -X POST http://localhost:4000/rpc/fastest/ethereum \
  -H 'Content-Type: application/json' \
  -d '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}'

Inspect routing metadata

See which provider handled your request:
curl -X POST 'http://localhost:4000/rpc/ethereum?include_meta=headers' \
  -H 'Content-Type: application/json' \
  -d '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}' \
  -i
Look for the X-Lasso-Meta header with base64-encoded routing information.

Try WebSocket subscriptions

Subscribe to new blocks in real-time:
wscat -c ws://localhost:4000/ws/rpc/ethereum
> {"jsonrpc":"2.0","method":"eth_subscribe","params":["newHeads"],"id":1}
You’ll receive a subscription ID, then live block headers as they arrive.

Explore the dashboard

Open http://localhost:4000/dashboard to see:
  • Provider performance - Latency, success rate, and circuit breaker status
  • Request flow - Real-time routing decisions
  • System metrics - Memory, CPU, and throughput

Docker alternative

Prefer Docker? Use the convenience script:
./run-docker.sh
The application will be available at http://localhost:4000.
The run-docker.sh script generates a SECRET_KEY_BASE for you. For production deployments, set this explicitly. See Deployment for details.

What’s included in the default profile

The config/profiles/default.yml profile is pre-configured with free public providers:
  • Ethereum: LlamaRPC, PublicNode, dRPC, Merkle, 1RPC, and more
  • Base: LlamaRPC, Base Official, PublicNode, dRPC, Lava
  • Arbitrum: Arbitrum Foundation, LlamaRPC, dRPC
No API keys required to get started.

Next steps

Configuration

Customize providers, routing, and rate limits

API Reference

Explore HTTP and WebSocket endpoints

Deployment

Deploy to production with Docker or Kubernetes

Observability

Monitor provider performance and routing