Transferencia en lote EVM (Sepolia y otras testnets)

Conecta MetaMask o cualquier cartera EIP-1193 en una testnet, pega direcciones y cantidades, y envíalas todas con una firma por lote a través de un contrato disperse mínimo y de código abierto.

Las transacciones se firman en tu cartera. Esta página no tiene servidor, no guarda claves y no cobra comisión. Solo redes de prueba. Mainnet: .

¿Qué es una transferencia en lote EVM?

Una transferencia en lote EVM es una única transacción que llama a un contrato disperse con arrays de destinatarios y cantidades; el contrato reenvía la moneda nativa a cada dirección, o retira tokens con transferFrom y los envía con transfer, todo de forma atómica. Una firma sustituye a cientos, y el remitente paga el gas una sola vez. Esta página está restringida a Sepolia y otras testnets mediante una comprobación del chain ID.

Pasos

  1. Cambia tu cartera a Sepolia (la página ofrece un botón para cambiar) y asegúrate de tener algo de ETH de prueba.
  2. Elige la moneda nativa o pega el contrato de un token. La página lee el símbolo, los decimales y tu saldo.
  3. Elige el contrato de lote: el contrato disperse conocido de Sepolia, uno que desplegaste antes, una dirección personalizada, o despliega uno nuevo (unos 0,4M de gas).
  4. Pega los destinatarios, revisa el resumen y haz clic en Enviar. Sigue el registro; cada lote enlaza al explorador de bloques.

Gas y límites

El remitente paga todo el gas. Un lote de 150 transferencias nativas a direcciones nuevas en Sepolia cuesta aproximadamente entre 4 y 5 millones de gas en una transacción, mucho más barato en firmas y tiempo que 150 envíos separados. Si la estimación de la cartera falla, reduce los destinatarios por transacción.

Verificar el contrato

El código fuente de BatchTransfer tiene 50 líneas y compila con solc 0.8.28 (optimizador activado, 200 runs). El JSON publicado contiene el ABI y el bytecode de creación; puedes reproducirlo con la misma configuración del compilador o verificar el contrato desplegado en el explorador con el archivo fuente.

Relacionado: valida primero la lista con el validador de direcciones, convierte cantidades de tokens con el conversor de decimales, inspecciona el calldata con el decodificador ABI.

Preguntas frecuentes

¿Qué contrato se usa?

En Sepolia la página usa por defecto el conocido contrato disperse en 0xD152f549545093347A162Dce210e7293f1452150, en uso desde 2018 y desplegado en la misma dirección en muchas cadenas. En otras testnets, o si prefieres el tuyo, la página despliega el contrato BatchTransfer cuyo código fuente está enlazado arriba; la dirección se recuerda en tu navegador.

¿Por qué necesito una aprobación para los tokens?

El contrato retira el total exacto de tu cartera con transferFrom y lo envía a cada destinatario en la misma transacción. La aprobación es por esa cantidad exacta, no ilimitada, y el lote la consume.

¿Cuál es el máximo por transacción?

Cada transferencia nativa cuesta aproximadamente entre 9.000 y 35.000 gas según si el destinatario es nuevo; las transferencias de tokens, entre 30.000 y 55.000. Con un límite de gas por bloque de 30M, 150 destinatarios es un valor seguro por defecto; súbelo a 300 si la cadena lo permite y bájalo si una transacción falla por falta de gas (out-of-gas).

¿Funciona con tokens tipo USDT que no devuelven un bool?

Sí. El contrato BatchTransfer tolera tokens que no devuelven nada y solo revierte ante un retorno false o un revert, así que los tokens antiguos funcionan.

¿Por qué se rechaza mi cartera en mainnet?

Por diseño. Ethereum, BNB Smart Chain, Polygon, Base, Arbitrum, OP Mainnet y otras se bloquean en la comprobación del chain ID y el botón de despliegue del contrato nunca se muestra. Para uso en mainnet, consulta la nota de contacto al pie de la herramienta.