Saltar al contenido principal

Financiación del gas y las comisiones de los retiros

Cuando OrcaRail ejecuta retiros (drenajes, transferencias, pasos de puente), hay que pagar las comisiones de transacción (gas) en cada cadena. Esta página explica los tres mecanismos de financiación (paymaster (gas patrocinado), autofinanciación nativa y hot wallet) y el orden en que se usan.

Está pensada sobre todo para los operadores que despliegan la API y configuran las variables de entorno, y para los desarrolladores que quieren entender cómo se paga el gas.

Paymaster (gas patrocinado)​

Cuando hay un paymaster configurado, el sistema puede patrocinar el gas para que la wallet de depósito del usuario no pague comisiones.

  • Configuración: define ALCHEMY_PAYMASTER_POLICY_ID en tu entorno. Si está definida y la cadena está entre las compatibles, el sistema usa el paymaster de Alchemy (ERC-4337 en EVM; el fee payer de Alchemy en Solana).
  • Efecto: la wallet del usuario no paga gas; lo cubre el patrocinador (la política de Alchemy). Así se puede enviar todo el saldo del token desde la wallet de depósito.
  • Dónde se usa: en los flujos de smart account de EVM (drenaje, transferencia, lote), en la ejecución de Relay/puente y en Solana cuando hay una política de Alchemy configurada.
  • Alternativa: si el paymaster no está definido, falla o la cadena no es compatible, el sistema recurre a la autofinanciación nativa o a la hot wallet.

Autofinanciación nativa​

La autofinanciación nativa significa que la wallet de depósito (o la smart account) paga el gas con su propio saldo nativo (por ejemplo ETH/BNB en EVM, SOL en Solana, BTC en Bitcoin).

  • Efecto: la wallet de depósito del usuario debe tener suficiente token nativo para cubrir la comisión. El resto del token objetivo se puede enviar igualmente.
  • Papel: se usa como primer nivel en los flujos de drenaje y transferencia cuando es posible, para enviar todo el saldo del token sin necesidad de hot wallet ni paymaster.

Hot wallet​

La hot wallet es una configuración solo para operadores. Los usuarios de la API no la definen; se configura con variables de entorno en el despliegue.

CadenaVariable de entornoFinalidad
EVMHOT_WALLET_PRIVATE_KEYPagador de comisiones y rescate en retiros EVM
SolanaSOLANA_HOT_WALLET_PRIVATE_KEYPagador de comisiones y rescate en retiros de Solana
BitcoinBITCOIN_HOT_WALLET_PRIVATE_KEYEntradas para comisiones y rescate en retiros de Bitcoin

Cada cadena acepta también una clave opcional de testnet: HOT_WALLET_TESTNET_PRIVATE_KEY, SOLANA_HOT_WALLET_TESTNET_PRIVATE_KEY y BITCOIN_HOT_WALLET_TESTNET_PRIVATE_KEY. El trabajo en testnet de las organizaciones sandbox firma con la clave de testnet si está definida, para que el tráfico sandbox nunca use la clave de mainnet. Si no está definida, las testnets usan la clave compartida.

Funciones:

  • Pagador de comisiones: cuando el paymaster no está disponible o falla, la hot wallet puede pagar el gas para que la wallet de depósito pueda seguir enviando todo el saldo del token.
  • Rescate: si la wallet de depósito no puede completar la transferencia (por ejemplo, por falta de saldo nativo para el gas), la hot wallet puede enviar desde su propio saldo a la dirección de retiro para que los fondos no se queden atascados.

Si no hay hot wallet configurada para una cadena, las alternativas son limitadas (por ejemplo, solo autofinanciación, o fallo si esta no basta).

Orden de alternativas (por cadena)​

EVM​

  1. Nivel 1: UserOp autofinanciada (la wallet de depósito paga el gas con su saldo nativo).
  2. Nivel 2: paymaster (gas patrocinado cuando ALCHEMY_PAYMASTER_POLICY_ID está definida y la cadena es compatible).
  3. Nivel 3: rescate con hot wallet (la hot wallet envía desde su propio saldo).

Solana​

  1. Nivel 1: patrocinado por Alchemy (fee payer de la política de Alchemy cuando está configurada).
  2. Nivel 2: hot wallet como pagador de comisiones (la wallet de depósito envía; la hot wallet paga la comisión).
  3. Nivel 3: rescate con hot wallet (la hot wallet envía desde su propio saldo).

Bitcoin​

Las entradas para comisiones y el rescate usan la hot wallet de Bitcoin cuando BITCOIN_HOT_WALLET_PRIVATE_KEY está definida.

Resumen​

  • Paymaster: lo configura el operador (ALCHEMY_PAYMASTER_POLICY_ID). Se usa primero cuando está disponible; evita que el usuario pague gas.
  • Autofinanciación nativa: no aplica configuración (saldo de la wallet). La wallet de depósito paga el gas con su token nativo.
  • Hot wallet: la configura el operador (*_HOT_WALLET_PRIVATE_KEY por cadena). Se usa como pagador de comisiones o rescate cuando fallan el paymaster o la autofinanciación.

Consulta también​