{
  "openapi": "3.1.0",
  "info": {
    "title": "MONAF Monad API",
    "version": "1.0.0",
    "description": "Read-only Monad mainnet (chain 143) reference data. Every live number carries as_of and source. Alpha · unaudited."
  },
  "servers": [
    {
      "url": "https://monaf.ai"
    }
  ],
  "paths": {
    "/api/v1/tokens": {
      "get": {
        "summary": "Curated tokens",
        "parameters": [],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/tokens/{id}": {
      "get": {
        "summary": "Token by symbol or address",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/pools": {
      "get": {
        "summary": "Desk pools",
        "parameters": [],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/pools/{address}": {
      "get": {
        "summary": "Live v3 pool state",
        "parameters": [
          {
            "name": "address",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/pairs/{pair}": {
      "get": {
        "summary": "Discover pools for a pair such as WMON-USDC",
        "parameters": [
          {
            "name": "pair",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/quote": {
      "get": {
        "summary": "Read-only swap quote",
        "parameters": [
          {
            "name": "from",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "to",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/atlas": {
      "get": {
        "summary": "Protocol atlas",
        "parameters": [],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/protocols/{slug}": {
      "get": {
        "summary": "Protocol detail",
        "parameters": [
          {
            "name": "slug",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/network": {
      "get": {
        "summary": "Network snapshot",
        "parameters": [],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/gas": {
      "get": {
        "summary": "Gas now: base fee and priority-fee percentiles (eth_feeHistory)",
        "parameters": [],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/block/{number}": {
      "get": {
        "summary": "Block summary from eth_getBlockReceipts (omit number for latest)",
        "parameters": [
          {
            "name": "number",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/swaps": {
      "get": {
        "summary": "Recent swaps on the desk pools (eth_getLogs)",
        "parameters": [
          {
            "name": "pool",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "windows",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/tx/{hash}": {
      "get": {
        "summary": "Explain a transaction: transfers and call tree (debug_traceTransaction)",
        "parameters": [
          {
            "name": "hash",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/simulate": {
      "get": {
        "summary": "Dry-run an unsigned action with eth_simulateV1",
        "parameters": [
          {
            "name": "from",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "kind",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "token",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "spender",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "to",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/quicknode": {
      "get": {
        "summary": "RPC capabilities in use and unsupported",
        "parameters": [],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/reports/{day}": {
      "get": {
        "summary": "Daily report",
        "parameters": [
          {
            "name": "day",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/news": {
      "get": {
        "summary": "Ecosystem releases",
        "parameters": [],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/contracts": {
      "get": {
        "summary": "Canonical contracts",
        "parameters": [],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/glossary": {
      "get": {
        "summary": "Glossary",
        "parameters": [],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/search": {
      "get": {
        "summary": "Search the reference",
        "parameters": [
          {
            "name": "q",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/export/{file}": {
      "get": {
        "summary": "Bulk export (tokens|pools|contracts|protocols|glossary).json|csv; add free=1",
        "parameters": [
          {
            "name": "file",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "free",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/rpc": {
      "post": {
        "summary": "Read-only JSON-RPC proxy (allowlisted methods)",
        "responses": {
          "200": {
            "description": "JSON-RPC"
          }
        }
      }
    },
    "/mcp": {
      "post": {
        "summary": "Model Context Protocol (JSON-RPC 2.0, streamable HTTP)",
        "responses": {
          "200": {
            "description": "MCP"
          }
        }
      }
    }
  }
}