Config and RPC Policy
Configuration precedence
- Explicit
createClient({...})runtime config. - Environment variable helpers (if your app maps env to runtime config).
- SDK defaults/presets.
Runtime mode requirements
apimode:- requires
api.baseUrl
- requires
contractsmode:- requires
contracts.defaultNetwork+ network RPC/contracts
- requires
hybridmode:- combines API and contract configuration
Default RPC policy
What this does: provides fast bootstrap with public RPC endpoints.
- SDK presets include
public-defaultRPC URLs. - In production, set dedicated provider URLs per network.
- SDK warns when production-like environments rely on public defaults.
Expected result: local/dev setup works immediately, production remains configurable and explicit.
Production recommendation
Use explicit contract network config:
const sdk = createClient({
mode: 'contracts',
contracts: {
defaultNetwork: 'eip155:56',
networks: {
'eip155:56': {
rpc: {
http: [process.env.BNB_DEDICATED_RPC!],
quality: 'recommended-production',
},
contracts: {
router: process.env.BNB_ROUTER!,
registry: process.env.BNB_REGISTRY!,
sessionStore: process.env.BNB_SESSION_STORE!,
subscriptions: process.env.BNB_SUBSCRIPTIONS!,
},
},
},
},
});
Common errors and fixes
- RPC timeout spikes: add failover endpoints.
- Wrong chain selected: use CAIP-2 IDs (
eip155:56, etc.) to avoid ambiguity. - Contract mismatch: keep addresses aligned with deployed environment.