Skip to main content

RouterClientConfigError: chain is required

Pass a supported chain name when you construct RouterClient.

Provide either signer, or privateKey (with chain) for Circle nanopayments

The client needs one signing path. Provide either signer or privateKey. Your signer has no spendable Gateway balance on the chain you pass to RouterClient. Paid requests draw from Circle Gateway, not from USDC sitting in the wallet, and a new address starts at zero.
  • Confirm the balance belongs to the same address your signer signs with.
  • Confirm it sits on the same chain you pass as chain: circle gateway balance --address <address> --chain <chain> --all.
  • Top up that address on that chain. See Fund the signer.

Circle CLI signing timed out

If you use the Circle Agent Wallet signer, confirm that:
  • circle is installed and authenticated
  • the wallet address matches the target wallet
  • your timeout is long enough for the environment

Remote signer returns no signature

Your remote signer must return a JSON object with a signature field that starts with 0x. Check the target endpoint and the selected protocol hint.
  • Use mpp for the default path
  • Use x402 when you explicitly want the x402 path
Also verify that the upstream endpoint actually emits a valid payment challenge.

Need a faster way to isolate the issue

Try the smallest request possible first:
  1. Use a GET request.
  2. Remove custom headers.
  3. Test with the Circle Agent Wallet signer on a machine where circle is logged in, before moving to a remote signer.