Skip to content

Quickstart

From zero to your first RPC response in about five minutes. You'll do the one-time account setup in the dashboard, then make calls against the gateway.

  • https://dash.lab.au.ro — dashboard (sign up, projects, keys, usage)
  • https://rpc.lab.au.ro — RPC gateway (your app's traffic)

1. Create your account

Go to https://dash.lab.au.ro/signup and register:

  1. Enter your organization name, email and password. Complete the quick anti-bot check.
  2. Confirm your email — click the link we send you. (You can't create an API key until your address is verified.)
  3. In the dashboard, open Projects → New Project, give it a name.
  4. Open the project and create an API key. The full key is shown once — copy it now and store it securely; later it appears only as a prefix.
bash
export YOUR_API_KEY="<the key you just copied>"

Why the browser?

The anti-bot check and email confirmation are one-time and only work in the browser. Once you have a key, everything else is a plain HTTPS call — no SDK or login required. Prefer to provision from code/CI? See Provisioning via the API below.

2. Make your first RPC call

The key goes in the apikey header. Pick your chain — the host is the same.

bash
curl -X POST https://rpc.lab.au.ro/eth \
  -H "apikey: $YOUR_API_KEY" \
  -H 'Content-Type: application/json' \
  -d '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}'
js
const res = await fetch('https://rpc.lab.au.ro/eth', {
  method: 'POST',
  headers: { apikey: process.env.YOUR_API_KEY, 'Content-Type': 'application/json' },
  body: JSON.stringify({ jsonrpc: '2.0', method: 'eth_blockNumber', params: [], id: 1 })
})
console.log(await res.json())
python
import os, requests

res = requests.post(
    "https://rpc.lab.au.ro/eth",
    headers={"apikey": os.environ["YOUR_API_KEY"]},
    json={"jsonrpc": "2.0", "method": "eth_blockNumber", "params": [], "id": 1},
)
print(res.json())
go
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
	"strings"
)

func main() {
	body := `{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}`
	req, _ := http.NewRequest("POST", "https://rpc.lab.au.ro/eth", strings.NewReader(body))
	req.Header.Set("apikey", os.Getenv("YOUR_API_KEY"))
	req.Header.Set("Content-Type", "application/json")
	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	b, _ := io.ReadAll(res.Body)
	fmt.Println(string(b))
}

Response:

json
{"jsonrpc":"2.0","id":1,"result":"0x1821382"}

Bitcoin works the same way — same key, different path:

bash
curl -X POST https://rpc.lab.au.ro/btc \
  -H "apikey: $YOUR_API_KEY" \
  -H 'Content-Type: application/json' \
  -d '{"jsonrpc":"2.0","method":"getmininginfo","params":[],"id":1}'
json
{"jsonrpc":"2.0","result":{"blocks":953380,"difficulty":138955357012247.3,"chain":"main","warnings":[]},"id":1}

3. Watch your usage

Every call is metered in Compute Units. The Usage page in the dashboard shows your consumption per project and per chain — the two calls above cost 1 CU each.

Next steps

  • Endpoints — every chain, URL and protocol
  • Chains — per-chain SDK integration (ethers, bitcoinjs, xrpl.js, …)
  • Rate limits — plan limits and 429 semantics
  • Errors — every error you can meet, layer by layer

Provisioning via the API

For CI/automation you can create projects and API keys programmatically with the JWT from login — these endpoints have no anti-bot check.

Account signup stays in the browser

Creating the account itself (POST /auth/register) requires the anti-bot challenge, which is browser-only — so sign up once at https://dash.lab.au.ro/signup, then automate everything below with your credentials. Full schemas: Management API.

bash
# log in → JWT
TOKEN=$(curl -s -X POST https://api.lab.au.ro/api/v1/auth/login \
  -H 'Content-Type: application/json' \
  -d '{"email":"you@example.com","password":"…"}' | jq -r .token)

# your tenant id
TENANT_ID=$(curl -s https://api.lab.au.ro/api/v1/auth/me \
  -H "Authorization: Bearer $TOKEN" | jq -r .tenant_id)

# create a project
PROJECT_ID=$(curl -s -X POST https://api.lab.au.ro/api/v1/tenants/$TENANT_ID/projects \
  -H "Authorization: Bearer $TOKEN" -H 'Content-Type: application/json' \
  -d '{"name":"ci-project"}' | jq -r .id)

# create a key (the "key" field is returned only once)
curl -s -X POST https://api.lab.au.ro/api/v1/projects/$PROJECT_ID/keys \
  -H "Authorization: Bearer $TOKEN" -H 'Content-Type: application/json' \
  -d '{"description":"ci key"}' | jq -r .key