RugWard Pay
El divisor de comisiones de Base (0,5 %)
Cómo los pagos en ETH y USDC en Base se dividen on-chain entre tú (99,5 %) y RugWard (0,5 %) dentro de la propia transacción del comprador, y cómo comprobar el contrato tú mismo.
En esta página
Qué es#
En Base, los pagos en ETH y USDC pasan por un contrato pequeño e inmutable: el divisor de RugWard Pay (splitter). En la única transacción del comprador envía el 99,5 % a tu dirección y el 0,5 % a la cartera de comisiones de RugWard. El dinero va directamente del comprador a ti; el contrato nunca guarda saldo.
| Red | Base (chain id 8453) |
| Divisor | 0x476EB0fECACA54d1311DB81bD3523cB0Dc66Dfab |
| Cartera de comisiones | 0xd3651425E1942f6b81dE2602093BbaEac466c666 |
| Comisión | FEE_BPS = 50 (0,5 %), redondeada hacia abajo |
| Hash del código en ejecución | 0xfbeadea59a5f03449a5e59bf11709160e03040568062bb2f0ba8fa779b8fd64d |
| Activos que pasan por él | solo ETH-8453 y USDC-8453 |
Solo Base usa divisor. En todas las demás redes (Bitcoin, Monero, Solana, Ethereum, Arbitrum, BNB Chain, Polygon) los pagos van directamente a tu dirección, sin división on-chain y sin comisión de RugWard (promoción de lanzamiento). USDT no se ofrece en Base.
Por qué un divisor#
La comisión se cobra de forma transparente, on-chain, en el momento del pago, sin que RugWard retenga nunca tu dinero. Tú y tu comprador podéis ver ambas transferencias en BaseScan, y nadie puede cambiar el porcentaje: es una constante en código inmutable.
El contrato#
uint256 public constant FEE_BPS = 50; // 0.5 %
address public immutable feeWallet; // 0xd3651425E1942f6b81dE2602093BbaEac466c666
event Paid(bytes32 indexed ref, address indexed merchant, address indexed token,
address payer, uint256 amount, uint256 fee); // token = 0x0 for ETH
function feeOf(uint256 amount) public pure returns (uint256); // amount * 50 / 10000, rounded down
function payNative(address merchant, bytes32 ref) external payable;
function payToken(IERC20 token, address merchant, uint256 amount, bytes32 ref) external;payNative: el comprador envía ETH; el contrato reenvíavalue − feea ti yfeea la cartera de comisiones en la misma llamada.payToken: después de que el comprador apruebe al divisor por exactamente el importe, mueveamount − feedel comprador a ti yfeea la cartera de comisiones contransferFrom. Los tokens nunca se quedan en el contrato.Paidse emite con elrefaleatorio de 32 bytes de la cotización; ese evento es como RugWard asocia el pago a la factura.- No hay propietario, ni función de administración, ni pausa, ni actualización, ni forma de retirar nada: las cinco funciones públicas de arriba son todo el contrato. Los pagos a la dirección cero o al propio divisor se revierten.
Qué hace el checkout#

- La cotización contiene un
refaleatorio nuevo, tu dirección y la dirección del divisor. - Antes de firmar nada, el navegador del comprador lee el código del divisor en Base y compara su hash con la versión revisada. Si no coincide, se detiene.
- ETH: una transacción,
payNative(merchant, ref). USDC: la cartera pide dos veces: aprobar exactamente el importe para el divisor y luegopayToken(USDC, merchant, amount, ref). - RugWard acredita el pago solo cuando un evento
Paidviene del divisor registrado (hash del código verificado de nuevo on-chain, en caché 10 minutos), lleva elrefde esta cotización, tu dirección y el token correcto, y su comisión es exactamentefeeOf(amount). El importe acreditado es lo que te llegó. - Tras 30 confirmaciones de bloque, la factura queda paid.
Consecuencias importantes:
- Una transferencia simple de ETH o USDC a tu dirección para una cotización de Base no se detecta automáticamente. Si un comprador lo hace por error, el dinero está en tu cartera; resuélvelo a mano (consulta Pagos sin asociar).
- La factura se considera pagada cuando te llega el 99,5 % del importe cotizado (el comprador paga el 100 %).
- Si tu dirección de recepción es una cartera de contrato inteligente, debe aceptar transferencias simples de ETH (una Safe o una smart account normal lo hace).
- Si un comprador aprueba USDC y luego abandona el pago, queda en el divisor una autorización por ese importe exacto. Es inofensiva (solo el comprador puede gastarla mediante
payToken, y solo para pagar a un comerciante), y el comprador puede eliminarla con Approvals.
Compruébalo tú mismo#
Cualquiera puede verificar el despliegue con herramientas públicas, por ejemplo cast de Foundry:
RPC=https://mainnet.base.org
SPLITTER=0x476EB0fECACA54d1311DB81bD3523cB0Dc66Dfab
cast keccak $(cast code $SPLITTER --rpc-url $RPC)
# expected: 0xfbeadea59a5f03449a5e59bf11709160e03040568062bb2f0ba8fa779b8fd64d
cast call $SPLITTER "feeWallet()(address)" --rpc-url $RPC
# 0xd3651425E1942f6b81dE2602093BbaEac466c666
cast call $SPLITTER "FEE_BPS()(uint256)" --rpc-url $RPC
# 50
cast call $SPLITTER "feeOf(uint256)(uint256)" 25000000 --rpc-url $RPC
# 125000 (0.125 USDC of a 25 USDC payment)O abre la dirección en BaseScan y mira los eventos Paid y las transferencias internas.
Pruébalo en Sepolia#
La misma versión del contrato está desplegada en Ethereum Sepolia en 0xbcb045fba82ce46ac073ac609cb227d20c450ce5 con la misma división 99,5 % / 0,5 %. Las facturas de prueba del panel la usan con ETH y USDC de prueba gratuitos, para que veas el flujo exacto antes de cobrar dinero real.
Estado de la revisión#
El divisor ha sido revisado internamente por RugWard y está cubierto por nuestras propias pruebas de Foundry (unitarias y fuzz). No ha sido revisado por una empresa independiente. Su código y comportamiento son lo bastante pequeños para leerlos en unos minutos; la interfaz de arriba está completa.
Última actualización: 30 de octubre de 2026