> ## Documentation Index
> Fetch the complete documentation index at: https://xoxno.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Gateway

> Use the Gateway to call MultiversX RPC endpoints through shard-aware routing and Go proxy-compatible responses.

Use the Gateway to call MultiversX RPC endpoints without choosing the observer shard yourself.

## Use This When

| Need                                                          | Endpoint family                          |
| ------------------------------------------------------------- | ---------------------------------------- |
| Read account, ESDT, NFT, guardian, or storage data            | `/address/*`                             |
| Send, simulate, cost, or track a transaction                  | `/transaction/*`                         |
| Read network config, economics, staking, token, or epoch data | `/network/*`                             |
| Read blocks, hyperblocks, or altered accounts                 | `/block/*`, `/blocks/*`, `/hyperblock/*` |
| Execute smart contract view calls                             | `/vm-values/*`                           |

## Do Not Use This When

| Need                                        | Use instead                                            |
| ------------------------------------------- | ------------------------------------------------------ |
| You need direct P2P transaction propagation | [Relayer broadcast](/relayer/transaction-broadcasting) |
| You need WebSocket event streams            | [Relayer](/relayer/overview)                           |
| You need swap route construction            | [Aggregator](/aggregator/overview)                     |

## Base URL

```text theme={"system"}
https://rust-gateway.xoxno.com
```

Responses follow the MultiversX Gateway shape with `data`, `error`, and `code` fields.

## Flow

<Steps>
  <Step title="Call the compatible path">
    Use either root paths such as `/address/{address}` or Go proxy-compatible `/v1.0/...` paths when migrating existing code.
  </Step>

  <Step title="Let the Gateway route">
    Address-based requests are routed from the bech32 public key. Metachain requests use shard ID `4294967295`.
  </Step>

  <Step title="Check the response body">
    A `200` HTTP response can still contain a non-empty `error` field from the observer. Validate both HTTP status and body fields.
  </Step>

  <Step title="Use historical query params when needed">
    Add `onFinalBlock`, `onStartOfEpoch`, `blockNonce`, `blockHash`, `blockRootHash`, `hintEpoch`, or `forced-shard-id` only on endpoints that support historical state.
  </Step>
</Steps>

## Limits And Behavior

| Area              | Behavior                                                                                |
| ----------------- | --------------------------------------------------------------------------------------- |
| OpenAPI coverage  | 80 endpoints                                                                            |
| Shard routing     | Address-derived for account and transaction paths                                       |
| Metachain routing | Shard ID `4294967295`                                                                   |
| Compatibility     | Root paths and `/v1.0/` paths                                                           |
| Caching           | Short TTLs on selected block, hyperblock, heartbeat, validator, and economics responses |
| Deduplication     | Identical concurrent requests can share one observer call                               |

<Warning>
  For transaction writes, inspect the response body even when HTTP status is `200`. Observer-level rejection can be represented in the JSON `error` field.
</Warning>

## Next Steps

<CardGroup cols={2}>
  <Card title="Quickstart" icon="rocket" href="/gateway/quickstart">
    Query an account, simulate a transaction, and inspect the response.
  </Card>

  <Card title="Shard routing" icon="route" href="/gateway/shard-routing">
    How addresses, metachain requests, and fan-out endpoints are routed.
  </Card>

  <Card title="Caching and deduplication" icon="database" href="/gateway/caching-and-dedup">
    Which calls are cached or coalesced, and how that affects freshness.
  </Card>

  <Card title="API reference" icon="code" href="/api-reference/overview">
    OpenAPI pages for all Gateway endpoint shapes.
  </Card>
</CardGroup>
