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 múltiplos módulos do Cosmos SDK, Ethermint e implementações específicas da CrossFi.

Visão Geral​

A CrossFi Chain suporta múltiplos tipos de mensagens de transação através de diferentes módulos:

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

Total de tipos de mensagens cobertos: 35+

Cada tipo de mensagem inclui:

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

Índice​


Cosmos Base​

cosmos.base.v1beta1.Coin​

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

ParâmetroTipoDescrição
denomstringDenominação do token (ex. mpx, xfi). Deve corresponder às denominações registradas.
amountstringQuantidade de tokens como string representando inteiro (ex. 1000000). Deve ser não-negativo.

Contexto de Uso:

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

Exemplo:

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

Módulo Authz​

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

cosmos.authz.v1beta1.MsgGrant​

Concede autorização do concedente ao beneficiário para tipos específicos de mensagens.

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

Estrutura Grant:

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

Tipos de Autorização:

  1. GenericAuthorization

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

    • Permite ao beneficiário enviar moedas com limites de gastos
    • spend_limit: repeated Coin - Máximas moedas que podem ser enviadas
    • allow_list: repeated string - Lista opcional de endereços de destinatários permitidos
  3. StakeAuthorization

    • Permite operações de staking com restrições de validador
    • validators: repeated 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 específico de mensagem.

ParâmetroTipoDescrição
granterstringEndereço da conta que revoga permissão.
granteestringEndereço da conta que perde 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 concedente usando autorizações concedidas.

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

Módulo Bank​

O módulo bank 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 do remetente (ex. mx1x7...).
to_addressstring (cosmos.AddressString)Endereço do destinatário (ex. mx1y2...).
amountrepeated cosmos.base.v1beta1.CoinMoedas a transferir. Não pode ser null.

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 múltiplas entradas para múltiplas saídas.

ParâmetroTipoDescrição
inputsrepeated InputFontes de entrada. Não pode ser null.
outputsrepeated OutputDestinos de saída.

Estrutura Input:

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

Estrutura Output:

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

Módulo Distribution​

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

cosmos.distribution.v1beta1.MsgFundCommunityPool​

