Quién paga una llamada a un contrato en TRON: reparto de recursos
Cómo decide la máquina virtual de TRON quién paga la energía de un contrato: consume_user_resource_percent, origin_energy_limit y quien llama.
Publicado
En la cadena de TRON, las comisiones por ejecutar un contrato inteligente no tienen por qué recaer solo en quien llama. A diferencia de las redes EVM, donde la cuenta que inicia la transacción siempre paga el gas, la máquina virtual de TRON (TVM) tiene un modelo de recursos con dos pagadores, regido por dos parámetros del contrato: consume_user_resource_percent y origin_energy_limit.
Entender estos dos parámetros explica por qué quien envía USDT TRC-20 termina pagando toda la energía, mientras que ciertas aplicaciones descentralizadas (dApps) y contratos de la testnet pueden patrocinar el gas de sus usuarios.
TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t) fija consume_user_resource_percent en 30 y origin_energy_limit en 10,000,000[3]: en teoría, su creador cubre el 70% de cada llamada. La cuenta del creador tenía 9,330 de energía y la había gastado toda cuando la leímos el 2026-10-03[4], así que quien envía paga los 64,285 o 130,285 de energía completos.La jerarquía de reparto de recursos de la TVM
Cuando una transacción llama a un método de un contrato inteligente en TRON, la TVM decide quién paga los recursos en este orden:
Solicitud de ejecución del contrato
|
v
Revisa `consume_user_resource_percent` (0 - 100%)
|
+---------+---------+
| |
Parte de quien Parte del creador (100 - X %)
llama |
| v
| Revisa `origin_energy_limit` y el saldo del creador
| |
| +---------+---------+
| | |
| Suficiente Agotado
| | |
v v v
Energía Energía Respaldo:
de quien del creador se cobra a quien llama
llama
- Proporción que patrocina el creador (
consume_user_resource_percent):- Si es
100, quien llama paga toda la energía. - Si es
0, el creador del contrato paga el 100% de la energía, siempre que tenga recursos disponibles. - Si está entre
1y99, la energía de la ejecución se reparte en proporción entre quien llama y el creador.
- Si es
- Tope de energía del creador (
origin_energy_limit):- Lo máximo que aporta el creador a una sola llamada. Por encima de eso, el resto lo paga quien llama.
- Respaldo en quien llama:
- Si la energía en stake del creador se agota o supera
origin_energy_limit, la TVM cobra el faltante a quien llama. Si quien llama tampoco tiene energía ni TRX disponible, la transacción se revierte con OUT_OF_ENERGY.
- Si la energía en stake del creador se agota o supera
Consecuencias prácticas para desarrolladores
- USDT: la parte del creador está fijada (70%), pero no tiene fondos, así que quienes envían pagan todo: necesitan energía o TRX.
- Usuarios sin gas: quienes construyen dApps pueden poner TRX en stake en la dirección del creador y fijar
consume_user_resource_percent = 0para cubrir la energía de quienes llaman, hastaorigin_energy_limitpor llamada (quienes llaman siguen pagando el bandwidth).
Para simular el reparto de recursos de un contrato, prueba tus llamadas en Nile con nuestra guía para probar la energía de un contrato en Nile.
Fuentes
- Especificación de la máquina virtual de TRON: configuración de recursos de los contratos ↩
- Parámetros de la red TRON (getEnergyFee), leídos el 2026-10-02 ↩
- Configuración del contrato de USDT (consume_user_resource_percent, origin_energy_limit, origin_address), TronGrid getcontract, leída el 2026-10-03 ↩
- Energía del creador del contrato de USDT THPvaUhoh2Qn2y9THCZML3H815hhFhn5YC, TronGrid getaccountresource, leída el 2026-10-03 ↩
Preguntas frecuentes
¿En TRON siempre paga quien llama la ejecución de un contrato inteligente?
Por defecto, sí. Sin embargo, TRON permite que el creador de un contrato subvencione la energía de quien llama con los parámetros consume_user_resource_percent y origin_energy_limit.
¿Qué es consume_user_resource_percent en TRON?
Es un parámetro de configuración del contrato inteligente (de 0 a 100) que fija qué porcentaje de la energía de ejecución se cobra a quien llama y cuál al creador del contrato.
¿Quién paga las transferencias de USDT TRC-20?
En la práctica, quien envía. El contrato de USDT fija consume_user_resource_percent en 30, así que el creador cubriría el 70% de cada llamada hasta 10,000,000 de energía, pero la cuenta del creador tenía 9,330 de energía y la había gastado toda cuando la leímos el 2026-10-03, así que todo el costo recae en quien envía.
¿Qué pasa cuando se agota la energía del creador del contrato?
El resto lo paga quien llama: primero con su propia energía y después quemando TRX.
¿No encontró su respuesta? Escríbanos por Telegram a @tenergymebot o a support@tenergy.me y la añadiremos aquí.