CAIP-27: JSON-RPC Provider Request Source

Author Pedro Gomes
Status Draft
Type Standard
Created 2020-12-12
Updated 2022-11-16
Requires ["2", "25", "171"]

Simple Summary

CAIP-27 defines a standard JSON-RPC method for requesting methods mapped to a target chain.


This proposal has the goal to define a standard method for decentralization applications to request JSON-RPC methods from cryptocurrency wallets directed to a given target chain.


The motivation comes from the ambiguity that comes from interfacing with multi-chain cryptocurrency wallets which may support the same methods for different chains and there is no indication of the chain that is being targeted by the decentralized application.


The JSON-RPC provider is able to make one or more JSON-RPC requests accompanied by a CAIP-2 compatible chainId and a keyed to a specific CAIP-171 session.


The application would interface with a provider to make request as follows:

  "id": 1,
  "jsonrpc": "2.0",
  "method": "caip_request",
  "params": {
    "chainId": "eip155:1",
    "session": "0xdeadbeef",
    "request": {
      "method": "personal_sign",
      "params": [

The JSON-RPC method is labelled as caip_request and expects three parameters:

  • chainId - CAIP-2-defined chainId to identify both a namespace and a specific chain or network within it
  • session - CAIP-171 SessionToken to identify the session opened or updated by a CAIP-25 interaction.
  • request - an object containing the fields:
    • method - JSON-RPC method to request
    • params - JSON-RPC parameters to request


The wallet will respond to the requested with the targeted chain connection and it will return a response with a success result or error message.

Copyright and related rights waived via CC0.


Please cite this document as:

Pedro Gomes, "CAIP-27: JSON-RPC Provider Request [DRAFT]," Chain Agnostic Improvement Proposals, no. 27, December 2020. [Online serial]. Available: