{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "title": "MessageInfo",
  "description": "MessageInfo is sent with `init`, `handle`, and `migrate` calls, but not with queries. It contains the essential info for authorization - identity of the call, and payment",
  "type": "object",
  "required": [
    "sender",
    "sent_funds"
  ],
  "properties": {
    "sender": {
      "description": "The `sender` field from the `wasm/MsgStoreCode`, `wasm/MsgInstantiateContract`, `wasm/MsgMigrateContract` or `wasm/MsgExecuteContract` message. You can think of this as the address that initiated the action (i.e. the message). What that means exactly heavily depends on the application.\n\nThe x/wasm module ensures that the sender address signed the transaction. Additional signers of the transaction that are either needed for other messages or contain unnecessary signatures are not propagated into the contract.\n\nThere is a discussion to open up this field to multiple initiators, which you're welcome to join if you have a specific need for that feature: https://github.com/CosmWasm/cosmwasm/issues/293",
      "allOf": [
        {
          "$ref": "#/definitions/HumanAddr"
        }
      ]
    },
    "sent_funds": {
      "type": "array",
      "items": {
        "$ref": "#/definitions/Coin"
      }
    }
  },
  "definitions": {
    "Coin": {
      "type": "object",
      "required": [
        "amount",
        "denom"
      ],
      "properties": {
        "amount": {
          "$ref": "#/definitions/Uint128"
        },
        "denom": {
          "type": "string"
        }
      }
    },
    "HumanAddr": {
      "type": "string"
    },
    "Uint128": {
      "type": "string"
    }
  }
}
