Skip to Content
EVMSynthetic Transactions

Synthetic Transactions on Sei

Sei supports synthetic transactions—Cosmos-originated operations that are wrapped and surfaced through the EVM RPC layer. These include association flows, governance events, and distribution payouts. This guide explains how they appear through JSON-RPC and how to index them correctly after v6.1.11.

Key Properties

DefinitionCosmos-originated transactions emitted through the EVM log interface (associations, governance, distribution).
Flagsynthetic: true in log metadata (v6.1.11).
Gas accountingExcluded from block/receipt gasUsed; costs settle in the Cosmos ante handler.
Association methodsei_associate handles signature-based link between Sei and EVM addresses.
IndexingUse the sei_ namespace to stream synthetic logs alongside EVM logs.

Association Flow (sei_associate)

{ "jsonrpc": "2.0", "id": 1, "method": "sei_associate", "params": [ { "custom_message": "Link my account", "r": "0x...", "s": "0x...", "v": "0x1c" } ] }
  • Sends a synthetic transaction without gas fees; verification happens in the Cosmos ante handler.
  • Resulting logs appear under sei_seiAssociation with synthetic: true.
  • Indexers should persist the association tuple (seiAddress, evmAddress) and treat the event as finalized once included in a block.

Indexing Strategy

Interaction With Gas Accounting

  • Synthetic envelopes do not alter receipt gasUsed (see rpc-gas-accounting).
  • When computing block-level gas metrics, exclude synthetic logs entirely; they are informational signals only.
  • Estimating gas for synthetic flows is unnecessary—sei_associate and similar methods are processed outside the EVM gas model.

Troubleshooting

ErrorCauseFix
Missing synthetic flagNode running pre-v6.1.11 binary.Upgrade to v6.1.11 or later; the flag is added at log emission time.
Association not visible via eth_getLogsQuerying eth_ namespace only.Switch to sei_getLogs or include the sei_ namespace to fetch synthetic events.
Duplicate association eventsClient resubmitted association payload.Treat the first inclusion as canonical; later duplicates can be ignored.
Last updated on