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

<AgentInstructions>

## Submitting Feedback

If you encounter incorrect, outdated, or confusing documentation on this page, submit feedback:

POST https://docs.ton.org/feedback

```json
{
  "path": "/ecosystem/api/toncenter/v2/overview",
  "feedback": "Description of the issue"
}
```

Only submit feedback when you have something specific and actionable to report.

</AgentInstructions>

# API v2 overview

export const Aside = ({type = "note", title = "", icon = "", iconType = "regular", children}) => {
  const asideVariants = ["note", "tip", "caution", "danger"];
  const asideComponents = {
    note: {
      outerStyle: "border-sky-500/20 bg-sky-50/50 dark:border-sky-500/30 dark:bg-sky-500/10",
      innerStyle: "text-sky-900 dark:text-sky-200",
      calloutType: "note",
      icon: <svg width="14" height="14" viewBox="0 0 14 14" fill="currentColor" xmlns="http://www.w3.org/2000/svg" className="w-4 h-4 text-sky-500" aria-label="Note">
          <path fill-rule="evenodd" clip-rule="evenodd" d="M7 1.3C10.14 1.3 12.7 3.86 12.7 7C12.7 10.14 10.14 12.7 7 12.7C5.48908 12.6974 4.0408 12.096 2.97241 11.0276C1.90403 9.9592 1.30264 8.51092 1.3 7C1.3 3.86 3.86 1.3 7 1.3ZM7 0C3.14 0 0 3.14 0 7C0 10.86 3.14 14 7 14C10.86 14 14 10.86 14 7C14 3.14 10.86 0 7 0ZM8 3H6V8H8V3ZM8 9H6V11H8V9Z"></path>
        </svg>
    },
    tip: {
      outerStyle: "border-emerald-500/20 bg-emerald-50/50 dark:border-emerald-500/30 dark:bg-emerald-500/10",
      innerStyle: "text-emerald-900 dark:text-emerald-200",
      calloutType: "tip",
      icon: <svg width="11" height="14" viewBox="0 0 11 14" fill="currentColor" xmlns="http://www.w3.org/2000/svg" className="text-emerald-600 dark:text-emerald-400/80 w-3.5 h-auto" aria-label="Tip">
          <path d="M3.12794 12.4232C3.12794 12.5954 3.1776 12.7634 3.27244 12.907L3.74114 13.6095C3.88471 13.8248 4.21067 14 4.46964 14H6.15606C6.41415 14 6.74017 13.825 6.88373 13.6095L7.3508 12.9073C7.43114 12.7859 7.49705 12.569 7.49705 12.4232L7.50055 11.3513H3.12521L3.12794 12.4232ZM5.31288 0C2.52414 0.00875889 0.5 2.26889 0.5 4.78826C0.5 6.00188 0.949566 7.10829 1.69119 7.95492C2.14321 8.47011 2.84901 9.54727 3.11919 10.4557C3.12005 10.4625 3.12175 10.4698 3.12261 10.4771H7.50342C7.50427 10.4698 7.50598 10.463 7.50684 10.4557C7.77688 9.54727 8.48281 8.47011 8.93484 7.95492C9.67728 7.13181 10.1258 6.02703 10.1258 4.78826C10.1258 2.15486 7.9709 0.000106649 5.31288 0ZM7.94902 7.11267C7.52078 7.60079 6.99082 8.37878 6.6077 9.18794H4.02051C3.63739 8.37878 3.10743 7.60079 2.67947 7.11294C2.11997 6.47551 1.8126 5.63599 1.8126 4.78826C1.8126 3.09829 3.12794 1.31944 5.28827 1.3126C7.2435 1.3126 8.81315 2.88226 8.81315 4.78826C8.81315 5.63599 8.50688 6.47551 7.94902 7.11267ZM4.87534 2.18767C3.66939 2.18767 2.68767 3.16939 2.68767 4.37534C2.68767 4.61719 2.88336 4.81288 3.12521 4.81288C3.36705 4.81288 3.56274 4.61599 3.56274 4.37534C3.56274 3.6515 4.1515 3.06274 4.87534 3.06274C5.11719 3.06274 5.31288 2.86727 5.31288 2.62548C5.31288 2.38369 5.11599 2.18767 4.87534 2.18767Z"></path>
        </svg>
    },
    caution: {
      outerStyle: "border-amber-500/20 bg-amber-50/50 dark:border-amber-500/30 dark:bg-amber-500/10",
      innerStyle: "text-amber-900 dark:text-amber-200",
      calloutType: "warning",
      icon: <svg className="flex-none w-5 h-5 text-amber-400 dark:text-amber-300/80" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2" aria-label="Warning">
          <path stroke-linecap="round" stroke-linejoin="round" d="M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z"></path>
        </svg>
    },
    danger: {
      outerStyle: "border-red-500/20 bg-red-50/50 dark:border-red-500/30 dark:bg-red-500/10",
      innerStyle: "text-red-900 dark:text-red-200",
      calloutType: "danger",
      icon: <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" fill="currentColor" className="text-red-600 dark:text-red-400/80 w-4 h-4" aria-label="Danger">
          <path d="M17.1 292c-12.9-22.3-12.9-49.7 0-72L105.4 67.1c12.9-22.3 36.6-36 62.4-36l176.6 0c25.7 0 49.5 13.7 62.4 36L494.9 220c12.9 22.3 12.9 49.7 0 72L406.6 444.9c-12.9 22.3-36.6 36-62.4 36l-176.6 0c-25.7 0-49.5-13.7-62.4-36L17.1 292zm41.6-48c-4.3 7.4-4.3 16.6 0 24l88.3 152.9c4.3 7.4 12.2 12 20.8 12l176.6 0c8.6 0 16.5-4.6 20.8-12L453.4 268c4.3-7.4 4.3-16.6 0-24L365.1 91.1c-4.3-7.4-12.2-12-20.8-12l-176.6 0c-8.6 0-16.5 4.6-20.8 12L58.6 244zM256 128c13.3 0 24 10.7 24 24l0 112c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-112c0-13.3 10.7-24 24-24zM224 352a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z"></path>
        </svg>
    }
  };
  let variant = type;
  let gotInvalidVariant = false;
  if (!asideVariants.includes(type)) {
    gotInvalidVariant = true;
    variant = "danger";
  }
  const iconVariants = ["regular", "solid", "light", "thin", "sharp-solid", "duotone", "brands"];
  if (!iconVariants.includes(iconType)) {
    iconType = "regular";
  }
  return <>
      <div className={`callout my-4 px-5 py-4 overflow-hidden rounded-2xl flex gap-3 border ${asideComponents[variant].outerStyle}`} data-callout-type={asideComponents[variant].calloutType}>
        <div className="mt-0.5 w-4" data-component-part="callout-icon">
          {}
          {icon === "" ? asideComponents[variant].icon : <Icon icon={icon} iconType={iconType} size={14} />}
        </div>
        <div className={`text-sm prose min-w-0 w-full ${asideComponents[variant].innerStyle}`} data-component-part="callout-content">
          {gotInvalidVariant ? <p>
              <span className="font-bold">
                Invalid <code>type</code> passed!
              </span>
              <br />
              <span className="font-bold">Received: </span>
              {type}
              <br />
              <span className="font-bold">Expected one of: </span>
              {asideVariants.join(", ")}
            </p> : <>
              {title && <p className="font-bold">{title}</p>}
              {children}
            </>}
        </div>
      </div>
    </>;
};

