Datos de red
Identidad
| Parámetro | Valor |
|---|---|
| Network name | Ruby Chain Testnet |
| Chain ID | 1810 (0x712) |
| Native currency | RUBY (18 decimales) |
| Block time | 2 segundos |
| Gas limit | 60,000,000 por bloque |
| Min base fee | 1 wei |
| L1 (settlement layer) | Ethereum Sepolia (chainId 11155111) |
| Stack | OP Stack (Optimism Foundation), op-contracts/v3.0.0 |
| Custom Gas Token | Sí — RUBY como native (no ETH) |
Endpoints
| Servicio | URL | Tipo |
|---|---|---|
| RPC canónico | https://rpc.ruby.testnet.finetry.win | HTTPS JSON-RPC |
| RPC alterno | https://rpc2.ruby.testnet.finetry.win | HTTPS JSON-RPC (mismo backend) |
| Explorer | https://explorer.ruby.testnet.finetry.win | Blockscout v8 (Optimism mode) |
| Faucet | https://faucet.ruby.testnet.finetry.win | Web UI + JSON-RPC en /api/claim |
| Status | https://status.ruby.testnet.finetry.win | Uptime Kuma |
Contratos L1 (Sepolia)
Estos son los contratos del rollup desplegados en Sepolia. Los necesitás para hacer bridges L1↔L2 o para verificación on-chain.
| Contrato | Address |
|---|---|
| OptimismPortal | 0x14f324e8f5953fbdb023d43b574134df8fcbc53b |
| SystemConfig | 0x94fe3671435e1645a75faf47ae24f4c69f64a8bf |
| L1StandardBridge | 0xddf0b794c028c8fcc354336e851cbc1a68ad346e |
| L1CrossDomainMessenger | 0x0654634829c2d6b1e504e159cc9088f26437d132 |
| DisputeGameFactory | 0x939f7e29e7adb8a23a39443c5eb1ec0b371bda6d |
| AnchorStateRegistry | 0xc8e2135d6b152f5844c1e6acf375cf32b53e4f46 |
Predeploys L2
Direcciones magic en 0x4200...XXXX con código pre-instalado en el genesis.
| Predeploy | Address | Función |
|---|---|---|
| L1Block (CGT) | 0x4200000000000000000000000000000000000015 | Espejo del L1 head, exposes isCustomGasToken()=true |
| L2ToL1MessagePasser (CGT) | 0x4200000000000000000000000000000000000016 | Init withdrawals |
| L2StandardBridge | 0x4200000000000000000000000000000000000010 | Bridge ERC-20s |
| L2CrossDomainMessenger | 0x4200000000000000000000000000000000000007 | Cross-domain messages |
| LiquidityController (CGT) | 0x420000000000000000000000000000000000002a | Mint/burn de RUBY native |
| NativeAssetLiquidity (CGT) | 0x4200000000000000000000000000000000000029 | Reserva infinita de native |
| SequencerFeeWallet | 0x4200000000000000000000000000000000000011 | Recibe fees del sequencer |
| BaseFeeVault | 0x4200000000000000000000000000000000000019 | Recibe base fees |
| L1FeeVault | 0x420000000000000000000000000000000000001a | Recibe L1-related fees |
Contratos custom
| Contrato | Address | Notas |
|---|---|---|
| RubyFaucet | 0x572e15df436f9FA9BD28347bf0C79c7924a2BF77 | Faucet on-chain (10M RUBY pool) |
Configuración para wallets / scripts
MetaMask config (JSON)
{
"chainId": "0x712",
"chainName": "Ruby Chain Testnet",
"nativeCurrency": { "name": "Ruby", "symbol": "RUBY", "decimals": 18 },
"rpcUrls": ["https://rpc.ruby.testnet.finetry.win"],
"blockExplorerUrls": ["https://explorer.ruby.testnet.finetry.win"]
}Hardhat
networks: {
ruby: {
url: "https://rpc.ruby.testnet.finetry.win",
chainId: 1810,
accounts: [PRIVATE_KEY],
},
}Foundry / forge
forge create --rpc-url https://rpc.ruby.testnet.finetry.win \
--private-key $PK \
src/MyContract.sol:MyContractViem
import { defineChain } from 'viem';
export const rubyChain = defineChain({
id: 1810,
name: 'Ruby Chain Testnet',
nativeCurrency: { name: 'Ruby', symbol: 'RUBY', decimals: 18 },
rpcUrls: { default: { http: ['https://rpc.ruby.testnet.finetry.win'] } },
blockExplorers: { default: { name: 'Blockscout', url: 'https://explorer.ruby.testnet.finetry.win' } },
});