Sending Transactions

Matrix transactions are sent directly on BNB Chain, with no network switching or bridging required. Users simply submit a normal BNB transaction (with calldata) to the Inbox EOA, and Matrix-node automatically interprets it and executes it on Matrix.

Metamask's Network Selector

Basic Transactions

Matrix applications abstract away the complexity of interacting with the rollup by constructing standard BNB L1 transactions that contain Matrix payloads in calldata. Here is the end-to-end flow:

1. User Connects to an App

The user connects their preferred BNB wallet to a Matrix application, exactly as they would with any BNB Chain DApp.

There is no network switching — the user stays connected to BNB Chain.

2. App Constructs a Transaction

When the user initiates an action inside the app (e.g., swapping assets on a DEX, minting an NFT, executing a contract call), the application generates a normal BNB L1 transaction for the user to sign.

This transaction’s to field is set to the Matrix Inbox (an uncontrolled EOA):

0x00000000000000000000000000000000000bbbb1

3. App Encodes the Matrix Payload

The application encodes the user's intent (e.g., swap, mint, call) as a Matrix payload and places it inside the transaction’s data field.

Example structure:

BNB “Envelope” TX
├─ to:      Matrix Inbox Address
├─ value:   0
├─ gas:     user pays BNB gas
├─ nonce:   user wallet nonce
└─ data:    Matrix Payload (encoded)

4. User Signs the Transaction

The user reviews and approves the transaction in their wallet interface. Because this is a regular BNB L1 transaction:

  • The user pays BNB gas

  • The UX is identical to using any BNB DApp

  • No special wallet plugin is required

  • No RPC switching is needed

5. Transaction Execution

After signing, the transaction is broadcast to the BNB network. Once the transaction is included in a BNB block:

  • Matrix-node reads the block

  • Finds all Inbox-bound transactions

  • Extracts and interprets the calldata

  • Executes the corresponding Matrix action and updates L2 state

BNB envelope transactions must set:

value = 0

However, the Matrix payload itself may specify L2-level asset transfers (e.g., WGAS).

6. Apps Read State

Applications (for example, your Matrix DEX) then query Matrix-geth for the latest L2 state, including user balances, execution results, or updated contract state.

To the end user, the experience feels identical to using a standard BNB-based application—just with Matrix providing the execution scalability underneath.

Last updated