Transaction Payload Verification

Inspect transaction details before signing with MAVAN's transaction analysis

Verify transaction payloads via Command Center and API

What is transaction payload verification?

Transaction payload verification lets you simulate and inspect a transaction before broadcasting it and committing your funds. The API includes Tenderly simulations so you can verify where your funds will go on chain.

How MAVAN uses it

MAVAN runs all crafted transactions through Tenderly and performs static analysis using information about your MAVAN account. API responses include these observations and public links to simulation results in the Tenderly UI for independent verification.

MAVAN's static analysis checks include:

  • Comparing transaction targets with known destinations: the batch deposit contract, EIP 7251 consolidations contract, and EIP 7002 withdrawal contract.
  • Checking that validators receiving top-ups are known to belong to your MAVAN account.
  • Checking that consolidation target validators are known to belong to your account.

How to verify your transaction payloads

Command Center and the API provide the same transaction simulation and analysis. In Command Center, staking operations include a simulation link you can inspect before confirming in your wallet.

MAVAN stake review for Demo Account with 32 ETH on Hoodi MAVAN transaction simulation with a link to the full Tenderly simulation

The stake creation and transaction crafting endpoints include a prepared transaction payload with simulation and analysis. This backwards-compatible change reduces integration steps and lets you inspect the payload and check its safety before signing.

The stake creation endpoint returns a response like this:

{
  "data": {
    "stake": {
      "stakeId": 10000028,
      "customerId": 52,
      ...
    },
    "message": "requested 10 validators successfully",
    "transaction": {
      "to": "0x4c9506eE2fCd962f03022D9d8ebf6f7828abEfaf",
      "data": "0xe2ee27bf0...a3211999de068801c16ce",
      "value": "1000000000000000000000",
      "gas": "581498",
      "nonce": 147,
      "chainId": 560048,
      "maxFeePerGas": "1194611555",
      "maxPriorityFeePerGas": "60913223",
      "serialized": "0x02f911fb83088...988007ba3211999de068801c16cec0",
      "analysis": {
        "observations": [
          {
            "source": "simulation",
            "message": "Balance changes detected in simulation",
            "severity": "info"
          },
          {
            "source": "simulation",
            "message": "Asset changes detected in simulation: 11 changes",
            "severity": "info"
          },
          {
            "source": "mavan",
            "message": "Validator 0x8dd2c9fd... will reach the 2048 ETH cap in over 102 years based on 3% APY",
            "severity": "info"
          },
          ...
        ],
        "simulations": {
          "tenderly": {
            "shareUrl": "https://www.tdly.co/shared/simulation/01170f69-d93a-4140-9e3e-261565a8be14",
            "simulationId": "01170f69-d93a-4140-9e3e-261565a8be14",
            "success": true,
            "executionCost": 479608,
            "costPerUnit": "1194611555",
            "totalCost": "572945258670440",
            "logs": [
              {
                "name": "",
                "address": "0x00000000219ab540356cbb839cbe05303d7705fa",
                "data": "0x000000000000000000000...0000000000000000000000000000000000000000000000",
                "topics": [
                  "0x649bbc62d0e31342afea4e5cd82d4049e7e1ee912fc0889aa790803be39038c5"
                ]
              },
              {
                "name": "",
                "address": "0x4c9506ee2fcd962f03022d9d8ebf6f7828abefaf",
                "data": "0x0000000000000000000000000000000000000000000000056bc75e2d63100000",
                "topics": [
                  "0x07468d6bd11350def18feb2ba4201196d670bdf016f5e33b4cbf4c202b41fbbd",
                  "0xa07e447140b7e6f4872dfa8b26508f1e80388f080fe96faeb74315f70d7e9fe9",
                  "0x7b5f0c0e5d98da4494d7df821773de092e981a9440b5c1475e64828a211949a5"
                ]
              },
              ...
            ],
            "stateDiff": [
              {
                "address": "0x00000000219ab540356cbb839cbe05303d7705fa",
                "soltype": null,
                "original": null,
                "dirty": null,
                "raw": [
                  {
                    "address": "0x00000000219ab540356cbb839cbe05303d7705fa",
                    "key": "0x0000000000000000000000000000000000000000000000000000000000000000",
                    "original": "0x18e5b201d962ad2bb0e029e7ddcdf4329dd8f09dfb14b35543a91f6c22537122",
                    "dirty": "0xc529a0e2eff40592c475d7cd7c61216506565febfb1502c04231fff775b8f7a0"
                  }
                ]
              },
              {
                "address": "0x00000000219ab540356cbb839cbe05303d7705fa",
                "soltype": null,
                "original": null,
                "dirty": null,
                "raw": [
                  {
                    "address": "0x00000000219ab540356cbb839cbe05303d7705fa",
                    "key": "0x0000000000000000000000000000000000000000000000000000000000000001",
                    "original": "0x9c02acd520e570b1fa960560b0db1b2737e047c2ea5f6addf0e9d7eecad15672",
                    "dirty": "0xc73f118a007139dbf02375daadeaab6da93813f1c1fca977ceaa1e4798625818"
                  }
                ]
              },
              ...
            ],
            "balanceDiff": [
              {
                "address": "0x00000000219ab540356cBB839Cbe05303d7705Fa",
                "original": "9927884064266928000000000",
                "dirty": "9928884064266928000000000",
                "is_miner": false
              },
              {
                "address": "0x767f7576944D321374921DF138589a30e3C5030d",
                "original": "945142433358512830290448",
                "dirty": "945142433931458088481280",
                "is_miner": true
              },
              {
                "address": "0xC8CD785C6Ba55d71a6530c08d1DF7eCbf090299c",
                "original": "5044584205531764276095",
                "dirty": "4044583632586505605655",
                "is_miner": false
              }
            ],
            ...
          }
        }
      }
    }
  }
}


Did this page help you?