{
  "openapi": "3.1.0",
  "info": {
    "title": "Prove Army - Anchor/Arcium Proof Chain",
    "version": "0.3.4",
    "description": "Prove Army builds burn-gated Anchor proof sessions and Arcium verdict payloads for a Solana-anchored proof-mining game."
  },
  "servers": [
    {
      "url": "https://prove.army"
    },
    {
      "url": "https://pop-mp-fun.fly.dev"
    }
  ],
  "paths": {
    "/status": {
      "get": {
        "operationId": "getStatus",
        "summary": "Get PoP chain status",
        "responses": {
          "200": {
            "description": "Status",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "/challenge": {
      "get": {
        "operationId": "getChallenge",
        "summary": "Get active PoP challenge",
        "responses": {
          "200": {
            "description": "Challenge",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "/prompt": {
      "get": {
        "operationId": "getPrompt",
        "summary": "Get canonical PoP miner prompt",
        "responses": {
          "200": {
            "description": "Prompt",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/submit": {
      "post": {
        "operationId": "submitProof",
        "summary": "Submit a PoP proof; valid proofs mint 1 POP",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "miner",
                  "proof"
                ],
                "properties": {
                  "miner": {
                    "type": "string"
                  },
                  "proof": {
                    "type": "string"
                  },
                  "anchor_session": {
                    "type": "object",
                    "properties": {
                      "state_account": {
                        "type": "string"
                      },
                      "rpc_url": {
                        "type": "string"
                      },
                      "program_id": {
                        "type": "string"
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Accepted",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "400": {
            "description": "Rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "/mcp": {
      "get": {
        "operationId": "getMcpMetadata",
        "summary": "Get Prove Army MCP metadata",
        "responses": {
          "200": {
            "description": "MCP metadata",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "/SKILL.md": {
      "get": {
        "operationId": "getSkillMarkdown",
        "summary": "Get the Prove Army miner skill",
        "responses": {
          "200": {
            "description": "Skill markdown",
            "content": {
              "text/markdown": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/production/config": {
      "get": {
        "operationId": "getProductionConfig",
        "summary": "Production profile (dual-oracle, Anchor, Arcium)",
        "responses": {
          "200": {
            "description": "Production config",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "/anchor/config": {
      "get": {
        "operationId": "getAnchorConfig",
        "summary": "Get primary Anchor/Arcium config",
        "responses": {
          "200": {
            "description": "Anchor/Arcium config",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "/anchor/build": {
      "post": {
        "operationId": "buildAnchorArciumSession",
        "summary": "Build Anchor session and Arcium queue bindings for a proof",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "proof"
                ],
                "properties": {
                  "miner": {
                    "type": "string"
                  },
                  "proof": {
                    "type": "string"
                  },
                  "anchor_state": {
                    "type": "string"
                  },
                  "anchor_arcium_config": {
                    "type": "string"
                  },
                  "anchor_program": {
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Anchor/Arcium build payload",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "400": {
            "description": "Invalid proof",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "/anchor/verify": {
      "post": {
        "operationId": "verifyAnchorSession",
        "summary": "Verify an Anchor session account",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "state_account"
                ],
                "properties": {
                  "state_account": {
                    "type": "string"
                  },
                  "rpc_url": {
                    "type": "string"
                  },
                  "program_id": {
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Accepted",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "400": {
            "description": "Rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "/arcium/config": {
      "get": {
        "operationId": "getArciumConfig",
        "summary": "Get Arcium PoP verdict build config",
        "responses": {
          "200": {
            "description": "Arcium config",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "/arcium/build": {
      "post": {
        "operationId": "buildArciumPayload",
        "summary": "Build Arcium queue bindings for a PoP proof",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "proof"
                ],
                "properties": {
                  "miner": {
                    "type": "string"
                  },
                  "proof": {
                    "type": "string"
                  },
                  "anchor_state": {
                    "type": "string"
                  },
                  "anchor_arcium_config": {
                    "type": "string"
                  },
                  "anchor_program": {
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Arcium build payload",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "400": {
            "description": "Invalid proof",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "/dual-oracle/config": {
      "get": {
        "operationId": "getDualOracleConfig",
        "summary": "Dual-oracle mint gate config",
        "responses": {
          "200": {
            "description": "Dual-oracle config",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "/dual-oracle/bindings": {
      "post": {
        "operationId": "previewDualOracleBindings",
        "summary": "Preview challenge/proof binding digests for Anchor/Arcium session open",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "proof"
                ],
                "properties": {
                  "proof": {
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Binding preview",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "400": {
            "description": "Invalid proof",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "/arcium/private-spec": {
      "get": {
        "operationId": "getArciumPrivateSpec",
        "summary": "Get Arcium private verdict binding spec",
        "responses": {
          "200": {
            "description": "Arcium private verdict spec",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "/openai.json": {
      "get": {
        "operationId": "getOpenAiActionsJson",
        "summary": "Get the OpenAI Custom GPT actions schema",
        "responses": {
          "200": {
            "description": "OpenAI actions schema",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "/actions.json": {
      "get": {
        "operationId": "getActionsJson",
        "summary": "Get the OpenAI Custom GPT actions schema",
        "responses": {
          "200": {
            "description": "OpenAI actions schema",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    }
  }
}