Fees
Overview
One of the primary goals of the Radius Network is to offer low, predictable fees for stablecoin transfers. Currently, stablecoin transfers occur in SBC and are executed as an ERC-20 transaction. The average cost of a stablecoin transfer on Radius is 0.0001 USD.
Radius Network fees are paid in RUSD, however it is not required to hold RUSD to participate on the network. For users who have SBC but do not have RUSD, Radius Network conducts a free exchange of SBC for RUSD as part of a single transaction, via the Turnstile. The exchange rate between SBC and RUSD is designed to be 1:1 1.
| Parameter | Value |
|---|---|
| Target SBC Transfers per 1 USD | 100,000 |
| Gas Price | 9.8599881e-11 RUSD |
Turnstile
For a caller with SBC but insufficient RUSD to cover the gas cost of the transaction, an automatic, zero-fee conversion is conducted prior to the transaction being executed 2.
Currently, Turnstile execution consumes $0.1$ SBC and returns $0.1$ RUSD. This is sufficient to cover the fees of 10,000 standard SBC transactions. In the scenario where the gas cost of the transaction is greater than $0.1$ RUSD, the turnstile will execute with a multiple of the minimum conversion amount to cover the cost.
| Parameter | Value |
|---|---|
| Turnstile Minimum Conversion Amount | 0.1 SBC |
| Turnstile Conversion Amount per Execution | 0.1 RUSD |
The turnstile executes the transfer function on the SBC contract. Log events from execution of the turnstile are contained in the transaction receipt as a result. The call to transfer on the SBC contract does not contribute to the gas cost of the transaction for the caller. Turnstile execution gasUsed is also not added to the receipt's gasUsed field either.
The turnstile is not executed in cases of pure RUSD transfers.
Modified RPC Behavior
This feature is enabled and designed to be transparent for all users. For developers familiar with the Ethereum JSON-RPC API, there are some differences in behavior caused by the Turnstile, which are worth noting.
eth_sendRawTransaction
When a user submits a signed transaction:
- If they have enough RUSD to cover the gas cost of the transaction, it executes normally
- If they lack RUSD but have sufficient SBC, the Turnstile executes inline
- The transaction receipt will contain log events for the SBC conversions
eth_call and eth_estimateGas
When you simulate or estimate transaction costs:
- If a user would lack RUSD to complete the operation, but has sufficient SBC, the simulation includes Turnstile execution
eth_getBalance
When wallets check user balances:
- The returned balance includes native tokens the user currently holds plus the native token equivalent of their convertible stablecoins
- The balance reflects the total gas-paying power available to the user
rad_getBalanceRaw
- When you want to know the balance of an address in RUSD without simulating turnstile conversion, you can use the
rad_getBalanceRawmethod.
curl -X POST https://rpc.testnet.radiustech.xyz \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"rad_getBalanceRaw","params":["0x742d35Cc6634C0532925a3b844Bc9e7595f2bD18"],"id":1}'
Response:
```json
{
"jsonrpc": "2.0",
"id": 1,
"result": "0x1fe9202d5dc751b9"
}Footnotes
-
However, it is worth noting that RUSD is always represented with 18-decimal places, whereas SBC is 6-decimal places. This may be different with other stablecoins. So, with SBC, $10^6$ of the minimum amount of SBC is equivalent to $10^18$ of the minimum amount of RUSD. ↩
-
In the case that the caller also has insufficient SBC to convert, the transaction will fail. ↩