Referencia de Mensajes de Transacción de CrossFi
Esta guía completa describe todos los campos posibles para mensajes de transacción soportados por CrossFi Chain. La plataforma integra múltiples módulos de Cosmos SDK, Ethermint e implementaciones específicas de CrossFi.
Resumen
CrossFi Chain soporta múltiples tipos de mensajes de transacción a través de diferentes módulos:
- Cosmos Base: Operaciones fundamentales de monedas
- Módulos Cosmos SDK: Authz, Bank, Distribution, Gov, Feegrant, Staking, Slashing, Vesting
- Ethermint EVM: Transacciones compatibles con Ethereum
- Módulos CrossFi: Funcionalidad nativa de CrossFi
Total de tipos de mensajes cubiertos: 35+
Cada tipo de mensaje incluye:
- Descripciones completas de parámetros
- Tipos de campos y restricciones
- Ejemplos de uso
- Condiciones de falla
Tabla de Contenidos
🏦 Módulos Principales
🏛️ Gobernanza y Staking
🌐 Funciones Avanzadas
Cosmos Base
cosmos.base.v1beta1.Coin
La estructura fundamental de moneda utilizada en todos los módulos para representar cantidades de tokens.
Parámetro | Tipo | Descripción |
---|---|---|
denom | string | Denominación del token (ej. mpx , xfi ). Debe coincidir con denominaciones registradas. |
amount | string | Cantidad de tokens como string representando entero (ej. 1000000 ). Debe ser no negativo. |
Contexto de Uso:
- Usado en
MsgSend
,MsgMultiSend
para transferencias - Usado en
MsgDeposit
para depósitos de gobernanza - Usado en operaciones de staking para cantidades de delegación
Ejemplo:
{
"denom": "mpx",
"amount": "1000000"
}
Módulo Authz
El módulo de autorización permite a una cuenta (otorgante) autorizar a otra cuenta (beneficiario) para ejecutar ciertas acciones en su nombre.
cosmos.authz.v1beta1.MsgGrant
Otorga autorización del otorgante al beneficiario para tipos específicos de mensajes.
Parámetro | Tipo | Descripción |
---|---|---|
granter | string | Dirección de la cuenta que otorga permiso (ej. mx1x7... ). |
grantee | string | Dirección de la cuenta que recibe permiso (ej. mx1y2... ). |
grant | cosmos.authz.v1beta1.Grant | Objeto grant que contiene detalles de autorización y expiración. |
Estructura Grant:
Parámetro | Tipo | Descripción |
---|---|---|
authorization | google.protobuf.Any | Tipo de autorización (GenericAuthorization, SendAuthorization, etc.). |
expiration | google.protobuf.Timestamp | Tiempo de expiración opcional en formato UTC (ej. 2025-12-31T23:59:59Z ). |
Tipos de Autorización:
-
GenericAuthorization
- Proporciona permiso ilimitado para el tipo de mensaje especificado
- msg: string - URL completa del tipo de mensaje (ej.
/cosmos.bank.v1beta1.MsgSend
)
-
SendAuthorization
- Permite al beneficiario enviar monedas con límites de gasto
- spend_limit: repeated Coin - Máximas monedas que se pueden enviar
- allow_list: repeated string - Lista opcional de direcciones de destinatarios permitidos
-
StakeAuthorization
- Permite operaciones de staking con restricciones de validador
- validators: repeated string - Lista de direcciones de validadores
- authorization_type: AuthorizationType - Tipo de acción de staking (DELEGATE, UNDELEGATE, REDELEGATE)
cosmos.authz.v1beta1.MsgRevoke
Revoca autorización previamente otorgada para tipo específico de mensaje.
Parámetro | Tipo | Descripción |
---|---|---|
granter | string | Dirección de cuenta que revoca permiso. |
grantee | string | Dirección de cuenta que pierde permiso. |
msg_type_url | string | URL del tipo de mensaje a revocar (ej. /cosmos.bank.v1beta1.MsgSend ). |
cosmos.authz.v1beta1.MsgExec
Ejecuta mensajes en nombre del otorgante usando autorizaciones otorgadas.
Parámetro | Tipo | Descripción |
---|---|---|
grantee | string | Dirección de cuenta que ejecuta mensajes. |
msgs | repeated google.protobuf.Any | Lista de mensajes a ejecutar (ej. MsgSend ). |
Módulo Bank
El módulo bank maneja transferencias de tokens y gestión de balances.
cosmos.bank.v1beta1.MsgSend
Transfiere monedas de una dirección a otra.
Parámetro | Tipo | Descripción |
---|---|---|
from_address | string (cosmos.AddressString) | Dirección del remitente (ej. mx1x7... ). |
to_address | string (cosmos.AddressString) | Dirección del destinatario (ej. mx1y2... ). |
amount | repeated cosmos.base.v1beta1.Coin | Monedas a transferir. No puede ser null. |
Ejemplo:
{
"from_address": "mx1x7...sender",
"to_address": "mx1y2...recipient",
"amount": [{"denom": "mpx", "amount": "1000000"}]
}
Condiciones de Falla:
- Balance insuficiente en cuenta del remitente
- Dirección del destinatario está en lista negra
- Denominación de moneda inválida
cosmos.bank.v1beta1.MsgMultiSend
Envía monedas de una o múltiples entradas a múltiples salidas.
Parámetro | Tipo | Descripción |
---|---|---|
inputs | repeated Input | Fuentes de entrada. No puede ser null. |
outputs | repeated Output | Destinos de salida. |
Estructura Input:
Parámetro | Tipo | Descripción |
---|---|---|
address | string | Dirección del remitente. |
coins | repeated cosmos.base.v1beta1.Coin | Monedas a enviar. |
Estructura Output:
Parámetro | Tipo | Descripción |
---|---|---|
address | string | Dirección del destinatario. |
coins | repeated cosmos.base.v1beta1.Coin | Monedas a recibir. |
Módulo Distribution
Gestiona la distribución de recompensas entre validadores y delegadores.
cosmos.distribution.v1beta1.MsgFundCommunityPool
Financia el pool comunitario directamente desde una cuenta.
Parámetro | Tipo | Descripción |
---|---|---|
amount | repeated cosmos.base.v1beta1.Coin | Monedas a transferir al pool comunitario. |
depositor | string | Dirección Bech32 que financia el pool (ej. mx1x7... ). |
cosmos.distribution.v1beta1.MsgSetWithdrawAddress
Establece una dirección diferente para retiros de recompensas.
Parámetro | Tipo | Descripción |
---|---|---|
delegator_address | string | Dirección Bech32 del delegador que establece dirección de retiro. |
withdraw_address | string | Dirección Bech32 donde se enviarán las recompensas. No puede ser dirección de módulo. |
cosmos.distribution.v1beta1.MsgWithdrawDelegatorReward
Retira recompensas acumuladas de un validador específico.
Parámetro | Tipo | Descripción |
---|---|---|
delegator_address | string | Dirección Bech32 del delegador que retira recompensas. |
validator_address | string | Dirección Bech32 del validador (ej. mxvaloper1z3... ). |
cosmos.distribution.v1beta1.MsgWithdrawValidatorCommission
Permite al validador retirar comisión acumulada.
Parámetro | Tipo | Descripción |
---|---|---|
validator_address | string | Dirección Bech32 del validador (ej. mxvaloper1z3... ). |
Módulo Gov
El módulo de gobernanza habilita propuestas y votación en cadena.
cosmos.gov.v1.MsgDeposit
Deposita monedas en una propuesta para ayudarla a alcanzar el período de votación.
Parámetro | Tipo | Descripción |
---|---|---|
proposal_id | uint64 | Identificador único de propuesta. |
depositor | string | Dirección Bech32 que hace depósito (ej. mx1x7... ). |
amount | repeated Coin | Cantidad de depósito. |
cosmos.gov.v1.MsgSubmitProposal
Crea una nueva propuesta de gobernanza.
Parámetro | Tipo | Descripción |
---|---|---|
messages | repeated Any | Mensajes a ejecutar si la propuesta pasa. |
initial_deposit | repeated Coin | Depósito inicial para la propuesta. |
proposer | string | Dirección Bech32 del proponente (ej. mx1x7... ). |
metadata | string | Metadatos opcionales para la propuesta. |
title | string | Título de la propuesta. |
summary | string | Breve descripción de la propuesta. |
cosmos.gov.v1.MsgVote
Emite un voto sobre una propuesta.
Parámetro | Tipo | Descripción |
---|---|---|
proposal_id | uint64 | Identificador de propuesta. |
voter | string | Dirección Bech32 del votante (ej. mx1x7... ). |
option | VoteOption | Opción de voto: YES , ABSTAIN , NO , NO_WITH_VETO . |
metadata | string | Metadatos opcionales del voto. |
cosmos.gov.v1.MsgVoteWeighted
Emite votos ponderados a través de múltiples opciones.
Parámetro | Type | Descripción |
---|---|---|
proposal_id | uint64 | Identificador de propuesta. |
voter | string | Dirección Bech32 del votante. |
options | repeated WeightedVoteOption | Opciones de voto con pesos. |
metadata | string | Metadatos opcionales. |
WeightedVoteOption:
Parámetro | Tipo | Descripción |
---|---|---|
option | VoteOption | Opción de voto. |
weight | string | Peso del voto como decimal (ej. "0.5"). La suma debe ser 1. |
Módulo Feegrant
Permite a las cuentas pagar tarifas de transacción en nombre de otros.
cosmos.feegrant.v1beta1.MsgGrantAllowance
Otorga asignación de tarifas del otorgante al beneficiario.
Parámetro | Tipo | Descripción |
---|---|---|
granter | string | Dirección que proporciona asignación de tarifa (ej. mx1x7... ). |
grantee | string | Dirección que recibe asignación de tarifa (ej. mx1y2... ). |
allowance | google.protobuf.Any | Tipo de asignación de tarifa (BasicAllowance, PeriodicAllowance). |
Tipos de Asignación:
-
BasicAllowance - Asignación simple con límite de gasto:
- spend_limit: repeated Coin - Cantidad máxima de tarifa
- expiration: Timestamp - Tiempo de expiración opcional
-
PeriodicAllowance - Asignación que se reinicia periódicamente:
- basic: BasicAllowance - Asignación base
- period: Duration - Período de reinicio
- period_spend_limit: repeated Coin - Límite por período
cosmos.feegrant.v1beta1.MsgRevokeAllowance
Revoca asignación de tarifa previamente otorgada.
Parámetro | Tipo | Descripción |
---|---|---|
granter | string | Dirección que revoca asignación (ej. mx1x7... ). |
grantee | string | Dirección que pierde asignación (ej. mx1y2... ). |
Módulo Staking
Implementa el mecanismo de consenso Proof-of-Stake.
cosmos.staking.v1beta1.MsgBeginRedelegate
Redelega tokens de un validador a otro.
Parámetro | Tipo | Descripción |
---|---|---|
delegator_address | string | Dirección del delegador (ej. mx1x7... ). |
validator_src_address | string | Validador fuente (ej. mxvaloper1y2... ). |
validator_dst_address | string | Validador destino (ej. mxvaloper1z3... ). |
amount | cosmos.base.v1beta1.Coin | Cantidad a redelegar. |
cosmos.staking.v1beta1.MsgCreateValidator
Crea un nuevo validador.
Parámetro | Tipo | Descripción |
---|---|---|
description | cosmos.staking.v1beta1.Description | Descripción del validador. |
commission | cosmos.staking.v1beta1.CommissionRates | Tasas de comisión. |
min_self_delegation | string | Mínima auto-delegación en mpx . |
delegator_address | string | Delegador que crea validador (ej. mx1x7... ). |
validator_address | string | Dirección del validador (ej. mxvaloper1y2... ). |
pubkey | google.protobuf.Any | Clave pública del validador. |
value | cosmos.base.v1beta1.Coin | Cantidad de stake inicial. |
Estructura Description:
Parámetro | Tipo | Descripción |
---|---|---|
moniker | string | Nombre del validador. |
identity | string | Identidad opcional (ej. ID de Keybase). |
website | string | Sitio web del validador. |
security_contact | string | Email de contacto de seguridad. |
details | string | Detalles adicionales del validador. |
Estructura CommissionRates:
Parámetro | Tipo | Descripción |
---|---|---|
rate | string | Tasa de comisión actual (ej. "0.1" para 10%). |
max_rate | string | Tasa de comisión máxima (ej. "0.2"). |
max_change_rate | string | Cambio máximo diario de comisión (ej. "0.01"). |
cosmos.staking.v1beta1.MsgDelegate
Delega tokens a un validador.
Parámetro | Tipo | Descripción |
---|---|---|
delegator_address | string | Dirección del delegador (ej. mx1x7... ). |
validator_address | string | Dirección del validador (ej. mxvaloper1y2... ). |
amount | cosmos.base.v1beta1.Coin | Cantidad a delegar. |
cosmos.staking.v1beta1.MsgEditValidator
Actualiza descripción y comisión del validador.
Parámetro | Tipo | Descripción |
---|---|---|
description | cosmos.staking.v1beta1.Description | Descripción actualizada del validador. |
validator_address | string | Dirección del validador (ej. mxvaloper1y2... ). |
commission_rate | string | Nueva tasa de comisión (opcional). |
min_self_delegation | string | Nueva mínima auto-delegación (opcional). |
cosmos.staking.v1beta1.MsgUndelegate
Desdelega tokens de un validador.
Parámetro | Tipo | Descripción |
---|---|---|
delegator_address | string | Dirección del delegador (ej. mx1x7... ). |
validator_address | string | Dirección del validador (ej. mxvaloper1y2... ). |
amount | cosmos.base.v1beta1.Coin | Cantidad a desdelegar. |
Módulo Slashing
cosmos.slashing.v1beta1.MsgUnjail
Libera de prisión a un validador previamente encarcelado.
Parámetro | Tipo | Descripción |
---|---|---|
validator_addr | string | Dirección del validador a liberar. |
Requisitos:
- El validador debe existir y estar encarcelado
- El período de prisión debe haber expirado
- El validador debe tener auto-delegación > 0
- El validador no debe estar marcado como tombstoned
Módulo Vesting
cosmos.vesting.v1beta1.MsgCreateVestingAccount
Crea una cuenta vesting con tokens bloqueados.
Parámetro | Tipo | Descripción |
---|---|---|
from_address | string | Dirección que crea cuenta vesting. |
to_address | string | Nueva dirección de cuenta vesting (no inicializada). |
amount | repeated cosmos.base.v1beta1.Coin | Tokens para vesting. |
end_time | int64 | Timestamp UNIX cuando termina el vesting. |
delayed | bool | true=vesting diferido, false=continuo. |
Tipos de Vesting:
-
Vesting Diferido - Todos los tokens se desbloquean a la vez cuando se alcanza
end_time
:- Los tokens permanecen completamente bloqueados hasta el tiempo final
- Adecuado para escenarios de vesting cliff
- Mecanismo de desbloqueo simple
-
Vesting Continuo - Los tokens se desbloquean linealmente desde el tiempo de creación hasta
end_time
:- Liberación gradual de tokens en el tiempo
- Desbloqueo proporcional
- Adecuado para vesting de empleados
Módulo Ethermint EVM
Capa de compatibilidad de Máquina Virtual Ethereum.
ethermint.evm.v1.MsgEthereumTx
Envuelve transacción Ethereum para ejecución Cosmos.
Parámetro | Tipo | Descripción |
---|---|---|
data | google.protobuf.Any | Datos de transacción (LegacyTx, AccessListTx, DynamicFeeTx). |
size | double | Tamaño de transacción en caché (obsoleto). |
hash | string | Hash de transacción en formato hex. |
from | string | Dirección del remitente en formato Ethereum. |
ethermint.evm.v1.LegacyTx
Formato de transacción Ethereum legacy (pre-EIP-1559).
Parámetro | Tipo | Descripción |
---|---|---|
nonce | uint64 | Número de secuencia de cuenta. |
gas_price | string | Precio de gas en wei como string. |
gas | uint64 | Límite de gas para transacción. |
to | string | Dirección del destinatario (vacía para creación de contrato). |
value | string | Cantidad a transferir en wei. |
data | bytes | Datos de transacción o código de contrato. |
v | bytes | Parámetro de recuperación de firma. |
r | bytes | Parámetro de firma r. |
s | bytes | Parámetro de firma s. |
ethermint.evm.v1.AccessListTx
Transacción EIP-2930 con optimización de lista de acceso.
Parámetro | Tipo | Descripción |
---|---|---|
chain_id | string | ID de cadena Ethereum. |
nonce | uint64 | Número de secuencia de cuenta. |
gas_price | string | Precio de gas en wei. |
gas | uint64 | Límite de gas. |
to | string | Dirección del destinatario. |
value | string | Cantidad de transferencia en wei. |
data | bytes | Datos de transacción. |
accesses | repeated AccessTuple | Lista de acceso para optimización de gas. |
v | bytes | Parámetro de firma v. |
r | bytes | Parámetro de firma r. |
s | bytes | Parámetro de firma s. |
Estructura AccessTuple:
Parámetro | Tipo | Descripción |
---|---|---|
address | string | Dirección de contrato a acceder. |
storage_keys | repeated string | Claves de almacenamiento a acceder en formato hex. |
ethermint.evm.v1.DynamicFeeTx
Transacción EIP-1559 con tarifas dinámicas.
Parámetro | Tipo | Descripción |
---|---|---|
chain_id | string | ID de cadena Ethereum. |
nonce | uint64 | Número de secuencia de cuenta. |
gas_tip_cap | string | Tarifa de prioridad máxima por gas en wei. |
gas_fee_cap | string | Tarifa máxima por gas en wei. |
gas | uint64 | Límite de gas. |
to | string | Dirección del destinatario. |
value | string | Cantidad de transferencia en wei. |
data | bytes | Datos de transacción. |
accesses | repeated AccessTuple | Lista de acceso. |
v | bytes | Parámetro de firma v. |
r | bytes | Parámetro de firma r. |
s | bytes | Parámetro de firma s. |
Módulos CrossFi
Funcionalidad específica de CrossFi.
crossfi.erc20.v1.MsgConvertCoin
Convierte monedas nativas Cosmos a tokens ERC20.
Parámetro | Tipo | Descripción |
---|---|---|
coin | cosmos.base.v1beta1.Coin | Moneda nativa a convertir. |
receiver | string | Dirección destinataria del token ERC20. |
sender | string | Dirección remitente de moneda nativa. |
crossfi.treasury.MsgMint
Acuña nuevos tokens en el tesoro CrossFi.
Parámetro | Tipo | Descripción |
---|---|---|
creator | string | Dirección Bech32 autorizada para acuñar tokens. |
amount | Coin | Cantidad y denominación a acuñar. |
Requisitos:
- El creador debe tener permisos de acuñación
- La cantidad debe ser positiva
- La denominación debe ser soportada
crossfi.treasury.MsgBurn
Quema tokens de circulación.
Parámetro | Tipo | Descripción |
---|---|---|
creator | string | Dirección Bech32 que inicia la quema. |
amount | Coin | Cantidad y denominación a quemar. |
Requisitos:
- El creador debe poseer tokens suficientes
- La cantidad debe ser positiva
- La operación de quema es irreversible
Ejemplos de Uso
Transferencia Básica
Transferencia simple de tokens usando MsgSend:
{
"@type": "/cosmos.bank.v1beta1.MsgSend",
"from_address": "mx1x7...sender",
"to_address": "mx1y2...recipient",
"amount": [
{
"denom": "mpx",
"amount": "1000000"
}
]
}
Voto de Gobernanza
Votando en una propuesta de gobernanza:
{
"@type": "/cosmos.gov.v1.MsgVote",
"proposal_id": "1",
"voter": "mx1x7...voter",
"option": "VOTE_OPTION_YES",
"metadata": "Apoyando esta propuesta"
}
Delegación de Staking
Delegando tokens a un validador:
{
"@type": "/cosmos.staking.v1beta1.MsgDelegate",
"delegator_address": "mx1x7...delegator",
"validator_address": "mxvaloper1y2...validator",
"amount": {
"denom": "mpx",
"amount": "5000000"
}
}
Manejo de Errores
Escenarios comunes de falla y sus causas:
Recursos Adicionales
📚 Documentación
🔗 Recursos Externos
Esta referencia cubre todos los tipos principales de mensajes de transacción soportados por CrossFi Chain. Para las últimas actualizaciones y tipos de mensajes adicionales, consulta la documentación de la API XFI Scan o explora transacciones directamente en XFI Scan.