Please note: The NEAR RPC standard is still under review and specifications may change. Implementation details and method signatures are subject to updates.
The method names below are based on the Bridge Wallets Standard for NEAR.

near_getAccounts

Retrieve all accounts visible to the session. publicKey references the underlying FullAccess key linked to each account.

Parameters

none

Returns

1.Array - Array of accounts: 1.1. Object 1.1.1. accountId : String - The account name to which the publicKey corresponds as plain text 1.1.2. publicKey : String - The public counterpart of the key used to sign, expressed as a string with format <key-type>:<base58-key-bytes>

Example

// Request
{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "near_getAccounts",
  "params": {}
}

// Result
{
  "id": 1,
  "jsonrpc": "2.0",
  "result": [{
    "accountId": "alice.near",
    "publicKey": "ed25519:DmnRVNb89cLKZY1cH1Zcr3rxMVD9r1cVfnDac7RFwM94"
  }]
}

near_signIn

For dApps that often sign gas-only transactions, FunctionCall access keys can be created for one or more accounts to greatly improve the UX. While this could be achieved with signTransactions, it suggests a direct intention that a user wishes to sign in to a dApp’s smart contract.

Parameters

  1. Object - Sign In parameters: 1.1. permission : Object - Function call key permission parameters 1.1.1. receiverId : String - smart contract for which the function call access key will be created 1.1.2. methodNames : Array<String> - list of methods that can be called on the smart contract 1.2. accounts : Array - list of accounts for which a FunctionCall access key will be added: 1.2.1. Object - Account 1.2.1.1. accountId : String - The account name to which the publicKey corresponds as plain text 1.2.1.2. publicKey : String - The public counterpart of the key used to sign, expressed as a string with format <key-type>:<base58-key-bytes>

Returns

void

Example

// Request
{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "near_signIn",
  "params": {
    "permission": {
      "receiverId": "guest-book.testnet",
      "methodNames": []
    },
    "accounts": [{
        "accountId": "alice.near",
        "publicKey": "ed25519:DmnRVNb89cLKZY1cH1Zcr3rxMVD9r1cVfnDac7RFwM94"
    }]
  }
}

near_signOut

Delete one or more FunctionCall access keys created with signIn. While this could be achieved with signTransactions, it suggests a direct intention that a user wishes to sign out from a dApp’s smart contract.

Parameters

1.Array - Array of accounts: 1.1. Object 1.1.1. accountId : String - The account name to which the publicKey corresponds as plain text 1.1.2. publicKey : String - The public counterpart of the key used to sign, expressed as a string with format <key-type>:<base58-key-bytes>

Returns

void

Example

// Request
{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "near_signOut",
  "params": {
    "accounts": [{
      "accountId": "alice.near",
      "publicKey": "ed25519:DmnRVNb89cLKZY1cH1Zcr3rxMVD9r1cVfnDac7RFwM94"
    }]
  }
}

near_signTransaction

Sign a transaction. It makes use of near-api-js to enable interoperability with dApps that will already use it for constructing transactions and communicating with RPC endpoints. Transaction passed to signTransaction must be encoded.

Parameters

  1. Object - Signing parameters: 1.1. transaction : Uint8Array - Encoded Transaction via transactions.Transaction.encode()

Returns

The result of signTransaction and is encoded SignedTransaction model.
  1. Uint8Array - Encoded SignedTransaction via transactions.SignedTransaction.encode()

Example

// Request
{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "near_signTransaction",
  "params": {
    "transaction": {
      "type": "Buffer",
      "data": [32, 0, 0, 0, 100, 101, 118, 45, 49, 54, 55, 49, 51, 56, 55, 51, 57, 56 ...]
    }
  }
}

// Result
{
  "id": 1,
  "jsonrpc": "2.0",
  "result": {
    "type": "Buffer",
    "data": [32, 0, 0, 0, 100, 101, 118, 45, 49, 54, 55, 49, 51, 56, 55, 51, 57, 56 ...]
  }
}

near_signTransactions

Sign a list of transactions. It makes use of near-api-js to enable interoperability with dApps that will already use it for constructing transactions and communicating with RPC endpoints. Transactions passed to signTransactions must be encoded.

Parameters

  1. Array<Object> - Signing parameters: 1.1. transactions : Array<Uint8Array> - Array of Encoded Transaction via transactions.Transaction.encode()

Returns

The result of signTransactions and are encoded SignedTransaction models.
  1. Array<Uint8Array> - Array of Encoded SignedTransaction via transactions.SignedTransaction.encode()

Example

// Request
{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "near_signTransactions",
  "params": {
  "transactions": [
      { "type": "Buffer", "data": [32, 0, 0, 0, 100, 101, 118, 45, 49, 54, 55, 49, 53, 52, 49, 55, 56, 57, 51, 50 ...] },
      { "type": "Buffer", "data": [32, 0, 0, 0, 100, 101, 118, 45, 49, 54, 55, 49, 53, 52, 49, 55, 56, 57, 51, 50 ...] }
    ]
  }
}

// Result
{
  "id": 1,
  "jsonrpc": "2.0",
  "result": [
    { "type": "Buffer", "data": [32, 0, 0, 0, 100, 101, 118, 45, 49, 54, 55, 49, 53, 52, 49, 55, 56, 57, 51, 50 ...] },
    { "type": "Buffer", "data": [32, 0, 0, 0, 100, 101, 118, 45, 49, 54, 55, 49, 53, 52, 49, 55, 56, 57, 51, 50 ...] }
  ]
}