transaction event is emitted whenever the user performs a transaction.
It includes the transaction status (started, broadcasted, rejected), to address, data, value, transaction hash, chain ID, and wallet address.
Properties
| Property | Type | Description |
|---|---|---|
status | string | Transaction status: started, broadcasted, confirmed, or rejected |
chain_id | number | Chain ID of the network |
data | string | Transaction calldata (hex-encoded) |
to | string | Recipient address |
value | string | Transaction value (hex-encoded) |
transaction_hash | string | Transaction hash (available after broadcast) |
function_name | string | Decoded function name (if contract interaction) |
function_args | object | Decoded function arguments (if contract interaction) |
builder_codes | string | Comma-separated builder codes extracted from the transaction calldata (ERC-8021) |
Builder Codes
The SDK automatically detects and extracts ERC-8021 builder codes from transaction calldata. Builder codes are an onchain attribution standard that lets apps identify themselves in transactions. When a transaction includes an ERC-8021 data suffix, the SDK parses it and includes thebuilder_codes field in the transaction event. For example, a transaction with the builder code "uniswap" would include "builder_codes": "uniswap" in the event properties.
This works automatically — no additional SDK configuration is needed. If your app appends builder codes to transactions, Formo will detect and attribute them.