---
title: "Returns a runtime account."
method: GET
path: "/{runtime}/accounts/{address}"
---

# Returns a runtime account.

`GET /{runtime}/accounts/{address}`

## Path parameters

- `runtime` 'emerald' | 'sapphire' | 'pontusxtest' | 'pontusxdev' | 'cipher', required
- `address` string, required

## Response `200`

A JSON object containing a runtime layer account.

- RuntimeAccount
  - `address` string, required — The staking address for this account.
  - `address_preimage` AddressPreimage — The data from which a consensus-style address (`oasis1...`) was derived. Notably, for EVM runtimes like Sapphire, this links the Oasis address and the Ethereum address. Oasis addresses are derived from a piece of data, such as an ed25519 public key or an Ethereum address. For example, [this](https://github.com/oasisprotocol/oasis-sdk/blob/b37e6da699df331f5a2ac62793f8be099c68469c/client-sdk/go/helpers/address.go#L90-L91) is how an Ethereum is converted to an Oasis address. The type of underlying data usually also determines how the signatures for this address are verified. Consensus supports only "staking addresses" (`context="oasis-core/address: staking"` below; always ed25519-backed). Runtimes support all types. This means that every consensus address is also valid in every runtime. For example, in EVM runtimes, you can use staking addresses, but only with Oasis tools (e.g. a wallet); EVM contracts such as ERC20 tokens or tools such as Metamask cannot interact with staking addresses.
    - `context` 'oasis-core/address: staking' | 'oasis-runtime-sdk/address: secp256k1eth' | 'oasis-runtime-sdk/address: sr25519' | 'oasis-runtime-sdk/address: multisig' | 'oasis-runtime-sdk/address: module' | 'oasis-runtime-sdk/address: runtime', required
    - `context_version` integer — Version of the `context`.
    - `address_data` string, byte, required — The base64-encoded data from which the Oasis address was derived. When `context = "oasis-runtime-sdk/address: secp256k1eth"`, this is the Ethereum address (in base64, not hex!).
  - `balances` RuntimeSdkBalance[], required — The balance(s) of this account in this runtime. Most runtimes use only one denomination, and thus produce only one balance here. These balances do not include "layer (n+1) tokens", i.e. tokens managed by smart contracts deployed in this runtime. For example, in EVM-compatible runtimes, this does not include ERC-20 tokens
    - `balance` string, bigint, required
    - `token_symbol` string, required — The token ticker symbol. Unique across all oasis-sdk tokens in the same runtime.
    - `token_decimals` integer, required — The number of decimals of precision for this token.
  - `evm_contract` RuntimeEvmContract
    - `creation_tx` string — The Oasis cryptographic hash of the transaction that created the smart contract. Can be omitted for contracts that were created by another contract, as opposed to a direct `Create` call.
    - `eth_creation_tx` string — The Ethereum transaction hash of the transaction in `creation_tx`. Encoded as a lowercase hex string.
    - `creation_bytecode` string, byte — The creation bytecode of the smart contract. This includes the constructor logic and the constructor parameters. When run, this code generates the runtime bytecode. Can be omitted for contracts that were created by another contract, as opposed to a direct `Create` call.
    - `runtime_bytecode` string, byte — The runtime bytecode of the smart contract. This is the code stored on-chain that describes a smart contract. Every contract has this info, but Nexus fetches it separately, so the field may be missing for very fresh contracts (or if the fetching process is stalled).
    - `gas_used` integer, required — The total amount of gas used to create or call this contract.
    - `verification` RuntimeEvmContractVerification
      - `verification_level` 'partial' | 'full' — The level of verification of a smart contract, as defined by Sourcify. An absence of this field means that the contract has not been verified. See also https://docs.sourcify.dev/docs/full-vs-partial-match/
      - `compilation_metadata` object — The smart contract's [metadata.json](https://docs.soliditylang.org/en/latest/metadata.html) file in JSON format as defined by Solidity. Includes the smart contract's [ABI](https://docs.soliditylang.org/en/develop/abi-spec.html).
      - `source_files` object[] — Array of all contract source files, in JSON format as returned by [Sourcify](https://sourcify.dev/server/api-docs/#/Repository/get_files_any__chain___address_).
  - `evm_balances` RuntimeEvmBalance[], required — The balances of this account in each runtime, as managed by EVM smart contracts (notably, ERC-20). NOTE: This field is limited to 1000 entries. If you need more, please let us know in a GitHub issue.
    - `balance` string, bigint, required
    - `token_contract_addr` string, required — The Oasis address of this token's contract.
    - `token_contract_addr_eth` string, required — The EVM address of this token's contract.
    - `token_symbol` string — The token ticker symbol. Not guaranteed to be unique across distinct EVM tokens.
    - `token_name` string — The name of the token. Not guaranteed to be unique across distinct EVM tokens.
    - `token_type` 'ERC20' | 'ERC721', required — The type of a EVM token.
    - `token_decimals` integer, required — The number of decimals of precision for this token.
  - `stats` AccountStats, required
    - `total_sent` string, bigint
    - `total_received` string, bigint
    - `num_txns` integer, required — The total number of transactions this account was involved with.

## Other responses

- `400` — A human-readable error message.
- `404` — An empty response indicating that the requested resource was not found.
- `500` — A human-readable error message.

---

[API](https://skmtc.net/oasisprotocol/apis/oasis-nexus-api-v1.md) · [All operations](https://skmtc.net/oasisprotocol/apis/oasis-nexus-api-v1/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/oasisprotocol/oasis-nexus-api-v1/versions/a841981f8ee1/schema)
