Skip to content

System

Liveness, server time and the network configuration your integration reads at startup. Guidance on using the configuration is in network configuration; this page states the shapes.

Health

GET/v1/healthno key required

Returns the service status. This endpoint takes no key, so send no Authorization header.

bash
curl https://sandbox-api.myrt.money/v1/health
ts
const res = await fetch("https://sandbox-api.myrt.money/v1/health");
const health = await res.json();
python
import requests

res = requests.get("https://sandbox-api.myrt.money/v1/health", timeout=30)
health = res.json()

Response 200 OK

json
{
  "ok": true,
  "service": "myrt-api",
  "apiVersion": "v1",
  "status": "healthy",
  "timestamp": "2026-09-10T04:12:33.918Z"
}

Errors

This endpoint returns no application errors.

Server time

GET/v1/system/timeno key required

Returns the current server time in UTC. This endpoint takes no key, so send no Authorization header. Use it to detect clock skew before verifying webhook timestamps.

bash
curl https://sandbox-api.myrt.money/v1/system/time
ts
const res = await fetch("https://sandbox-api.myrt.money/v1/system/time");
const time = await res.json();
python
import requests

res = requests.get("https://sandbox-api.myrt.money/v1/system/time", timeout=30)
time = res.json()

Response 200 OK

json
{
  "ok": true,
  "serverTime": "2026-09-10T04:12:33.918Z",
  "timezone": "UTC"
}

Errors

This endpoint returns no application errors.

Configuration

GET/v1/configconfig:read

Returns the chains MYRT is issued on, the token decimals and a map of the order endpoints. Read it once at startup and cache it for the process lifetime. A chainId you send in a request must be one of chains[].chainId; omit chainId to use defaultChainId.

bash
curl https://sandbox-api.myrt.money/v1/config \
  -H "Authorization: Bearer $MYRT_API_KEY"
ts
const res = await fetch("https://sandbox-api.myrt.money/v1/config", {
  headers: { Authorization: `Bearer ${process.env.MYRT_API_KEY}` },
});
const config = await res.json();
python
import os, requests

res = requests.get(
    "https://sandbox-api.myrt.money/v1/config",
    headers={"Authorization": f"Bearer {os.environ['MYRT_API_KEY']}"},
    timeout=30,
)
config = res.json()

Response 200 OK

json
{
  "ok": true,
  "apiVersion": "v1",
  "defaultChainId": 1,
  "decimals": 6,
  "chains": [
    {
      "key": "ethereum",
      "name": "Ethereum",
      "chainId": 1,
      "caip2": "eip155:1",
      "nativeCurrency": { "name": "Ether", "symbol": "ETH", "decimals": 18 },
      "explorerBaseUrl": "https://etherscan.io",
      "explorerAddressUrl": "https://etherscan.io/address/",
      "explorerTxUrl": "https://etherscan.io/tx/",
      "confirmations": 15,
      "myrt": { "address": "0x...", "decimals": 6, "name": "MYR Stablecoin", "symbol": "MYRT" }
    }
  ],
  "endpoints": {
    "mints": "/v1/mints",
    "redeems": "/v1/redeems",
    "transfers": "/v1/transfers",
    "balances": "/v1/balances/{walletAddress}",
    "transactions": "/v1/transactions/{referenceId}"
  }
}

Errors

CodeHTTP
UNAUTHORIZED401
SCOPE_DENIED403

See errors for the meaning of each code.

Tokens

GET/v1/tokensconfig:read

Returns the MYRT token contract on each chain. Read tokenAddress from the host you are talking to rather than hardcoding it; sandbox and live run on different chains.

bash
curl https://sandbox-api.myrt.money/v1/tokens \
  -H "Authorization: Bearer $MYRT_API_KEY"
ts
const res = await fetch("https://sandbox-api.myrt.money/v1/tokens", {
  headers: { Authorization: `Bearer ${process.env.MYRT_API_KEY}` },
});
const tokens = await res.json();
python
import os, requests

res = requests.get(
    "https://sandbox-api.myrt.money/v1/tokens",
    headers={"Authorization": f"Bearer {os.environ['MYRT_API_KEY']}"},
    timeout=30,
)
tokens = res.json()

Response 200 OK

json
{
  "ok": true,
  "tokens": [
    {
      "symbol": "MYRT",
      "name": "MYR Stablecoin",
      "chainId": 1,
      "network": "Ethereum",
      "tokenAddress": "0x...",
      "decimals": 6,
      "explorerUrl": "https://etherscan.io/address/0x..."
    }
  ]
}

Errors

CodeHTTP
UNAUTHORIZED401
SCOPE_DENIED403

See errors for the meaning of each code.

MYRT is a 1:1 Ringgit-backed stablecoin on Ethereum.