{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "title": "MultiSigConfig",
  "description": "Together, determines the address of a multisig account.",
  "type": "object",
  "properties": {
    "authorized_signers": {
      "description": "The accounts which may sign for a multisig transaction to be accepted",
      "type": "array",
      "items": {
        "$ref": "#/$defs/PublicKeyBytes"
      }
    },
    "quorum": {
      "description": "The minimum number of accounts that must sign",
      "$ref": "#/$defs/Quorum"
    },
    "nonce": {
      "description": "Arbitrary data. Useful for creating multiple distinct multisig accounts with the same\ncommittee/quorum.",
      "$ref": "#/$defs/Nonce"
    }
  },
  "required": [
    "authorized_signers",
    "quorum",
    "nonce"
  ],
  "$defs": {
    "PublicKeyBytes": {
      "description": "A byte sequence that names an entity on or off the FastSet network,\ndepending on the name of type which stores this value;\ntypically encoded as an Ed25519 public key,\nbut may have other formats including but not limited to:\n(a) Burn Address - a 32-byte string composed of all 0x00 bytes.\nNote: any funds sent to the burn address will be permenantly lost!",
      "type": "array",
      "items": {
        "type": "integer",
        "format": "uint8",
        "minimum": 0,
        "maximum": 255
      },
      "minItems": 32,
      "maxItems": 32
    },
    "Quorum": {
      "type": "integer",
      "format": "uint64",
      "minimum": 0
    },
    "Nonce": {
      "type": "integer",
      "format": "uint64",
      "minimum": 0
    }
  }
}