> This page is for Taurus PROTECT, version v3.54.
> For other versions, use one of these documentation indexes:
> - v3.58 (default): https://taurushq.ferndocs.com/protect-capital/v3.58/llms.txt
> - v3.56: https://taurushq.ferndocs.com/protect-capital/v3.56/llms.txt
> - v3.54: https://taurushq.ferndocs.com/protect-capital/v3.54/llms.txt
> - v3.52: https://taurushq.ferndocs.com/protect-capital/v3.52/llms.txt
> - v3.50: https://taurushq.ferndocs.com/protect-capital/v3.50/llms.txt
> - v3.48: https://taurushq.ferndocs.com/protect-capital/v3.48/llms.txt
> - v3.46: https://taurushq.ferndocs.com/protect-capital/v3.46/llms.txt
> - v3.44: https://taurushq.ferndocs.com/protect-capital/v3.44/llms.txt
> - v3.42: https://taurushq.ferndocs.com/protect-capital/v3.42/llms.txt
> - v3.40: https://taurushq.ferndocs.com/protect-capital/v3.40/llms.txt
> - v3.38: https://taurushq.ferndocs.com/protect-capital/v3.38/llms.txt

> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://taurushq.ferndocs.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://taurushq.ferndocs.com/_mcp/server.

# Blockchains, Network & Currency

Throughout the API you will find several endpoints that accept parameters `blockchain`, `network`,  and `currencyID`. This document outlines their differences and explains how to use them. These three parameters can be a source of confusion especially for EVM-compatible blockchains, or cases where a token is deployed on multiple blockchains (for example, USDT).

> **Warning**
>
> **Deprecated: currency**
>
> You may come across a parameter, `currency`, which is being deprecated and being replaced  with `currencyId`. Avoid using `currency` and instead use by the newer `blockchain`, `network`, and `currencyId` parameters. If you come across an endpoint that only accepts `currency`, we advise to use `currencyId` as the parameter value unless explicitly requested.

## Using these parameters

Our API generally uses three parameters or filters to identify digital assets.

| Parameter  | Description                                                                                                                                                                                                                                                                                                                             | Example                           | Required                      |
| ---------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------- | ----------------------------- |
| CurrencyId | Recommended parameter to use.    A 64-character HEX ID assigned to the asset in your PROTECT instance. This is **unique** to each instance of PROTECT and can be identified by first querying the [currencies](/protect-capital/v3.54/reference/currencies/list) endpoint.    When provided, `blockchain` and `network` can be omitted. | 9a1c7f324fb.......7cb6f3efc9a     | No                            |
| Blockchain | The underlying blockchain protocol. Required whenever currencyId is not provided.    **Important**:  PROTECT  uses `ETH` as the Blockchain value for all EVM compatible blockchains. This is consistent with Metamask's behaviour.                                                                                                      | BTC, ETH, Polygon, Cosmos, etc... | Yes, when currencyId omitted. |
| Network    | The specific network the token runs in. Required whenever currencyId is not provided.                                                                                                                                                                                                                                                   | Mainnet, Testnet, Sepolia         | Yes, when currencyId omitted. |

> **Warning**
>
> **Important: Multi-chain tokens**
>
> Multi-chain tokens are tokens that exist on multiple chains but have the same symbol. For example, USDT is available on Ethereum, Avalanche, Cosmos, Solana, etc... These are separate deployments of USDT accessed via separate contract addresses. This is why `symbol` alone is not specific enough to isolate a specific token.
>
> Each deployment of USDT *does* have retain a unique currencyId which is why this is the recommended parameter to use. Whenever `currencyId` is omitted, both `blockchain` **and** `network` are required to identify a token.

## Examples

Below are a few examples highlighting the differences between Symbol, Blockchain and Network. Note that this is not an exhaustive list and if you are unclear about which values to use in your protect instance, you should query the currencies to identify the respective values for coins enabled in your instance of PROTECT.

