Quick Reference
View Account
Returns basic account information.- method:
query - params:
request_type: view_account,finalityORblock_id,account_id
- JSON
- JavaScript
- HTTPie
Example response
Example response
View Account Changes
Returns account changes from transactions in a given account.- method:
changes - params:
changes_type: account_changes,account_ids,finalityORblock_id
- JSON
- JavaScript
- HTTPie
View Access Key
Returns the nonce and permissions of a single access key, given the account and the key’s public key.- method:
query - params:
request_type: view_access_key,finalityORblock_id,account_id,public_key
- JSON
- JavaScript
- HTTPie
Example response
Example response
permission is an object instead of the "FullAccess" string:permission also carries the key’s prepaid balance and number of nonce lanes (num_nonces). A full-access gas key uses GasKeyFullAccess:GasKeyFunctionCall, which is a flat object carrying the same function-call restrictions (allowance, receiver_id, method_names) as FunctionCall, alongside the gas-key balance and num_nonces:view_gas_key_nonces.For a post-quantum
ml-dsa-65 key, pass the full ml-dsa-65: public key in public_key. The network hashes it to locate the on-chain entry, so you query it exactly like an ed25519 or secp256k1 key.View Access Key List
Returns the access keys of an account, each with its nonce and permissions.- method:
query - params:
request_type: view_access_key_list,finalityORblock_id,account_id, optionallimit, optionalafter_key
From nearcore 2.14.0, a request without
limit or after_key fails with TOO_MANY_ACCESS_KEYS if the account has more than 100 keys (the default limit). Use pagination for such accounts. See Paginate the key list.- JSON
- JavaScript
- HTTPie
Example response
Example response
Post-quantum
ml-dsa-65 keys are stored on-chain by hash, so they appear here with an ml-dsa-65-hash: prefix (a base58-encoded 32-byte SHA3-256 digest) rather than the full ml-dsa-65: key. To match an entry to one of your own keys, derive its handle — the SHA3-256 of the domain-separation tag near:ml-dsa-65-pubkey-hash:v1 followed by the raw public key — and compare it against the returned value (hashing the key without that prefix will not match).Paginate the key list
Pagination example
Pagination example
Request the first page with The response has Request the next page with A response without
limit:last_key when more keys remain:after_key set to that last_key. To read every page from the same state, also replace finality with block_id set to the block_hash of the first response:last_key is the last page.View Gas Key Nonces
Returns the current nonce of every parallel nonce lane of a gas key, given the account and the key’s public key. The array is indexed bynonce_index: the first element is lane 0, the second is lane 1, and so on. Use view_access_key to see the gas key’s balance and permission.
- method:
query - params:
request_type: view_gas_key_nonces,finalityORblock_id,account_id,public_key
- JSON
- JavaScript
- HTTPie
Example response
Example response
block_height * 10^6 from when the key was added and advances independently as transactions use it.Querying a key that exists but is not a gas key (or does not exist at all) returns an
UnknownGasKey error.View Contract Code
Returns the contract code (Wasm binary) deployed to the account. The returned code is encoded in base64.- method:
query - params:
request_type: view_code,finalityORblock_id,account_id
- JSON
- JavaScript
- HTTPie
View Global Contract Code by Hash
Returns the global contract’s Wasm binary for an immutable global contract identified by its code hash. The returned code is base64-encoded.- method:
query - params:
request_type: view_global_contract_code,finalityORblock_id,code_hash
- JSON
- JavaScript
- HTTPie
View Global Contract Code by Account
Returns the global contract’s Wasm binary for the global contract published under an account ID. The returned code is base64-encoded.- method:
query - params:
request_type: view_global_contract_code_by_account_id,finalityORblock_id,account_id
- JSON
- JavaScript
- HTTPie
View Contract State
Returns the state (key-value pairs) of a contract based on a key prefix (base64 encoded). Pass an empty string forprefix_base64 to return the entire state.
- method:
query - params:
request_type: view_state,finalityORblock_id,account_id,prefix_base64, optionallimit, optionalafter_key_base64, optionalinclude_proof
- JSON
- JavaScript
- HTTPie
Paginate the state
Pagination example
Pagination example
Request the first page with The response has Request the next page with A response without
limit:last_key when more entries remain. Keys and values are base64:after_key_base64 set to that last_key. To read every page from the same state, also replace finality with block_id set to the block_hash of the first response:last_key is the last page.limit or after_key_base64 is checked against the size of the whole account. This size is the account’s storage usage without the contract code, so a narrower prefix_base64 does not avoid the error. Paginated requests skip this check.
View Contract State Changes
Returns state change details of a contract based on a key prefix (base64 encoded).- method:
changes - params:
changes_type: data_changes,account_ids,key_prefix_base64,finalityORblock_id
- JSON
- JavaScript
- HTTPie
View Contract Code Changes
Returns code changes made when deploying a contract. Change is returned as a base64 encoded WASM file.- method:
changes - params:
changes_type: contract_code_changes,account_ids,finalityORblock_id
- JSON
- JavaScript
- HTTPie
Call a Contract Function
Allows you to call a contract method as a view function (read-only).- method:
query - params:
request_type: call_function,finalityORblock_id,account_id,method_name,args_base64
- JSON
- JavaScript
- HTTPie
Decode the result
Acall_function query returns the contract’s serialized return value as an array of bytes. Decode those bytes as UTF-8 and parse as JSON.
For example, [34, 104, 101, 108, 108, 111, 34] decodes to the JSON string "hello".
Transaction return values
Transaction and receipt outcomes encode successful return values in the base64 stringstatus.SuccessValue. Decode that string, then parse it if the method returns JSON. An empty SuccessValue indicates no return value. Inspect Failure as an execution error.
With a full transaction RPC response saved as response.json:
Error Handling
Query errors come back in four ways. Check for anerror object first, and then for result.error.
Request errors
If the node cannot parse the request parameters, it returns an error witherror.name set to REQUEST_VALIDATION_ERROR and error.cause.name set to PARSE_ERROR. This happens, for example, when args_base64 is not valid base64.
Internal errors
If the node fails internally, it returns an error witherror.name set to INTERNAL_ERROR. The message is in error.cause.info.error_message. view_state also answers this way when include_proof is combined with pagination, or when after_key_base64 is outside the prefix.
Handler errors
For the errors below, the response haserror.name set to HANDLER_ERROR and error.cause.name set to the listed value. For example:
Errors in the result
A view function call that fails while the contract runs does not return anerror object. The node answers with HTTP status 200, and result.error holds a text message:
result.error before you decode result.result. view_access_key for a key that does not exist answers the same way.
Common messages:
- The method does not exist:
wasm execution failed with error: MethodResolveError(MethodNotFound). - The account has no contract: the message starts with
wasm execution failed with error: CompilationError(CodeDoesNotExist.