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"
},
{
"network": "USDT_ETH",
"displayName": "Ethereum",
"tokenSymbol": "USDT",
"tokenStandard": "ERC20",
"chainLogoUrl": "https://pay.helamesh.com/logos/chains/eth.png",
"tokenLogoUrl": "https://pay.helamesh.com/logos/tokens/usdt.png",
"estimatedFeeUsd": "5.00",
"estimatedConfirmationSeconds": 180,
"tagline": "Most widely held โ higher fees"
},
{
"network": "USDT_POLYGON",
"displayName": "Polygon",
"tokenSymbol": "USDT",
"tokenStandard": "Polygon PoS",
"chainLogoUrl": "https://pay.helamesh.com/logos/chains/polygon.png",
"tokenLogoUrl": "https://pay.helamesh.com/logos/tokens/usdt.png",
"estimatedFeeUsd": "0.01",
"estimatedConfirmationSeconds": 30,
"tagline": "Low fees ยท fast finality"
},
{
"network": "USDT_SOL",
"displayName": "Solana",
"tokenSymbol": "USDT",
"tokenStandard": "SPL",
"chainLogoUrl": "https://pay.helamesh.com/logos/chains/sol.png",
"tokenLogoUrl": "https://pay.helamesh.com/logos/tokens/usdt.png",
"estimatedFeeUsd": "0.001",
"estimatedConfirmationSeconds": 10,
"tagline": "Ultra-fast ยท sub-cent fees"
}
]
}
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
MPESAappears only if the store has connected an M-Pesa paybillUSDT_TRONappears only if the store has registered a TRON xpubUSDT_BSC,USDT_ETH, andUSDT_POLYGONappear if the store has registered an EVM xpub (all three share BIP44 coin type 60)USDT_SOLappears only if the store has connected a Solana wallet
Rate limitsโ
| Endpoint | Limit |
|---|---|
GET /v1/chains | 120 req/min per IP |
GET /v1/chains/client/:id | 240 req/min per IP |
Exceeding these returns 429 Too Many Requests.