Skip to main content

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


Cosmos Base

cosmos.base.v1beta1.Coin

La estructura fundamental de moneda utilizada en todos los módulos para representar cantidades de tokens.

ParámetroTipoDescripción
denomstringDenominación del token (ej. mpx, xfi). Debe coincidir con denominaciones registradas.
amountstringCantidad 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ámetroTipoDescripción
granterstringDirección de la cuenta que otorga permiso (ej. mx1x7...).
granteestringDirección de la cuenta que recibe permiso (ej. mx1y2...).
grantcosmos.authz.v1beta1.GrantObjeto grant que contiene detalles de autorización y expiración.

Estructura Grant:

ParámetroTipoDescripción
authorizationgoogle.protobuf.AnyTipo de autorización (GenericAuthorization, SendAuthorization, etc.).
expirationgoogle.protobuf.TimestampTiempo de expiración opcional en formato UTC (ej. 2025-12-31T23:59:59Z).

Tipos de Autorización:

  1. GenericAuthorization

    • Proporciona permiso ilimitado para el tipo de mensaje especificado
    • msg: string - URL completa del tipo de mensaje (ej. /cosmos.bank.v1beta1.MsgSend)
  2. 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
  3. 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ámetroTipoDescripción
granterstringDirección de cuenta que revoca permiso.
granteestringDirección de cuenta que pierde permiso.
msg_type_urlstringURL 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ámetroTipoDescripción
granteestringDirección de cuenta que ejecuta mensajes.
msgsrepeated google.protobuf.AnyLista 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ámetroTipoDescripción
from_addressstring (cosmos.AddressString)Dirección del remitente (ej. mx1x7...).
to_addressstring (cosmos.AddressString)Dirección del destinatario (ej. mx1y2...).
amountrepeated cosmos.base.v1beta1.CoinMonedas 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ámetroTipoDescripción
inputsrepeated InputFuentes de entrada. No puede ser null.
outputsrepeated OutputDestinos de salida.

Estructura Input:

ParámetroTipoDescripción
addressstringDirección del remitente.
coinsrepeated cosmos.base.v1beta1.CoinMonedas a enviar.

Estructura Output:

ParámetroTipoDescripción
addressstringDirección del destinatario.
coinsrepeated cosmos.base.v1beta1.CoinMonedas 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ámetroTipoDescripción
amountrepeated cosmos.base.v1beta1.CoinMonedas a transferir al pool comunitario.
depositorstringDirección Bech32 que financia el pool (ej. mx1x7...).

cosmos.distribution.v1beta1.MsgSetWithdrawAddress

Establece una dirección diferente para retiros de recompensas.

ParámetroTipoDescripción
delegator_addressstringDirección Bech32 del delegador que establece dirección de retiro.
withdraw_addressstringDirecció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ámetroTipoDescripción
delegator_addressstringDirección Bech32 del delegador que retira recompensas.
validator_addressstringDirección Bech32 del validador (ej. mxvaloper1z3...).

cosmos.distribution.v1beta1.MsgWithdrawValidatorCommission

Permite al validador retirar comisión acumulada.

ParámetroTipoDescripción
validator_addressstringDirecció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ámetroTipoDescripción
proposal_iduint64Identificador único de propuesta.
depositorstringDirección Bech32 que hace depósito (ej. mx1x7...).
amountrepeated CoinCantidad de depósito.

cosmos.gov.v1.MsgSubmitProposal

Crea una nueva propuesta de gobernanza.

ParámetroTipoDescripción
messagesrepeated AnyMensajes a ejecutar si la propuesta pasa.
initial_depositrepeated CoinDepósito inicial para la propuesta.
proposerstringDirección Bech32 del proponente (ej. mx1x7...).
metadatastringMetadatos opcionales para la propuesta.
titlestringTítulo de la propuesta.
summarystringBreve descripción de la propuesta.

cosmos.gov.v1.MsgVote

Emite un voto sobre una propuesta.

ParámetroTipoDescripción
proposal_iduint64Identificador de propuesta.
voterstringDirección Bech32 del votante (ej. mx1x7...).
optionVoteOptionOpción de voto: YES, ABSTAIN, NO, NO_WITH_VETO.
metadatastringMetadatos opcionales del voto.

cosmos.gov.v1.MsgVoteWeighted

Emite votos ponderados a través de múltiples opciones.

ParámetroTypeDescripción
proposal_iduint64Identificador de propuesta.
voterstringDirección Bech32 del votante.
optionsrepeated WeightedVoteOptionOpciones de voto con pesos.
metadatastringMetadatos opcionales.

WeightedVoteOption:

ParámetroTipoDescripción
optionVoteOptionOpción de voto.
weightstringPeso 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ámetroTipoDescripción
granterstringDirección que proporciona asignación de tarifa (ej. mx1x7...).
granteestringDirección que recibe asignación de tarifa (ej. mx1y2...).
allowancegoogle.protobuf.AnyTipo de asignación de tarifa (BasicAllowance, PeriodicAllowance).

Tipos de Asignación:

  1. 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
  2. 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ámetroTipoDescripción
granterstringDirección que revoca asignación (ej. mx1x7...).
granteestringDirecció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ámetroTipoDescripción
delegator_addressstringDirección del delegador (ej. mx1x7...).
validator_src_addressstringValidador fuente (ej. mxvaloper1y2...).
validator_dst_addressstringValidador destino (ej. mxvaloper1z3...).
amountcosmos.base.v1beta1.CoinCantidad a redelegar.

cosmos.staking.v1beta1.MsgCreateValidator

Crea un nuevo validador.

ParámetroTipoDescripción
descriptioncosmos.staking.v1beta1.DescriptionDescripción del validador.
commissioncosmos.staking.v1beta1.CommissionRatesTasas de comisión.
min_self_delegationstringMínima auto-delegación en mpx.
delegator_addressstringDelegador que crea validador (ej. mx1x7...).
validator_addressstringDirección del validador (ej. mxvaloper1y2...).
pubkeygoogle.protobuf.AnyClave pública del validador.
valuecosmos.base.v1beta1.CoinCantidad de stake inicial.

Estructura Description:

ParámetroTipoDescripción
monikerstringNombre del validador.
identitystringIdentidad opcional (ej. ID de Keybase).
websitestringSitio web del validador.
security_contactstringEmail de contacto de seguridad.
detailsstringDetalles adicionales del validador.

Estructura CommissionRates:

ParámetroTipoDescripción
ratestringTasa de comisión actual (ej. "0.1" para 10%).
max_ratestringTasa de comisión máxima (ej. "0.2").
max_change_ratestringCambio máximo diario de comisión (ej. "0.01").

cosmos.staking.v1beta1.MsgDelegate

Delega tokens a un validador.

ParámetroTipoDescripción
delegator_addressstringDirección del delegador (ej. mx1x7...).
validator_addressstringDirección del validador (ej. mxvaloper1y2...).
amountcosmos.base.v1beta1.CoinCantidad a delegar.

cosmos.staking.v1beta1.MsgEditValidator

Actualiza descripción y comisión del validador.

ParámetroTipoDescripción
descriptioncosmos.staking.v1beta1.DescriptionDescripción actualizada del validador.
validator_addressstringDirección del validador (ej. mxvaloper1y2...).
commission_ratestringNueva tasa de comisión (opcional).
min_self_delegationstringNueva mínima auto-delegación (opcional).

cosmos.staking.v1beta1.MsgUndelegate

Desdelega tokens de un validador.

ParámetroTipoDescripción
delegator_addressstringDirección del delegador (ej. mx1x7...).
validator_addressstringDirección del validador (ej. mxvaloper1y2...).
amountcosmos.base.v1beta1.CoinCantidad a desdelegar.

Módulo Slashing

cosmos.slashing.v1beta1.MsgUnjail

Libera de prisión a un validador previamente encarcelado.

ParámetroTipoDescripción
validator_addrstringDirecció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ámetroTipoDescripción
from_addressstringDirección que crea cuenta vesting.
to_addressstringNueva dirección de cuenta vesting (no inicializada).
amountrepeated cosmos.base.v1beta1.CoinTokens para vesting.
end_timeint64Timestamp UNIX cuando termina el vesting.
delayedbooltrue=vesting diferido, false=continuo.

Tipos de Vesting:

  1. 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
  2. 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ámetroTipoDescripción
datagoogle.protobuf.AnyDatos de transacción (LegacyTx, AccessListTx, DynamicFeeTx).
sizedoubleTamaño de transacción en caché (obsoleto).
hashstringHash de transacción en formato hex.
fromstringDirección del remitente en formato Ethereum.

ethermint.evm.v1.LegacyTx

Formato de transacción Ethereum legacy (pre-EIP-1559).

ParámetroTipoDescripción
nonceuint64Número de secuencia de cuenta.
gas_pricestringPrecio de gas en wei como string.
gasuint64Límite de gas para transacción.
tostringDirección del destinatario (vacía para creación de contrato).
valuestringCantidad a transferir en wei.
databytesDatos de transacción o código de contrato.
vbytesParámetro de recuperación de firma.
rbytesParámetro de firma r.
sbytesParámetro de firma s.

ethermint.evm.v1.AccessListTx

Transacción EIP-2930 con optimización de lista de acceso.

ParámetroTipoDescripción
chain_idstringID de cadena Ethereum.
nonceuint64Número de secuencia de cuenta.
gas_pricestringPrecio de gas en wei.
gasuint64Límite de gas.
tostringDirección del destinatario.
valuestringCantidad de transferencia en wei.
databytesDatos de transacción.
accessesrepeated AccessTupleLista de acceso para optimización de gas.
vbytesParámetro de firma v.
rbytesParámetro de firma r.
sbytesParámetro de firma s.

Estructura AccessTuple:

ParámetroTipoDescripción
addressstringDirección de contrato a acceder.
storage_keysrepeated stringClaves de almacenamiento a acceder en formato hex.

ethermint.evm.v1.DynamicFeeTx

Transacción EIP-1559 con tarifas dinámicas.

ParámetroTipoDescripción
chain_idstringID de cadena Ethereum.
nonceuint64Número de secuencia de cuenta.
gas_tip_capstringTarifa de prioridad máxima por gas en wei.
gas_fee_capstringTarifa máxima por gas en wei.
gasuint64Límite de gas.
tostringDirección del destinatario.
valuestringCantidad de transferencia en wei.
databytesDatos de transacción.
accessesrepeated AccessTupleLista de acceso.
vbytesParámetro de firma v.
rbytesParámetro de firma r.
sbytesParámetro de firma s.

Módulos CrossFi

Funcionalidad específica de CrossFi.

crossfi.erc20.v1.MsgConvertCoin

Convierte monedas nativas Cosmos a tokens ERC20.

ParámetroTipoDescripción
coincosmos.base.v1beta1.CoinMoneda nativa a convertir.
receiverstringDirección destinataria del token ERC20.
senderstringDirección remitente de moneda nativa.

crossfi.treasury.MsgMint

Acuña nuevos tokens en el tesoro CrossFi.

ParámetroTipoDescripción
creatorstringDirección Bech32 autorizada para acuñar tokens.
amountCoinCantidad 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ámetroTipoDescripción
creatorstringDirección Bech32 que inicia la quema.
amountCoinCantidad 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:

Errores de Validación de Transacciones
Errores Específicos de Módulos

Recursos Adicionales


información

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.