Message Argument JSON Schema#

{
  "$id": "https://raw.githubusercontent.com/yeagerai/genvm/refs/heads/main/doc/schemas/message.json",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "title": "GenVM message",
  "$ref": "#/definitions/body",
  "definitions": {
    "body": {
      "type": "object",
      "properties": {
          "$schema": { "type": "string" },
          "contract_address": {
            "type": "string",
            "description": "20-byte account address",
            "contentEncoding": "base64",
            "minLength": 28,
            "maxLength": 28
          },
          "sender_address": {
            "type": "string",
            "description": "20-byte account address",
            "contentEncoding": "base64",
            "minLength": 28,
            "maxLength": 28
          },
          "origin_address": {
            "type": "string",
            "description": "20-byte account address",
            "contentEncoding": "base64",
            "minLength": 28,
            "maxLength": 28
          },
          "chain_id": {
            "type": "string",
            "description": "chain id number, must be a parsable u256"
          },
          "value": {
            "oneOf": [{ "type": "null" }, { "type": "integer", "minimum": 0 }],
            "description": "amount of GEN attached to message (u64)"
          },
          "is_init": {
            "type": "boolean",
            "description": "whenever contract is being instantiated"
          },
          "datetime": {
            "type": "string",
            "format": "date-time",
            "description": "RFC3339 timestamp, defaults to 2024-11-26T06:42:42.424242Z if not provided"
          }
      },
      "required": ["contract_address", "sender_address", "origin_address", "chain_id", "is_init"]
    }
  }
}