Disperse (Batch Transfer)
Overview
Disperse permite enviar tokens a múltiples destinatarios en una sola transacción, usando un contrato Disperse desplegado en Base y Polygon. Es una funcionalidad solo de frontend (sin backend).
Contrato
| Red | Address |
|---|---|
| Base | 0xD152f549545093347A162Dce210e7293f1452150 |
| Polygon | 0xD152f549545093347A162Dce210e7293f1452150 |
Función: disperseToken(address token, address[] recipients, uint256[] values)
Tokens soportados
ARGt, BRAt, MEXt, COLt, PERt, CHLt, BOLt, USDC, USDT, EURC (10 tokens en Base y Polygon).
Flujo
Hooks (frontend)
| Hook | Tipo | Descripción |
|---|---|---|
useTokenBalance | Read | Balance del token en la chain |
useTokenDecimals | Read | Decimales del token |
useDisperseAllowance | Read | Allowance al contrato Disperse |
useApproveForDisperse | Write | Approve ERC20 al contrato |
useDisperseTokens | Write | Ejecutar disperseToken |
Todos los hooks reciben chainId como parámetro para funcionar cross-chain.
Input format
El usuario ingresa recipients en formato texto libre:
Code
El frontend parsea, valida cada address (checksum), convierte amounts a base units, y construye los arrays para el contrato.
Sin backend
Esta funcionalidad es 100% frontend → blockchain. No hay registro en base de datos ni endpoints de API. La TX queda registrada solo on-chain.