Financia o pool comunitário diretamente 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 (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 endereço de saque.
withdraw_addressstringEndereço Bech32 onde as recompensas serão enviadas. Não pode ser endereço de módulo.

cosmos.distribution.v1beta1.MsgWithdrawDelegatorReward​

Saca recompensas acumuladas de um validador específico.

ParâmetroTipoDescrição
delegator_addressstringEndereço Bech32 do delegador sacando recompensas.
validator_addressstringEndereço Bech32 do validador (ex. mxvaloper1z3...).

cosmos.distribution.v1beta1.MsgWithdrawValidatorCommission​

Permite ao validador sacar comissão acumulada.

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

Módulo Gov​

O módulo de governança habilita propostas e votação 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 fazendo depósito (ex. mx1x7...).
amountrepeated CoinQuantidade do depósito.

cosmos.gov.v1.MsgSubmitProposal​

Cria uma nova proposta de governança.

ParâmetroTipoDescrição
messagesrepeated AnyMensagens a executar se a proposta passar.
initial_depositrepeated CoinDepósito inicial para a proposta.
proposerstringEndereço Bech32 do proponente (ex. mx1x7...).
metadatastringMetadados opcionais para a proposta.
titlestringTítulo da proposta.
summarystringBreve descrição da proposta.

cosmos.gov.v1.MsgVote​

Emite um voto em uma proposta.

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

cosmos.gov.v1.MsgVoteWeighted​

Emite votos ponderados através de múltiplas opções.

ParâmetroTipoDescrição
proposal_iduint64Identificador da proposta.
voterstringEndereço Bech32 do eleitor.
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 outros.

cosmos.feegrant.v1beta1.MsgGrantAllowance​

Concede permissão de taxa do concedente ao beneficiário.

ParâmetroTipoDescrição
granterstringEndereço fornecendo permissão de taxa (ex. mx1x7...).
granteestringEndereço recebendo permissão de taxa (ex. mx1y2...).
allowancegoogle.protobuf.AnyTipo de permissão de taxa (BasicAllowance, PeriodicAllowance).

Tipos de Permissão:

  1. BasicAllowance - Permissão simples com limite de gastos:

    • spend_limit: repeated Coin - Quantidade máxima de taxa
    • expiration: Timestamp - Tempo de expiração opcional
  2. PeriodicAllowance - Permissão que reinicia periodicamente:

    • basic: BasicAllowance - Permissão base
    • period: Duration - Período de reinicialização
    • period_spend_limit: repeated Coin - Limite por período

cosmos.feegrant.v1beta1.MsgRevokeAllowance​

Revoga permissão de taxa previamente concedida.

ParâmetroTipoDescrição
granterstringEndereço revogando permissão (ex. mx1x7...).
granteestringEndereço perdendo permissão (ex. mx1y2...).

Módulo Staking​

Implementa o mecanismo de consenso Proof-of-Stake.

cosmos.staking.v1beta1.MsgBeginRedelegate​

Redelega tokens de um validador para outro.

ParâmetroTipoDescrição
delegator_addressstringEndereço do delegador (ex. mx1x7...).
validator_src_addressstringValidador origem (ex. mxvaloper1y2...).
validator_dst_addressstringValidador destino (ex. mxvaloper1z3...).
amountcosmos.base.v1beta1.CoinQuantidade a redelegar.

cosmos.staking.v1beta1.MsgCreateValidator​

Cria um novo validador.

ParâmetroTipoDescrição
descriptioncosmos.staking.v1beta1.DescriptionDescrição do validador.
commissioncosmos.staking.v1beta1.CommissionRatesTaxas de comissão.
min_self_delegationstringMínima auto-delegação em mpx.
delegator_addressstringDelegador criando validador (ex. mx1x7...).
validator_addressstringEndereço do validador (ex. mxvaloper1y2...).
pubkeygoogle.protobuf.AnyChave pública do validador.
valuecosmos.base.v1beta1.CoinQuantidade de stake inicial.

Estrutura Description:

ParâmetroTipoDescrição
monikerstringNome do validador.
identitystringIdentidade opcional (ex. ID do Keybase).
websitestringWebsite do validador.
security_contactstringEmail de contato de segurança.
detailsstringDetalhes adicionais do validador.

Estrutura CommissionRates:

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

cosmos.staking.v1beta1.MsgDelegate​

Delega tokens a um validador.

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

cosmos.staking.v1beta1.MsgEditValidator​

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

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

cosmos.staking.v1beta1.MsgUndelegate​

Remove delegação de tokens de um validador.

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

Módulo Slashing​

cosmos.slashing.v1beta1.MsgUnjail​

Liberta um validador previamente preso.

ParâmetroTipoDescrição
validator_addrstringEndereço do validador a libertar.

Requisitos:

  • O validador deve existir e estar preso
  • O período de prisão deve ter expirado
  • O validador deve ter auto-delegação > 0
  • O validador não deve estar marcado como tombstoned

Módulo Vesting​

cosmos.vesting.v1beta1.MsgCreateVestingAccount​

Cria uma conta vesting com tokens bloqueados.

ParâmetroTipoDescrição
from_addressstringEndereço criando conta vesting.
to_addressstringNovo endereço de conta vesting (não inicializada).
amountrepeated cosmos.base.v1beta1.CoinTokens para vesting.
end_timeint64Timestamp UNIX quando o vesting termina.
delayedbooltrue=vesting atrasado, false=contínuo.

Tipos de Vesting:

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

    • Tokens permanecem completamente bloqueados até o tempo final
    • Adequado para cenários de vesting cliff
    • Mecanismo de desbloqueio simples
  2. Vesting Contínuo - Tokens desbloqueiam linearmente do tempo de criação até 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 da Máquina Virtual Ethereum.

ethermint.evm.v1.MsgEthereumTx​

Encapsula transação Ethereum para execução Cosmos.

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

ethermint.evm.v1.LegacyTx​

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

ParâmetroTipoDescrição
nonceuint64Número de sequência da conta.
gas_pricestringPreço do gas em wei como string.
gasuint64Limite de gas para 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.
gasuint64Limite de gas.
tostringEndereço do destinatário.
valuestringQuantidade de transferência em wei.
databytesDados da transação.
accessesrepeated AccessTupleLista de acesso para otimização de gas.
vbytesParâmetro de assinatura v.
rbytesParâmetro de assinatura r.
sbytesParâmetro de assinatura s.

Estrutura AccessTuple:

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

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 de prioridade máxima por gas em wei.
gas_fee_capstringTaxa máxima por gas em wei.
gasuint64Limite de gas.
tostringEndereço do destinatário.
valuestringQuantidade de transferência em wei.
databytesDados da transação.
accessesrepeated AccessTupleLista de acesso.
vbytesParâmetro de assinatura v.
rbytesParâmetro de assinatura r.
sbytesParâmetro de assinatura s.

Módulos CrossFi​

Funcionalidade específica da CrossFi.

crossfi.erc20.v1.MsgConvertCoin​

Converte moedas nativas Cosmos para tokens ERC20.

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

crossfi.treasury.MsgMint​

Cunha 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 ter permissões de cunhagem
  • A quantidade deve ser positiva
  • A denominação deve ser suportada

crossfi.treasury.MsgBurn​

Queima tokens da circulação.

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

Requisitos:

  • O criador deve possuir tokens suficientes
  • A quantidade 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"
}
]
}

Voto de Governança​

Votando em uma proposta de governança:

{
"@type": "/cosmos.gov.v1.MsgVote",
"proposal_id": "1",
"voter": "mx1x7...voter",
"option": "VOTE_OPTION_YES",
"metadata": "Apoiando esta proposta"
}

Delegação de Staking​

Delegando tokens a 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:

▶Erros de Validação de Transações
▶Formato de endereço inválido?

Certifique-se de que os endereços usem o formato Bech32 correto:

  • Endereços de conta: Começam com mx
  • Endereços de validador: Começam com mxvaloper
  • Endereços Ethereum: Começam com 0x (40 caracteres hex)
▶Erro de fundos insuficientes?

A conta não possui saldo suficiente para:

  • Quantidade da transação mais taxas
  • Requisitos mínimos de delegação
  • Custos de gas para transações EVM
▶Denominação inválida?

Use denominações suportadas:

  • mpx: Micro MPX (1 MPX = 1,000,000 mpx)
  • xfi: Token nativo CrossFi
  • Denominações IBC: ibc/[hash]
▶Erros Específicos de Módulos
▶Autorização não encontrada?

Para operações do módulo authz:

  • Certifique-se de que existe um grant entre concedente e beneficiário
  • Verifique se o grant não expirou
  • Verifique se o tipo de mensagem corresponde à autorização concedida
▶Validador não encontrado?

Para operações de staking:

  • Verifique o formato do endereço do validador (mxvaloper...)
  • Certifique-se de que o validador não está preso ou tombstoned
  • Verifique se o validador existe no conjunto ativo ou unbonding

Recursos Adicionais​


informação

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