{
  "$ref": "#/definitions/endpoint-v1",
  "definitions": {
    "endpoint-v1": {
      "type": "object",
      "properties": {
        "v": {
          "type": "string",
          "const": "0.1"
        },
        "id": {
          "type": "string",
          "minLength": 4,
          "maxLength": 64,
          "pattern": "^[a-z0-9][a-z0-9-]*[a-z0-9]$"
        },
        "label": {
          "type": "string",
          "minLength": 1,
          "maxLength": 120
        },
        "description": {
          "type": "string",
          "maxLength": 500
        },
        "owner_agent": {
          "type": "string",
          "minLength": 32
        },
        "owner_wallet": {
          "type": "string",
          "minLength": 32
        },
        "method": {
          "type": "string",
          "enum": [
            "GET",
            "POST"
          ]
        },
        "price": {
          "type": "string",
          "minLength": 1
        },
        "network": {
          "type": "string",
          "enum": [
            "solana-mainnet",
            "solana-devnet",
            "solana-testnet"
          ],
          "default": "solana-devnet"
        },
        "currency": {
          "type": "string",
          "enum": [
            "USDC",
            "USDT",
            "USDG"
          ],
          "default": "USDC"
        },
        "accepts_currencies": {
          "type": "array",
          "items": {
            "type": "string",
            "enum": [
              "USDC",
              "USDT",
              "USDG"
            ]
          },
          "maxItems": 3,
          "default": []
        },
        "response": {
          "type": "object",
          "properties": {
            "status": {
              "type": "integer",
              "minimum": 100,
              "maximum": 599,
              "default": 200
            },
            "mimeType": {
              "type": "string",
              "default": "application/json"
            },
            "body": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "object",
                  "additionalProperties": {}
                }
              ]
            }
          },
          "required": [
            "body"
          ],
          "additionalProperties": false
        },
        "webhook_url": {
          "type": "string",
          "format": "uri"
        },
        "wrap_receipt": {
          "type": "boolean",
          "default": false
        },
        "created_at": {
          "type": "string"
        },
        "updated_at": {
          "type": "string"
        }
      },
      "required": [
        "v",
        "id",
        "label",
        "owner_agent",
        "method",
        "price",
        "response",
        "created_at",
        "updated_at"
      ],
      "additionalProperties": false
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}