Skip to main content

Rails API

Use these endpoints to fetch rail metadata โ€” logos, fees, confirmation times โ€” for building custom checkout UIs or displaying rail info on your own pages.

GET /v1/chainsโ€‹

Returns all rails HelaMesh supports globally. No auth required.

curl https://api.helamesh.com/v1/chains
200 OK
{
"chains": [
{
"network": "MPESA",
"displayName": "M-Pesa",
"tokenSymbol": "KES",
"chainLogoUrl": "https://pay.helamesh.com/logos/mpesa.png",
"estimatedConfirmationSeconds": 20,
"tagline": "Pay with Safaricom M-Pesa"
},
{
"network": "USDT_TRON",
"displayName": "TRON",
"tokenSymbol": "USDT",
"tokenStandard": "TRC20",
"chainLogoUrl": "https://pay.helamesh.com/logos/chains/tron.png",
"tokenLogoUrl": "https://pay.helamesh.com/logos/tokens/usdt.png",
"estimatedFeeUsd": "0.30",
"estimatedConfirmationSeconds": 60,
"tagline": "Most common for Binance users"
},
{
"network": "USDT_BSC",
"displayName": "BNB Smart Chain",
"tokenSymbol": "USDT",
"tokenStandard": "BEP20",
"chainLogoUrl": "https://pay.helamesh.com/logos/chains/bsc.png",
"tokenLogoUrl": "https://pay.helamesh.com/logos/tokens/usdt.png",
"estimatedFeeUsd": "0.10",
"estimatedConfirmationSeconds": 45,
"tagline": "Cheapest โ€” recommended"
}
]
}

GET /v1/chains/client/:clientIdโ€‹

Returns only the rails a specific store can receive on, based on its configuration (xpubs registered, M-Pesa connected). Requires a publishable key โ€” browser-safe.

curl "https://api.helamesh.com/v1/chains/client/CLIENT_ID?pk=pk_test_YOUR_KEY"
200 OK
{
"clientId": "65f8a1b2c3d4e5f6a7b8c9d0",
"clientName": "My Store",
"environment": "test",
"availableChains": [
{
"network": "MPESA",
"displayName": "M-Pesa",
"tokenSymbol": "KES",
"chainLogoUrl": "https://pay.helamesh.com/logos/mpesa.png",
"estimatedConfirmationSeconds": 20,
"tagline": "Pay with Safaricom M-Pesa"
},
{
"network": "USDT_TRON",
"displayName": "TRON",
"tokenSymbol": "USDT",
"tokenStandard": "TRC20",
"chainLogoUrl": "https://pay.helamesh.com/logos/chains/tron.png",
"tokenLogoUrl": "https://pay.helamesh.com/logos/tokens/usdt.png",
"estimatedFeeUsd": "0.30",
"estimatedConfirmationSeconds": 60,
"tagline": "Most common for Binance users"
}
]
}

The environment field tells you whether the store is in test or live mode โ€” useful for rendering a TEST badge in your UI without a separate request.

Rail availability
  • MPESA appears only if the store has connected an M-Pesa paybill
  • USDT_TRON appears only if the store has registered a TRON xpub
  • USDT_BSC appears only if the store has registered a BSC xpub

Rate limitsโ€‹

EndpointLimit
GET /v1/chains120 req/min per IP
GET /v1/chains/client/:id240 req/min per IP

Exceeding these returns 429 Too Many Requests.