Connect your app
Once Smart Router is running, your client points at a URL and speaks the same protocol it would speak to any other RPC endpoint — JSON-RPC for Ethereum, REST or gRPC for Cosmos, Tendermint RPC for Tendermint chains. No bespoke SDK, no proprietary protocol.
Smart Router opens one HTTP listener per chain × API interface. Your client connects to that listener and speaks the chain's native protocol. To override per-request behaviour (pin a node, skip cache, request cross-validation), see Request headers.
URL format
| Component | What it is |
|---|---|
<host>:<port> |
a listener you defined in endpoints[] of your YAML config |
<chain-specific-path> |
what the chain itself expects — / for Ethereum JSON-RPC, /cosmos/... for Cosmos REST, /status for Tendermint RPC |
Default ports
The example configs use these ports:
| Chain × interface | Default port |
|---|---|
| Ethereum (JSON-RPC) | 3360 |
| Lava REST | 3360 |
| Lava gRPC | 3361 |
| Lava Tendermint RPC | 3362 |
Each endpoints[] entry has a network-address field (e.g. 0.0.0.0:3360) — change it freely.
Pointing a client at it
TLS
The router listens HTTP. For TLS termination — along with client authentication, CORS, and rate limiting — put a reverse proxy in front (NGINX, HAProxy, or your cloud load balancer); see Authentication → Authenticating your clients.
CORS, auth, rate limiting
CORS is configurable on the router via the --cors-* flags — see the
CLI reference. Client authentication and rate
limiting are not built into the router; put a reverse proxy in front for those — see
Authentication → Authenticating your clients.
Forwarded client IP
X-Forwarded-For is honoured. If you put a proxy in front, set the header upstream and the router will use it for IP-based logic (rate limiting, audit logs).