Skip to content

relayer_getCapabilities returns {} on unsupported chains — return an explicit unsupported signal (complements 1Shot-API-Examples#1) #2

Description

@beautifulrem

What happened

While integrating the Permissionless Relayer for the MetaMask Dev Cook-Off, we called:

{ "method": "relayer_getCapabilities", "params": ["84532"] }

…and got back an empty object {}. No error, no message. We spent a debugging session checking our request shape, the chain-id encoding (string vs number), and whether the relayer was down — before concluding by elimination that the permissionless relayer simply doesn't serve Base Sepolia, and redesigning our demo around an opt-in mainnet leg that night.

Related: 1Shot-API/1Shot-API-Examples#1 asks for a clear testnet vs mainnet endpoint matrix in the docs — fully agree, and this issue proposes the complementary API-level fix so integrators get the answer at runtime too.

Suggestion

Make "unsupported chain" an explicit signal rather than an empty object:

{
  "84532": { "supported": false, "reason": "the permissionless relayer serves mainnet chains only" }
}

or a top-level supportedChains: ["8453", …] field in the capabilities response. Either is a small change, and it converts a half-day of head-scratching into a one-glance answer — especially for hackathon teams who reach for testnets first by reflex.

Context: the integration this came from (mainnet castVote relay, 7702 burner upgrade through the relayer, webhook status receiver with Ed25519/JWKS verification) is open source here: https://github.com/beautifulrem/regent (live demo: https://mandate-app-murex.vercel.app)

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions