Pular para o conteúdo principal

Referência de Mensagens de Transação CrossFi

Este guia abrangente descreve todos os campos possíveis para mensagens de transação suportadas pela CrossFi Chain. A plataforma integra vários módulos do Cosmos SDK, Ethermint e implementações CrossFi específicas.

Visão geral​

CrossFi Chain suporta vários tipos de mensagens de transação em diferentes módulos:

  • Cosmos Base: Operações fundamentais de moedas
  • Cosmos SDK Modules: Authz, Bank, Distribution, Gov, Feegrant, Staking, Slashing, Vesting
  • Ethermint EVM: Transações compatíveis com Ethereum
  • CrossFi Modules: Funcionalidade nativa CrossFi

Total de tipos de mensagens cobertos: 35+

Cada tipo de mensagem inclui:

  • Descrições completas de parâmetros
  • Tipos de campo e restrições
  • Exemplos de uso
  • Condições de falha

Sumário​


Cosmos Base​

Cosmos Base​

A estrutura fundamental de moeda usada em todos os módulos para representar quantias de tokens.

ParâmetroTipoDescrição
denomstringDenominação de token (por exemplo, mpx, xfi). Deve corresponder às denominações cadastradas.
amountstringQuantidade do token como string representando um inteiro (por exemplo, 1000000). Deve ser não-negativa.

Uso:**

  • Usado em MsgSend, MsgMultiSend para transferências
  • Usado em MsgDeposit para depósitos de governança
  • Usado em operações de staking para montantes de delegação

Exemplo:

{
"denom": "mpx",
"amount": "1000000"
}

Módulo Authz​

O módulo de autorização permite que uma conta (grantor) autorize outra conta (grantee) a executar certas ações em seu nome.

cosmos.authz.v1beta1.MsgGrant​

Concede autorização do grantor ao grantee para tipos específicos de mensagens.

ParâmetroTipoDescrição
granterstringEndereço da conta que concede permissão (p.ex., mx1x7...).
granteestringEndereço da conta recebendo permissão (p.ex., mx1y2...).
grantcosmos.authz.v1beta1.GrantObjeto de concessão contendo detalhes de autorização e expiração.

Grant Structure:

ParâmetroTipoDescrição
authorizationgoogle.protobuf.AnyTipo de autorização (GenericAuthorization, SendAuthorization, etc.).
expirationgoogle.protobuf.TimestampHorário de expiração opcional em formato UTC (ex., 2025-12-31T23:59:59Z).

Authorization Types:

  1. Autorização Genérica

    • Proporciona permissão ilimitada para o tipo de mensagem especificado
    • msg: string - URL completo do tipo de mensagem (ex.: /cosmos.bank.v1beta1.MsgSend)
  2. SendAuthorization

    • Permite que o grantee envie moedas com limites de gasto
    • spend_limit: repetido Coin - Máximo de moedas que podem ser enviadas
    • allow_list: repetida string - Lista opcional de endereços de destinatários permitidos
  3. StakeAuthorization

    • Permite operações de staking com restrições de validadores
    • validators: repetida string - Lista de endereços de validadores
    • authorization_type: AuthorizationType - Tipo de ação de staking (DELEGATE, UNDELEGATE, REDELEGATE)

cosmos.authz.v1beta1.MsgRevoke​

Revoga autorização previamente concedida para tipo de mensagem específico.

ParâmetroTipoDescrição
granterstringEndereço da conta que revoga permissão.
granteestringEndereço da conta perdendo permissão.
msg_type_urlstringURL do tipo de mensagem a revogar (ex., /cosmos.bank.v1beta1.MsgSend).

cosmos.authz.v1beta1.MsgExec​

Executa mensagens em nome do grantor usando autorizações concedidas.

ParâmetroTipoDescrição
granteestringEndereço da conta que executa as mensagens.
msgsrepeated google.protobuf.AnyLista de mensagens a executar (ex., MsgSend).

Módulo Bancário​

O módulo Bancário lida com transferências de tokens e gerenciamento de saldos.

cosmos.bank.v1beta1.MsgSend​

Transfere moedas de um endereço para outro.

ParâmetroTipoDescrição
from_addressstring (cosmos.AddressString)Endereço remetente (p.ex., mx1x7...).
to_addressstring (cosmos.AddressString)Endereço do destinatário (p.ex., mx1y2...).
amountrepeated cosmos.base.v1beta1.CoinMoedas a transferir. Não pode ser nulo.

Exemplo:

{
"from_address": "mx1x7...sender",
"to_address": "mx1y2...recipient",
"amount": [{"denom": "mpx", "amount": "1000000"}]
}

Condições de Falha:

  • Saldo insuficiente na conta do remetente
  • Endereço do destinatário está na lista negra
  • Denominação de moeda inválida

cosmos.bank.v1beta1.MsgMultiSend​

Envia moedas de uma ou mais entradas para várias saídas.

ParâmetroTipoDescrição
inputsentrada repetidaFontes de entrada. Não podem ser nulos.
outputsSaídas repetidasDestinos de saída.

Estrutura de Entrada:

ParâmetroTipoDescrição
addressstringEndereço do remetente.
coinsrepeated cosmos.base.v1beta1.CoinMoedas a enviar.

Estrutura de Saída:

ParâmetroTipoDescrição
addressstringEndereço do destinatário.
coinsrepeated cosmos.base.v1beta1.CoinMoedas a receber.

Exemplo:

{
"inputs": [
{
"address": "mx1x7...sender",
"coins": [{"denom": "mpx", "amount": "2000000"}]
}
],
"outputs": [
{
"address": "mx1y2...recipient1",
"coins": [{"denom": "mpx", "amount": "1000000"}]
},
{
"address": "mx1z3...recipient2",
"coins": [{"denom": "mpx", "amount": "1000000"}]
}
]
}

Módulo Distribuição​

Gerencia a distribuição de recompensas entre validadores e delegadores.

cosmos.distribution.v1beta1.MsgFundCommunityPool​

Financia o pool comunitário diretamente a partir de uma conta.

ParâmetroTipoDescrição
amountrepeated cosmos.base.v1beta1.CoinMoedas a transferir para o pool comunitário.
depositorstringEndereço Bech32 que financia o pool (p.ex., mx1x7...).

cosmos.distribution.v1beta1.MsgSetWithdrawAddress​

Define um endereço diferente para saques de recompensas.

ParâmetroTipoDescrição
delegator_addressstringEndereço Bech32 do delegador definindo o endereço de retirada.
withdraw_addressstringEndereço Bech32 para onde as recompensas serão enviadas. Não pode ser endereço de módulo.

cosmos.distribution.v1beta1.MsgWithdrawDelegatorReward​

Retira as recompensas acumuladas de um validador específico.

ParâmetroTipoDescrição
delegator_addressstringEndereço Bech32 do delegador que está retirando recompensas.
validator_addressstringEndereço Bech32 do validador (ex., mxvaloper1z3...).

cosmos.distribution.v1beta1.MsgWithdrawValidatorCommission​

Permite ao validador sacar a comissão acumulada.

ParâmetroTipoDescrição
validator_addressstringEndereço Bech32 do validador (ex., mxvaloper1z3...).

Módulo de Governança​

O módulo de governança permite propostas e votações on-chain.

cosmos.gov.v1.MsgDeposit​

Deposita moedas em uma proposta para ajudá-la a alcançar o período de votação.

ParâmetroTipoDescrição
proposal_iduint64Identificador único da proposta.
depositorstringEndereço Bech32 que faz o depósito (p.ex., mx1x7...).
amountrepeated CoinDepósito

cosmos.gov.v1.MsgSubmitProposal​

Cria uma nova proposta de governança.

ParâmetroTipoDescrição
messagesrepeated AnyMensagens a serem executadas se a proposta for aprovada.
initial_depositrepeated CoinDepósito inicial para a proposta.
proposerstringEndereço Bech32 do proponente (p.ex., mx1x7...).
metadatastringMetadados opcionais para a proposta.
titlestringTítulo da proposta.
summarystringDescrição breve da proposta.

cosmos.gov.v1.MsgVote​

Vota em uma proposta.

ParâmetroTipoDescrição
proposal_iduint64Identificador da proposta.
voterstringEndereço Bech32 do votante (ex., mx1x7...).
optionOpção de VotoEscolha de voto: YES, ABSTAIN, NO, NO_WITH_VETO.
metadatastringMetadados opcionais de voto.

cosmos.gov.v1.MsgVoteWeighted​

Vota com peso entre várias opções.

ParâmetroTipoDescrição
proposal_iduint64Identificador da proposta.
voterstringEndereço Bech32 do votante.
optionsrepeated WeightedVoteOptionOpções de voto com pesos.
metadatastringMetadados opcionais.

WeightedVoteOption:

ParâmetroTipoDescrição
optionVoteOptionOpção de voto.
weightstringPeso do voto como decimal (ex., "0.5"). A soma deve ser 1.

Módulo Feegrant​

Permite que contas paguem taxas de transação em nome de terceiros.

cosmos.feegrant.v1beta1.MsgGrantAllowance​

Concede autorização de cobrança de taxas do grantor ao grantee.

ParâmetroDescriçãogranter
Endereço fornecendo autorização de taxas (por exemplo, mx1x7...).expiration: Timestamp - Tempo de expiração opcionalEndereço fornecendo permissão de taxa (por exemplo, mx1x7...).
period: Duração - Período de redefiniçãoperiod_spend_limit: repetido Coin - Limite por períodocosmos.feegrant.v1beta1.MsgRevokeAllowance
Revoga a autorização de taxas concedida anteriormente.ParâmetroDescrição

string

  1. grantee

    • Endereço perdendo autorização (p.ex., mx1y2...).
    • msg_type_url
  2. URL do tipo de mensagem a revogar (ex., /cosmos.bank.v1beta1.MsgSend).

    • Executa mensagens em nome do grantor usando autorizações concedidas.
    • Tipo
    • grantee

Endereço de conta executando mensagens.​

repeated google.protobuf.Any

Módulo Bankcosmos.bank.v1beta1.MsgSendstring (cosmos.AddressString)
Endereço remetente (p.ex., mx1x7...).Endereço do destinatário (p.ex., mx1y2...).repeated cosmos.base.v1beta1.Coin
Exemplo:Condições de Falha:Saldo insuficiente na conta do remetente

Módulo Bancário​

cosmos.bank.v1beta1.MsgSend

Parâmetro​

Tipo

Descriçãodelegator_addressstring
Delegator address (p.ex., mx1x7...).validator_src_addressstring
Origem do validador (p.ex., mxvaloper1y2...).stringDestino do validador (p.ex., mxvaloper1z3...).
amountQuantidade a redelegar.Cria um novo validador.
TipodescriptionDescrição do validador.

commission​

Taxas de comissão.

stringstringDelegador criando validador (p.ex., mx1x7...).
stringpubkeyChave pública do validador.
valuecosmos.base.v1beta1.CoinDescription Structure:
min_self_delegationstringAutodelegação mínima em mpx.
delegator_addressstringDelegador criando validador (por exemplo, mx1x7...).
validator_addressstringEndereço do validador (por exemplo, mxvaloper1y2...).
pubkeygoogle.protobuf.AnyChave pública do validador.
valuecosmos.base.v1beta1.CoinMontante inicial de stake.

Estrutura de Descrição:

ParâmetroTipoDescrição
monikerstringNome do validador.
identitystringIdentidade opcional (por exemplo, ID Keybase).
websitestringSite do validador.
security_contactstringEmail de contato de segurança.
detailsstringDetalhes adicionais do validador.

Estrutura de Taxas de Comissão (CommissionRates Structure):

ParâmetroTipoDescrição
ratestringTaxa de comissão atual (ex., "0.1" para 10%).
max_ratestringTaxa máxima de comissão (ex., "0.2").
max_change_ratestringVariação diária máxima de comissão (ex., "0.01").

cosmos.staking.v1beta1.MsgDelegate​

Delegates tokens to a validator.

ParâmetroTipoDescrição
delegator_addressstringEndereço do delegador (p.ex., mx1x7...).
validator_addressstringEndereço do validador (p.ex., mxvaloper1y2...).
amountcosmos.base.v1beta1.CoinQuantidade a delegar.

cosmos.staking.v1beta1.MsgEditValidator​

Atualiza a descrição e a comissão do validador.

ParâmetroTipoDescrição
descriptioncosmos.staking.v1beta1.DescriptionDescrição do validador atualizada.
validator_addressstringEndereço do validador (p.ex., mxvaloper1y2...).
commission_ratestringNova taxa de comissão (opcional).
min_self_delegationstringNova auto-delegação mínima (opcional).

cosmos.staking.v1beta1.MsgUndelegate​

Desdelegar tokens de um validador.

ParâmetroTipoDescrição
delegator_addressstringEndereço do delegador (p.ex., mx1x7...).
validator_addressstringEndereço do validador (p.ex., mxvaloper1y2...).
amountcosmos.base.v1beta1.CoinQuantidade a desdelegar.

Módulo Slashing​

cosmos.slashing.v1beta1.MsgUnjail​

Libera um validador previamente aprisionado.

ParâmetroTipoDescrição
validator_addrstringEndereço do validador a ser desencarcerado.

Requisitos:

  • O validador deve existir e estar aprisionado
  • O período de aprisionamento já expirou
  • O validador precisa ter auto-delegação > 0
  • O validador não pode estar tombstoned

Módulo Vesting​

cosmos.vesting.v1beta1.MsgCreateVestingAccount​

Cria uma conta com vesting com tokens bloqueados.

ParâmetroTipoDescrição
from_addressstringEndereço que cria a conta de vesting.
to_addressstringNovo endereço de conta de vesting (não inicializado).
amountrepeated cosmos.base.v1beta1.CoinTokens a vestir.
end_timeint64Carimbo de tempo UNIX de término do vesting.
delayedbooltrue=vesting atrasado, false=contínuo.

Tipos de Vesting:

  1. Vesting Atrasado - Todos os tokens desbloqueiam de uma vez quando end_time é atingido:

    • Tokens permanecem totalmente bloqueados até o fim do tempo
    • Adequado para cenários de vesting em cliff
    • Mecanismo simples de desbloqueio
  2. Vesting Contínuo - Tokens desbloqueados de forma linear desde o tempo de criação até o end_time:

    • Liberação gradual de tokens ao longo do tempo
    • Desbloqueio proporcional
    • Adequado para vesting de funcionários


Módulo Ethermint EVM​

Camada de compatibilidade com Ethereum Virtual Machine.

ethermint.evm.v1.MsgEthereumTx​

Envolve transação Ethereum para execução no Cosmos.

ParâmetroTipoDescrição
datagoogle.protobuf.AnyDados da transação (LegacyTx, AcessoListTx, DynamicFeeTx).
sizedoubleTamanho de transação em cache (obsoleto).
hashstringHash da transação em formato hexadecimal.
fromstringEndereço do remetente no formato Ethereum.

ethermint.evm.v1.LegacyTx​

Formato de transação Ethereum legada (pré-EIP-1559).

ParâmetroTipoDescrição
nonceuint64Número de sequência da conta.
gas_pricestringPreço do gas em wei como string.
gasuint64Limite de gás para a transação.
tostringEndereço do destinatário (vazio para criação de contrato).
valuestringQuantidade a transferir em wei.
databytesDados da transação ou código do contrato.
vbytesParâmetro de recuperação da assinatura.
rbytesParâmetro de assinatura r.
sbytesParâmetro de assinatura s.

ethermint.evm.v1.AccessListTx​

Transação EIP-2930 com otimização de lista de acesso.

ParâmetroTipoDescrição
chain_idstringID da cadeia Ethereum.
nonceuint64Número de sequência da conta.
gas_pricestringPreço do gas em wei.
gasuint64Gas limit.
tostringEndereço do destinatário.
valuestringQuantidade a transferir em wei.
databytesDados da transação.
accessesrepeated AccessTupleLista de acessos para otimização de gas.
vbytesParâmetro v da assinatura.
rbytesParâmetro de assinatura r.
sbytesParâmetro de assinatura s.

Estrutura de AccessTuple:

ParâmetroTipoDescrição
addressstringEndereço do contrato a acessar.
storage_keysrepeated stringChaves de armazenamento para acessar em formato hexadecimal.

ethermint.evm.v1.DynamicFeeTx​

Transação EIP-1559 com taxas dinâmicas.

ParâmetroTipoDescrição
chain_idstringID da cadeia Ethereum.
nonceuint64Número de sequência da conta.
gas_tip_capstringTaxa máxima de prioridade por gás em wei.
gas_fee_capstringTaxa máxima por gás em wei.
gasuint64Limite de gás para a transação.
tostringEndereço do destinatário.
valuestringQuantidade a transferir em wei.
databytesDados da transação.
accessesrepeated AccessTupleLista de acessos para otimização de gas.
vbytesParâmetro v da assinatura.
rbytesParâmetro de assinatura r.
sbytesParâmetro de assinatura s.

CrossFi Módulos​

Funcionalidade específica do CrossFi.

crossfi.erc20.v1.MsgConvertCoin​

Converte moedas nativas do Cosmos em tokens ERC20.

ParâmetroTipoDescrição
coincosmos.base.v1beta1.CoinMoeda nativa a converter.
receiverstringEndereço do destinatário do token ERC20.
senderstringEndereço do remetente da moeda nativa.

crossfi.treasury.MsgMint​

Cria novos tokens no tesouro CrossFi.

ParâmetroTipoDescrição
creatorstringEndereço Bech32 autorizado a cunhar tokens.
amountCoinQuantidade e denominação a cunhar.

Requisitos:

  • O criador deve possuir permissões de cunhagem
  • A quantia deve ser positiva
  • A denominação deve ser suportada

crossfi.treasury.MsgBurn​

Queima tokens em circulação.

ParâmetroTipoDescrição
creatorstringEndereço Bech32 que inicia a queima.
amountCoinQuantidade e denominação a queimar.

Requisitos:

  • O criador deve possuir tokens suficientes
  • A quantia deve ser positiva
  • A operação de queima é irreversível

Exemplos de Uso​

Transferência Básica​

Transferência simples de tokens usando MsgSend:

{
"@type": "/cosmos.bank.v1beta1.MsgSend",
"from_address": "mx1x7...sender",
"to_address": "mx1y2...recipient",
"amount": [
{
"denom": "mpx",
"amount": "1000000"
}
]
}

Governance Vote​

Votando em uma proposta de governança:

{
"@type": "/cosmos.gov.v1.MsgVote",
"proposal_id": "1",
"voter": "mx1x7...voter",
"option": "VOTE_OPTION_YES",
"metadata": "Supporting this proposal"
}

Delegação de Staking​

Delegando tokens para um validador:

{
"@type": "/cosmos.staking.v1beta1.MsgDelegate",
"delegator_address": "mx1x7...delegator",
"validator_address": "mxvaloper1y2...validator",
"amount": {
"denom": "mpx",
"amount": "5000000"
}
}

Tratamento de Erros​

Cenários comuns de falha e suas causas:

▶Transaction Validation Errors
▶Invalid address format?

Ensure addresses use correct Bech32 format:

  • Account addresses: Start with mx
  • Validator addresses: Start with mxvaloper
  • Ethereum addresses: Start with 0x (40 hex characters)
▶Insufficient funds error?

Account lacks sufficient balance for:

  • Transaction amount plus fees
  • Minimum delegation requirements
  • Gas costs for EVM transactions
▶Invalid denomination?

Use supported denominations:

  • mpx: Micro MPX (1 MPX = 1,000,000 mpx)
  • xfi: CrossFi native token
  • IBC denominations: ibc/[hash]
▶Module-Specific Errors
▶Authorization not found?

For authz module operations:

  • Ensure grant exists between granter and grantee
  • Check grant has not expired
  • Verify message type matches granted authorization
▶Validator not found?

For staking operations:

  • Verify validator address format (mxvaloper...)
  • Ensure validator is not jailed or tombstoned
  • Check validator exists in active or unbonding set

Recursos Adicionais​


info

Este referência cobre todos os principais tipos de mensagens de transação suportadas pela CrossFi Chain. Para as atualizações mais recentes e tipos de mensagens adicionais, consulte a documentação da API XFI Scan ou explore as transações diretamente no XFI Scan.