Radius Network
Radius is a high-performance, EVM-compatible settlement engine built for the machine-to-machine economy. It offers sub-second finality, stablecoin-native transactions (RUSD), and extremely low fees (~$0.000093 per transfer) — making micropayments and real-time API metering economically viable.
SBC provides full account abstraction support on both Radius mainnet and testnet, with low, predictable gas fees on both networks.
Why Radius?
| Feature | Radius | Base |
|---|---|---|
| Gas Cost | Low, predictable (~$0.000093/transfer) | Standard gas fees |
| Currency Symbol | RUSD (18 decimals) | ETH |
| EntryPoint | Custom deployment | Canonical v0.7 |
| Smart Account | SimpleAccount | Kernel |
Mainnet
Network Configuration
// Radius mainnet configuration
const radiusMainnet = {
id: 723,
name: 'Radius Network',
nativeCurrency: {
name: 'RUSD',
symbol: 'RUSD',
decimals: 18
},
rpcUrls: {
default: {
http: ['https://rpc.radiustech.xyz']
}
},
blockExplorers: {
default: {
name: 'Radius Explorer',
url: 'https://network.radiustech.xyz'
}
}
}Deployed Contracts
| Contract | Address | Description |
|---|---|---|
| EntryPoint | 0xfA15FF1e8e3a66737fb161e4f9Fa8935daD7B04F | Custom ERC-4337 v0.7 EntryPoint |
| SimpleAccountFactory | 0x7d8fB3E53d345601a02C3214e314f28668510b03 | Smart account factory |
| SignatureVerifyingPaymaster | 0xD969454b59F4BC2CF19dC37A37aC10eF6495CD8D | Gas sponsorship contract |
| SBC | 0x33ad9e4bd16b69b5bfded37d8b5d9ff9aba014fb | Default stablecoin on Radius |
| PimlicoEntryPointSimulations | 0x9c69EC9BcB58b9214e14A1966fc03FE004d50c52 | Gas estimation helper |
Testnet
Network Configuration
// Radius testnet configuration
const radiusTestnet = {
id: 72344,
name: 'Radius Testnet',
nativeCurrency: {
name: 'RUSD',
symbol: 'RUSD',
decimals: 18
},
rpcUrls: {
default: {
http: ['https://rpc.testnet.radiustech.xyz']
}
},
blockExplorers: {
default: {
name: 'Radius Explorer',
url: 'https://testnet.radiustech.xyz'
}
},
testnet: true
}Deployed Contracts
| Contract | Address | Description |
|---|---|---|
| EntryPoint | 0xfA15FF1e8e3a66737fb161e4f9Fa8935daD7B04F | Custom ERC-4337 v0.7 EntryPoint |
| Paymaster (Proxy) | 0xeAe0528eCfa059D96421268dc8FaeC7DcAf5b9F0 | Gas sponsorship contract |
| Paymaster (Impl) | 0xd2f8F112A3855Df8A7eDa1Ebe4887a521802458F | Paymaster implementation |
| SBC | 0x33ad9e4bd16b69b5bfded37d8b5d9ff9aba014fb | Default stablecoin on Radius |
| PimlicoEntryPointSimulations | 0xcE77355CD450f1272841cF4aD10a93E65466041C | Gas estimation helper |
Getting Test Tokens
The Radius faucet is available at https://testnet.radiustech.xyz/wallet. You'll need test tokens to interact with contracts on Radius.
Key Differences from Base
EntryPoint
Radius uses a custom EntryPoint deployment instead of the canonical v0.7 address:
// Base (canonical)
const baseEntryPoint = '0x0000000071727De22E5E9d8BAf0edAc6f37da032'
// Radius (custom — same address on mainnet and testnet)
const radiusEntryPoint = '0xfA15FF1e8e3a66737fb161e4f9Fa8935daD7B04F'Smart Account Implementation
- Base: Uses Kernel smart account (ZeroDev)
- Radius: Uses SimpleAccount (more lightweight)
// The SBC AppKit automatically handles this difference
// No code changes needed when switching chainsGas
// Radius: Low, predictable gas fees
await sendUserOperation({
to: recipient,
value: '1000000000000000000',
data: '0x'
})
// Fixed gas price (~$0.000093 per transfer)Why the Custom EntryPoint?
Radius uses a custom EntryPoint deployment for:
- Architectural Sovereignty: Full control over EntryPoint behavior and upgrades
- Faster Iterations: Not tied to canonical EntryPoint upgrade cycles
- Cost Optimization: Optimized gas usage across the network
Note: When deploying to Radius, always use the custom EntryPoint address for the network you're targeting. The canonical EntryPoint will not work.
Important Caveats
Legacy Transactions Only (No EIP-1559)
Radius does not support EIP-1559 transactions. All transactions must use legacy (type 0) format with gasPrice instead of maxFeePerGas/maxPriorityFeePerGas.
When constructing UserOperations, maxPriorityFeePerGas must equal maxFeePerGas. Setting them to different values will cause the transaction to be rejected:
Error: maxPriorityFeePerGas must equal maxFeePerGas on chains that don't support EIP-1559Note: The SBC AppKit (
@stablecoin.xyz/corev1.6.1+) handles this automatically.
Block Production Speed and getLogs Limits
Radius produces blocks extremely fast (~1600 blocks/sec). This can cause eth_getLogs calls to quickly exceed the RPC's block range limit (~500,000 blocks). Polling for transaction receipts using getLogs with a growing block range will fail within seconds. Bounded queries are almost always needed.
The SBC AppKit works around this by using the bundler's pimlico_getUserOperationStatus endpoint for receipt polling on Radius chains.
RUSD Balance vs eth_getBalance
On Radius, eth_getBalance returns an inflated value that includes the potential SBC-to-RUSD conversion via the Turnstile mechanism. To check actual RUSD balance, use the rad_getBalanceRaw RPC method:
cast rpc rad_getBalanceRaw <address> --rpc-url https://rpc.radiustech.xyzCREATE2 Deployment Limitation
The deterministic CREATE2 deployer (0x4e59b44847b379578588920cA78FbF26c0B4956C) fails on Radius when deploying contracts with large bytecode. Use direct deployment (cast send --create) instead. Contract addresses will not be deterministic but can be configured explicitly.
Bundler Configuration
When running an ERC-4337 bundler (e.g., Alto) on Radius, enable legacy transaction mode:
{
"legacy-transactions": true,
"entrypoint-simulation-contract-v7": "<deployed-address>"
}Next Steps
- Getting Started Guide - Build your first Radius app
- Configuration Reference - All Radius-specific configs
- SBC AppKit - SDK documentation
- Use Cases - Real implementation examples
External Resources
- Radius Docs: https://docs.radiustech.xyz
- Radius Website: https://radiustech.xyz
- Radius Explorer (Mainnet): https://network.radiustech.xyz
- Radius Explorer (Testnet): https://testnet.radiustech.xyz
- Radius RPC (Testnet): https://rpc.testnet.radiustech.xyz