Skip to main content

Supported Assets & Networks

GStable has built a payment routing network covering multiple blockchains. Unlike traditional payment gateways, we have implemented a complete decoupling of Payment Assets and Settlement Assets.

This means that merchants can specify one asset (such as USDC on Polygon) as the settlement currency, while payers can use any token on any chain supported by the GStable network (such as USDT on Arbitrum) to pay. The system automatically handles cross-chain exchange and routing.

Core Concepts

Before calling the API, please familiarize yourself with GStable's definition of assets:

Token ID Format

To uniquely identify an asset in a multi-chain environment, we use the format network::symbol (all lowercase) as the unique identifier (tokenId) for the asset.

Token IDChainTokenDecimals
ethereum::usdtEthereum Mainnet (Chain ID 1)USDT6
ethereum::usdcEthereum Mainnet (Chain ID 1)USDC6
base::usdcBase (Chain ID 8453)USDC6
arbitrumone::usdtArbitrum One (Chain ID 42161)USDT6
arbitrumone::usdcArbitrum One (Chain ID 42161)USDC6
polygon::usdtPolygon PoS (Chain ID 137)USDT6
polygon::usdcPolygon PoS (Chain ID 137)USDC6
Dynamic Retrieval

The list of supported assets will expand continuously with protocol upgrades. It is recommended that developers dynamically retrieve the latest list via the API rather than hardcoding it.


Routing & Fee Mechanisms

GStable's routing engine automatically calculates fees and routing paths based on the settlement asset chosen by the merchant and the payment asset chosen by the user.

The fee model is mainly divided into two categories:

1. Same-chain Payment

When the asset paid by the user is on the same blockchain as the merchant's settlement asset, the fee is the lowest.

  • Same Token: 0.2% (2000 PPM) - Direct transfer with the same token.
  • Different Token (Swap): 0.3% (3000 PPM) - Requires on-chain token swap.
  • Arrival Time: Extremely fast (depends on block confirmation time, typically < 10 seconds).

2. Cross-chain Payment

When the asset paid by the user is on a different blockchain from the merchant's settlement asset, the system automatically performs cross-chain bridging.

  • Fee Rate: 0.6% (6000 PPM).
  • Arrival Time: Includes source chain confirmation and cross-chain transmission time (typically 30 - 40 seconds).

Limits

To ensure the success rate of routing, each transaction path has minimum and maximum payment amounts.

Same-chain Settlement Limits

  • Range: $0.50 ~ $50,000.00 (e.g., 5,000,000 ~ 50,000,000,000 for USDC/USDT with 6 decimals).

Cross-chain Settlement Limits (by receiving chain)

  • Ethereum: $3,500 ~ $50,000
  • Arbitrum: $10 ~ $50,000
  • Base: $5 ~ $50,000
  • Polygon: $20 ~ $50,000

Payment Capabilities

"Payment Capability" defines: When a merchant decides to receive a certain asset, what can the user use to pay.

Here are examples of major routing paths currently supported on Mainnet:

Settlement Target: Ethereum USDT (ethereum::usdt)

If a merchant specifies currency as ethereum::usdt when creating a Product, payment options available to the user include:

Payment NetworkPayment TokenModeFee Rate
EthereumUSDTSame-chain0.2%
EthereumUSDCSame-chain Swap0.3%
BaseUSDCCross-chain0.6%
ArbitrumUSDCCross-chain0.6%
ArbitrumUSDTCross-chain0.6%
PolygonUSDCCross-chain0.6%
PolygonUSDTCross-chain0.6%

Settlement Target: Base USDC (base::usdc)

If a merchant wishes to receive USDC on Base, payment options available to the user include:

Payment NetworkPayment TokenModeFee Rate
BaseUSDCSame-chain0.2%
EthereumUSDTCross-chain0.6%
EthereumUSDCCross-chain0.6%
ArbitrumUSDCCross-chain0.6%
ArbitrumUSDTCross-chain0.6%
PolygonUSDCCross-chain0.6%
PolygonUSDTCross-chain0.6%

Settlement Target: Arbitrum USDC (arbitrumone::usdc)

If a merchant wishes to receive USDC on Arbitrum, payment options available to the user include:

Payment NetworkPayment TokenModeFee Rate
ArbitrumUSDCSame-chain0.2%
ArbitrumUSDTSame-chain Swap0.3%
EthereumUSDTCross-chain0.6%
EthereumUSDCCross-chain0.6%
BaseUSDCCross-chain0.6%
PolygonUSDCCross-chain0.6%
PolygonUSDTCross-chain0.6%

Settlement Target: Polygon USDC (polygon::usdc)

If a merchant specifies currency as polygon::usdc when creating a Product, payment options available to the user include:

Payment NetworkPayment TokenModeFee Rate
PolygonUSDCSame-chain0.2%
PolygonUSDTSame-chain Swap0.3%
EthereumUSDTCross-chain0.6%
EthereumUSDCCross-chain0.6%
BaseUSDCCross-chain0.6%
ArbitrumUSDCCross-chain0.6%
ArbitrumUSDTCross-chain0.6%

Capability Query API

Since supported networks and trading pairs are frequently updated, GStable provides a public interface to query the current system's complete routing capabilities.

Get Capability Configuration

GET [/api/v1/common/capability](https://api.gstable.io/public/api/v1/capabilities/all)

This interface returns all currently supportedTokens and a detailed paymentCapabilities matrix, containing the latest fee rates (feeRatePPM) and limit configurations.

Response Example:

{
"code": 0,
"message": "",
"data": {
"supportedTokens": [
{
"tokenId": "ethereum::usdt",
"symbol": "USDT",
"chainId": "1",
"decimals": 6
},
{
"tokenId": "ethereum::usdc",
"symbol": "USDC",
"chainId": "1",
"decimals": 6
},
{
"tokenId": "base::usdc",
"symbol": "USDC",
"chainId": "8453",
"decimals": 6
},
{
"tokenId": "arbitrumone::usdt",
"symbol": "USDT",
"chainId": "42161",
"decimals": 6
},
{
"tokenId": "arbitrumone::usdc",
"symbol": "USDC",
"chainId": "42161",
"decimals": 6
},
{
"tokenId": "polygon::usdt",
"symbol": "USDT",
"chainId": "137",
"decimals": 6
},
{
"tokenId": "polygon::usdc",
"symbol": "USDC",
"chainId": "137",
"decimals": 6
}
],
"paymentCapabilities": {
"polygon::usdc": {
"POL": [
{
"tokenId": "polygon::usdc",
"crosschain": false,
"feeRatePPM": 2000, // 0.2% - Same-chain, same token
"minPaymentValue": 5000000, // $5 minimum
"maxPaymentValue": 50000000000 // $50,000 maximum
},
{
"tokenId": "polygon::usdt",
"crosschain": false,
"feeRatePPM": 3000, // 0.3% - Same-chain, swap required
"minPaymentValue": 5000000,
"maxPaymentValue": 50000000000
}
],
"ARB": [
{
"tokenId": "arbitrumone::usdc",
"crosschain": true,
"feeRatePPM": 6000, // 0.6% - Cross-chain
"minPaymentValue": 10000000, // $10 minimum for Arbitrum
"maxPaymentValue": 50000000000
}
],
"ETH": [
{
"tokenId": "ethereum::usdc",
"crosschain": true,
"feeRatePPM": 6000,
"minPaymentValue": 20000000, // $20 minimum for Polygon
"maxPaymentValue": 50000000000
}
]
}
}
}
}
Frontend Integration

If you are building a custom frontend, you should call this interface to render the user's "Payment Method Selector" and display estimated fees to the user based on feeRatePPM.