| **Digital Asset**                                                     | **Symbol** | **Blockchain** | **Network** |
| --------------------------------------------------------------------- | ---------- | -------------- | ----------- |
| Bitcoin                                                               | `BTC`      | `BTC`          | `mainnet`   |
| Bitcoin                                                               | `BTC`      | `BTC`          | `testnet`   |
| Ether                                                                 | `ETH`      | `ETH`          | `mainnet`   |
| Ether                                                                 | `ETH`      | `ETH`          | `sepolia`   |
| Ether                                                                 | `ETH`      | `ETH`          | `hoodi`     |
| Arbitrum  \_ `blockchain` is ETH since this is  an EVM based token.\_ | `ARB`      | `ETH`          | `arbitrum`  |
| Atom                                                                  | `ATOM`     | `Cosmos`       | `cosmoshub` |
| Avalanche                                                             | `AVAX`     | `Avalanchec`   | `mainnet`   |
| USDT                                                                  | `USDT`     | `AvalancheC`   | `mainnet`   |
| USDT                                                                  | `USDT`     | `ETH`          | `mainnet`   |
| USDT                                                                  | `USDT`     | `Polygon`      | `mainnet`   |
| XDC  *EVM based so blockchain is ETH*                                 | `XDC`      | `ETH`          | `xdc`       |
| XRP                                                                   | `XRP`      | `XRP`          | `mainnet`   |
| XTZ                                                                   | `XTZ`      | `ETH`          | `mainnet`   |

\


## Implications for Developers

* When working with EVM based blockchains, the `blockchain` parameter should be set to`ETH`.
* For any of the endpoints below you must provide either a valid `currencyId` or both `blockchain` and `network` parameters. Supplying only one of these (`blockchain` or `network`) is not sufficient to uniquely identify a currency.
* To find the correct `currencyId` for your query, use the [List currencies](/protect-capital/v3.54/reference/currencies/list) endpoint. Prefer using `currencyId` to identify the specific coin or token on each chain. This ID is explicit and unique across blockchains, networks and assets. CurrencyId is also unique to your instance of protect.
* Set `blockchain` to `ETH` for all EVM-compatible blockchains.
* Currency information about an [address](/protect-capital/v3.54/reference/addresses/get) will also be returned in the `currencyInfo` field. This structure will include the symbol, blockchain and network.

## Endpoints that use blockchain, network, currencyId.

There are several endpoints that accept these parameters:

* [Get blockchain entities](/protect-capital/v3.54/reference/blockchains/list)
* [Get the total balances for the tenant, for each nft collection](/protect-capital/v3.54/reference/balances/list-nft-collection)
* [List fee payers](/protect-capital/v3.54/reference/fee-payers/list))
* [Get the balance of the address](/protect-capital/v3.54/reference/addresses/swift-mt-535-balance-report)
* [Get the daily transactions of the address](/protect-capital/v3.54/reference/addresses/swift-mt-536-transactions-report)
* [Get the proof of reserve of an address](/protect-capital/v3.54/reference/addresses/get-proof-of-reserve)
* [Get auto-transfer event handlers](/protect-capital/v3.54/reference/requests/get-auto-transfer-event-handlers)
* [Export transactions](/protect-capital/v3.54/reference/transactions/export)
* [Export addresses](/protect-capital/v3.54/reference/addresses/export)
* [List Addresses](/protect-capital/v3.54/reference/addresses/list)
* [List Wallets](/protect-capital/v3.54/reference/wallets/list-info)
* [List Transactions](/protect-capital/v3.54/reference/transactions/list)
* [List Fee Payers](/protect-capital/v3.54/reference/fee-payers/list)
* [List Shared Assets (Taurus Network)](/protect-capital/v3.54/reference/taurus-network-sharing/get-shared-assets)
* [List Whitelisted Addresses](/protect-capital/v3.54/reference/whitelisted-addresses/list)
* [List whitelisted addresses for approval](/protect-capital/v3.54/reference/whitelisted-addresses/list-for-approval)
* [List Whitelisted Contracts](/protect-capital/v3.54/reference/contract-whitelisting/list)
* [Create a wallet](/protect-capital/v3.54/reference/wallets/create)
* [Create a whitelisted address](/protect-capital/v3.54/reference/whitelisted-addresses/create)
* [Create whitelisted contracts](/protect-capital/v3.54/reference/contract-whitelisting/create)

## `chain_id` for EVM-based blockchains

There is special configuration for EVM based tokens, which prevents replay attacks for transactions between different EVM-compatible chains. If you manage your PROTECT configuration yourself on-premise, when enabling a new coin in PROTECT, you must specify a `chain_id`for ETH blockchains.

For example, in the `tg-validatord` configuration, to enable XDC you must specify a `chain_id` since XDC is an EVM compatible blockchain. The correct `chain_id` value can be found online for public blockchains, or can be specified in the genesis configuration of a permissionless chain.

```
...
eth/xdc:
	enabled: true
	network: xdc
  native_symbol: XDC
	chain_id: 50  
	...
```