Curl Quickstart
Free tier needs no key — just curl an enabled chain. Add your CU key for production.
Free (no key, rate-limited):
curl https://cosmos.rpc.uquad.org/status
curl https://akash.rpc.uquad.org/cosmos/base/tendermint/v1beta1/syncing
Production (CU key, dedicated throughput):
curl \
-H "X-Wallet-Address: <wallet>" \
-H "X-API-Key: <api-key>" \
https://cosmos.rpc.uquad.org/status
JavaScript Quickstart
Use this pattern in a backend service or local script. Keep API keys out of public browser code.
const endpoint = 'https://cosmos.rpc.uquad.org/status';
const response = await fetch(endpoint, {
headers: {
'X-Wallet-Address': process.env.UQUAD_RPC_WALLET,
'X-API-Key': process.env.UQUAD_RPC_KEY
}
});
if (!response.ok) {
throw new Error(`RPC request failed: ${response.status}`);
}
console.log(await response.json());
Go Quickstart
A minimal authenticated HTTP request. Handle retries, status-gated lanes, and CU budgeting in your own integration.
package main
import (
"fmt"
"io"
"net/http"
"os"
)
func main() {
req, err := http.NewRequest("GET", "https://cosmos.rpc.uquad.org/status", nil)
if err != nil { panic(err) }
req.Header.Set("X-Wallet-Address", os.Getenv("UQUAD_RPC_WALLET"))
req.Header.Set("X-API-Key", os.Getenv("UQUAD_RPC_KEY"))
resp, err := http.DefaultClient.Do(req)
if err != nil { panic(err) }
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(resp.Status)
fmt.Println(string(body))
}