The TON Center **API v2** provides developer access to TON Blockchain through [REST](https://en.wikipedia.org/wiki/REST) and [JSON-RPC](https://en.wikipedia.org/wiki/JSON-RPC) endpoints. It allows applications to read blockchain data, run smart contract methods, and send transactions.

API v2 serves as the non-indexed access layer.

Applications interact with the TON blockchain by connecting to a TON node. Since nodes communicate through the binary ADNL protocol, an intermediate layer is needed for web-based access. API v2 provides this bridge by using [`tonlib`](https://github.com/ton-blockchain/ton/tree/master/tonlib/tonlib) to query data from liteservers and exposes it through a standard REST interface.

<Aside type="note">
  Refer to the [Streaming API v2](/ecosystem/api/toncenter/streaming) page for an API that uses Server-Sent Events (SSE) and exposes WebSocket interfaces.
</Aside>

## Base URLs

| API        | Mainnet                        | Testnet                                |
| ---------- | ------------------------------ | -------------------------------------- |
| **API v2** | `https://toncenter.com/api/v2` | `https://testnet.toncenter.com/api/v2` |

## Versioning

API v2 uses semantic versioning in the format `a.b.c` (for example, `2.1.1`):

| Segment   | Example | Meaning                                                             |
| --------- | ------- | ------------------------------------------------------------------- |
| **Major** | `2.x.x` | Fixed at `2` to avoid confusion ("API v2 v3.x.x"). Will not change. |
| **Minor** | `2.1.x` | Implementation variant: `0` = Python version, `1` = C++ version.    |
| **Patch** | `2.1.1` | Bumped with every release on GitHub.                                |

## Typical use cases

* Query account balances and state
* Run get-methods on smart contracts
* Send or broadcast messages
* Retrieve latest transactions and block information

## Endpoints

| Category          | Method                                                                                                        | Description                       |
| ----------------- | ------------------------------------------------------------------------------------------------------------- | --------------------------------- |
| **Accounts**      | [`GET /getAddressInformation`](/ecosystem/api/toncenter/v2/accounts/get-address-information)                  | Get address information           |
| **Accounts**      | [`GET /getExtendedAddressInformation`](/ecosystem/api/toncenter/v2/accounts/get-extended-address-information) | Get extended address information  |
| **Accounts**      | [`GET /getWalletInformation`](/ecosystem/api/toncenter/v2/accounts/get-wallet-information)                    | Get wallet information            |
| **Accounts**      | [`GET /getAddressBalance`](/ecosystem/api/toncenter/v2/accounts/get-address-balance)                          | Get address balance               |
| **Accounts**      | [`GET /getAddressState`](/ecosystem/api/toncenter/v2/accounts/get-address-state)                              | Get address state                 |
| **Accounts**      | [`GET /getTokenData`](/ecosystem/api/toncenter/v2/accounts/get-token-data)                                    | Get token data                    |
| **Blocks**        | [`GET /getMasterchainInfo`](/ecosystem/api/toncenter/v2/blocks/get-masterchain-info)                          | Get masterchain info              |
| **Blocks**        | [`GET /getMasterchainBlockSignatures`](/ecosystem/api/toncenter/v2/blocks/get-masterchain-block-signatures)   | Get masterchain block signatures  |
| **Blocks**        | [`GET /getShardBlockProof`](/ecosystem/api/toncenter/v2/blocks/get-shard-block-proof)                         | Get shard block proof             |
| **Blocks**        | [`GET /getConsensusBlock`](/ecosystem/api/toncenter/v2/blocks/get-consensus-block)                            | Get consensus block               |
| **Blocks**        | [`GET /lookupBlock`](/ecosystem/api/toncenter/v2/blocks/lookup-block)                                         | Lookup block                      |
| **Blocks**        | [`GET /getShards`](/ecosystem/api/toncenter/v2/blocks/get-shards)                                             | Get shards                        |
| **Blocks**        | [`GET /getBlockHeader`](/ecosystem/api/toncenter/v2/blocks/get-block-header)                                  | Get block header                  |
| **Blocks**        | [`GET /getOutMsgQueueSize`](/ecosystem/api/toncenter/v2/blocks/get-outbound-message-queue-size)               | Get outbound message queue size   |
| **Transactions**  | [`GET /getBlockTransactions`](/ecosystem/api/toncenter/v2/transactions/get-block-transactions)                | Get block transactions            |
| **Transactions**  | [`GET /getBlockTransactionsExt`](/ecosystem/api/toncenter/v2/transactions/get-block-transactions-extended)    | Get block transactions (extended) |
| **Transactions**  | [`GET /getTransactions`](/ecosystem/api/toncenter/v2/transactions/get-transactions)                           | Get transactions                  |
| **Transactions**  | [`GET /getTransactionsStd`](/ecosystem/api/toncenter/v2/transactions/get-transactions-standard)               | Get transactions (standard)       |
| **Transactions**  | [`GET /tryLocateTx`](/ecosystem/api/toncenter/v2/transactions/try-locate-transaction)                         | Try locate transaction            |
| **Transactions**  | [`GET /tryLocateResultTx`](/ecosystem/api/toncenter/v2/transactions/try-locate-result-transaction)            | Try locate result transaction     |
| **Transactions**  | [`GET /tryLocateSourceTx`](/ecosystem/api/toncenter/v2/transactions/try-locate-source-transaction)            | Try locate source transaction     |
| **Send**          | [`POST /sendBoc`](/ecosystem/api/toncenter/v2/send/send-boc)                                                  | Send BoC                          |
| **Send**          | [`POST /sendBocReturnHash`](/ecosystem/api/toncenter/v2/send/send-boc-return-hash)                            | Send BoC (return hash)            |
| **Send**          | [`POST /estimateFee`](/ecosystem/api/toncenter/v2/send/estimate-fee)                                          | Estimate fee                      |
| **Run method**    | [`POST /runGetMethod`](/ecosystem/api/toncenter/v2/run-method/run-get-method)                                 | Run get method                    |
| **Run method**    | [`POST /runGetMethodStd`](/ecosystem/api/toncenter/v2/run-method/run-get-method-standard)                     | Run get method (standard)         |
| **Utils**         | [`GET /detectAddress`](/ecosystem/api/toncenter/v2/utils/detect-address)                                      | Detect address                    |
| **Utils**         | [`GET /detectHash`](/ecosystem/api/toncenter/v2/utils/detect-hash)                                            | Detect hash                       |
| **Utils**         | [`GET /packAddress`](/ecosystem/api/toncenter/v2/utils/pack-address)                                          | Pack address                      |
| **Utils**         | [`GET /unpackAddress`](/ecosystem/api/toncenter/v2/utils/unpack-address)                                      | Unpack address                    |
| **Configuration** | [`GET /getConfigParam`](/ecosystem/api/toncenter/v2/configuration/get-config-parameter)                       | Get config parameter              |
| **Configuration** | [`GET /getConfigAll`](/ecosystem/api/toncenter/v2/configuration/get-all-config-parameters)                    | Get all config parameters         |
| **Configuration** | [`GET /getLibraries`](/ecosystem/api/toncenter/v2/configuration/get-libraries)                                | Get libraries                     |
| **RPC**           | [`POST /jsonRPC`](/ecosystem/api/toncenter/v2/rpc/json-rpc-endpoint)                                          | JSON-RPC endpoint                 |

## How to access the API

Developers can access API v2 either through hosted infrastructure managed by TON Center or by running a self-hosted instance.

### Managed service

Hosted access uses TON Center's managed infrastructure instead of running a personal node. This approach enables
immediate network access without setup or maintenance.

Requests without an API key are limited to a default rate of 1 request per second. To increase this limit or access private liteservers, generate an [API key](/ecosystem/api/toncenter/get-api-key) and [choose a plan](/ecosystem/api/toncenter/rate-limit).

### Self-hosted service

Run a self-hosted TON Center API v2 infrastructure for full control over performance and data retention. See the [API v2](https://github.com/toncenter/ton-http-api) repository for setup instructions.
