Metadata Envelope (non-normative)

Attach Vital Metadata requires a canonical metadata envelope, and Attach Useful Metadata lists further context that should travel with it. The specification requires a documented format, but not any particular one. The following illustrates one way a Producer might satisfy both requirements. The field names are illustrative and carry no normative weight.


{
  "envelopeVersion": "1",
  "intent": {
    "description": "Monthly payroll transfer to contractor",
    "reference": "PAY-2026-08-0042"
  },
  "inputs": {
    "chain": "eip155:1",
    "from": "0x5B38Da6a701c568545dCfcB03FcB875f56beddC4",
    "to": "0xAb8483F64d9C6d1EcF9b849Ae677dD3315835cb2",
    "token": {
      "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
      "symbol": "USDC",
      "decimals": 6
    },
    "amount": "1250000000",
    "nonce": 42
  },
  "unsignedTransaction": "0x02f8b00182002a8459682f008501dcd6500082b41e94a0b869...",
  "transactionHash": {
    "algorithm": "keccak256",
    "value": "0x9c22ff5f21f0b81b113e63f7db6da94fedef11b2119b4088b89664fb9a3cb658"
  },
  "context": {
    "requiredSigners": [
      "0x617F2E2fD72FD9D5503197092aC168c91465E7f2",
      "0x17F6AD8Ef982297579C203069C1DbfFE4348c372"
    ],
    "signerThreshold": 2,
    "policyTags": ["payroll", "recurring"],
    "gasPolicy": {
      "maxFeePerGas": "30000000000",
      "maxPriorityFeePerGas": "1500000000"
    },
    "expiry": "2026-08-31T23:59:59Z"
  },
  "producerAttestation": {
    "producerId": "producer-eu-1",
    "algorithm": "secp256k1",
    "signature": "0x4f3c1b...",
    "created": "2026-08-24T09:14:02Z"
  }
}

The producerAttestation signature is what binds the envelope to the transaction, covering the serialized intent, inputs, unsignedTransaction and transactionHash fields, so that a receiving role can satisfy the requirement Verify Received Transactions without trusting the channel it arrived on.