{ "openapi": "3.0.0", "info": { "title": "CryptoWallet API", "version": "2.0.0", "description": "Multi-chain cryptocurrency wallet API with blockchain proxy services" }, "servers": [ { "url": "/api", "description": "API" } ], "components": { "securitySchemes": { "bearerAuth": { "type": "http", "scheme": "bearer", "bearerFormat": "JWT" } }, "schemas": { "Error": { "type": "object", "properties": { "success": { "type": "boolean", "example": false }, "error": { "type": "string" } } }, "Wallet": { "type": "object", "properties": { "chain": { "type": "string", "enum": ["ETH", "BTC", "SOL", "TRX", "BSC"] }, "address": { "type": "string" }, "derivationPath": { "type": "string" } } }, "HealthResponse": { "type": "object", "properties": { "success": { "type": "boolean", "example": true }, "data": { "type": "object", "properties": { "status": { "type": "string", "example": "ok" } } } } } } }, "paths": { "/csrf/token": { "get": { "summary": "Issue CSRF token (sets cookie, returns token for X-CSRF-Token header)", "tags": ["System"], "responses": { "200": { "description": "CSRF token issued", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "type": "boolean", "example": true }, "data": { "type": "object", "properties": { "token": { "type": "string" }, "header_name": { "type": "string", "example": "X-CSRF-Token" } } } } } } } } } } }, "/health": { "get": { "summary": "Health check", "tags": ["System"], "responses": { "200": { "description": "Service is healthy", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HealthResponse" } } } } } } }, "/wallets": { "get": { "summary": "Get user wallets", "tags": ["Wallets"], "security": [{ "bearerAuth": [] }], "responses": { "200": { "description": "List of wallets", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "type": "boolean", "example": true }, "data": { "type": "array", "items": { "$ref": "#/components/schemas/Wallet" } } } } } } }, "401": { "description": "Not authenticated", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } } } } } } }