{
  "components": {
    "schemas": {
      "AccountState": {
        "properties": {
          "accountValue": {
            "type": "string"
          },
          "spotBalances": {
            "items": {
              "$ref": "#/components/schemas/SpotBalance"
            },
            "type": "array"
          },
          "withdrawable": {
            "type": "string"
          }
        },
        "required": [
          "accountValue",
          "withdrawable",
          "spotBalances"
        ],
        "type": "object"
      },
      "AddWalletsBody": {
        "properties": {
          "position": {
            "format": "int32",
            "nullable": true,
            "type": "integer"
          },
          "walletIds": {
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "required": [
          "walletIds"
        ],
        "type": "object"
      },
      "AgentInvocationStatus": {
        "enum": [
          "pending",
          "running",
          "completed",
          "failed",
          "timeout"
        ],
        "type": "string"
      },
      "AgentInvokeOutput": {
        "properties": {
          "error": {
            "nullable": true,
            "type": "string"
          },
          "finalResponse": {
            "nullable": true,
            "type": "string"
          },
          "sessionId": {
            "type": "string"
          },
          "status": {
            "$ref": "#/components/schemas/AgentInvocationStatus"
          },
          "triggerFireId": {
            "type": "string"
          }
        },
        "required": [
          "sessionId",
          "status",
          "triggerFireId"
        ],
        "type": "object"
      },
      "AgentInvokeRequest": {
        "properties": {
          "awaitResult": {
            "description": "Whether the eventual runtime should wait for a final response.",
            "nullable": true,
            "type": "boolean"
          },
          "prompt": {
            "description": "Additional user prompt supplied by the external caller.",
            "type": "string"
          }
        },
        "required": [
          "prompt"
        ],
        "type": "object"
      },
      "AgentKeyConstraintsResponse": {
        "properties": {
          "allowBribes": {
            "type": "boolean"
          },
          "allowCustomGas": {
            "type": "boolean"
          },
          "allowedNetworks": {
            "items": {
              "format": "int32",
              "type": "integer"
            },
            "type": "array"
          },
          "allowedWalletIds": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "buysEnabled": {
            "type": "boolean"
          },
          "maxBuyUsdPerDay": {
            "format": "double",
            "nullable": true,
            "type": "number"
          },
          "maxBuyUsdPerTrade": {
            "format": "double",
            "nullable": true,
            "type": "number"
          },
          "maxConcurrentExecutions": {
            "format": "int32",
            "minimum": 0,
            "type": "integer"
          },
          "maxExecutionsPerDay": {
            "format": "int32",
            "minimum": 0,
            "type": "integer"
          },
          "maxExecutionsPerHour": {
            "format": "int32",
            "minimum": 0,
            "type": "integer"
          },
          "maxLimitOrderUsdPerOrder": {
            "format": "double",
            "nullable": true,
            "type": "number"
          },
          "maxLimitOrdersPerDay": {
            "format": "int32",
            "minimum": 0,
            "type": "integer"
          },
          "maxPriceImpactPct": {
            "format": "int32",
            "minimum": 0,
            "nullable": true,
            "type": "integer"
          },
          "maxSellPositionPct": {
            "format": "int32",
            "minimum": 0,
            "nullable": true,
            "type": "integer"
          },
          "maxSellUsdPerDay": {
            "format": "double",
            "nullable": true,
            "type": "number"
          },
          "maxSellUsdPerTrade": {
            "format": "double",
            "nullable": true,
            "type": "number"
          },
          "maxSlippageBps": {
            "format": "int32",
            "minimum": 0,
            "nullable": true,
            "type": "integer"
          },
          "sellsEnabled": {
            "type": "boolean"
          }
        },
        "required": [
          "buysEnabled",
          "sellsEnabled",
          "maxExecutionsPerHour",
          "maxExecutionsPerDay",
          "maxConcurrentExecutions",
          "allowCustomGas",
          "allowBribes",
          "maxLimitOrdersPerDay"
        ],
        "type": "object"
      },
      "AgentSessionStatusOutput": {
        "properties": {
          "error": {
            "nullable": true,
            "type": "string"
          },
          "finalResponse": {
            "nullable": true,
            "type": "string"
          },
          "sessionId": {
            "type": "string"
          },
          "status": {
            "$ref": "#/components/schemas/AgentInvocationStatus"
          },
          "triggerFireId": {
            "nullable": true,
            "type": "string"
          }
        },
        "required": [
          "sessionId",
          "status"
        ],
        "type": "object"
      },
      "AlphaCallCallerItem": {
        "properties": {
          "avatarUrl": {
            "nullable": true,
            "type": "string"
          },
          "displayName": {
            "nullable": true,
            "type": "string"
          },
          "username": {
            "nullable": true,
            "type": "string"
          },
          "verified": {
            "nullable": true,
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "AlphaCallSignalItem": {
        "properties": {
          "caller": {
            "$ref": "#/components/schemas/AlphaCallCallerItem",
            "nullable": true
          },
          "contextMessages": {
            "items": {
              "$ref": "#/components/schemas/ContextMessageItem"
            },
            "nullable": true,
            "type": "array"
          },
          "isBot": {
            "type": "boolean"
          },
          "liquidityUsd": {
            "format": "double",
            "nullable": true,
            "type": "number"
          },
          "marketCapUsd": {
            "format": "double",
            "nullable": true,
            "type": "number"
          },
          "messagePreview": {
            "nullable": true,
            "type": "string"
          },
          "platform": {
            "type": "string"
          },
          "priceUsd": {
            "format": "double",
            "nullable": true,
            "type": "number"
          },
          "signalId": {
            "type": "string"
          },
          "source": {
            "$ref": "#/components/schemas/AlphaCallSourceDetailItem",
            "nullable": true
          },
          "timestampMs": {
            "format": "int64",
            "type": "integer"
          },
          "tradeData": {
            "$ref": "#/components/schemas/AlphaTradeDataItem",
            "nullable": true
          }
        },
        "required": [
          "signalId",
          "timestampMs",
          "platform",
          "isBot"
        ],
        "type": "object"
      },
      "AlphaCallSourceDetailItem": {
        "properties": {
          "channelId": {
            "nullable": true,
            "type": "string"
          },
          "channelName": {
            "nullable": true,
            "type": "string"
          },
          "guildId": {
            "nullable": true,
            "type": "string"
          },
          "messageId": {
            "nullable": true,
            "type": "string"
          },
          "serverName": {
            "nullable": true,
            "type": "string"
          },
          "topicId": {
            "format": "int32",
            "nullable": true,
            "type": "integer"
          },
          "topicTitle": {
            "nullable": true,
            "type": "string"
          },
          "tweetId": {
            "nullable": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "AlphaSourceItem": {
        "properties": {
          "connectionId": {
            "type": "string"
          },
          "connectionType": {
            "type": "string"
          },
          "createdAt": {
            "nullable": true,
            "type": "string"
          },
          "enabled": {
            "type": "boolean"
          },
          "name": {
            "nullable": true,
            "type": "string"
          },
          "platform": {
            "nullable": true,
            "type": "string"
          },
          "source": {
            "nullable": true,
            "type": "string"
          }
        },
        "required": [
          "connectionId",
          "connectionType",
          "enabled"
        ],
        "type": "object"
      },
      "AlphaSourcesResult": {
        "properties": {
          "sources": {
            "items": {
              "$ref": "#/components/schemas/AlphaSourceItem"
            },
            "type": "array"
          }
        },
        "required": [
          "sources"
        ],
        "type": "object"
      },
      "AlphaTradeDataItem": {
        "properties": {
          "amountNative": {
            "type": "string"
          },
          "amountUsd": {
            "type": "string"
          },
          "isBuy": {
            "type": "boolean"
          },
          "txSignature": {
            "type": "string"
          },
          "walletAddress": {
            "type": "string"
          }
        },
        "required": [
          "isBuy",
          "amountUsd",
          "amountNative",
          "walletAddress",
          "txSignature"
        ],
        "type": "object"
      },
      "ApiErrorDetail": {
        "description": "V2 error detail",
        "properties": {
          "code": {
            "type": "string"
          },
          "details": {},
          "message": {
            "type": "string"
          }
        },
        "required": [
          "code",
          "message"
        ],
        "type": "object"
      },
      "ApiErrorResponse": {
        "description": "V2 error response envelope",
        "properties": {
          "error": {
            "$ref": "#/components/schemas/ApiErrorDetail"
          },
          "requestId": {
            "type": "string"
          }
        },
        "required": [
          "error",
          "requestId"
        ],
        "type": "object"
      },
      "ApiKeyUsageResponse": {
        "properties": {
          "constraints": {
            "$ref": "#/components/schemas/AgentKeyConstraintsResponse",
            "nullable": true
          },
          "keyId": {
            "type": "string"
          },
          "scopes": {
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "required": [
          "keyId",
          "scopes"
        ],
        "type": "object"
      },
      "ApiResponse_AccountState": {
        "description": "V2 success response envelope",
        "properties": {
          "data": {
            "properties": {
              "accountValue": {
                "type": "string"
              },
              "spotBalances": {
                "items": {
                  "$ref": "#/components/schemas/SpotBalance"
                },
                "type": "array"
              },
              "withdrawable": {
                "type": "string"
              }
            },
            "required": [
              "accountValue",
              "withdrawable",
              "spotBalances"
            ],
            "type": "object"
          },
          "pagination": {
            "$ref": "#/components/schemas/PaginationInfo",
            "nullable": true
          },
          "requestId": {
            "type": "string"
          }
        },
        "required": [
          "data",
          "requestId"
        ],
        "type": "object"
      },
      "ApiResponse_AgentInvokeOutput": {
        "description": "V2 success response envelope",
        "properties": {
          "data": {
            "properties": {
              "error": {
                "nullable": true,
                "type": "string"
              },
              "finalResponse": {
                "nullable": true,
                "type": "string"
              },
              "sessionId": {
                "type": "string"
              },
              "status": {
                "$ref": "#/components/schemas/AgentInvocationStatus"
              },
              "triggerFireId": {
                "type": "string"
              }
            },
            "required": [
              "sessionId",
              "status",
              "triggerFireId"
            ],
            "type": "object"
          },
          "pagination": {
            "$ref": "#/components/schemas/PaginationInfo",
            "nullable": true
          },
          "requestId": {
            "type": "string"
          }
        },
        "required": [
          "data",
          "requestId"
        ],
        "type": "object"
      },
      "ApiResponse_AgentSessionStatusOutput": {
        "description": "V2 success response envelope",
        "properties": {
          "data": {
            "properties": {
              "error": {
                "nullable": true,
                "type": "string"
              },
              "finalResponse": {
                "nullable": true,
                "type": "string"
              },
              "sessionId": {
                "type": "string"
              },
              "status": {
                "$ref": "#/components/schemas/AgentInvocationStatus"
              },
              "triggerFireId": {
                "nullable": true,
                "type": "string"
              }
            },
            "required": [
              "sessionId",
              "status"
            ],
            "type": "object"
          },
          "pagination": {
            "$ref": "#/components/schemas/PaginationInfo",
            "nullable": true
          },
          "requestId": {
            "type": "string"
          }
        },
        "required": [
          "data",
          "requestId"
        ],
        "type": "object"
      },
      "ApiResponse_AlphaSourcesResult": {
        "description": "V2 success response envelope",
        "properties": {
          "data": {
            "properties": {
              "sources": {
                "items": {
                  "$ref": "#/components/schemas/AlphaSourceItem"
                },
                "type": "array"
              }
            },
            "required": [
              "sources"
            ],
            "type": "object"
          },
          "pagination": {
            "$ref": "#/components/schemas/PaginationInfo",
            "nullable": true
          },
          "requestId": {
            "type": "string"
          }
        },
        "required": [
          "data",
          "requestId"
        ],
        "type": "object"
      },
      "ApiResponse_ApiKeyUsageResponse": {
        "description": "V2 success response envelope",
        "properties": {
          "data": {
            "properties": {
              "constraints": {
                "$ref": "#/components/schemas/AgentKeyConstraintsResponse",
                "nullable": true
              },
              "keyId": {
                "type": "string"
              },
              "scopes": {
                "items": {
                  "type": "string"
                },
                "type": "array"
              }
            },
            "required": [
              "keyId",
              "scopes"
            ],
            "type": "object"
          },
          "pagination": {
            "$ref": "#/components/schemas/PaginationInfo",
            "nullable": true
          },
          "requestId": {
            "type": "string"
          }
        },
        "required": [
          "data",
          "requestId"
        ],
        "type": "object"
      },
      "ApiResponse_ApproveAllowanceResponse": {
        "description": "V2 success response envelope",
        "properties": {
          "data": {
            "properties": {
              "allowance": {
                "type": "string"
              },
              "chainId": {
                "format": "int64",
                "minimum": 0,
                "type": "integer"
              },
              "tokenAddress": {
                "type": "string"
              },
              "walletAddress": {
                "type": "string"
              }
            },
            "required": [
              "chainId",
              "tokenAddress",
              "walletAddress",
              "allowance"
            ],
            "type": "object"
          },
          "pagination": {
            "$ref": "#/components/schemas/PaginationInfo",
            "nullable": true
          },
          "requestId": {
            "type": "string"
          }
        },
        "required": [
          "data",
          "requestId"
        ],
        "type": "object"
      },
      "ApiResponse_ApproveSpenderResponse": {
        "description": "V2 success response envelope",
        "properties": {
          "data": {
            "properties": {
              "chainId": {
                "format": "int64",
                "minimum": 0,
                "type": "integer"
              },
              "spenderAddress": {
                "type": "string"
              }
            },
            "required": [
              "chainId",
              "spenderAddress"
            ],
            "type": "object"
          },
          "pagination": {
            "$ref": "#/components/schemas/PaginationInfo",
            "nullable": true
          },
          "requestId": {
            "type": "string"
          }
        },
        "required": [
          "data",
          "requestId"
        ],
        "type": "object"
      },
      "ApiResponse_ArchiveResponse": {
        "description": "V2 success response envelope",
        "properties": {
          "data": {
            "properties": {
              "clearedDefault": {
                "type": "boolean"
              },
              "wallet": {
                "$ref": "#/components/schemas/Wallet"
              }
            },
            "required": [
              "wallet",
              "clearedDefault"
            ],
            "type": "object"
          },
          "pagination": {
            "$ref": "#/components/schemas/PaginationInfo",
            "nullable": true
          },
          "requestId": {
            "type": "string"
          }
        },
        "required": [
          "data",
          "requestId"
        ],
        "type": "object"
      },
      "ApiResponse_BalancesResponse": {
        "description": "V2 success response envelope",
        "properties": {
          "data": {
            "properties": {
              "wallets": {
                "items": {
                  "$ref": "#/components/schemas/WalletBalance"
                },
                "type": "array"
              },
              "warnings": {
                "items": {
                  "type": "string"
                },
                "type": "array"
              }
            },
            "required": [
              "wallets"
            ],
            "type": "object"
          },
          "pagination": {
            "$ref": "#/components/schemas/PaginationInfo",
            "nullable": true
          },
          "requestId": {
            "type": "string"
          }
        },
        "required": [
          "data",
          "requestId"
        ],
        "type": "object"
      },
      "ApiResponse_BatchTokensResponse": {
        "description": "V2 success response envelope",
        "properties": {
          "data": {
            "properties": {
              "errors": {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              "invalid": {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              "notFound": {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              "tokens": {
                "items": {
                  "$ref": "#/components/schemas/TokenInfo"
                },
                "type": "array"
              }
            },
            "required": [
              "tokens",
              "notFound"
            ],
            "type": "object"
          },
          "pagination": {
            "$ref": "#/components/schemas/PaginationInfo",
            "nullable": true
          },
          "requestId": {
            "type": "string"
          }
        },
        "required": [
          "data",
          "requestId"
        ],
        "type": "object"
      },
      "ApiResponse_BuildTransactionResponse": {
        "description": "V2 success response envelope",
        "properties": {
          "data": {
            "description": "Wrapper enum for /transaction response (SVM or EVM).\nUses `#[serde(untagged)]` so the JSON shape varies by chain.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/SvmBuildTransactionResponse"
              },
              {
                "$ref": "#/components/schemas/EvmBuildTransactionResponse"
              }
            ]
          },
          "pagination": {
            "$ref": "#/components/schemas/PaginationInfo",
            "nullable": true
          },
          "requestId": {
            "type": "string"
          }
        },
        "required": [
          "data",
          "requestId"
        ],
        "type": "object"
      },
      "ApiResponse_BulkArchiveResponse": {
        "description": "V2 success response envelope",
        "properties": {
          "data": {
            "properties": {
              "results": {
                "items": {
                  "$ref": "#/components/schemas/BulkArchiveEntry"
                },
                "type": "array"
              }
            },
            "required": [
              "results"
            ],
            "type": "object"
          },
          "pagination": {
            "$ref": "#/components/schemas/PaginationInfo",
            "nullable": true
          },
          "requestId": {
            "type": "string"
          }
        },
        "required": [
          "data",
          "requestId"
        ],
        "type": "object"
      },
      "ApiResponse_CallContextResult": {
        "description": "V2 success response envelope",
        "properties": {
          "data": {
            "properties": {
              "hasMore": {
                "type": "boolean"
              },
              "nextCursor": {
                "format": "int64",
                "nullable": true,
                "type": "integer"
              },
              "signals": {
                "items": {
                  "$ref": "#/components/schemas/AlphaCallSignalItem"
                },
                "type": "array"
              },
              "tokenAddress": {
                "type": "string"
              },
              "totalSignals": {
                "format": "int32",
                "type": "integer"
              }
            },
            "required": [
              "tokenAddress",
              "totalSignals",
              "hasMore",
              "signals"
            ],
            "type": "object"
          },
          "pagination": {
            "$ref": "#/components/schemas/PaginationInfo",
            "nullable": true
          },
          "requestId": {
            "type": "string"
          }
        },
        "required": [
          "data",
          "requestId"
        ],
        "type": "object"
      },
      "ApiResponse_CancelledTriggerOrder": {
        "description": "V2 success response envelope",
        "properties": {
          "data": {
            "properties": {
              "orderId": {
                "type": "string"
              },
              "status": {
                "type": "string"
              }
            },
            "required": [
              "orderId",
              "status"
            ],
            "type": "object"
          },
          "pagination": {
            "$ref": "#/components/schemas/PaginationInfo",
            "nullable": true
          },
          "requestId": {
            "type": "string"
          }
        },
        "required": [
          "data",
          "requestId"
        ],
        "type": "object"
      },
      "ApiResponse_DeletedGroup": {
        "description": "V2 success response envelope",
        "properties": {
          "data": {
            "properties": {
              "groupId": {
                "type": "string"
              }
            },
            "required": [
              "groupId"
            ],
            "type": "object"
          },
          "pagination": {
            "$ref": "#/components/schemas/PaginationInfo",
            "nullable": true
          },
          "requestId": {
            "type": "string"
          }
        },
        "required": [
          "data",
          "requestId"
        ],
        "type": "object"
      },
      "ApiResponse_EnableMultisendResponse": {
        "description": "V2 success response envelope",
        "properties": {
          "data": {
            "properties": {
              "message": {
                "type": "string"
              },
              "taskId": {
                "type": "string"
              }
            },
            "required": [
              "taskId",
              "message"
            ],
            "type": "object"
          },
          "pagination": {
            "$ref": "#/components/schemas/PaginationInfo",
            "nullable": true
          },
          "requestId": {
            "type": "string"
          }
        },
        "required": [
          "data",
          "requestId"
        ],
        "type": "object"
      },
      "ApiResponse_ExecuteSplitResult": {
        "description": "V2 success response envelope",
        "properties": {
          "data": {
            "properties": {
              "splitnowOrderId": {
                "type": "string"
              },
              "taskId": {
                "type": "string"
              }
            },
            "required": [
              "taskId",
              "splitnowOrderId"
            ],
            "type": "object"
          },
          "pagination": {
            "$ref": "#/components/schemas/PaginationInfo",
            "nullable": true
          },
          "requestId": {
            "type": "string"
          }
        },
        "required": [
          "data",
          "requestId"
        ],
        "type": "object"
      },
      "ApiResponse_GlobalCallsResult": {
        "description": "V2 success response envelope",
        "properties": {
          "data": {
            "properties": {
              "calls": {
                "items": {
                  "$ref": "#/components/schemas/GlobalCallItem"
                },
                "type": "array"
              },
              "platform": {
                "type": "string"
              },
              "totalCount": {
                "format": "int32",
                "minimum": 0,
                "type": "integer"
              }
            },
            "required": [
              "calls",
              "totalCount",
              "platform"
            ],
            "type": "object"
          },
          "pagination": {
            "$ref": "#/components/schemas/PaginationInfo",
            "nullable": true
          },
          "requestId": {
            "type": "string"
          }
        },
        "required": [
          "data",
          "requestId"
        ],
        "type": "object"
      },
      "ApiResponse_LeverageResponse": {
        "description": "V2 success response envelope",
        "properties": {
          "data": {
            "properties": {
              "error": {
                "nullable": true,
                "type": "string"
              },
              "success": {
                "type": "boolean"
              }
            },
            "required": [
              "success"
            ],
            "type": "object"
          },
          "pagination": {
            "$ref": "#/components/schemas/PaginationInfo",
            "nullable": true
          },
          "requestId": {
            "type": "string"
          }
        },
        "required": [
          "data",
          "requestId"
        ],
        "type": "object"
      },
      "ApiResponse_ListSuggestionsResponse": {
        "description": "V2 success response envelope",
        "properties": {
          "data": {
            "properties": {
              "nextCursor": {
                "nullable": true,
                "type": "string"
              },
              "suggestions": {
                "items": {
                  "$ref": "#/components/schemas/TradeSuggestionView"
                },
                "type": "array"
              }
            },
            "required": [
              "suggestions"
            ],
            "type": "object"
          },
          "pagination": {
            "$ref": "#/components/schemas/PaginationInfo",
            "nullable": true
          },
          "requestId": {
            "type": "string"
          }
        },
        "required": [
          "data",
          "requestId"
        ],
        "type": "object"
      },
      "ApiResponse_MarginResponse": {
        "description": "V2 success response envelope",
        "properties": {
          "data": {
            "properties": {
              "error": {
                "nullable": true,
                "type": "string"
              },
              "success": {
                "type": "boolean"
              }
            },
            "required": [
              "success"
            ],
            "type": "object"
          },
          "pagination": {
            "$ref": "#/components/schemas/PaginationInfo",
            "nullable": true
          },
          "requestId": {
            "type": "string"
          }
        },
        "required": [
          "data",
          "requestId"
        ],
        "type": "object"
      },
      "ApiResponse_OrderResponse": {
        "description": "V2 success response envelope",
        "properties": {
          "data": {
            "properties": {
              "results": {
                "items": {
                  "$ref": "#/components/schemas/OrderResult"
                },
                "type": "array"
              }
            },
            "required": [
              "results"
            ],
            "type": "object"
          },
          "pagination": {
            "$ref": "#/components/schemas/PaginationInfo",
            "nullable": true
          },
          "requestId": {
            "type": "string"
          }
        },
        "required": [
          "data",
          "requestId"
        ],
        "type": "object"
      },
      "ApiResponse_PerpMarket": {
        "description": "V2 success response envelope",
        "properties": {
          "data": {
            "properties": {
              "asks": {
                "items": {
                  "$ref": "#/components/schemas/BookLevel"
                },
                "type": "array"
              },
              "bids": {
                "items": {
                  "$ref": "#/components/schemas/BookLevel"
                },
                "type": "array"
              },
              "ctx": {
                "$ref": "#/components/schemas/MarketCtx"
              },
              "meta": {
                "$ref": "#/components/schemas/MarketMeta"
              }
            },
            "required": [
              "meta",
              "ctx"
            ],
            "type": "object"
          },
          "pagination": {
            "$ref": "#/components/schemas/PaginationInfo",
            "nullable": true
          },
          "requestId": {
            "type": "string"
          }
        },
        "required": [
          "data",
          "requestId"
        ],
        "type": "object"
      },
      "ApiResponse_PerpPositionsResponse": {
        "description": "V2 success response envelope",
        "properties": {
          "data": {
            "properties": {
              "accountValue": {
                "type": "string"
              },
              "positions": {
                "items": {
                  "$ref": "#/components/schemas/Position"
                },
                "type": "array"
              },
              "spotBalances": {
                "description": "Spot-side balances on HyperCore (USDC, HYPE, etc.). Under Unified\nAccount mode these back perp positions as margin.",
                "items": {
                  "$ref": "#/components/schemas/SpotBalance"
                },
                "type": "array"
              },
              "totalMarginUsed": {
                "type": "string"
              },
              "totalNtlPos": {
                "type": "string"
              },
              "withdrawable": {
                "type": "string"
              }
            },
            "required": [
              "positions",
              "accountValue",
              "totalMarginUsed",
              "totalNtlPos",
              "withdrawable"
            ],
            "type": "object"
          },
          "pagination": {
            "$ref": "#/components/schemas/PaginationInfo",
            "nullable": true
          },
          "requestId": {
            "type": "string"
          }
        },
        "required": [
          "data",
          "requestId"
        ],
        "type": "object"
      },
      "ApiResponse_PlanSplitResult": {
        "description": "V2 success response envelope",
        "properties": {
          "data": {
            "properties": {
              "destinationCount": {
                "format": "int32",
                "minimum": 0,
                "type": "integer"
              },
              "expiresAt": {
                "type": "string"
              },
              "expiresInSeconds": {
                "format": "int32",
                "type": "integer"
              },
              "planId": {
                "type": "string"
              },
              "rates": {
                "items": {
                  "$ref": "#/components/schemas/PlanSplitRate"
                },
                "type": "array"
              },
              "summary": {
                "type": "string"
              },
              "warnings": {
                "items": {
                  "type": "string"
                },
                "type": "array"
              }
            },
            "required": [
              "planId",
              "destinationCount",
              "summary",
              "rates",
              "warnings",
              "expiresAt",
              "expiresInSeconds"
            ],
            "type": "object"
          },
          "pagination": {
            "$ref": "#/components/schemas/PaginationInfo",
            "nullable": true
          },
          "requestId": {
            "type": "string"
          }
        },
        "required": [
          "data",
          "requestId"
        ],
        "type": "object"
      },
      "ApiResponse_PortfolioHistoryResponse": {
        "description": "V2 success response envelope",
        "properties": {
          "data": {
            "properties": {
              "trades": {
                "items": {
                  "$ref": "#/components/schemas/PortfolioTrade"
                },
                "type": "array"
              },
              "warnings": {
                "items": {
                  "type": "string"
                },
                "type": "array"
              }
            },
            "required": [
              "trades"
            ],
            "type": "object"
          },
          "pagination": {
            "$ref": "#/components/schemas/PaginationInfo",
            "nullable": true
          },
          "requestId": {
            "type": "string"
          }
        },
        "required": [
          "data",
          "requestId"
        ],
        "type": "object"
      },
      "ApiResponse_PortfolioPnlResponse": {
        "description": "V2 success response envelope",
        "properties": {
          "data": {
            "properties": {
              "portfolioHistory": {
                "items": {
                  "$ref": "#/components/schemas/PortfolioHistoryPoint"
                },
                "type": "array"
              },
              "positionCount": {
                "format": "int32",
                "minimum": 0,
                "type": "integer"
              },
              "totalBoughtUsd": {
                "format": "double",
                "type": "number"
              },
              "totalPnlUsd": {
                "format": "double",
                "type": "number"
              },
              "totalRealizedPnlUsd": {
                "format": "double",
                "type": "number"
              },
              "totalSoldUsd": {
                "format": "double",
                "type": "number"
              },
              "totalUnrealizedPnlUsd": {
                "format": "double",
                "type": "number"
              },
              "totalValueUsd": {
                "format": "double",
                "type": "number"
              }
            },
            "required": [
              "totalValueUsd",
              "totalBoughtUsd",
              "totalSoldUsd",
              "totalPnlUsd",
              "totalRealizedPnlUsd",
              "totalUnrealizedPnlUsd",
              "positionCount",
              "portfolioHistory"
            ],
            "type": "object"
          },
          "pagination": {
            "$ref": "#/components/schemas/PaginationInfo",
            "nullable": true
          },
          "requestId": {
            "type": "string"
          }
        },
        "required": [
          "data",
          "requestId"
        ],
        "type": "object"
      },
      "ApiResponse_PositionsResponse": {
        "description": "V2 success response envelope",
        "properties": {
          "data": {
            "description": "Positions response with aggregated data",
            "example": {
              "positionCount": 1,
              "positions": [
                {
                  "balanceUsd": 1000,
                  "boughtUsd": 1500,
                  "latestBalanceRaw": "1000000000",
                  "latestTokenUsdPrice": 1,
                  "network": "sol",
                  "realisedPnlPct": -33.33,
                  "soldUsd": 500,
                  "tokenAddress": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                  "tokenDecimal": 6,
                  "totalPnlPct": 0,
                  "walletAddress": "CuieVDEDtLo7FypA9SbLM9saXFdb1dsshEkyErMqkRQq"
                }
              ],
              "totalValueUsd": 1000
            },
            "properties": {
              "positionCount": {
                "description": "Number of positions",
                "minimum": 0,
                "type": "integer"
              },
              "positions": {
                "description": "List of token positions",
                "items": {
                  "$ref": "#/components/schemas/PositionInfo"
                },
                "type": "array"
              },
              "totalValueUsd": {
                "description": "Total portfolio value in USD",
                "format": "double",
                "type": "number"
              }
            },
            "required": [
              "positions",
              "totalValueUsd",
              "positionCount"
            ],
            "type": "object"
          },
          "pagination": {
            "$ref": "#/components/schemas/PaginationInfo",
            "nullable": true
          },
          "requestId": {
            "type": "string"
          }
        },
        "required": [
          "data",
          "requestId"
        ],
        "type": "object"
      },
      "ApiResponse_QuoteResponse": {
        "description": "V2 success response envelope",
        "properties": {
          "data": {
            "properties": {
              "chain": {
                "type": "string"
              },
              "expiresAt": {
                "type": "string"
              },
              "fees": {
                "$ref": "#/components/schemas/QuoteFees",
                "description": "Fee breakdown for this quote."
              },
              "inAmount": {
                "type": "string"
              },
              "inputMint": {
                "type": "string"
              },
              "outAmount": {
                "type": "string"
              },
              "outputMint": {
                "type": "string"
              },
              "priceImpactPct": {
                "nullable": true,
                "type": "string"
              },
              "quoteId": {
                "description": "Informational identifier for this quote. Not stored server-side — a fresh\nquote is generated at execution time. Useful for logging and correlation.",
                "type": "string"
              },
              "routes": {
                "description": "Route hops describing the DEX path taken.",
                "items": {
                  "$ref": "#/components/schemas/RouteHop"
                },
                "type": "array"
              },
              "slippageBps": {
                "format": "int32",
                "type": "integer"
              }
            },
            "required": [
              "quoteId",
              "chain",
              "inputMint",
              "outputMint",
              "inAmount",
              "outAmount",
              "routes",
              "fees",
              "slippageBps",
              "expiresAt"
            ],
            "type": "object"
          },
          "pagination": {
            "$ref": "#/components/schemas/PaginationInfo",
            "nullable": true
          },
          "requestId": {
            "type": "string"
          }
        },
        "required": [
          "data",
          "requestId"
        ],
        "type": "object"
      },
      "ApiResponse_RecentCallsResult": {
        "description": "V2 success response envelope",
        "properties": {
          "data": {
            "properties": {
              "calls": {
                "items": {
                  "$ref": "#/components/schemas/RecentCallItem"
                },
                "type": "array"
              },
              "totalCount": {
                "format": "int32",
                "minimum": 0,
                "type": "integer"
              }
            },
            "required": [
              "calls",
              "totalCount"
            ],
            "type": "object"
          },
          "pagination": {
            "$ref": "#/components/schemas/PaginationInfo",
            "nullable": true
          },
          "requestId": {
            "type": "string"
          }
        },
        "required": [
          "data",
          "requestId"
        ],
        "type": "object"
      },
      "ApiResponse_SettingsResponse": {
        "description": "V2 success response envelope",
        "properties": {
          "data": {
            "description": "User settings response",
            "properties": {
              "tradeSettings": {
                "$ref": "#/components/schemas/UserTradeSettingsResponse",
                "description": "Trade settings",
                "nullable": true
              }
            },
            "type": "object"
          },
          "pagination": {
            "$ref": "#/components/schemas/PaginationInfo",
            "nullable": true
          },
          "requestId": {
            "type": "string"
          }
        },
        "required": [
          "data",
          "requestId"
        ],
        "type": "object"
      },
      "ApiResponse_StreamCatalogResponse": {
        "description": "V2 success response envelope",
        "properties": {
          "data": {
            "properties": {
              "streams": {
                "items": {
                  "$ref": "#/components/schemas/StreamEntry"
                },
                "type": "array"
              }
            },
            "required": [
              "streams"
            ],
            "type": "object"
          },
          "pagination": {
            "$ref": "#/components/schemas/PaginationInfo",
            "nullable": true
          },
          "requestId": {
            "type": "string"
          }
        },
        "required": [
          "data",
          "requestId"
        ],
        "type": "object"
      },
      "ApiResponse_SubmitTransactionResponse": {
        "description": "V2 success response envelope",
        "properties": {
          "data": {
            "description": "Response for /submit and /execute endpoints",
            "properties": {
              "status": {
                "type": "string"
              },
              "taskId": {
                "type": "string"
              },
              "txHash": {
                "type": "string"
              }
            },
            "required": [
              "taskId",
              "txHash",
              "status"
            ],
            "type": "object"
          },
          "pagination": {
            "$ref": "#/components/schemas/PaginationInfo",
            "nullable": true
          },
          "requestId": {
            "type": "string"
          }
        },
        "required": [
          "data",
          "requestId"
        ],
        "type": "object"
      },
      "ApiResponse_SwapStatus": {
        "description": "V2 success response envelope",
        "properties": {
          "data": {
            "properties": {
              "errorCode": {
                "nullable": true,
                "type": "string"
              },
              "errorMessage": {
                "nullable": true,
                "type": "string"
              },
              "status": {
                "description": "Status: \"submitted\", \"pending\", \"success\", \"failed\"",
                "type": "string"
              },
              "taskId": {
                "type": "string"
              },
              "txHash": {
                "nullable": true,
                "type": "string"
              }
            },
            "required": [
              "taskId",
              "status"
            ],
            "type": "object"
          },
          "pagination": {
            "$ref": "#/components/schemas/PaginationInfo",
            "nullable": true
          },
          "requestId": {
            "type": "string"
          }
        },
        "required": [
          "data",
          "requestId"
        ],
        "type": "object"
      },
      "ApiResponse_TaskStatus": {
        "description": "V2 success response envelope",
        "properties": {
          "data": {
            "properties": {
              "errorCode": {
                "nullable": true,
                "type": "string"
              },
              "errorMessage": {
                "nullable": true,
                "type": "string"
              },
              "status": {
                "$ref": "#/components/schemas/TaskState"
              },
              "taskId": {
                "type": "string"
              },
              "taskType": {
                "$ref": "#/components/schemas/TaskKind"
              },
              "txHash": {
                "nullable": true,
                "type": "string"
              }
            },
            "required": [
              "taskId",
              "taskType",
              "status"
            ],
            "type": "object"
          },
          "pagination": {
            "$ref": "#/components/schemas/PaginationInfo",
            "nullable": true
          },
          "requestId": {
            "type": "string"
          }
        },
        "required": [
          "data",
          "requestId"
        ],
        "type": "object"
      },
      "ApiResponse_TokenChartResponse": {
        "description": "V2 success response envelope",
        "properties": {
          "data": {
            "properties": {
              "candles": {
                "items": {
                  "$ref": "#/components/schemas/TokenChartCandle"
                },
                "type": "array"
              },
              "resolution": {
                "type": "string"
              },
              "tokenId": {
                "type": "string"
              }
            },
            "required": [
              "tokenId",
              "resolution",
              "candles"
            ],
            "type": "object"
          },
          "pagination": {
            "$ref": "#/components/schemas/PaginationInfo",
            "nullable": true
          },
          "requestId": {
            "type": "string"
          }
        },
        "required": [
          "data",
          "requestId"
        ],
        "type": "object"
      },
      "ApiResponse_TokenInfo": {
        "description": "V2 success response envelope",
        "properties": {
          "data": {
            "properties": {
              "address": {
                "type": "string"
              },
              "chain": {
                "type": "string"
              },
              "decimals": {
                "format": "int32",
                "minimum": 0,
                "type": "integer"
              },
              "name": {
                "type": "string"
              },
              "symbol": {
                "type": "string"
              },
              "tokenId": {
                "type": "string"
              }
            },
            "required": [
              "tokenId",
              "chain",
              "address",
              "name",
              "symbol",
              "decimals"
            ],
            "type": "object"
          },
          "pagination": {
            "$ref": "#/components/schemas/PaginationInfo",
            "nullable": true
          },
          "requestId": {
            "type": "string"
          }
        },
        "required": [
          "data",
          "requestId"
        ],
        "type": "object"
      },
      "ApiResponse_TokenMentionsResult": {
        "description": "V2 success response envelope",
        "properties": {
          "data": {
            "properties": {
              "chain": {
                "type": "string"
              },
              "firstSeenAt": {
                "format": "int64",
                "nullable": true,
                "type": "integer"
              },
              "lastSeenAt": {
                "format": "int64",
                "nullable": true,
                "type": "integer"
              },
              "mentions": {
                "items": {
                  "$ref": "#/components/schemas/TokenMentionItem"
                },
                "type": "array"
              },
              "tokenAddress": {
                "type": "string"
              },
              "tokenSymbol": {
                "nullable": true,
                "type": "string"
              },
              "totalMentions": {
                "format": "int32",
                "minimum": 0,
                "type": "integer"
              }
            },
            "required": [
              "tokenAddress",
              "chain",
              "totalMentions",
              "mentions"
            ],
            "type": "object"
          },
          "pagination": {
            "$ref": "#/components/schemas/PaginationInfo",
            "nullable": true
          },
          "requestId": {
            "type": "string"
          }
        },
        "required": [
          "data",
          "requestId"
        ],
        "type": "object"
      },
      "ApiResponse_TokenPoolsResponse": {
        "description": "V2 success response envelope",
        "properties": {
          "data": {
            "properties": {
              "pools": {
                "items": {
                  "$ref": "#/components/schemas/TokenPool"
                },
                "type": "array"
              },
              "tokenId": {
                "type": "string"
              }
            },
            "required": [
              "tokenId",
              "pools"
            ],
            "type": "object"
          },
          "pagination": {
            "$ref": "#/components/schemas/PaginationInfo",
            "nullable": true
          },
          "requestId": {
            "type": "string"
          }
        },
        "required": [
          "data",
          "requestId"
        ],
        "type": "object"
      },
      "ApiResponse_TokenPrice": {
        "description": "V2 success response envelope",
        "properties": {
          "data": {
            "properties": {
              "decimals": {
                "format": "int32",
                "minimum": 0,
                "type": "integer"
              },
              "priceUsd": {
                "format": "double",
                "nullable": true,
                "type": "number"
              },
              "tokenId": {
                "type": "string"
              }
            },
            "required": [
              "tokenId",
              "decimals"
            ],
            "type": "object"
          },
          "pagination": {
            "$ref": "#/components/schemas/PaginationInfo",
            "nullable": true
          },
          "requestId": {
            "type": "string"
          }
        },
        "required": [
          "data",
          "requestId"
        ],
        "type": "object"
      },
      "ApiResponse_TokenSearchResponse": {
        "description": "V2 success response envelope",
        "properties": {
          "data": {
            "properties": {
              "tokens": {
                "items": {
                  "$ref": "#/components/schemas/TokenInfo"
                },
                "type": "array"
              }
            },
            "required": [
              "tokens"
            ],
            "type": "object"
          },
          "pagination": {
            "$ref": "#/components/schemas/PaginationInfo",
            "nullable": true
          },
          "requestId": {
            "type": "string"
          }
        },
        "required": [
          "data",
          "requestId"
        ],
        "type": "object"
      },
      "ApiResponse_TokenStatsResponse": {
        "description": "V2 success response envelope",
        "properties": {
          "data": {
            "properties": {
              "priceChange": {
                "$ref": "#/components/schemas/TokenPriceChangeStats"
              },
              "tokenId": {
                "type": "string"
              },
              "txns": {
                "$ref": "#/components/schemas/TokenTxnStats"
              },
              "uniqueTraders": {
                "$ref": "#/components/schemas/TokenUniqueTradersStats"
              },
              "volume": {
                "$ref": "#/components/schemas/TokenVolumeStats"
              }
            },
            "required": [
              "tokenId",
              "volume",
              "txns",
              "uniqueTraders",
              "priceChange"
            ],
            "type": "object"
          },
          "pagination": {
            "$ref": "#/components/schemas/PaginationInfo",
            "nullable": true
          },
          "requestId": {
            "type": "string"
          }
        },
        "required": [
          "data",
          "requestId"
        ],
        "type": "object"
      },
      "ApiResponse_TradeSuggestionView": {
        "description": "V2 success response envelope",
        "properties": {
          "data": {
            "description": "Outbound `TradeSuggestion` JSON shape (response from create / list /\ndismiss / ack). The `state` field is derived; the timestamps remain the\nsource of truth.",
            "properties": {
              "actedAt": {
                "format": "date-time",
                "nullable": true,
                "type": "string"
              },
              "agentKey": {
                "$ref": "#/components/schemas/TradeSuggestionAgentKey"
              },
              "amountInUsd": {
                "format": "double",
                "nullable": true,
                "type": "number"
              },
              "asset": {
                "$ref": "#/components/schemas/TradeSuggestionAsset"
              },
              "confidence": {
                "description": "Serialized as the proto enum name, e.g. \"MEDIUM\".",
                "nullable": true,
                "type": "string"
              },
              "createdAt": {
                "format": "date-time",
                "type": "string"
              },
              "dismissReason": {
                "nullable": true,
                "type": "string"
              },
              "dismissedAt": {
                "format": "date-time",
                "nullable": true,
                "type": "string"
              },
              "expiresAt": {
                "format": "date-time",
                "type": "string"
              },
              "id": {
                "type": "string"
              },
              "linkedTaskId": {
                "nullable": true,
                "type": "string"
              },
              "networkId": {
                "description": "Serialized as the proto enum name, e.g. \"SOL\" / \"BASE\".",
                "type": "string"
              },
              "rationale": {
                "type": "string"
              },
              "side": {
                "description": "Serialized as the proto enum name, e.g. \"BUY\" / \"SELL\".",
                "type": "string"
              },
              "state": {
                "$ref": "#/components/schemas/SuggestionState"
              }
            },
            "required": [
              "id",
              "state",
              "createdAt",
              "expiresAt",
              "side",
              "networkId",
              "asset",
              "rationale",
              "agentKey"
            ],
            "type": "object"
          },
          "pagination": {
            "$ref": "#/components/schemas/PaginationInfo",
            "nullable": true
          },
          "requestId": {
            "type": "string"
          }
        },
        "required": [
          "data",
          "requestId"
        ],
        "type": "object"
      },
      "ApiResponse_TransferResult": {
        "description": "V2 success response envelope",
        "properties": {
          "data": {
            "description": "Wire-format response for both endpoints. `transaction` is populated when\n`awaitResult: true` and the task succeeds; `error` is populated when it\nfails. Non-blocking calls return neither — caller polls `/api/v2/tasks/:id`.",
            "properties": {
              "error": {
                "$ref": "#/components/schemas/TransferErrorInfo",
                "nullable": true
              },
              "status": {
                "description": "\"PENDING\" | \"SUCCESS\" | \"FAILED\"",
                "type": "string"
              },
              "taskId": {
                "type": "string"
              },
              "transaction": {
                "$ref": "#/components/schemas/TransferTransactionInfo",
                "nullable": true
              },
              "willArchiveOnSuccess": {
                "type": "boolean"
              }
            },
            "required": [
              "taskId",
              "status",
              "willArchiveOnSuccess"
            ],
            "type": "object"
          },
          "pagination": {
            "$ref": "#/components/schemas/PaginationInfo",
            "nullable": true
          },
          "requestId": {
            "type": "string"
          }
        },
        "required": [
          "data",
          "requestId"
        ],
        "type": "object"
      },
      "ApiResponse_TriggerOrder": {
        "description": "V2 success response envelope",
        "properties": {
          "data": {
            "properties": {
              "amount": {
                "type": "string"
              },
              "chain": {
                "type": "string"
              },
              "createdAt": {
                "type": "string"
              },
              "inputToken": {
                "type": "string"
              },
              "orderId": {
                "type": "string"
              },
              "outputToken": {
                "type": "string"
              },
              "status": {
                "type": "string"
              },
              "trigger": {
                "$ref": "#/components/schemas/TriggerDetail"
              }
            },
            "required": [
              "orderId",
              "status",
              "chain",
              "inputToken",
              "outputToken",
              "amount",
              "trigger",
              "createdAt"
            ],
            "type": "object"
          },
          "pagination": {
            "$ref": "#/components/schemas/PaginationInfo",
            "nullable": true
          },
          "requestId": {
            "type": "string"
          }
        },
        "required": [
          "data",
          "requestId"
        ],
        "type": "object"
      },
      "ApiResponse_TriggerOrderView": {
        "description": "V2 success response envelope",
        "properties": {
          "data": {
            "properties": {
              "amount": {
                "type": "string"
              },
              "chain": {
                "nullable": true,
                "type": "string"
              },
              "createdAt": {
                "type": "string"
              },
              "inputToken": {
                "type": "string"
              },
              "orderId": {
                "type": "string"
              },
              "outputToken": {
                "type": "string"
              },
              "status": {
                "type": "string"
              },
              "trigger": {
                "$ref": "#/components/schemas/TriggerDetail",
                "nullable": true
              },
              "updatedAt": {
                "type": "string"
              }
            },
            "required": [
              "orderId",
              "status",
              "inputToken",
              "outputToken",
              "amount",
              "createdAt",
              "updatedAt"
            ],
            "type": "object"
          },
          "pagination": {
            "$ref": "#/components/schemas/PaginationInfo",
            "nullable": true
          },
          "requestId": {
            "type": "string"
          }
        },
        "required": [
          "data",
          "requestId"
        ],
        "type": "object"
      },
      "ApiResponse_TriggerOrdersResponse": {
        "description": "V2 success response envelope",
        "properties": {
          "data": {
            "properties": {
              "nextCursor": {
                "nullable": true,
                "type": "string"
              },
              "orders": {
                "items": {
                  "$ref": "#/components/schemas/TriggerOrderView"
                },
                "type": "array"
              }
            },
            "required": [
              "orders"
            ],
            "type": "object"
          },
          "pagination": {
            "$ref": "#/components/schemas/PaginationInfo",
            "nullable": true
          },
          "requestId": {
            "type": "string"
          }
        },
        "required": [
          "data",
          "requestId"
        ],
        "type": "object"
      },
      "ApiResponse_UnarchiveResponse": {
        "description": "V2 success response envelope",
        "properties": {
          "data": {
            "properties": {
              "wallet": {
                "$ref": "#/components/schemas/Wallet"
              }
            },
            "required": [
              "wallet"
            ],
            "type": "object"
          },
          "pagination": {
            "$ref": "#/components/schemas/PaginationInfo",
            "nullable": true
          },
          "requestId": {
            "type": "string"
          }
        },
        "required": [
          "data",
          "requestId"
        ],
        "type": "object"
      },
      "ApiResponse_UserFees": {
        "description": "V2 success response envelope",
        "properties": {
          "data": {
            "properties": {
              "dailyVolume": {
                "type": "string"
              },
              "makerRate": {
                "type": "string"
              },
              "referralDiscount": {
                "type": "string"
              },
              "takerRate": {
                "type": "string"
              }
            },
            "required": [
              "dailyVolume",
              "makerRate",
              "takerRate",
              "referralDiscount"
            ],
            "type": "object"
          },
          "pagination": {
            "$ref": "#/components/schemas/PaginationInfo",
            "nullable": true
          },
          "requestId": {
            "type": "string"
          }
        },
        "required": [
          "data",
          "requestId"
        ],
        "type": "object"
      },
      "ApiResponse_UserProfile": {
        "description": "V2 success response envelope",
        "properties": {
          "data": {
            "properties": {
              "displayName": {
                "nullable": true,
                "type": "string"
              },
              "userId": {
                "type": "string"
              }
            },
            "required": [
              "userId"
            ],
            "type": "object"
          },
          "pagination": {
            "$ref": "#/components/schemas/PaginationInfo",
            "nullable": true
          },
          "requestId": {
            "type": "string"
          }
        },
        "required": [
          "data",
          "requestId"
        ],
        "type": "object"
      },
      "ApiResponse_Vec_Fill": {
        "description": "V2 success response envelope",
        "properties": {
          "data": {
            "items": {
              "properties": {
                "cloid": {
                  "nullable": true,
                  "type": "string"
                },
                "closedPnl": {
                  "type": "string"
                },
                "coin": {
                  "type": "string"
                },
                "direction": {
                  "type": "string"
                },
                "fee": {
                  "type": "string"
                },
                "oid": {
                  "format": "int64",
                  "minimum": 0,
                  "type": "integer"
                },
                "px": {
                  "type": "string"
                },
                "side": {
                  "type": "string"
                },
                "startPosition": {
                  "type": "string"
                },
                "sz": {
                  "type": "string"
                },
                "time": {
                  "format": "int64",
                  "minimum": 0,
                  "type": "integer"
                }
              },
              "required": [
                "coin",
                "side",
                "px",
                "sz",
                "fee",
                "closedPnl",
                "time",
                "oid",
                "startPosition",
                "direction"
              ],
              "type": "object"
            },
            "type": "array"
          },
          "pagination": {
            "$ref": "#/components/schemas/PaginationInfo",
            "nullable": true
          },
          "requestId": {
            "type": "string"
          }
        },
        "required": [
          "data",
          "requestId"
        ],
        "type": "object"
      },
      "ApiResponse_Vec_FundingPayment": {
        "description": "V2 success response envelope",
        "properties": {
          "data": {
            "items": {
              "properties": {
                "coin": {
                  "type": "string"
                },
                "fundingRate": {
                  "type": "string"
                },
                "szi": {
                  "type": "string"
                },
                "time": {
                  "format": "int64",
                  "minimum": 0,
                  "type": "integer"
                },
                "usdc": {
                  "type": "string"
                }
              },
              "required": [
                "coin",
                "usdc",
                "fundingRate",
                "szi",
                "time"
              ],
              "type": "object"
            },
            "type": "array"
          },
          "pagination": {
            "$ref": "#/components/schemas/PaginationInfo",
            "nullable": true
          },
          "requestId": {
            "type": "string"
          }
        },
        "required": [
          "data",
          "requestId"
        ],
        "type": "object"
      },
      "ApiResponse_Vec_OpenOrder": {
        "description": "V2 success response envelope",
        "properties": {
          "data": {
            "items": {
              "properties": {
                "cloid": {
                  "nullable": true,
                  "type": "string"
                },
                "coin": {
                  "type": "string"
                },
                "limitPx": {
                  "type": "string"
                },
                "oid": {
                  "format": "int64",
                  "minimum": 0,
                  "type": "integer"
                },
                "orderType": {
                  "type": "string"
                },
                "side": {
                  "type": "string"
                },
                "sz": {
                  "type": "string"
                },
                "timestamp": {
                  "format": "int64",
                  "minimum": 0,
                  "type": "integer"
                }
              },
              "required": [
                "coin",
                "side",
                "limitPx",
                "sz",
                "oid",
                "timestamp",
                "orderType"
              ],
              "type": "object"
            },
            "type": "array"
          },
          "pagination": {
            "$ref": "#/components/schemas/PaginationInfo",
            "nullable": true
          },
          "requestId": {
            "type": "string"
          }
        },
        "required": [
          "data",
          "requestId"
        ],
        "type": "object"
      },
      "ApiResponse_Vec_PerpMarket": {
        "description": "V2 success response envelope",
        "properties": {
          "data": {
            "items": {
              "properties": {
                "asks": {
                  "items": {
                    "$ref": "#/components/schemas/BookLevel"
                  },
                  "type": "array"
                },
                "bids": {
                  "items": {
                    "$ref": "#/components/schemas/BookLevel"
                  },
                  "type": "array"
                },
                "ctx": {
                  "$ref": "#/components/schemas/MarketCtx"
                },
                "meta": {
                  "$ref": "#/components/schemas/MarketMeta"
                }
              },
              "required": [
                "meta",
                "ctx"
              ],
              "type": "object"
            },
            "type": "array"
          },
          "pagination": {
            "$ref": "#/components/schemas/PaginationInfo",
            "nullable": true
          },
          "requestId": {
            "type": "string"
          }
        },
        "required": [
          "data",
          "requestId"
        ],
        "type": "object"
      },
      "ApiResponse_Vec_Wallet": {
        "description": "V2 success response envelope",
        "properties": {
          "data": {
            "items": {
              "properties": {
                "address": {
                  "type": "string"
                },
                "archivedAt": {
                  "description": "ISO-8601 timestamp when the wallet was archived, or null if active",
                  "nullable": true,
                  "type": "string"
                },
                "chain": {
                  "nullable": true,
                  "type": "string"
                },
                "label": {
                  "nullable": true,
                  "type": "string"
                },
                "state": {
                  "description": "Wallet lifecycle state: \"ACTIVE\" or \"ARCHIVED\"",
                  "type": "string"
                },
                "walletId": {
                  "description": "Wallet ID (required for /swap/execute and /trigger/order)",
                  "type": "string"
                }
              },
              "required": [
                "walletId",
                "address",
                "state"
              ],
              "type": "object"
            },
            "type": "array"
          },
          "pagination": {
            "$ref": "#/components/schemas/PaginationInfo",
            "nullable": true
          },
          "requestId": {
            "type": "string"
          }
        },
        "required": [
          "data",
          "requestId"
        ],
        "type": "object"
      },
      "ApiResponse_WalletGroup": {
        "description": "V2 success response envelope",
        "properties": {
          "data": {
            "properties": {
              "archived": {
                "description": "Derived: true iff every member wallet is ARCHIVED and members is non-empty.",
                "type": "boolean"
              },
              "chain": {
                "nullable": true,
                "type": "string"
              },
              "createdAt": {
                "type": "string"
              },
              "groupId": {
                "type": "string"
              },
              "name": {
                "type": "string"
              },
              "updatedAt": {
                "type": "string"
              },
              "walletIds": {
                "items": {
                  "type": "string"
                },
                "type": "array"
              }
            },
            "required": [
              "groupId",
              "name",
              "walletIds",
              "createdAt",
              "updatedAt",
              "archived"
            ],
            "type": "object"
          },
          "pagination": {
            "$ref": "#/components/schemas/PaginationInfo",
            "nullable": true
          },
          "requestId": {
            "type": "string"
          }
        },
        "required": [
          "data",
          "requestId"
        ],
        "type": "object"
      },
      "ApiResponse_WalletGroupList": {
        "description": "V2 success response envelope",
        "properties": {
          "data": {
            "properties": {
              "groups": {
                "items": {
                  "$ref": "#/components/schemas/WalletGroup"
                },
                "type": "array"
              }
            },
            "required": [
              "groups"
            ],
            "type": "object"
          },
          "pagination": {
            "$ref": "#/components/schemas/PaginationInfo",
            "nullable": true
          },
          "requestId": {
            "type": "string"
          }
        },
        "required": [
          "data",
          "requestId"
        ],
        "type": "object"
      },
      "ApproveAllowanceResponse": {
        "properties": {
          "allowance": {
            "type": "string"
          },
          "chainId": {
            "format": "int64",
            "minimum": 0,
            "type": "integer"
          },
          "tokenAddress": {
            "type": "string"
          },
          "walletAddress": {
            "type": "string"
          }
        },
        "required": [
          "chainId",
          "tokenAddress",
          "walletAddress",
          "allowance"
        ],
        "type": "object"
      },
      "ApproveSpenderResponse": {
        "properties": {
          "chainId": {
            "format": "int64",
            "minimum": 0,
            "type": "integer"
          },
          "spenderAddress": {
            "type": "string"
          }
        },
        "required": [
          "chainId",
          "spenderAddress"
        ],
        "type": "object"
      },
      "ArchiveResponse": {
        "properties": {
          "clearedDefault": {
            "type": "boolean"
          },
          "wallet": {
            "$ref": "#/components/schemas/Wallet"
          }
        },
        "required": [
          "wallet",
          "clearedDefault"
        ],
        "type": "object"
      },
      "BalancesResponse": {
        "properties": {
          "wallets": {
            "items": {
              "$ref": "#/components/schemas/WalletBalance"
            },
            "type": "array"
          },
          "warnings": {
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "required": [
          "wallets"
        ],
        "type": "object"
      },
      "BatchModifyBody": {
        "properties": {
          "modifications": {
            "items": {
              "$ref": "#/components/schemas/BatchModifyEntry"
            },
            "type": "array"
          },
          "walletId": {
            "type": "string"
          }
        },
        "required": [
          "walletId",
          "modifications"
        ],
        "type": "object"
      },
      "BatchModifyEntry": {
        "properties": {
          "cloid": {
            "nullable": true,
            "type": "string"
          },
          "coin": {
            "type": "string"
          },
          "isBuy": {
            "type": "boolean"
          },
          "limitPx": {
            "type": "string"
          },
          "newCloid": {
            "nullable": true,
            "type": "string"
          },
          "oid": {
            "format": "int64",
            "minimum": 0,
            "nullable": true,
            "type": "integer"
          },
          "orderType": {
            "type": "string"
          },
          "sz": {
            "type": "string"
          }
        },
        "required": [
          "coin",
          "isBuy",
          "sz",
          "limitPx"
        ],
        "type": "object"
      },
      "BatchTokensRequest": {
        "description": "POST /api/v2/tokens/batch request body",
        "properties": {
          "tokens": {
            "description": "List of token IDs in \"chain:address\" format (max 100)",
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "required": [
          "tokens"
        ],
        "type": "object"
      },
      "BatchTokensResponse": {
        "properties": {
          "errors": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "invalid": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "notFound": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "tokens": {
            "items": {
              "$ref": "#/components/schemas/TokenInfo"
            },
            "type": "array"
          }
        },
        "required": [
          "tokens",
          "notFound"
        ],
        "type": "object"
      },
      "BookLevel": {
        "properties": {
          "numOrders": {
            "format": "int32",
            "minimum": 0,
            "type": "integer"
          },
          "price": {
            "type": "string"
          },
          "size": {
            "type": "string"
          }
        },
        "required": [
          "price",
          "size",
          "numOrders"
        ],
        "type": "object"
      },
      "BuildTransactionRequest": {
        "description": "POST /api/v2/swap/transaction request body\n\nBuild an unsigned transaction from trade parameters. The caller signs\nlocally and submits via `/submit` or directly to chain.",
        "properties": {
          "amount": {
            "description": "Amount in base units (e.g., lamports for SOL, wei for EVM)",
            "type": "string"
          },
          "chain": {
            "description": "Chain identifier: \"solana\", \"base\", \"bsc\"",
            "type": "string"
          },
          "inputMint": {
            "description": "Token address to sell",
            "type": "string"
          },
          "outputMint": {
            "description": "Token address to buy",
            "type": "string"
          },
          "slippageBps": {
            "description": "Slippage tolerance in basis points (default: 100 = 1%)",
            "format": "int32",
            "type": "integer"
          },
          "walletAddress": {
            "description": "User's own wallet address (not a Shuriken wallet ID)",
            "type": "string"
          }
        },
        "required": [
          "chain",
          "inputMint",
          "outputMint",
          "amount",
          "walletAddress"
        ],
        "type": "object"
      },
      "BuildTransactionResponse": {
        "description": "Wrapper enum for /transaction response (SVM or EVM).\nUses `#[serde(untagged)]` so the JSON shape varies by chain.",
        "oneOf": [
          {
            "$ref": "#/components/schemas/SvmBuildTransactionResponse"
          },
          {
            "$ref": "#/components/schemas/EvmBuildTransactionResponse"
          }
        ]
      },
      "BulkArchiveEntry": {
        "properties": {
          "clearedDefault": {
            "description": "Only present when the wallet was cleared as the user's default wallet",
            "nullable": true,
            "type": "boolean"
          },
          "status": {
            "description": "\"archived\" | \"already_archived\"",
            "type": "string"
          },
          "walletId": {
            "type": "string"
          }
        },
        "required": [
          "walletId",
          "status"
        ],
        "type": "object"
      },
      "BulkArchiveRequest": {
        "properties": {
          "walletIds": {
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "required": [
          "walletIds"
        ],
        "type": "object"
      },
      "BulkArchiveResponse": {
        "properties": {
          "results": {
            "items": {
              "$ref": "#/components/schemas/BulkArchiveEntry"
            },
            "type": "array"
          }
        },
        "required": [
          "results"
        ],
        "type": "object"
      },
      "CallContextResult": {
        "properties": {
          "hasMore": {
            "type": "boolean"
          },
          "nextCursor": {
            "format": "int64",
            "nullable": true,
            "type": "integer"
          },
          "signals": {
            "items": {
              "$ref": "#/components/schemas/AlphaCallSignalItem"
            },
            "type": "array"
          },
          "tokenAddress": {
            "type": "string"
          },
          "totalSignals": {
            "format": "int32",
            "type": "integer"
          }
        },
        "required": [
          "tokenAddress",
          "totalSignals",
          "hasMore",
          "signals"
        ],
        "type": "object"
      },
      "CancelOrderBody": {
        "properties": {
          "cancelAll": {
            "type": "boolean"
          },
          "cloid": {
            "nullable": true,
            "type": "string"
          },
          "coin": {
            "type": "string"
          },
          "oid": {
            "format": "int64",
            "minimum": 0,
            "nullable": true,
            "type": "integer"
          },
          "walletId": {
            "type": "string"
          }
        },
        "required": [
          "walletId",
          "coin"
        ],
        "type": "object"
      },
      "CancelledTriggerOrder": {
        "properties": {
          "orderId": {
            "type": "string"
          },
          "status": {
            "type": "string"
          }
        },
        "required": [
          "orderId",
          "status"
        ],
        "type": "object"
      },
      "ChainPresetValue": {
        "description": "Chain-specific preset value",
        "oneOf": [
          {
            "allOf": [
              {
                "$ref": "#/components/schemas/SolanaPresetValues"
              },
              {
                "properties": {
                  "type": {
                    "enum": [
                      "solana"
                    ],
                    "type": "string"
                  }
                },
                "required": [
                  "type"
                ],
                "type": "object"
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/components/schemas/EvmPresetValues"
              },
              {
                "properties": {
                  "type": {
                    "enum": [
                      "evm"
                    ],
                    "type": "string"
                  }
                },
                "required": [
                  "type"
                ],
                "type": "object"
              }
            ]
          }
        ]
      },
      "ClosePositionBody": {
        "properties": {
          "coin": {
            "type": "string"
          },
          "percentage": {
            "format": "int32",
            "minimum": 0,
            "nullable": true,
            "type": "integer"
          },
          "walletId": {
            "type": "string"
          }
        },
        "required": [
          "walletId",
          "coin"
        ],
        "type": "object"
      },
      "ConnectionInfo": {
        "properties": {
          "appKey": {
            "type": "string"
          },
          "authEndpoint": {
            "type": "string"
          },
          "forceTls": {
            "type": "boolean"
          },
          "provider": {
            "type": "string"
          },
          "wsHost": {
            "type": "string"
          },
          "wsPort": {
            "format": "int32",
            "minimum": 0,
            "type": "integer"
          }
        },
        "required": [
          "provider",
          "appKey",
          "wsHost",
          "wsPort",
          "forceTls",
          "authEndpoint"
        ],
        "type": "object"
      },
      "ContextMessageItem": {
        "properties": {
          "author": {
            "nullable": true,
            "type": "string"
          },
          "offset": {
            "format": "int32",
            "type": "integer"
          },
          "text": {
            "type": "string"
          },
          "timestampMs": {
            "format": "int64",
            "type": "integer"
          }
        },
        "required": [
          "text",
          "timestampMs",
          "offset"
        ],
        "type": "object"
      },
      "CreateOrderRequest": {
        "description": "POST /api/v2/trigger/order request body",
        "properties": {
          "amount": {
            "description": "Amount in base units",
            "type": "string"
          },
          "chain": {
            "description": "Chain: \"solana\", \"base\", \"bsc\"",
            "type": "string"
          },
          "expiryHours": {
            "description": "Expiry in hours (default: 24)",
            "format": "int32",
            "minimum": 0,
            "nullable": true,
            "type": "integer"
          },
          "inputToken": {
            "description": "Token address to sell",
            "type": "string"
          },
          "outputToken": {
            "description": "Token address to buy",
            "type": "string"
          },
          "slippageBps": {
            "description": "Slippage in basis points (default: 1000 = 10%)",
            "format": "int32",
            "nullable": true,
            "type": "integer"
          },
          "trailingPercentage": {
            "description": "Required for \"trailing\" behavior (0.01–99.0)",
            "format": "float",
            "nullable": true,
            "type": "number"
          },
          "triggerBehavior": {
            "description": "\"immediate\" (default) or \"trailing\"",
            "nullable": true,
            "type": "string"
          },
          "triggerDirection": {
            "description": "\"above\" or \"below\"",
            "type": "string"
          },
          "triggerMetric": {
            "description": "\"price_usd\", \"market_cap_usd\", \"liquidity_usd\"",
            "type": "string"
          },
          "triggerValue": {
            "description": "Required for \"immediate\" behavior",
            "nullable": true,
            "type": "string"
          },
          "walletId": {
            "description": "Shuriken wallet ID",
            "type": "string"
          }
        },
        "required": [
          "chain",
          "inputToken",
          "outputToken",
          "amount",
          "walletId",
          "triggerMetric",
          "triggerDirection"
        ],
        "type": "object"
      },
      "CreateSuggestionBody": {
        "properties": {
          "amountInUsd": {
            "description": "Optional sizing hint in USD.",
            "format": "double",
            "nullable": true,
            "type": "number"
          },
          "asset": {
            "description": "Token address. Direction is implicit from `side`.",
            "type": "string"
          },
          "confidence": {
            "description": "Optional confidence: `LOW`, `MEDIUM`, or `HIGH`.",
            "nullable": true,
            "type": "string"
          },
          "networkId": {
            "description": "`common.NetworkId` enum name (`SOL`, `BASE`, `BSC`, `MONAD`, …).",
            "type": "string"
          },
          "rationale": {
            "description": "Why you're suggesting this trade. ≤500 chars.",
            "type": "string"
          },
          "side": {
            "description": "`BUY` or `SELL`.",
            "type": "string"
          }
        },
        "required": [
          "side",
          "networkId",
          "asset",
          "rationale"
        ],
        "type": "object"
      },
      "CreateWalletGroupBody": {
        "properties": {
          "chain": {
            "nullable": true,
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "walletIds": {
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "required": [
          "name"
        ],
        "type": "object"
      },
      "CreateWalletGroupWithWalletsBody": {
        "description": "Request body for `POST /api/v2/wallet-groups/with-wallets`.\n\nAtomically creates a fresh wallet group plus N freshly-generated wallets on\n`chain`, in a single Prisma transaction. Wallets are auto-named\n`<name> 1..N` server-side.",
        "properties": {
          "chain": {
            "description": "Chain. svm | base | bsc.",
            "type": "string"
          },
          "name": {
            "description": "Group name (1-32 chars). Wallets are auto-named `<name> 1..N`.",
            "type": "string"
          },
          "walletCount": {
            "description": "Number of fresh wallets. 1..=16.",
            "format": "int32",
            "maximum": 16,
            "minimum": 1,
            "type": "integer"
          }
        },
        "required": [
          "name",
          "chain",
          "walletCount"
        ],
        "type": "object"
      },
      "DefaultWalletSettings": {
        "description": "Default wallet settings per network",
        "example": {
          "defaultWalletByNetwork": {
            "6": "wallet-sol-abc123"
          },
          "selectedWalletIdsByNetwork": {
            "6": {
              "walletIds": [
                "wallet-sol-abc123",
                "wallet-sol-def456"
              ]
            }
          }
        },
        "properties": {
          "defaultWalletByNetwork": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Key: NetworkId, Value: Wallet ID string (deprecated: use selected_wallet_ids_by_network)",
            "type": "object"
          },
          "selectedWalletIdsByNetwork": {
            "additionalProperties": {
              "$ref": "#/components/schemas/SelectedWalletIds"
            },
            "description": "Key: NetworkId, Value: List of selected wallet IDs",
            "type": "object"
          }
        },
        "type": "object"
      },
      "DeletedGroup": {
        "properties": {
          "groupId": {
            "type": "string"
          }
        },
        "required": [
          "groupId"
        ],
        "type": "object"
      },
      "EnableMultisendResponse": {
        "properties": {
          "message": {
            "type": "string"
          },
          "taskId": {
            "type": "string"
          }
        },
        "required": [
          "taskId",
          "message"
        ],
        "type": "object"
      },
      "EvmBuildTransactionResponse": {
        "description": "EVM build-transaction response: EIP-1559 transaction envelope(s)",
        "properties": {
          "approvalRequired": {
            "type": "boolean"
          },
          "approvalTransaction": {
            "$ref": "#/components/schemas/EvmTransactionEnvelope",
            "nullable": true
          },
          "chain": {
            "type": "string"
          },
          "chainId": {
            "format": "int64",
            "minimum": 0,
            "type": "integer"
          },
          "expiresAt": {
            "type": "string"
          },
          "quoteId": {
            "type": "string"
          },
          "quoteSummary": {
            "$ref": "#/components/schemas/QuoteSummary"
          },
          "transaction": {
            "$ref": "#/components/schemas/EvmTransactionEnvelope"
          }
        },
        "required": [
          "quoteId",
          "chain",
          "chainId",
          "approvalRequired",
          "transaction",
          "quoteSummary",
          "expiresAt"
        ],
        "type": "object"
      },
      "EvmPresetValues": {
        "description": "EVM preset values for trading",
        "example": {
          "bribeAmountNative": "0.001",
          "maxPriceImpactPct": 10,
          "maxPriorityFeePerGasGwei": "2.5",
          "mevProtectionEnabled": true,
          "slippageBps": 500
        },
        "properties": {
          "bribeAmountNative": {
            "description": "Bribe amount in native token (ETH, BNB, etc.)",
            "nullable": true,
            "type": "string"
          },
          "maxPriceImpactPct": {
            "description": "Maximum price impact percentage (whole number, 1-100)\nExample: 10 for 10%, not 0.5 or 10.5",
            "format": "double",
            "nullable": true,
            "type": "number"
          },
          "maxPriorityFeePerGasGwei": {
            "description": "Max priority fee per gas in Gwei (null = auto)",
            "nullable": true,
            "type": "string"
          },
          "mevProtectionEnabled": {
            "description": "Whether MEV protection is enabled",
            "type": "boolean"
          },
          "slippageBps": {
            "description": "Slippage in basis points (e.g., 500 = 5%)",
            "format": "int32",
            "type": "integer"
          }
        },
        "required": [
          "slippageBps",
          "mevProtectionEnabled"
        ],
        "type": "object"
      },
      "EvmTransactionEnvelope": {
        "description": "EIP-1559 unsigned transaction envelope for client signing",
        "properties": {
          "data": {
            "type": "string"
          },
          "gasLimit": {
            "type": "string"
          },
          "maxFeePerGas": {
            "type": "string"
          },
          "maxPriorityFeePerGas": {
            "type": "string"
          },
          "to": {
            "type": "string"
          },
          "value": {
            "type": "string"
          }
        },
        "required": [
          "to",
          "data",
          "value",
          "maxFeePerGas",
          "maxPriorityFeePerGas",
          "gasLimit"
        ],
        "type": "object"
      },
      "ExecuteSplitBody": {
        "properties": {
          "agentComment": {
            "nullable": true,
            "type": "string"
          },
          "planId": {
            "type": "string"
          }
        },
        "required": [
          "planId"
        ],
        "type": "object"
      },
      "ExecuteSplitResult": {
        "properties": {
          "splitnowOrderId": {
            "type": "string"
          },
          "taskId": {
            "type": "string"
          }
        },
        "required": [
          "taskId",
          "splitnowOrderId"
        ],
        "type": "object"
      },
      "ExecuteSwapRequest": {
        "description": "POST /api/v2/swap/execute request body\n\nDirect execution: accepts all params, gets fresh quote, creates task.\nMatches Jupiter/1inch pattern (no plan_storage dependency).",
        "properties": {
          "amount": {
            "description": "Amount in base units (e.g., lamports for SOL, wei for EVM)",
            "type": "string"
          },
          "chain": {
            "description": "Chain identifier: \"solana\", \"base\", \"bsc\"",
            "type": "string"
          },
          "inputMint": {
            "description": "Token address to sell",
            "type": "string"
          },
          "outputMint": {
            "description": "Token address to buy",
            "type": "string"
          },
          "slippageBps": {
            "description": "Slippage tolerance in basis points (default: 100 = 1%)",
            "format": "int32",
            "type": "integer"
          },
          "walletId": {
            "description": "Shuriken wallet ID to use for the swap",
            "type": "string"
          }
        },
        "required": [
          "chain",
          "inputMint",
          "outputMint",
          "amount",
          "walletId"
        ],
        "type": "object"
      },
      "Fill": {
        "properties": {
          "cloid": {
            "nullable": true,
            "type": "string"
          },
          "closedPnl": {
            "type": "string"
          },
          "coin": {
            "type": "string"
          },
          "direction": {
            "type": "string"
          },
          "fee": {
            "type": "string"
          },
          "oid": {
            "format": "int64",
            "minimum": 0,
            "type": "integer"
          },
          "px": {
            "type": "string"
          },
          "side": {
            "type": "string"
          },
          "startPosition": {
            "type": "string"
          },
          "sz": {
            "type": "string"
          },
          "time": {
            "format": "int64",
            "minimum": 0,
            "type": "integer"
          }
        },
        "required": [
          "coin",
          "side",
          "px",
          "sz",
          "fee",
          "closedPnl",
          "time",
          "oid",
          "startPosition",
          "direction"
        ],
        "type": "object"
      },
      "FilterField": {
        "description": "A single filter field definition in the stream catalog",
        "properties": {
          "description": {
            "description": "Human-readable description",
            "type": "string"
          },
          "name": {
            "description": "Filter parameter name (e.g. \"tokenAddress\")",
            "type": "string"
          },
          "required": {
            "description": "Whether this filter is required for channel resolution",
            "type": "boolean"
          }
        },
        "required": [
          "name",
          "required",
          "description"
        ],
        "type": "object"
      },
      "FundingPayment": {
        "properties": {
          "coin": {
            "type": "string"
          },
          "fundingRate": {
            "type": "string"
          },
          "szi": {
            "type": "string"
          },
          "time": {
            "format": "int64",
            "minimum": 0,
            "type": "integer"
          },
          "usdc": {
            "type": "string"
          }
        },
        "required": [
          "coin",
          "usdc",
          "fundingRate",
          "szi",
          "time"
        ],
        "type": "object"
      },
      "GetCallContextQuery": {
        "properties": {
          "cursor": {
            "format": "int64",
            "nullable": true,
            "type": "integer"
          },
          "includeBotSignals": {
            "nullable": true,
            "type": "boolean"
          },
          "includeMessageContext": {
            "nullable": true,
            "type": "boolean"
          },
          "limit": {
            "format": "int32",
            "minimum": 0,
            "nullable": true,
            "type": "integer"
          },
          "sourceFilter": {
            "items": {
              "type": "string"
            },
            "nullable": true,
            "type": "array"
          }
        },
        "type": "object"
      },
      "GetTokenMentionsQuery": {
        "properties": {
          "limit": {
            "format": "int32",
            "minimum": 0,
            "nullable": true,
            "type": "integer"
          }
        },
        "type": "object"
      },
      "GlobalCallItem": {
        "properties": {
          "chain": {
            "type": "string"
          },
          "currentPriceUsd": {
            "nullable": true,
            "type": "string"
          },
          "firstSeenAt": {
            "format": "int64",
            "type": "integer"
          },
          "lastSeenAt": {
            "format": "int64",
            "type": "integer"
          },
          "lastTweetAuthor": {
            "nullable": true,
            "type": "string"
          },
          "lastTweetPreview": {
            "nullable": true,
            "type": "string"
          },
          "mentionCount": {
            "format": "int32",
            "minimum": 0,
            "type": "integer"
          },
          "priceChangeSinceCallPct": {
            "nullable": true,
            "type": "string"
          },
          "tokenAddress": {
            "type": "string"
          },
          "tokenName": {
            "nullable": true,
            "type": "string"
          },
          "tokenSymbol": {
            "nullable": true,
            "type": "string"
          }
        },
        "required": [
          "tokenAddress",
          "chain",
          "firstSeenAt",
          "lastSeenAt",
          "mentionCount"
        ],
        "type": "object"
      },
      "GlobalCallsResult": {
        "properties": {
          "calls": {
            "items": {
              "$ref": "#/components/schemas/GlobalCallItem"
            },
            "type": "array"
          },
          "platform": {
            "type": "string"
          },
          "totalCount": {
            "format": "int32",
            "minimum": 0,
            "type": "integer"
          }
        },
        "required": [
          "calls",
          "totalCount",
          "platform"
        ],
        "type": "object"
      },
      "LeverageResponse": {
        "properties": {
          "error": {
            "nullable": true,
            "type": "string"
          },
          "success": {
            "type": "boolean"
          }
        },
        "required": [
          "success"
        ],
        "type": "object"
      },
      "ListGlobalCallsQuery": {
        "properties": {
          "limit": {
            "format": "int32",
            "minimum": 0,
            "nullable": true,
            "type": "integer"
          },
          "platform": {
            "nullable": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "ListRecentCallsQuery": {
        "properties": {
          "connectionId": {
            "nullable": true,
            "type": "string"
          },
          "limit": {
            "format": "int32",
            "minimum": 0,
            "nullable": true,
            "type": "integer"
          },
          "sourceName": {
            "nullable": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "ListSuggestionsQueryParams": {
        "properties": {
          "cursor": {
            "nullable": true,
            "type": "string"
          },
          "limit": {
            "format": "int32",
            "minimum": 0,
            "nullable": true,
            "type": "integer"
          },
          "state": {
            "nullable": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "ListSuggestionsResponse": {
        "properties": {
          "nextCursor": {
            "nullable": true,
            "type": "string"
          },
          "suggestions": {
            "items": {
              "$ref": "#/components/schemas/TradeSuggestionView"
            },
            "type": "array"
          }
        },
        "required": [
          "suggestions"
        ],
        "type": "object"
      },
      "MarginResponse": {
        "properties": {
          "error": {
            "nullable": true,
            "type": "string"
          },
          "success": {
            "type": "boolean"
          }
        },
        "required": [
          "success"
        ],
        "type": "object"
      },
      "MarketCtx": {
        "properties": {
          "dayNtlVlm": {
            "type": "string"
          },
          "funding": {
            "type": "string"
          },
          "markPx": {
            "type": "string"
          },
          "midPx": {
            "type": "string"
          },
          "openInterest": {
            "type": "string"
          },
          "oraclePx": {
            "type": "string"
          },
          "premium": {
            "type": "string"
          },
          "prevDayPx": {
            "type": "string"
          }
        },
        "required": [
          "midPx",
          "markPx",
          "oraclePx",
          "prevDayPx",
          "dayNtlVlm",
          "funding",
          "openInterest",
          "premium"
        ],
        "type": "object"
      },
      "MarketMeta": {
        "properties": {
          "assetIndex": {
            "format": "int32",
            "minimum": 0,
            "type": "integer"
          },
          "maxLeverage": {
            "format": "int32",
            "minimum": 0,
            "type": "integer"
          },
          "name": {
            "type": "string"
          },
          "onlyIsolated": {
            "type": "boolean"
          },
          "szDecimals": {
            "format": "int32",
            "type": "integer"
          }
        },
        "required": [
          "name",
          "assetIndex",
          "szDecimals",
          "maxLeverage",
          "onlyIsolated"
        ],
        "type": "object"
      },
      "ModifyOrderBody": {
        "properties": {
          "cloid": {
            "nullable": true,
            "type": "string"
          },
          "coin": {
            "type": "string"
          },
          "isBuy": {
            "type": "boolean"
          },
          "limitPx": {
            "type": "string"
          },
          "newCloid": {
            "nullable": true,
            "type": "string"
          },
          "oid": {
            "format": "int64",
            "minimum": 0,
            "nullable": true,
            "type": "integer"
          },
          "orderType": {
            "type": "string"
          },
          "sz": {
            "type": "string"
          },
          "walletId": {
            "type": "string"
          }
        },
        "required": [
          "walletId",
          "coin",
          "isBuy",
          "sz",
          "limitPx"
        ],
        "type": "object"
      },
      "MoveWalletBody": {
        "properties": {
          "fromGroupId": {
            "nullable": true,
            "type": "string"
          },
          "position": {
            "format": "int32",
            "nullable": true,
            "type": "integer"
          },
          "toGroupId": {
            "type": "string"
          }
        },
        "required": [
          "toGroupId"
        ],
        "type": "object"
      },
      "OneClickModeSettings": {
        "description": "One-click mode settings",
        "properties": {
          "buyPresets": {
            "description": "Buy amount presets (e.g., [\"0.5\", \"1\", \"3\", \"5\"])",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "enabled": {
            "description": "Whether one-click mode is enabled",
            "type": "boolean"
          },
          "sellPresets": {
            "description": "Sell percentage presets (e.g., [\"25\", \"50\", \"75\", \"100\"])",
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "required": [
          "enabled",
          "buyPresets",
          "sellPresets"
        ],
        "type": "object"
      },
      "OpenOrder": {
        "properties": {
          "cloid": {
            "nullable": true,
            "type": "string"
          },
          "coin": {
            "type": "string"
          },
          "limitPx": {
            "type": "string"
          },
          "oid": {
            "format": "int64",
            "minimum": 0,
            "type": "integer"
          },
          "orderType": {
            "type": "string"
          },
          "side": {
            "type": "string"
          },
          "sz": {
            "type": "string"
          },
          "timestamp": {
            "format": "int64",
            "minimum": 0,
            "type": "integer"
          }
        },
        "required": [
          "coin",
          "side",
          "limitPx",
          "sz",
          "oid",
          "timestamp",
          "orderType"
        ],
        "type": "object"
      },
      "OrderResponse": {
        "properties": {
          "results": {
            "items": {
              "$ref": "#/components/schemas/OrderResult"
            },
            "type": "array"
          }
        },
        "required": [
          "results"
        ],
        "type": "object"
      },
      "OrderResult": {
        "properties": {
          "cloid": {
            "nullable": true,
            "type": "string"
          },
          "error": {
            "nullable": true,
            "type": "string"
          },
          "oid": {
            "format": "int64",
            "minimum": 0,
            "nullable": true,
            "type": "integer"
          },
          "status": {
            "type": "string"
          }
        },
        "required": [
          "status"
        ],
        "type": "object"
      },
      "PaginationInfo": {
        "description": "Page-based pagination info (per RFC)",
        "properties": {
          "hasMore": {
            "type": "boolean"
          },
          "limit": {
            "format": "int32",
            "minimum": 0,
            "type": "integer"
          },
          "page": {
            "format": "int32",
            "minimum": 0,
            "type": "integer"
          },
          "total": {
            "format": "int32",
            "minimum": 0,
            "nullable": true,
            "type": "integer"
          }
        },
        "required": [
          "page",
          "limit",
          "hasMore"
        ],
        "type": "object"
      },
      "PatchSettingsBody": {
        "properties": {
          "tradeSettings": {
            "$ref": "#/components/schemas/PatchTradeSettings"
          }
        },
        "required": [
          "tradeSettings"
        ],
        "type": "object"
      },
      "PatchTradeSettings": {
        "description": "Partial trade settings for PATCH requests. All fields are optional —\nonly provided fields overwrite the corresponding current value.",
        "properties": {
          "autoEnableMultisend": {
            "nullable": true,
            "type": "boolean"
          },
          "chainPresetsBuy": {
            "additionalProperties": {
              "$ref": "#/components/schemas/TradePresetGroup"
            },
            "nullable": true,
            "type": "object"
          },
          "chainPresetsSell": {
            "additionalProperties": {
              "$ref": "#/components/schemas/TradePresetGroup"
            },
            "nullable": true,
            "type": "object"
          },
          "defaultWallets": {
            "$ref": "#/components/schemas/DefaultWalletSettings",
            "nullable": true
          },
          "oneClickMode": {
            "additionalProperties": {
              "$ref": "#/components/schemas/OneClickModeSettings"
            },
            "nullable": true,
            "type": "object"
          },
          "walletGroups": {
            "items": {
              "$ref": "#/components/schemas/WalletGroup"
            },
            "nullable": true,
            "type": "array"
          }
        },
        "type": "object"
      },
      "PayloadFormat": {
        "enum": [
          "json"
        ],
        "type": "string"
      },
      "PerpMarket": {
        "properties": {
          "asks": {
            "items": {
              "$ref": "#/components/schemas/BookLevel"
            },
            "type": "array"
          },
          "bids": {
            "items": {
              "$ref": "#/components/schemas/BookLevel"
            },
            "type": "array"
          },
          "ctx": {
            "$ref": "#/components/schemas/MarketCtx"
          },
          "meta": {
            "$ref": "#/components/schemas/MarketMeta"
          }
        },
        "required": [
          "meta",
          "ctx"
        ],
        "type": "object"
      },
      "PerpPositionsResponse": {
        "properties": {
          "accountValue": {
            "type": "string"
          },
          "positions": {
            "items": {
              "$ref": "#/components/schemas/Position"
            },
            "type": "array"
          },
          "spotBalances": {
            "description": "Spot-side balances on HyperCore (USDC, HYPE, etc.). Under Unified\nAccount mode these back perp positions as margin.",
            "items": {
              "$ref": "#/components/schemas/SpotBalance"
            },
            "type": "array"
          },
          "totalMarginUsed": {
            "type": "string"
          },
          "totalNtlPos": {
            "type": "string"
          },
          "withdrawable": {
            "type": "string"
          }
        },
        "required": [
          "positions",
          "accountValue",
          "totalMarginUsed",
          "totalNtlPos",
          "withdrawable"
        ],
        "type": "object"
      },
      "PlaceOrderBody": {
        "properties": {
          "cloid": {
            "nullable": true,
            "type": "string"
          },
          "coin": {
            "type": "string"
          },
          "grouping": {
            "type": "string"
          },
          "isBuy": {
            "type": "boolean"
          },
          "limitPx": {
            "nullable": true,
            "type": "string"
          },
          "orderType": {
            "type": "string"
          },
          "reduceOnly": {
            "type": "boolean"
          },
          "sizeUsd": {
            "nullable": true,
            "type": "string"
          },
          "sl": {
            "$ref": "#/components/schemas/TpSlParams",
            "nullable": true
          },
          "sz": {
            "nullable": true,
            "type": "string"
          },
          "tp": {
            "$ref": "#/components/schemas/TpSlParams",
            "nullable": true
          },
          "walletId": {
            "type": "string"
          }
        },
        "required": [
          "walletId",
          "coin",
          "isBuy"
        ],
        "type": "object"
      },
      "PlanSplitBody": {
        "properties": {
          "agentComment": {
            "nullable": true,
            "type": "string"
          },
          "destinationGroupId": {
            "description": "Saved wallet group ID. Mutually exclusive with `destinations`.",
            "nullable": true,
            "type": "string"
          },
          "destinations": {
            "description": "Inline destinations — pct_bips must sum to 10000. Mutually exclusive\nwith `destination_group_id`.",
            "items": {
              "$ref": "#/components/schemas/PlanSplitDestinationBody"
            },
            "nullable": true,
            "type": "array"
          },
          "fromAmount": {
            "type": "string"
          },
          "fromAsset": {
            "type": "string"
          },
          "sourceWalletId": {
            "type": "string"
          }
        },
        "required": [
          "sourceWalletId",
          "fromAmount",
          "fromAsset"
        ],
        "type": "object"
      },
      "PlanSplitDestinationBody": {
        "properties": {
          "pctBips": {
            "format": "int32",
            "minimum": 0,
            "type": "integer"
          },
          "walletId": {
            "type": "string"
          }
        },
        "required": [
          "walletId",
          "pctBips"
        ],
        "type": "object"
      },
      "PlanSplitRate": {
        "properties": {
          "exchangeRate": {
            "type": "string"
          },
          "exchangerId": {
            "type": "string"
          },
          "toAssetId": {
            "type": "string"
          },
          "toNetworkId": {
            "type": "string"
          }
        },
        "required": [
          "exchangerId",
          "exchangeRate",
          "toAssetId",
          "toNetworkId"
        ],
        "type": "object"
      },
      "PlanSplitResult": {
        "properties": {
          "destinationCount": {
            "format": "int32",
            "minimum": 0,
            "type": "integer"
          },
          "expiresAt": {
            "type": "string"
          },
          "expiresInSeconds": {
            "format": "int32",
            "type": "integer"
          },
          "planId": {
            "type": "string"
          },
          "rates": {
            "items": {
              "$ref": "#/components/schemas/PlanSplitRate"
            },
            "type": "array"
          },
          "summary": {
            "type": "string"
          },
          "warnings": {
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "required": [
          "planId",
          "destinationCount",
          "summary",
          "rates",
          "warnings",
          "expiresAt",
          "expiresInSeconds"
        ],
        "type": "object"
      },
      "PortfolioHistoryPoint": {
        "properties": {
          "timestamp": {
            "format": "int64",
            "type": "integer"
          },
          "valueUsd": {
            "format": "double",
            "type": "number"
          }
        },
        "required": [
          "timestamp",
          "valueUsd"
        ],
        "type": "object"
      },
      "PortfolioHistoryResponse": {
        "properties": {
          "trades": {
            "items": {
              "$ref": "#/components/schemas/PortfolioTrade"
            },
            "type": "array"
          },
          "warnings": {
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "required": [
          "trades"
        ],
        "type": "object"
      },
      "PortfolioPnlResponse": {
        "properties": {
          "portfolioHistory": {
            "items": {
              "$ref": "#/components/schemas/PortfolioHistoryPoint"
            },
            "type": "array"
          },
          "positionCount": {
            "format": "int32",
            "minimum": 0,
            "type": "integer"
          },
          "totalBoughtUsd": {
            "format": "double",
            "type": "number"
          },
          "totalPnlUsd": {
            "format": "double",
            "type": "number"
          },
          "totalRealizedPnlUsd": {
            "format": "double",
            "type": "number"
          },
          "totalSoldUsd": {
            "format": "double",
            "type": "number"
          },
          "totalUnrealizedPnlUsd": {
            "format": "double",
            "type": "number"
          },
          "totalValueUsd": {
            "format": "double",
            "type": "number"
          }
        },
        "required": [
          "totalValueUsd",
          "totalBoughtUsd",
          "totalSoldUsd",
          "totalPnlUsd",
          "totalRealizedPnlUsd",
          "totalUnrealizedPnlUsd",
          "positionCount",
          "portfolioHistory"
        ],
        "type": "object"
      },
      "PortfolioTrade": {
        "properties": {
          "chain": {
            "type": "string"
          },
          "inputAmount": {
            "nullable": true,
            "type": "string"
          },
          "inputToken": {
            "type": "string"
          },
          "isBuy": {
            "type": "boolean"
          },
          "outputAmount": {
            "nullable": true,
            "type": "string"
          },
          "outputToken": {
            "type": "string"
          },
          "priceUsd": {
            "type": "string"
          },
          "sizeUsd": {
            "type": "string"
          },
          "timestamp": {
            "format": "int64",
            "type": "integer"
          },
          "token": {
            "type": "string"
          },
          "txHash": {
            "type": "string"
          },
          "walletAddress": {
            "type": "string"
          }
        },
        "required": [
          "chain",
          "txHash",
          "timestamp",
          "walletAddress",
          "inputToken",
          "outputToken",
          "token",
          "sizeUsd",
          "priceUsd",
          "isBuy"
        ],
        "type": "object"
      },
      "Position": {
        "properties": {
          "coin": {
            "type": "string"
          },
          "entryPx": {
            "type": "string"
          },
          "leverageType": {
            "type": "string"
          },
          "leverageValue": {
            "type": "string"
          },
          "liquidationPx": {
            "type": "string"
          },
          "marginUsed": {
            "type": "string"
          },
          "positionValue": {
            "type": "string"
          },
          "returnOnEquity": {
            "type": "string"
          },
          "szi": {
            "type": "string"
          },
          "unrealizedPnl": {
            "type": "string"
          }
        },
        "required": [
          "coin",
          "szi",
          "entryPx",
          "unrealizedPnl",
          "returnOnEquity",
          "liquidationPx",
          "leverageType",
          "leverageValue",
          "marginUsed",
          "positionValue"
        ],
        "type": "object"
      },
      "PositionInfo": {
        "description": "Token position with PnL data",
        "example": {
          "balanceNative": 10,
          "balanceUsd": 1000,
          "boughtNative": 15,
          "boughtUsd": 1500,
          "buyCount": 3,
          "latestBalanceRaw": "1000000000",
          "latestTokenUsdPrice": 1,
          "network": "sol",
          "realisedPnlPct": -33.33,
          "sellCount": 1,
          "soldNative": 5,
          "soldUsd": 500,
          "tokenAddress": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
          "tokenDecimal": 6,
          "totalPnlPct": 0,
          "walletAddress": "CuieVDEDtLo7FypA9SbLM9saXFdb1dsshEkyErMqkRQq"
        },
        "properties": {
          "balanceNative": {
            "description": "Current position value in native currency",
            "format": "double",
            "type": "number"
          },
          "balanceUsd": {
            "description": "Current position value in USD",
            "format": "double",
            "type": "number"
          },
          "boughtNative": {
            "description": "Total native currency spent buying (e.g., SOL, BNB)",
            "format": "double",
            "type": "number"
          },
          "boughtUsd": {
            "description": "Total USD spent buying this token",
            "format": "double",
            "type": "number"
          },
          "buyCount": {
            "description": "Number of buy transactions",
            "format": "int64",
            "minimum": 0,
            "type": "integer"
          },
          "latestBalanceRaw": {
            "description": "Raw token balance (before decimal adjustment)",
            "type": "string"
          },
          "latestTokenUsdPrice": {
            "description": "Current USD price of the token",
            "format": "double",
            "type": "number"
          },
          "network": {
            "description": "Network/chain identifier (e.g., \"sol\", \"bsc\", \"monad\")",
            "type": "string"
          },
          "realisedPnlPct": {
            "description": "Realized PnL percentage (from closed positions)",
            "format": "double",
            "type": "number"
          },
          "sellCount": {
            "description": "Number of sell transactions",
            "format": "int64",
            "minimum": 0,
            "type": "integer"
          },
          "soldNative": {
            "description": "Total native currency received from selling",
            "format": "double",
            "type": "number"
          },
          "soldUsd": {
            "description": "Total USD received from selling this token",
            "format": "double",
            "type": "number"
          },
          "tokenAddress": {
            "description": "Token contract address",
            "type": "string"
          },
          "tokenDecimal": {
            "description": "Token decimal places",
            "format": "int32",
            "minimum": 0,
            "type": "integer"
          },
          "totalPnlPct": {
            "description": "Total PnL percentage (realized + unrealized)",
            "format": "double",
            "type": "number"
          },
          "walletAddress": {
            "description": "Wallet address holding this position",
            "type": "string"
          }
        },
        "required": [
          "walletAddress",
          "tokenAddress",
          "latestBalanceRaw",
          "latestTokenUsdPrice",
          "tokenDecimal",
          "boughtUsd",
          "soldUsd",
          "boughtNative",
          "soldNative",
          "buyCount",
          "sellCount",
          "balanceUsd",
          "balanceNative",
          "realisedPnlPct",
          "totalPnlPct",
          "network"
        ],
        "type": "object"
      },
      "PositionsResponse": {
        "description": "Positions response with aggregated data",
        "example": {
          "positionCount": 1,
          "positions": [
            {
              "balanceUsd": 1000,
              "boughtUsd": 1500,
              "latestBalanceRaw": "1000000000",
              "latestTokenUsdPrice": 1,
              "network": "sol",
              "realisedPnlPct": -33.33,
              "soldUsd": 500,
              "tokenAddress": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
              "tokenDecimal": 6,
              "totalPnlPct": 0,
              "walletAddress": "CuieVDEDtLo7FypA9SbLM9saXFdb1dsshEkyErMqkRQq"
            }
          ],
          "totalValueUsd": 1000
        },
        "properties": {
          "positionCount": {
            "description": "Number of positions",
            "minimum": 0,
            "type": "integer"
          },
          "positions": {
            "description": "List of token positions",
            "items": {
              "$ref": "#/components/schemas/PositionInfo"
            },
            "type": "array"
          },
          "totalValueUsd": {
            "description": "Total portfolio value in USD",
            "format": "double",
            "type": "number"
          }
        },
        "required": [
          "positions",
          "totalValueUsd",
          "positionCount"
        ],
        "type": "object"
      },
      "QuoteFees": {
        "description": "Fee breakdown for a swap quote.",
        "properties": {
          "dexFeeInNative": {
            "description": "DEX sell fee denominated in the chain's native token (e.g. SOL, ETH).\nEVM-only; sourced from the quoter's `dex_sell_fee_in_native` field.\nNot always populated.",
            "nullable": true,
            "type": "string"
          },
          "platformFeeAmount": {
            "description": "Absolute platform fee amount in input token base units.",
            "nullable": true,
            "type": "string"
          },
          "platformFeeBps": {
            "description": "Platform fee in basis points, derived from the difference between\n`inAmount` and the fee-adjusted input amount.",
            "format": "int32",
            "nullable": true,
            "type": "integer"
          }
        },
        "type": "object"
      },
      "QuoteQuery": {
        "properties": {
          "amount": {
            "description": "Amount in base units. Must be a positive integer string (no decimals).",
            "type": "string"
          },
          "chain": {
            "type": "string"
          },
          "inputMint": {
            "type": "string"
          },
          "outputMint": {
            "type": "string"
          },
          "slippageBps": {
            "format": "int32",
            "type": "integer"
          }
        },
        "required": [
          "chain",
          "inputMint",
          "outputMint",
          "amount"
        ],
        "type": "object"
      },
      "QuoteResponse": {
        "properties": {
          "chain": {
            "type": "string"
          },
          "expiresAt": {
            "type": "string"
          },
          "fees": {
            "$ref": "#/components/schemas/QuoteFees",
            "description": "Fee breakdown for this quote."
          },
          "inAmount": {
            "type": "string"
          },
          "inputMint": {
            "type": "string"
          },
          "outAmount": {
            "type": "string"
          },
          "outputMint": {
            "type": "string"
          },
          "priceImpactPct": {
            "nullable": true,
            "type": "string"
          },
          "quoteId": {
            "description": "Informational identifier for this quote. Not stored server-side — a fresh\nquote is generated at execution time. Useful for logging and correlation.",
            "type": "string"
          },
          "routes": {
            "description": "Route hops describing the DEX path taken.",
            "items": {
              "$ref": "#/components/schemas/RouteHop"
            },
            "type": "array"
          },
          "slippageBps": {
            "format": "int32",
            "type": "integer"
          }
        },
        "required": [
          "quoteId",
          "chain",
          "inputMint",
          "outputMint",
          "inAmount",
          "outAmount",
          "routes",
          "fees",
          "slippageBps",
          "expiresAt"
        ],
        "type": "object"
      },
      "QuoteSummary": {
        "description": "Quote summary returned alongside a built transaction",
        "properties": {
          "inputAmount": {
            "type": "string"
          },
          "minOutputAmount": {
            "type": "string"
          },
          "outputAmount": {
            "type": "string"
          },
          "priceImpactPct": {
            "nullable": true,
            "type": "string"
          },
          "slippageBps": {
            "format": "int32",
            "type": "integer"
          }
        },
        "required": [
          "inputAmount",
          "outputAmount",
          "minOutputAmount",
          "slippageBps"
        ],
        "type": "object"
      },
      "RecentCallItem": {
        "properties": {
          "chain": {
            "type": "string"
          },
          "currentPriceUsd": {
            "nullable": true,
            "type": "string"
          },
          "firstSeenAt": {
            "format": "int64",
            "type": "integer"
          },
          "lastSeenAt": {
            "format": "int64",
            "type": "integer"
          },
          "lastSource": {
            "$ref": "#/components/schemas/RecentCallSourceItem",
            "nullable": true
          },
          "liquidityUsdAtCall": {
            "nullable": true,
            "type": "string"
          },
          "marketCapUsdAtCall": {
            "nullable": true,
            "type": "string"
          },
          "mentionCount": {
            "format": "int32",
            "minimum": 0,
            "type": "integer"
          },
          "priceUsdAtCall": {
            "nullable": true,
            "type": "string"
          },
          "tokenAddress": {
            "type": "string"
          },
          "tokenName": {
            "nullable": true,
            "type": "string"
          },
          "tokenSymbol": {
            "nullable": true,
            "type": "string"
          }
        },
        "required": [
          "tokenAddress",
          "chain",
          "firstSeenAt",
          "lastSeenAt",
          "mentionCount"
        ],
        "type": "object"
      },
      "RecentCallSourceItem": {
        "properties": {
          "authorUsername": {
            "nullable": true,
            "type": "string"
          },
          "channelName": {
            "nullable": true,
            "type": "string"
          },
          "connectionId": {
            "nullable": true,
            "type": "string"
          },
          "messagePreview": {
            "nullable": true,
            "type": "string"
          },
          "platform": {
            "type": "string"
          },
          "sourceName": {
            "nullable": true,
            "type": "string"
          }
        },
        "required": [
          "platform"
        ],
        "type": "object"
      },
      "RecentCallsResult": {
        "properties": {
          "calls": {
            "items": {
              "$ref": "#/components/schemas/RecentCallItem"
            },
            "type": "array"
          },
          "totalCount": {
            "format": "int32",
            "minimum": 0,
            "type": "integer"
          }
        },
        "required": [
          "calls",
          "totalCount"
        ],
        "type": "object"
      },
      "RemoveWalletsBody": {
        "properties": {
          "walletIds": {
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "required": [
          "walletIds"
        ],
        "type": "object"
      },
      "ReorderWalletsBody": {
        "properties": {
          "walletIds": {
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "required": [
          "walletIds"
        ],
        "type": "object"
      },
      "ResolvedSubscription": {
        "properties": {
          "channel": {
            "type": "string"
          },
          "event": {
            "type": "string"
          },
          "payloadFormat": {
            "$ref": "#/components/schemas/PayloadFormat"
          },
          "payloadSchemaId": {
            "type": "string"
          },
          "payloadSchemaUrl": {
            "nullable": true,
            "type": "string"
          },
          "stream": {
            "type": "string"
          },
          "visibility": {
            "$ref": "#/components/schemas/StreamVisibility"
          }
        },
        "required": [
          "stream",
          "channel",
          "event",
          "visibility",
          "payloadFormat",
          "payloadSchemaId"
        ],
        "type": "object"
      },
      "RetireWalletBody": {
        "properties": {
          "agentComment": {
            "nullable": true,
            "type": "string"
          },
          "awaitResult": {
            "nullable": true,
            "type": "boolean"
          },
          "chain": {
            "type": "string"
          },
          "chainId": {
            "format": "int64",
            "minimum": 0,
            "nullable": true,
            "type": "integer"
          },
          "correlationId": {
            "nullable": true,
            "type": "string"
          },
          "fromWalletId": {
            "type": "string"
          },
          "toWalletId": {
            "type": "string"
          },
          "token": {
            "type": "string"
          }
        },
        "required": [
          "fromWalletId",
          "toWalletId",
          "token",
          "chain"
        ],
        "type": "object"
      },
      "RouteHop": {
        "description": "A single hop in the swap route.",
        "properties": {
          "feeMint": {
            "nullable": true,
            "type": "string"
          },
          "inAmount": {
            "nullable": true,
            "type": "string"
          },
          "outAmount": {
            "nullable": true,
            "type": "string"
          },
          "poolFeeTier": {
            "description": "Pool fee tier for Uniswap V3/V4 legs (e.g. \"3000\" = 0.3%).\nNot an amount in base units — it is the fee tier identifier.",
            "nullable": true,
            "type": "string"
          },
          "source": {
            "description": "DEX or aggregator source (e.g. \"Raydium CLMM\", \"Uniswap V3\", \"Jupiter Ultra\")",
            "type": "string"
          }
        },
        "required": [
          "source"
        ],
        "type": "object"
      },
      "SelectedWalletIds": {
        "description": "Selected wallet IDs wrapper for map values",
        "properties": {
          "walletIds": {
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "required": [
          "walletIds"
        ],
        "type": "object"
      },
      "SendBody": {
        "properties": {
          "agentComment": {
            "description": "Optional free-form note attached to the activity feed entry.",
            "nullable": true,
            "type": "string"
          },
          "amount": {
            "description": "Raw base units as a decimal string (e.g. \"1000000\" lamports, or \"1000000\" USDC at 6 decimals).",
            "type": "string"
          },
          "awaitResult": {
            "description": "Block until terminal task state. Defaults to `true`.",
            "nullable": true,
            "type": "boolean"
          },
          "chain": {
            "description": "\"SVM\" or \"EVM\"",
            "type": "string"
          },
          "chainId": {
            "description": "Required when `chain == \"EVM\"`. 8453 = Base, 56 = BSC.",
            "format": "int64",
            "minimum": 0,
            "nullable": true,
            "type": "integer"
          },
          "correlationId": {
            "description": "Caller-supplied idempotency key. Omit to auto-derive (5-min bucket).",
            "nullable": true,
            "type": "string"
          },
          "fromWalletId": {
            "type": "string"
          },
          "toWalletId": {
            "type": "string"
          },
          "token": {
            "description": "Token symbol (\"SOL\", \"ETH\", \"BNB\", \"USDC\") or raw address. Use \"native\" for the chain's native token.",
            "type": "string"
          }
        },
        "required": [
          "fromWalletId",
          "toWalletId",
          "token",
          "amount",
          "chain"
        ],
        "type": "object"
      },
      "SessionInfo": {
        "properties": {
          "recommendedReconnectBackoffMs": {
            "items": {
              "format": "int64",
              "minimum": 0,
              "type": "integer"
            },
            "type": "array"
          }
        },
        "required": [
          "recommendedReconnectBackoffMs"
        ],
        "type": "object"
      },
      "SessionRequest": {
        "properties": {
          "subscriptions": {
            "items": {
              "$ref": "#/components/schemas/SubscriptionRequest"
            },
            "type": "array"
          }
        },
        "required": [
          "subscriptions"
        ],
        "type": "object"
      },
      "SessionResponse": {
        "properties": {
          "connection": {
            "$ref": "#/components/schemas/ConnectionInfo"
          },
          "session": {
            "$ref": "#/components/schemas/SessionInfo"
          },
          "subscriptions": {
            "items": {
              "$ref": "#/components/schemas/ResolvedSubscription"
            },
            "type": "array"
          }
        },
        "required": [
          "connection",
          "session",
          "subscriptions"
        ],
        "type": "object"
      },
      "SettingsResponse": {
        "description": "User settings response",
        "properties": {
          "tradeSettings": {
            "$ref": "#/components/schemas/UserTradeSettingsResponse",
            "description": "Trade settings",
            "nullable": true
          }
        },
        "type": "object"
      },
      "SolanaPresetValues": {
        "description": "Solana preset values for trading",
        "example": {
          "bribeAmountSol": "0.01",
          "customPriorityFeeSol": "0.001",
          "maxPriceImpactPct": 10,
          "mevProtectionEnabled": true,
          "slippageBps": 500
        },
        "properties": {
          "bribeAmountSol": {
            "description": "Bribe/tip amount in SOL for MEV protection",
            "nullable": true,
            "type": "string"
          },
          "customPriorityFeeSol": {
            "description": "Custom priority fee in SOL (null = auto)",
            "nullable": true,
            "type": "string"
          },
          "maxPriceImpactPct": {
            "description": "Maximum price impact percentage",
            "format": "double",
            "nullable": true,
            "type": "number"
          },
          "mevProtectionEnabled": {
            "description": "Whether MEV protection is enabled",
            "type": "boolean"
          },
          "slippageBps": {
            "description": "Slippage in basis points (e.g., 500 = 5%)",
            "format": "int32",
            "type": "integer"
          }
        },
        "required": [
          "slippageBps",
          "mevProtectionEnabled"
        ],
        "type": "object"
      },
      "SpotBalance": {
        "properties": {
          "coin": {
            "type": "string"
          },
          "hold": {
            "type": "string"
          },
          "total": {
            "type": "string"
          }
        },
        "required": [
          "coin",
          "total",
          "hold"
        ],
        "type": "object"
      },
      "StreamCatalogResponse": {
        "properties": {
          "streams": {
            "items": {
              "$ref": "#/components/schemas/StreamEntry"
            },
            "type": "array"
          }
        },
        "required": [
          "streams"
        ],
        "type": "object"
      },
      "StreamEntry": {
        "description": "A v1 stream catalog entry",
        "properties": {
          "event": {
            "description": "Pusher event name emitted on the channel",
            "type": "string"
          },
          "filters": {
            "description": "Filter fields accepted for channel resolution",
            "items": {
              "$ref": "#/components/schemas/FilterField"
            },
            "type": "array"
          },
          "id": {
            "description": "Logical stream identifier (e.g. \"svm.token.swaps\")",
            "type": "string"
          },
          "payloadFormat": {
            "$ref": "#/components/schemas/PayloadFormat"
          },
          "payloadSchemaId": {
            "description": "Stable schema identifier for the payload shape",
            "type": "string"
          },
          "visibility": {
            "$ref": "#/components/schemas/StreamVisibility"
          }
        },
        "required": [
          "id",
          "visibility",
          "filters",
          "event",
          "payloadFormat",
          "payloadSchemaId"
        ],
        "type": "object"
      },
      "StreamVisibility": {
        "enum": [
          "public",
          "presence"
        ],
        "type": "string"
      },
      "SubmitTransactionRequest": {
        "description": "POST /api/v2/swap/submit request body\n\nSubmit a user-signed transaction through Shuriken's RPCs for better landing.",
        "properties": {
          "chain": {
            "description": "Chain identifier: \"solana\", \"base\", \"bsc\"",
            "type": "string"
          },
          "quoteId": {
            "description": "Optional quote_id for correlation with /quote",
            "nullable": true,
            "type": "string"
          },
          "signedTransaction": {
            "description": "Signed transaction: base64 for SVM, hex-encoded RLP for EVM",
            "type": "string"
          },
          "walletAddress": {
            "description": "Wallet address for task tracking and monitoring attribution",
            "type": "string"
          }
        },
        "required": [
          "chain",
          "signedTransaction",
          "walletAddress"
        ],
        "type": "object"
      },
      "SubmitTransactionResponse": {
        "description": "Response for /submit and /execute endpoints",
        "properties": {
          "status": {
            "type": "string"
          },
          "taskId": {
            "type": "string"
          },
          "txHash": {
            "type": "string"
          }
        },
        "required": [
          "taskId",
          "txHash",
          "status"
        ],
        "type": "object"
      },
      "SubscriptionRequest": {
        "properties": {
          "filter": {
            "additionalProperties": {},
            "type": "object"
          },
          "stream": {
            "type": "string"
          }
        },
        "required": [
          "stream"
        ],
        "type": "object"
      },
      "SuggestionState": {
        "description": "Derived suggestion lifecycle. Computed in the service layer from the three\nnullable timestamps + wall clock; never persisted as a column.",
        "enum": [
          "OPEN",
          "ACTED",
          "DISMISSED",
          "EXPIRED"
        ],
        "type": "string"
      },
      "SvmBuildTransactionResponse": {
        "description": "SVM build-transaction response: base64 unsigned VersionedTransaction",
        "properties": {
          "chain": {
            "type": "string"
          },
          "expiresAt": {
            "type": "string"
          },
          "quoteId": {
            "type": "string"
          },
          "quoteSummary": {
            "$ref": "#/components/schemas/QuoteSummary"
          },
          "transaction": {
            "description": "Base64-encoded unsigned VersionedTransaction",
            "type": "string"
          }
        },
        "required": [
          "quoteId",
          "chain",
          "transaction",
          "quoteSummary",
          "expiresAt"
        ],
        "type": "object"
      },
      "SwapStatus": {
        "properties": {
          "errorCode": {
            "nullable": true,
            "type": "string"
          },
          "errorMessage": {
            "nullable": true,
            "type": "string"
          },
          "status": {
            "description": "Status: \"submitted\", \"pending\", \"success\", \"failed\"",
            "type": "string"
          },
          "taskId": {
            "type": "string"
          },
          "txHash": {
            "nullable": true,
            "type": "string"
          }
        },
        "required": [
          "taskId",
          "status"
        ],
        "type": "object"
      },
      "TaskKind": {
        "enum": [
          "swap",
          "nonce",
          "cleanup",
          "approval"
        ],
        "type": "string"
      },
      "TaskState": {
        "enum": [
          "pending",
          "success",
          "failed"
        ],
        "type": "string"
      },
      "TaskStatus": {
        "properties": {
          "errorCode": {
            "nullable": true,
            "type": "string"
          },
          "errorMessage": {
            "nullable": true,
            "type": "string"
          },
          "status": {
            "$ref": "#/components/schemas/TaskState"
          },
          "taskId": {
            "type": "string"
          },
          "taskType": {
            "$ref": "#/components/schemas/TaskKind"
          },
          "txHash": {
            "nullable": true,
            "type": "string"
          }
        },
        "required": [
          "taskId",
          "taskType",
          "status"
        ],
        "type": "object"
      },
      "TokenChartCandle": {
        "properties": {
          "close": {
            "format": "double",
            "type": "number"
          },
          "high": {
            "format": "double",
            "type": "number"
          },
          "low": {
            "format": "double",
            "type": "number"
          },
          "open": {
            "format": "double",
            "type": "number"
          },
          "timestamp": {
            "format": "int32",
            "minimum": 0,
            "type": "integer"
          },
          "volume": {
            "format": "double",
            "type": "number"
          }
        },
        "required": [
          "timestamp",
          "open",
          "high",
          "low",
          "close",
          "volume"
        ],
        "type": "object"
      },
      "TokenChartResponse": {
        "properties": {
          "candles": {
            "items": {
              "$ref": "#/components/schemas/TokenChartCandle"
            },
            "type": "array"
          },
          "resolution": {
            "type": "string"
          },
          "tokenId": {
            "type": "string"
          }
        },
        "required": [
          "tokenId",
          "resolution",
          "candles"
        ],
        "type": "object"
      },
      "TokenInfo": {
        "properties": {
          "address": {
            "type": "string"
          },
          "chain": {
            "type": "string"
          },
          "decimals": {
            "format": "int32",
            "minimum": 0,
            "type": "integer"
          },
          "name": {
            "type": "string"
          },
          "symbol": {
            "type": "string"
          },
          "tokenId": {
            "type": "string"
          }
        },
        "required": [
          "tokenId",
          "chain",
          "address",
          "name",
          "symbol",
          "decimals"
        ],
        "type": "object"
      },
      "TokenMentionItem": {
        "properties": {
          "authorUsername": {
            "nullable": true,
            "type": "string"
          },
          "channelId": {
            "nullable": true,
            "type": "string"
          },
          "guildId": {
            "nullable": true,
            "type": "string"
          },
          "marketCapUsdAtMention": {
            "nullable": true,
            "type": "string"
          },
          "messageId": {
            "type": "string"
          },
          "platform": {
            "type": "string"
          },
          "priceUsdAtMention": {
            "nullable": true,
            "type": "string"
          },
          "timestamp": {
            "format": "int64",
            "type": "integer"
          }
        },
        "required": [
          "messageId",
          "platform",
          "timestamp"
        ],
        "type": "object"
      },
      "TokenMentionsResult": {
        "properties": {
          "chain": {
            "type": "string"
          },
          "firstSeenAt": {
            "format": "int64",
            "nullable": true,
            "type": "integer"
          },
          "lastSeenAt": {
            "format": "int64",
            "nullable": true,
            "type": "integer"
          },
          "mentions": {
            "items": {
              "$ref": "#/components/schemas/TokenMentionItem"
            },
            "type": "array"
          },
          "tokenAddress": {
            "type": "string"
          },
          "tokenSymbol": {
            "nullable": true,
            "type": "string"
          },
          "totalMentions": {
            "format": "int32",
            "minimum": 0,
            "type": "integer"
          }
        },
        "required": [
          "tokenAddress",
          "chain",
          "totalMentions",
          "mentions"
        ],
        "type": "object"
      },
      "TokenPool": {
        "properties": {
          "address": {
            "nullable": true,
            "type": "string"
          },
          "liquidityUsd": {
            "nullable": true,
            "type": "string"
          },
          "marketCapUsd": {
            "nullable": true,
            "type": "string"
          },
          "priceUsd": {
            "nullable": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "TokenPoolsResponse": {
        "properties": {
          "pools": {
            "items": {
              "$ref": "#/components/schemas/TokenPool"
            },
            "type": "array"
          },
          "tokenId": {
            "type": "string"
          }
        },
        "required": [
          "tokenId",
          "pools"
        ],
        "type": "object"
      },
      "TokenPrice": {
        "properties": {
          "decimals": {
            "format": "int32",
            "minimum": 0,
            "type": "integer"
          },
          "priceUsd": {
            "format": "double",
            "nullable": true,
            "type": "number"
          },
          "tokenId": {
            "type": "string"
          }
        },
        "required": [
          "tokenId",
          "decimals"
        ],
        "type": "object"
      },
      "TokenPriceChangeStats": {
        "properties": {
          "1h": {
            "format": "double",
            "nullable": true,
            "type": "number"
          },
          "24h": {
            "format": "double",
            "nullable": true,
            "type": "number"
          },
          "5m": {
            "format": "double",
            "nullable": true,
            "type": "number"
          },
          "6h": {
            "format": "double",
            "nullable": true,
            "type": "number"
          }
        },
        "type": "object"
      },
      "TokenSearchResponse": {
        "properties": {
          "tokens": {
            "items": {
              "$ref": "#/components/schemas/TokenInfo"
            },
            "type": "array"
          }
        },
        "required": [
          "tokens"
        ],
        "type": "object"
      },
      "TokenStatsResponse": {
        "properties": {
          "priceChange": {
            "$ref": "#/components/schemas/TokenPriceChangeStats"
          },
          "tokenId": {
            "type": "string"
          },
          "txns": {
            "$ref": "#/components/schemas/TokenTxnStats"
          },
          "uniqueTraders": {
            "$ref": "#/components/schemas/TokenUniqueTradersStats"
          },
          "volume": {
            "$ref": "#/components/schemas/TokenVolumeStats"
          }
        },
        "required": [
          "tokenId",
          "volume",
          "txns",
          "uniqueTraders",
          "priceChange"
        ],
        "type": "object"
      },
      "TokenTxnStats": {
        "properties": {
          "buys1h": {
            "format": "int64",
            "nullable": true,
            "type": "integer"
          },
          "buys24h": {
            "format": "int64",
            "nullable": true,
            "type": "integer"
          },
          "buys5m": {
            "format": "int64",
            "nullable": true,
            "type": "integer"
          },
          "buys6h": {
            "format": "int64",
            "nullable": true,
            "type": "integer"
          },
          "sells1h": {
            "format": "int64",
            "nullable": true,
            "type": "integer"
          },
          "sells24h": {
            "format": "int64",
            "nullable": true,
            "type": "integer"
          },
          "sells5m": {
            "format": "int64",
            "nullable": true,
            "type": "integer"
          },
          "sells6h": {
            "format": "int64",
            "nullable": true,
            "type": "integer"
          }
        },
        "type": "object"
      },
      "TokenUniqueTradersStats": {
        "properties": {
          "buyers1h": {
            "format": "int64",
            "nullable": true,
            "type": "integer"
          },
          "buyers24h": {
            "format": "int64",
            "nullable": true,
            "type": "integer"
          },
          "buyers5m": {
            "format": "int64",
            "nullable": true,
            "type": "integer"
          },
          "buyers6h": {
            "format": "int64",
            "nullable": true,
            "type": "integer"
          },
          "sellers1h": {
            "format": "int64",
            "nullable": true,
            "type": "integer"
          },
          "sellers24h": {
            "format": "int64",
            "nullable": true,
            "type": "integer"
          },
          "sellers5m": {
            "format": "int64",
            "nullable": true,
            "type": "integer"
          },
          "sellers6h": {
            "format": "int64",
            "nullable": true,
            "type": "integer"
          }
        },
        "type": "object"
      },
      "TokenVolumeStats": {
        "properties": {
          "buy1h": {
            "format": "double",
            "nullable": true,
            "type": "number"
          },
          "buy24h": {
            "format": "double",
            "nullable": true,
            "type": "number"
          },
          "buy5m": {
            "format": "double",
            "nullable": true,
            "type": "number"
          },
          "buy6h": {
            "format": "double",
            "nullable": true,
            "type": "number"
          },
          "sell1h": {
            "format": "double",
            "nullable": true,
            "type": "number"
          },
          "sell24h": {
            "format": "double",
            "nullable": true,
            "type": "number"
          },
          "sell5m": {
            "format": "double",
            "nullable": true,
            "type": "number"
          },
          "sell6h": {
            "format": "double",
            "nullable": true,
            "type": "number"
          }
        },
        "type": "object"
      },
      "TpSlParams": {
        "properties": {
          "isMarket": {
            "type": "boolean"
          },
          "limitPx": {
            "nullable": true,
            "type": "string"
          },
          "triggerPx": {
            "type": "string"
          }
        },
        "required": [
          "triggerPx"
        ],
        "type": "object"
      },
      "TradePresetGroup": {
        "description": "Trade preset group (auto, p1, p2)",
        "properties": {
          "auto": {
            "$ref": "#/components/schemas/ChainPresetValue",
            "description": "Auto preset",
            "nullable": true
          },
          "p1": {
            "$ref": "#/components/schemas/ChainPresetValue",
            "description": "Preset 1",
            "nullable": true
          },
          "p2": {
            "$ref": "#/components/schemas/ChainPresetValue",
            "description": "Preset 2",
            "nullable": true
          }
        },
        "type": "object"
      },
      "TradeSuggestionAgentKey": {
        "description": "Lightweight handle for the agent key that posted the suggestion.",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "name"
        ],
        "type": "object"
      },
      "TradeSuggestionAsset": {
        "description": "Asset metadata enriched onto the response — consumers don't have to call\n`get_token_info` separately. The bare address is on the underlying row.",
        "properties": {
          "address": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "priceUsd": {
            "format": "double",
            "nullable": true,
            "type": "number"
          },
          "symbol": {
            "type": "string"
          }
        },
        "required": [
          "address",
          "symbol",
          "name"
        ],
        "type": "object"
      },
      "TradeSuggestionView": {
        "description": "Outbound `TradeSuggestion` JSON shape (response from create / list /\ndismiss / ack). The `state` field is derived; the timestamps remain the\nsource of truth.",
        "properties": {
          "actedAt": {
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "agentKey": {
            "$ref": "#/components/schemas/TradeSuggestionAgentKey"
          },
          "amountInUsd": {
            "format": "double",
            "nullable": true,
            "type": "number"
          },
          "asset": {
            "$ref": "#/components/schemas/TradeSuggestionAsset"
          },
          "confidence": {
            "description": "Serialized as the proto enum name, e.g. \"MEDIUM\".",
            "nullable": true,
            "type": "string"
          },
          "createdAt": {
            "format": "date-time",
            "type": "string"
          },
          "dismissReason": {
            "nullable": true,
            "type": "string"
          },
          "dismissedAt": {
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "expiresAt": {
            "format": "date-time",
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "linkedTaskId": {
            "nullable": true,
            "type": "string"
          },
          "networkId": {
            "description": "Serialized as the proto enum name, e.g. \"SOL\" / \"BASE\".",
            "type": "string"
          },
          "rationale": {
            "type": "string"
          },
          "side": {
            "description": "Serialized as the proto enum name, e.g. \"BUY\" / \"SELL\".",
            "type": "string"
          },
          "state": {
            "$ref": "#/components/schemas/SuggestionState"
          }
        },
        "required": [
          "id",
          "state",
          "createdAt",
          "expiresAt",
          "side",
          "networkId",
          "asset",
          "rationale",
          "agentKey"
        ],
        "type": "object"
      },
      "TransferErrorInfo": {
        "properties": {
          "code": {
            "type": "string"
          },
          "message": {
            "type": "string"
          }
        },
        "required": [
          "code",
          "message"
        ],
        "type": "object"
      },
      "TransferResult": {
        "description": "Wire-format response for both endpoints. `transaction` is populated when\n`awaitResult: true` and the task succeeds; `error` is populated when it\nfails. Non-blocking calls return neither — caller polls `/api/v2/tasks/:id`.",
        "properties": {
          "error": {
            "$ref": "#/components/schemas/TransferErrorInfo",
            "nullable": true
          },
          "status": {
            "description": "\"PENDING\" | \"SUCCESS\" | \"FAILED\"",
            "type": "string"
          },
          "taskId": {
            "type": "string"
          },
          "transaction": {
            "$ref": "#/components/schemas/TransferTransactionInfo",
            "nullable": true
          },
          "willArchiveOnSuccess": {
            "type": "boolean"
          }
        },
        "required": [
          "taskId",
          "status",
          "willArchiveOnSuccess"
        ],
        "type": "object"
      },
      "TransferTransactionInfo": {
        "properties": {
          "explorerUrl": {
            "nullable": true,
            "type": "string"
          },
          "hash": {
            "description": "Transaction signature (SVM) or hash (EVM).",
            "type": "string"
          }
        },
        "required": [
          "hash"
        ],
        "type": "object"
      },
      "TriggerDetail": {
        "properties": {
          "direction": {
            "type": "string"
          },
          "metric": {
            "type": "string"
          },
          "trailingPercentage": {
            "format": "float",
            "nullable": true,
            "type": "number"
          },
          "value": {
            "nullable": true,
            "type": "string"
          }
        },
        "required": [
          "metric",
          "direction"
        ],
        "type": "object"
      },
      "TriggerOrder": {
        "properties": {
          "amount": {
            "type": "string"
          },
          "chain": {
            "type": "string"
          },
          "createdAt": {
            "type": "string"
          },
          "inputToken": {
            "type": "string"
          },
          "orderId": {
            "type": "string"
          },
          "outputToken": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "trigger": {
            "$ref": "#/components/schemas/TriggerDetail"
          }
        },
        "required": [
          "orderId",
          "status",
          "chain",
          "inputToken",
          "outputToken",
          "amount",
          "trigger",
          "createdAt"
        ],
        "type": "object"
      },
      "TriggerOrderView": {
        "properties": {
          "amount": {
            "type": "string"
          },
          "chain": {
            "nullable": true,
            "type": "string"
          },
          "createdAt": {
            "type": "string"
          },
          "inputToken": {
            "type": "string"
          },
          "orderId": {
            "type": "string"
          },
          "outputToken": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "trigger": {
            "$ref": "#/components/schemas/TriggerDetail",
            "nullable": true
          },
          "updatedAt": {
            "type": "string"
          }
        },
        "required": [
          "orderId",
          "status",
          "inputToken",
          "outputToken",
          "amount",
          "createdAt",
          "updatedAt"
        ],
        "type": "object"
      },
      "TriggerOrdersResponse": {
        "properties": {
          "nextCursor": {
            "nullable": true,
            "type": "string"
          },
          "orders": {
            "items": {
              "$ref": "#/components/schemas/TriggerOrderView"
            },
            "type": "array"
          }
        },
        "required": [
          "orders"
        ],
        "type": "object"
      },
      "UnarchiveResponse": {
        "properties": {
          "wallet": {
            "$ref": "#/components/schemas/Wallet"
          }
        },
        "required": [
          "wallet"
        ],
        "type": "object"
      },
      "UpdateLeverageBody": {
        "properties": {
          "coin": {
            "type": "string"
          },
          "isCross": {
            "type": "boolean"
          },
          "leverage": {
            "format": "int32",
            "minimum": 0,
            "type": "integer"
          },
          "walletId": {
            "type": "string"
          }
        },
        "required": [
          "walletId",
          "coin",
          "leverage"
        ],
        "type": "object"
      },
      "UpdateMarginBody": {
        "properties": {
          "amount": {
            "type": "string"
          },
          "coin": {
            "type": "string"
          },
          "walletId": {
            "type": "string"
          }
        },
        "required": [
          "walletId",
          "coin",
          "amount"
        ],
        "type": "object"
      },
      "UpdateSettingsBody": {
        "description": "V2 update settings request body",
        "properties": {
          "tradeSettings": {
            "$ref": "#/components/schemas/UserTradeSettingsResponse"
          }
        },
        "required": [
          "tradeSettings"
        ],
        "type": "object"
      },
      "UpdateWalletGroupBody": {
        "properties": {
          "chain": {
            "description": "When present, sets the chain to this value (pass empty string to clear).",
            "nullable": true,
            "type": "string"
          },
          "name": {
            "nullable": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "UserFees": {
        "properties": {
          "dailyVolume": {
            "type": "string"
          },
          "makerRate": {
            "type": "string"
          },
          "referralDiscount": {
            "type": "string"
          },
          "takerRate": {
            "type": "string"
          }
        },
        "required": [
          "dailyVolume",
          "makerRate",
          "takerRate",
          "referralDiscount"
        ],
        "type": "object"
      },
      "UserProfile": {
        "properties": {
          "displayName": {
            "nullable": true,
            "type": "string"
          },
          "userId": {
            "type": "string"
          }
        },
        "required": [
          "userId"
        ],
        "type": "object"
      },
      "UserTradeSettingsResponse": {
        "description": "User trade settings response",
        "properties": {
          "autoEnableMultisend": {
            "description": "Whether auto-enable multisend is on",
            "type": "boolean"
          },
          "chainPresetsBuy": {
            "additionalProperties": {
              "$ref": "#/components/schemas/TradePresetGroup"
            },
            "description": "Buy presets per chain (keyed by network ID)",
            "type": "object"
          },
          "chainPresetsSell": {
            "additionalProperties": {
              "$ref": "#/components/schemas/TradePresetGroup"
            },
            "description": "Sell presets per chain (keyed by network ID)",
            "type": "object"
          },
          "defaultWallets": {
            "$ref": "#/components/schemas/DefaultWalletSettings",
            "description": "Default wallet per network",
            "nullable": true
          },
          "oneClickMode": {
            "additionalProperties": {
              "$ref": "#/components/schemas/OneClickModeSettings"
            },
            "description": "One-click mode settings per chain (keyed by network ID)",
            "type": "object"
          },
          "walletGroups": {
            "description": "Named wallet groups for multi-wallet execution",
            "items": {
              "$ref": "#/components/schemas/WalletGroup"
            },
            "type": "array"
          }
        },
        "required": [
          "autoEnableMultisend"
        ],
        "type": "object"
      },
      "Wallet": {
        "properties": {
          "address": {
            "type": "string"
          },
          "archivedAt": {
            "description": "ISO-8601 timestamp when the wallet was archived, or null if active",
            "nullable": true,
            "type": "string"
          },
          "chain": {
            "nullable": true,
            "type": "string"
          },
          "label": {
            "nullable": true,
            "type": "string"
          },
          "state": {
            "description": "Wallet lifecycle state: \"ACTIVE\" or \"ARCHIVED\"",
            "type": "string"
          },
          "walletId": {
            "description": "Wallet ID (required for /swap/execute and /trigger/order)",
            "type": "string"
          }
        },
        "required": [
          "walletId",
          "address",
          "state"
        ],
        "type": "object"
      },
      "WalletBalance": {
        "properties": {
          "chain": {
            "type": "string"
          },
          "nativeBalance": {
            "type": "string"
          },
          "nativeBalanceUsd": {
            "format": "double",
            "type": "number"
          },
          "nativeSymbol": {
            "type": "string"
          },
          "walletAddress": {
            "type": "string"
          }
        },
        "required": [
          "chain",
          "walletAddress",
          "nativeBalance",
          "nativeBalanceUsd",
          "nativeSymbol"
        ],
        "type": "object"
      },
      "WalletGroup": {
        "properties": {
          "archived": {
            "description": "Derived: true iff every member wallet is ARCHIVED and members is non-empty.",
            "type": "boolean"
          },
          "chain": {
            "nullable": true,
            "type": "string"
          },
          "createdAt": {
            "type": "string"
          },
          "groupId": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "updatedAt": {
            "type": "string"
          },
          "walletIds": {
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "required": [
          "groupId",
          "name",
          "walletIds",
          "createdAt",
          "updatedAt",
          "archived"
        ],
        "type": "object"
      },
      "WalletGroupList": {
        "properties": {
          "groups": {
            "items": {
              "$ref": "#/components/schemas/WalletGroup"
            },
            "type": "array"
          }
        },
        "required": [
          "groups"
        ],
        "type": "object"
      },
      "WsAuthRequest": {
        "properties": {
          "channel_name": {
            "type": "string"
          },
          "socket_id": {
            "type": "string"
          }
        },
        "required": [
          "socket_id",
          "channel_name"
        ],
        "type": "object"
      },
      "WsAuthResponse": {
        "properties": {
          "auth": {
            "type": "string"
          },
          "channel_data": {
            "nullable": true,
            "type": "string"
          }
        },
        "required": [
          "auth"
        ],
        "type": "object"
      }
    },
    "securitySchemes": {
      "bearer_auth": {
        "bearerFormat": "JWT or sk_{keyId}_{secret}",
        "description": "Use `Authorization: Bearer <jwt>` for user auth or `Authorization: Bearer sk_{keyId}_{secret}` for API key auth.",
        "scheme": "bearer",
        "type": "http"
      }
    }
  },
  "info": {
    "description": "Multi-chain DEX trading API for developers",
    "license": {
      "name": ""
    },
    "title": "Shuriken API v2",
    "version": "2.0.0"
  },
  "openapi": "3.0.3",
  "paths": {
    "/api/v2/account/me": {
      "get": {
        "operationId": "get_account_me",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse_UserProfile"
                }
              }
            },
            "description": "User profile"
          }
        },
        "security": [
          {
            "bearer_auth": []
          }
        ],
        "summary": "GET /api/v2/account/me — User profile",
        "tags": [
          "V2 Account"
        ]
      }
    },
    "/api/v2/account/settings": {
      "get": {
        "operationId": "get_account_settings",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse_SettingsResponse"
                }
              }
            },
            "description": "User trade settings"
          }
        },
        "security": [
          {
            "bearer_auth": []
          }
        ],
        "summary": "GET /api/v2/account/settings — User settings",
        "tags": [
          "V2 Account"
        ]
      },
      "patch": {
        "description": "Only the fields present in the request body are updated; everything else\nis preserved from the current settings.",
        "operationId": "patch_account_settings",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PatchSettingsBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse_SettingsResponse"
                }
              }
            },
            "description": "Settings updated"
          },
          "400": {
            "description": "Invalid settings"
          }
        },
        "security": [
          {
            "bearer_auth": []
          }
        ],
        "summary": "PATCH /api/v2/account/settings — Partially update user settings",
        "tags": [
          "V2 Account"
        ]
      },
      "put": {
        "operationId": "update_account_settings",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateSettingsBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse_SettingsResponse"
                }
              }
            },
            "description": "Settings updated"
          },
          "400": {
            "description": "Invalid settings"
          }
        },
        "security": [
          {
            "bearer_auth": []
          }
        ],
        "summary": "PUT /api/v2/account/settings — Update user settings",
        "tags": [
          "V2 Account"
        ]
      }
    },
    "/api/v2/account/usage": {
      "get": {
        "description": "No scope check required — any valid API key can introspect its own usage.\nThis is intentional: usage/quota info is a property of the key itself.",
        "operationId": "get_account_usage",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse_ApiKeyUsageResponse"
                }
              }
            },
            "description": "API key usage and constraints"
          },
          "403": {
            "description": "AgentKey authentication required"
          }
        },
        "security": [
          {
            "bearer_auth": []
          }
        ],
        "summary": "GET /api/v2/account/usage — API key usage stats (AgentKey only)",
        "tags": [
          "V2 Account"
        ]
      }
    },
    "/api/v2/account/wallets": {
      "get": {
        "operationId": "get_account_wallets",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse_Vec_Wallet"
                }
              }
            },
            "description": "User wallets"
          }
        },
        "security": [
          {
            "bearer_auth": []
          }
        ],
        "summary": "GET /api/v2/account/wallets — List wallets",
        "tags": [
          "V2 Account"
        ]
      }
    },
    "/api/v2/account/wallets/{walletId}/enable-multisend": {
      "post": {
        "operationId": "enable_multisend",
        "parameters": [
          {
            "description": "Wallet ID to enable multisend for",
            "in": "path",
            "name": "walletId",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse_EnableMultisendResponse"
                }
              }
            },
            "description": "Multisend initialization started"
          },
          "400": {
            "description": "Wallet not found, not Solana, or already initialized"
          }
        },
        "security": [
          {
            "bearer_auth": []
          }
        ],
        "summary": "POST /api/v2/account/wallets/:walletId/enable-multisend — Initialize durable nonce accounts",
        "tags": [
          "V2 Account"
        ]
      }
    },
    "/api/v2/agents/fires/{triggerFireId}/status": {
      "get": {
        "description": "`trigger_fire_id` is the recommended polling key: callers always have it\nfrom `invoke()`, and it remains valid even when an idempotency-key collision\nor a post-start failure has cleared the fire's `session_id`.",
        "operationId": "get_managed_agent_fire_status",
        "parameters": [
          {
            "description": "Managed agent trigger fire id",
            "in": "path",
            "name": "triggerFireId",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse_AgentSessionStatusOutput"
                }
              }
            },
            "description": "Agent invocation status"
          },
          "400": {
            "description": "Invalid request"
          },
          "403": {
            "description": "Missing invoke:agent scope"
          },
          "404": {
            "description": "Trigger fire not found"
          }
        },
        "security": [
          {
            "bearer_auth": []
          }
        ],
        "summary": "GET /api/v2/agents/fires/{triggerFireId}/status — poll status by trigger-fire id.",
        "tags": [
          "V2 Agents"
        ]
      }
    },
    "/api/v2/agents/sessions/{sessionId}/status": {
      "get": {
        "operationId": "get_managed_agent_session_status",
        "parameters": [
          {
            "description": "Managed agent session id",
            "in": "path",
            "name": "sessionId",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse_AgentSessionStatusOutput"
                }
              }
            },
            "description": "Agent session status"
          },
          "400": {
            "description": "Invalid request"
          },
          "403": {
            "description": "Missing invoke:agent scope"
          },
          "404": {
            "description": "Session not found"
          }
        },
        "security": [
          {
            "bearer_auth": []
          }
        ],
        "summary": "GET /api/v2/agents/sessions/{sessionId}/status — forward to MAS-owned status reads.",
        "tags": [
          "V2 Agents"
        ]
      }
    },
    "/api/v2/agents/suggestions": {
      "get": {
        "operationId": "list_trade_suggestions",
        "parameters": [
          {
            "description": "OPEN | ACTED | DISMISSED | EXPIRED | ALL",
            "in": "query",
            "name": "state",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "1..=200, default 50",
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "format": "int32",
              "minimum": 0,
              "type": "integer"
            }
          },
          {
            "description": "Opaque next-page cursor",
            "in": "query",
            "name": "cursor",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse_ListSuggestionsResponse"
                }
              }
            },
            "description": "List of suggestions"
          }
        },
        "security": [
          {
            "bearer_auth": []
          }
        ],
        "tags": [
          "V2 Suggestions"
        ]
      },
      "post": {
        "operationId": "create_trade_suggestion",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateSuggestionBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse_TradeSuggestionView"
                }
              }
            },
            "description": "Suggestion created"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            },
            "description": "VALIDATION | UNKNOWN_TOKEN | MISSING_REQUIRED_FIELDS"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            },
            "description": "INSUFFICIENT_SCOPE"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            },
            "description": "RATE_LIMITED"
          }
        },
        "security": [
          {
            "bearer_auth": []
          }
        ],
        "tags": [
          "V2 Suggestions"
        ]
      }
    },
    "/api/v2/agents/{agentId}/invoke": {
      "post": {
        "operationId": "invoke_managed_agent",
        "parameters": [
          {
            "description": "Managed agent id",
            "in": "path",
            "name": "agentId",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AgentInvokeRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse_AgentInvokeOutput"
                }
              }
            },
            "description": "Agent invocation accepted"
          },
          "400": {
            "description": "Invalid request, including prompt too large or invalid Idempotency-Key"
          },
          "403": {
            "description": "Missing invoke:agent scope or API trigger disabled"
          },
          "404": {
            "description": "Agent or trigger not found"
          },
          "409": {
            "description": "Idempotency key conflict"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "security": [
          {
            "bearer_auth": []
          }
        ],
        "summary": "POST /api/v2/agents/{agentId}/invoke — forward to MAS-owned invocation runtime.",
        "tags": [
          "V2 Agents"
        ]
      }
    },
    "/api/v2/alpha/global-calls": {
      "get": {
        "operationId": "list_alpha_global_calls",
        "parameters": [
          {
            "description": "Reserved for future platforms. Only 'x' (Twitter) is supported today; any other value silently returns X data. Default: 'x'.",
            "in": "query",
            "name": "platform",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Maximum calls to return",
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "format": "int32",
              "minimum": 0,
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse_GlobalCallsResult"
                }
              }
            },
            "description": "Global alpha calls"
          },
          "401": {
            "description": "Unauthenticated"
          },
          "403": {
            "description": "Insufficient scope"
          }
        },
        "security": [
          {
            "bearer_auth": []
          }
        ],
        "tags": [
          "alpha"
        ]
      }
    },
    "/api/v2/alpha/recent-calls": {
      "get": {
        "operationId": "list_alpha_recent_calls",
        "parameters": [
          {
            "description": "Maximum calls to return",
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "format": "int32",
              "minimum": 0,
              "type": "integer"
            }
          },
          {
            "description": "Filter by source name",
            "in": "query",
            "name": "sourceName",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Filter by connection ID",
            "in": "query",
            "name": "connectionId",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse_RecentCallsResult"
                }
              }
            },
            "description": "Recent alpha calls"
          },
          "401": {
            "description": "Unauthenticated"
          },
          "403": {
            "description": "Insufficient scope"
          }
        },
        "security": [
          {
            "bearer_auth": []
          }
        ],
        "tags": [
          "alpha"
        ]
      }
    },
    "/api/v2/alpha/sources": {
      "get": {
        "operationId": "list_alpha_sources",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse_AlphaSourcesResult"
                }
              }
            },
            "description": "Connected alpha sources"
          },
          "401": {
            "description": "Unauthenticated"
          },
          "403": {
            "description": "Insufficient scope"
          }
        },
        "security": [
          {
            "bearer_auth": []
          }
        ],
        "tags": [
          "alpha"
        ]
      }
    },
    "/api/v2/alpha/tokens/{tokenAddress}/call-context": {
      "get": {
        "operationId": "get_alpha_call_context",
        "parameters": [
          {
            "description": "Token address (mint for SVM, contract for EVM)",
            "in": "path",
            "name": "tokenAddress",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Maximum signals to return (default: 20, max: 50)",
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "format": "int32",
              "minimum": 0,
              "type": "integer"
            }
          },
          {
            "description": "Pagination cursor from previous response",
            "in": "query",
            "name": "cursor",
            "required": false,
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          },
          {
            "description": "CSV filter by source type: discord,telegram,x,trade",
            "in": "query",
            "name": "sourceFilter",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Include bot-generated signals",
            "in": "query",
            "name": "includeBotSignals",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "Include message preview and context",
            "in": "query",
            "name": "includeMessageContext",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse_CallContextResult"
                }
              }
            },
            "description": "Token call context signals"
          },
          "401": {
            "description": "Unauthenticated"
          },
          "403": {
            "description": "Insufficient scope"
          }
        },
        "security": [
          {
            "bearer_auth": []
          }
        ],
        "tags": [
          "alpha"
        ]
      }
    },
    "/api/v2/alpha/tokens/{tokenAddress}/mentions": {
      "get": {
        "operationId": "get_alpha_token_mentions",
        "parameters": [
          {
            "description": "Token address (mint for SVM, contract for EVM)",
            "in": "path",
            "name": "tokenAddress",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Maximum mentions to return",
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "format": "int32",
              "minimum": 0,
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse_TokenMentionsResult"
                }
              }
            },
            "description": "Token mention history"
          },
          "401": {
            "description": "Unauthenticated"
          },
          "403": {
            "description": "Insufficient scope"
          }
        },
        "security": [
          {
            "bearer_auth": []
          }
        ],
        "tags": [
          "alpha"
        ]
      }
    },
    "/api/v2/perp/account": {
      "get": {
        "operationId": "get_perp_account",
        "parameters": [
          {
            "description": "Wallet ID (uses default HL wallet if omitted)",
            "in": "query",
            "name": "wallet_id",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse_AccountState"
                }
              }
            },
            "description": "Account state"
          }
        },
        "security": [
          {
            "bearer_auth": []
          }
        ],
        "summary": "GET /api/v2/perp/account — Account state (balances, margin)",
        "tags": [
          "V2 Perps"
        ]
      }
    },
    "/api/v2/perp/fees": {
      "get": {
        "operationId": "get_perp_fees",
        "parameters": [
          {
            "description": "Wallet ID (uses default HL wallet if omitted)",
            "in": "query",
            "name": "wallet_id",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse_UserFees"
                }
              }
            },
            "description": "Fee schedule"
          }
        },
        "security": [
          {
            "bearer_auth": []
          }
        ],
        "summary": "GET /api/v2/perp/fees — User fee schedule",
        "tags": [
          "V2 Perps"
        ]
      }
    },
    "/api/v2/perp/fills": {
      "get": {
        "operationId": "get_perp_fills",
        "parameters": [
          {
            "description": "Wallet ID (uses default HL wallet if omitted)",
            "in": "query",
            "name": "wallet_id",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Start time (unix millis)",
            "in": "query",
            "name": "start_time",
            "required": true,
            "schema": {
              "format": "int64",
              "minimum": 0,
              "type": "integer"
            }
          },
          {
            "description": "End time (unix millis)",
            "in": "query",
            "name": "end_time",
            "required": false,
            "schema": {
              "format": "int64",
              "minimum": 0,
              "type": "integer"
            }
          },
          {
            "description": "Filter by coin",
            "in": "query",
            "name": "coin",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse_Vec_Fill"
                }
              }
            },
            "description": "Trade fills"
          }
        },
        "security": [
          {
            "bearer_auth": []
          }
        ],
        "summary": "GET /api/v2/perp/fills — Trade fill history",
        "tags": [
          "V2 Perps"
        ]
      }
    },
    "/api/v2/perp/funding": {
      "get": {
        "operationId": "get_perp_funding",
        "parameters": [
          {
            "description": "Wallet ID (uses default HL wallet if omitted)",
            "in": "query",
            "name": "wallet_id",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Start time (unix millis)",
            "in": "query",
            "name": "start_time",
            "required": true,
            "schema": {
              "format": "int64",
              "minimum": 0,
              "type": "integer"
            }
          },
          {
            "description": "End time (unix millis)",
            "in": "query",
            "name": "end_time",
            "required": false,
            "schema": {
              "format": "int64",
              "minimum": 0,
              "type": "integer"
            }
          },
          {
            "description": "Filter by coin",
            "in": "query",
            "name": "coin",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse_Vec_FundingPayment"
                }
              }
            },
            "description": "Funding payments"
          }
        },
        "security": [
          {
            "bearer_auth": []
          }
        ],
        "summary": "GET /api/v2/perp/funding — Funding payment history",
        "tags": [
          "V2 Perps"
        ]
      }
    },
    "/api/v2/perp/leverage": {
      "post": {
        "operationId": "update_perp_leverage",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateLeverageBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse_LeverageResponse"
                }
              }
            },
            "description": "Leverage update result"
          },
          "400": {
            "description": "Invalid parameters"
          }
        },
        "security": [
          {
            "bearer_auth": []
          }
        ],
        "summary": "POST /api/v2/perp/leverage — Update leverage for a coin",
        "tags": [
          "V2 Perps"
        ]
      }
    },
    "/api/v2/perp/markets": {
      "get": {
        "operationId": "get_perp_markets",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse_Vec_PerpMarket"
                }
              }
            },
            "description": "List of perpetual markets"
          }
        },
        "security": [
          {
            "bearer_auth": []
          }
        ],
        "summary": "GET /api/v2/perp/markets — List all perpetual markets",
        "tags": [
          "V2 Perps"
        ]
      }
    },
    "/api/v2/perp/markets/{coin}": {
      "get": {
        "operationId": "get_perp_market",
        "parameters": [
          {
            "description": "Coin symbol (e.g. BTC, ETH)",
            "in": "path",
            "name": "coin",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse_PerpMarket"
                }
              }
            },
            "description": "Market with orderbook"
          },
          "404": {
            "description": "Market not found"
          }
        },
        "security": [
          {
            "bearer_auth": []
          }
        ],
        "summary": "GET /api/v2/perp/markets/:coin — Get a single market with orderbook",
        "tags": [
          "V2 Perps"
        ]
      }
    },
    "/api/v2/perp/order": {
      "delete": {
        "operationId": "cancel_perp_order",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CancelOrderBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse_OrderResponse"
                }
              }
            },
            "description": "Cancel result"
          },
          "400": {
            "description": "Invalid parameters"
          }
        },
        "security": [
          {
            "bearer_auth": []
          }
        ],
        "summary": "DELETE /api/v2/perp/order — Cancel a perpetual order",
        "tags": [
          "V2 Perps"
        ]
      },
      "patch": {
        "operationId": "modify_perp_order",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ModifyOrderBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse_OrderResponse"
                }
              }
            },
            "description": "Modify result"
          },
          "400": {
            "description": "Invalid parameters"
          }
        },
        "security": [
          {
            "bearer_auth": []
          }
        ],
        "summary": "PATCH /api/v2/perp/order — Modify a perpetual order",
        "tags": [
          "V2 Perps"
        ]
      },
      "post": {
        "operationId": "place_perp_order",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PlaceOrderBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse_OrderResponse"
                }
              }
            },
            "description": "Order result"
          },
          "400": {
            "description": "Invalid parameters"
          }
        },
        "security": [
          {
            "bearer_auth": []
          }
        ],
        "summary": "POST /api/v2/perp/order — Place a perpetual order",
        "tags": [
          "V2 Perps"
        ]
      }
    },
    "/api/v2/perp/orders": {
      "get": {
        "operationId": "get_perp_orders",
        "parameters": [
          {
            "description": "Wallet ID (uses default HL wallet if omitted)",
            "in": "query",
            "name": "wallet_id",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Filter by coin",
            "in": "query",
            "name": "coin",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse_Vec_OpenOrder"
                }
              }
            },
            "description": "Open orders"
          }
        },
        "security": [
          {
            "bearer_auth": []
          }
        ],
        "summary": "GET /api/v2/perp/orders — Open orders",
        "tags": [
          "V2 Perps"
        ]
      },
      "patch": {
        "operationId": "batch_modify_perp_orders",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BatchModifyBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse_OrderResponse"
                }
              }
            },
            "description": "Batch modify results"
          },
          "400": {
            "description": "Invalid parameters"
          }
        },
        "security": [
          {
            "bearer_auth": []
          }
        ],
        "summary": "PATCH /api/v2/perp/orders — Batch modify perpetual orders",
        "tags": [
          "V2 Perps"
        ]
      }
    },
    "/api/v2/perp/position/close": {
      "post": {
        "operationId": "close_perp_position",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ClosePositionBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse_OrderResponse"
                }
              }
            },
            "description": "Close result"
          },
          "400": {
            "description": "Invalid parameters"
          }
        },
        "security": [
          {
            "bearer_auth": []
          }
        ],
        "summary": "POST /api/v2/perp/position/close — Close a position",
        "tags": [
          "V2 Perps"
        ]
      }
    },
    "/api/v2/perp/position/margin": {
      "post": {
        "operationId": "update_perp_margin",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateMarginBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse_MarginResponse"
                }
              }
            },
            "description": "Margin update result"
          },
          "400": {
            "description": "Invalid parameters"
          }
        },
        "security": [
          {
            "bearer_auth": []
          }
        ],
        "summary": "POST /api/v2/perp/position/margin — Adjust isolated margin",
        "tags": [
          "V2 Perps"
        ]
      }
    },
    "/api/v2/perp/positions": {
      "get": {
        "operationId": "get_perp_positions",
        "parameters": [
          {
            "description": "Wallet ID (uses default HL wallet if omitted)",
            "in": "query",
            "name": "wallet_id",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse_PerpPositionsResponse"
                }
              }
            },
            "description": "Open positions"
          }
        },
        "security": [
          {
            "bearer_auth": []
          }
        ],
        "summary": "GET /api/v2/perp/positions — Open positions",
        "tags": [
          "V2 Perps"
        ]
      }
    },
    "/api/v2/portfolio/balances": {
      "get": {
        "operationId": "get_portfolio_balances",
        "parameters": [
          {
            "description": "Filter by chain: solana, base, bsc",
            "in": "query",
            "name": "chain",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse_BalancesResponse"
                }
              }
            },
            "description": "Wallet balances across chains"
          }
        },
        "security": [
          {
            "bearer_auth": []
          }
        ],
        "summary": "GET /api/v2/portfolio/balances — Cross-chain native + token balances",
        "tags": [
          "V2 Portfolio"
        ]
      }
    },
    "/api/v2/portfolio/history": {
      "get": {
        "operationId": "get_portfolio_history",
        "parameters": [
          {
            "description": "Filter by chain: solana, base, bsc",
            "in": "query",
            "name": "chain",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Page number",
            "in": "query",
            "name": "page",
            "required": false,
            "schema": {
              "format": "int32",
              "minimum": 0,
              "type": "integer"
            }
          },
          {
            "description": "Results per page (max 100)",
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "format": "int32",
              "minimum": 0,
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse_PortfolioHistoryResponse"
                }
              }
            },
            "description": "Trade history"
          }
        },
        "security": [
          {
            "bearer_auth": []
          }
        ],
        "summary": "GET /api/v2/portfolio/history — Trade history",
        "tags": [
          "V2 Portfolio"
        ]
      }
    },
    "/api/v2/portfolio/pnl": {
      "get": {
        "operationId": "get_portfolio_pnl",
        "parameters": [
          {
            "description": "Timeframe: 1d, 7d, 30d, lifetime (default: 30d)",
            "in": "query",
            "name": "timeframe",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse_PortfolioPnlResponse"
                }
              }
            },
            "description": "Portfolio PnL summary"
          }
        },
        "security": [
          {
            "bearer_auth": []
          }
        ],
        "summary": "GET /api/v2/portfolio/pnl — Aggregate PnL summary",
        "tags": [
          "V2 Portfolio"
        ]
      }
    },
    "/api/v2/portfolio/positions": {
      "get": {
        "operationId": "get_portfolio_positions",
        "parameters": [
          {
            "description": "Filter by chain",
            "in": "query",
            "name": "chain",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Filter by position status",
            "in": "query",
            "name": "status",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse_PositionsResponse"
                }
              }
            },
            "description": "Portfolio positions"
          }
        },
        "security": [
          {
            "bearer_auth": []
          }
        ],
        "summary": "GET /api/v2/portfolio/positions — Get user positions with PnL",
        "tags": [
          "V2 Portfolio"
        ]
      }
    },
    "/api/v2/splits/execute": {
      "post": {
        "operationId": "execute_split",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ExecuteSplitBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse_ExecuteSplitResult"
                }
              }
            },
            "description": "Split task created"
          },
          "400": {
            "description": "Plan not found, expired, or wrong owner"
          },
          "403": {
            "description": "Missing split:execute scope"
          },
          "503": {
            "description": "Split infrastructure not enabled on this deployment"
          }
        },
        "security": [
          {
            "bearer_auth": []
          }
        ],
        "summary": "POST /api/v2/splits/execute",
        "tags": [
          "V2 Splits"
        ]
      }
    },
    "/api/v2/splits/plan": {
      "post": {
        "operationId": "plan_split",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PlanSplitBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse_PlanSplitResult"
                }
              }
            },
            "description": "Split plan reserved (60s TTL)"
          },
          "400": {
            "description": "Validation failure or unsupported chain"
          },
          "403": {
            "description": "Missing split:plan scope"
          },
          "503": {
            "description": "Split infrastructure not enabled on this deployment"
          }
        },
        "security": [
          {
            "bearer_auth": []
          }
        ],
        "summary": "POST /api/v2/splits/plan",
        "tags": [
          "V2 Splits"
        ]
      }
    },
    "/api/v2/swap/approve/allowance": {
      "get": {
        "operationId": "get_swap_approve_allowance",
        "parameters": [
          {
            "description": "EVM chain ID (8453=Base, 56=BSC)",
            "in": "query",
            "name": "chainId",
            "required": true,
            "schema": {
              "format": "int64",
              "minimum": 0,
              "type": "integer"
            }
          },
          {
            "description": "ERC-20 token contract address",
            "in": "query",
            "name": "tokenAddress",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Wallet address to check allowance for",
            "in": "query",
            "name": "walletAddress",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse_ApproveAllowanceResponse"
                }
              }
            },
            "description": "Allowance amount"
          }
        },
        "security": [
          {
            "bearer_auth": []
          }
        ],
        "summary": "GET /api/v2/swap/approve/allowance — Check ERC-20 allowance (EVM only)",
        "tags": [
          "V2 Swap"
        ]
      }
    },
    "/api/v2/swap/approve/spender": {
      "get": {
        "operationId": "get_swap_approve_spender",
        "parameters": [
          {
            "description": "EVM chain ID (8453=Base, 56=BSC)",
            "in": "query",
            "name": "chainId",
            "required": true,
            "schema": {
              "format": "int64",
              "minimum": 0,
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse_ApproveSpenderResponse"
                }
              }
            },
            "description": "Spender address"
          }
        },
        "security": [
          {
            "bearer_auth": []
          }
        ],
        "summary": "GET /api/v2/swap/approve/spender — Get router contract address (EVM only)",
        "tags": [
          "V2 Swap"
        ]
      }
    },
    "/api/v2/swap/execute": {
      "post": {
        "description": "Direct execution flow: validates wallet, fetches token metadata,\nbuilds task request, and submits to task service. No plan_storage dependency.",
        "operationId": "execute_swap",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ExecuteSwapRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse_SwapStatus"
                }
              }
            },
            "description": "Swap task created"
          },
          "400": {
            "description": "Invalid params or wallet not found"
          }
        },
        "security": [
          {
            "bearer_auth": []
          }
        ],
        "summary": "POST /api/v2/swap/execute — Managed execution (Shuriken signs & submits)",
        "tags": [
          "V2 Swap"
        ]
      }
    },
    "/api/v2/swap/quote": {
      "get": {
        "operationId": "get_swap_quote",
        "parameters": [
          {
            "description": "Chain: solana, base, bsc",
            "in": "query",
            "name": "chain",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Token address to sell",
            "in": "query",
            "name": "inputMint",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Token address to buy",
            "in": "query",
            "name": "outputMint",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Amount in base units (positive integer string, no decimals)",
            "in": "query",
            "name": "amount",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Slippage in basis points (default: 100)",
            "in": "query",
            "name": "slippageBps",
            "required": false,
            "schema": {
              "format": "int32",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse_QuoteResponse"
                }
              }
            },
            "description": "Swap quote"
          },
          "400": {
            "description": "No route found or invalid params"
          }
        },
        "security": [
          {
            "bearer_auth": []
          }
        ],
        "summary": "GET /api/v2/swap/quote — Get a swap quote (read-only, cacheable)",
        "tags": [
          "V2 Swap"
        ]
      }
    },
    "/api/v2/swap/submit": {
      "post": {
        "description": "Accepts a user-signed transaction, registers it for monitoring in\ntask-service, and submits it through Shuriken's RPCs for better landing.\nReturns a taskId for status polling via `/status/:taskId`.",
        "operationId": "submit_swap_transaction",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SubmitTransactionRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse_SubmitTransactionResponse"
                }
              }
            },
            "description": "Transaction submitted"
          },
          "400": {
            "description": "Invalid transaction"
          }
        },
        "security": [
          {
            "bearer_auth": []
          }
        ],
        "summary": "POST /api/v2/swap/submit — Submit a signed transaction for execution",
        "tags": [
          "V2 Swap"
        ]
      }
    },
    "/api/v2/swap/transaction": {
      "post": {
        "description": "Quotes with chain-appropriate resolvers, builds an unsigned transaction,\nand returns it for the caller to sign locally. SVM returns base64\nVersionedTransaction; EVM returns EIP-1559 envelope(s) with optional\napproval transaction.",
        "operationId": "build_swap_transaction",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BuildTransactionRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse_BuildTransactionResponse"
                }
              }
            },
            "description": "Unsigned transaction"
          },
          "400": {
            "description": "Invalid params or no route"
          }
        },
        "security": [
          {
            "bearer_auth": []
          }
        ],
        "summary": "POST /api/v2/swap/transaction — Build unsigned transaction (raw mode)",
        "tags": [
          "V2 Swap"
        ]
      }
    },
    "/api/v2/tasks/{taskId}": {
      "get": {
        "operationId": "get_task_status",
        "parameters": [
          {
            "description": "Task ID returned by any action endpoint",
            "in": "path",
            "name": "taskId",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse_TaskStatus"
                }
              }
            },
            "description": "Task status"
          },
          "404": {
            "description": "Task not found"
          }
        },
        "security": [
          {
            "bearer_auth": []
          }
        ],
        "summary": "GET /api/v2/tasks/:taskId — Poll task status (any task type)",
        "tags": [
          "V2 Tasks"
        ]
      }
    },
    "/api/v2/tokens/batch": {
      "post": {
        "operationId": "batch_tokens",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BatchTokensRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse_BatchTokensResponse"
                }
              }
            },
            "description": "Batch token results"
          },
          "400": {
            "description": "Invalid request"
          }
        },
        "security": [
          {
            "bearer_auth": []
          }
        ],
        "summary": "POST /api/v2/tokens/batch — Get multiple tokens in one call",
        "tags": [
          "V2 Tokens"
        ]
      }
    },
    "/api/v2/tokens/search": {
      "get": {
        "operationId": "search_tokens",
        "parameters": [
          {
            "description": "Search query",
            "in": "query",
            "name": "q",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Filter by chain: solana, base, bsc",
            "in": "query",
            "name": "chain",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Page number (default: 1)",
            "in": "query",
            "name": "page",
            "required": false,
            "schema": {
              "format": "int32",
              "minimum": 0,
              "type": "integer"
            }
          },
          {
            "description": "Results per page (default: 20, max: 100)",
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "format": "int32",
              "minimum": 0,
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse_TokenSearchResponse"
                }
              }
            },
            "description": "Search results"
          }
        },
        "security": [
          {
            "bearer_auth": []
          }
        ],
        "summary": "GET /api/v2/tokens/search — Search tokens",
        "tags": [
          "V2 Tokens"
        ]
      }
    },
    "/api/v2/tokens/{tokenId}": {
      "get": {
        "operationId": "get_token",
        "parameters": [
          {
            "description": "Token ID in chain:address format",
            "example": "solana:So11111111111111111111111111111111111111112",
            "in": "path",
            "name": "tokenId",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse_TokenInfo"
                }
              }
            },
            "description": "Token metadata"
          },
          "404": {
            "description": "Token not found"
          }
        },
        "security": [
          {
            "bearer_auth": []
          }
        ],
        "summary": "GET /api/v2/tokens/:tokenId — Get token metadata",
        "tags": [
          "V2 Tokens"
        ]
      }
    },
    "/api/v2/tokens/{tokenId}/pools": {
      "get": {
        "operationId": "get_token_pools",
        "parameters": [
          {
            "description": "Token ID in chain:address format",
            "in": "path",
            "name": "tokenId",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse_TokenPoolsResponse"
                }
              }
            },
            "description": "Token pool data"
          }
        },
        "security": [
          {
            "bearer_auth": []
          }
        ],
        "summary": "GET /api/v2/tokens/:tokenId/pools — Token pools",
        "tags": [
          "V2 Tokens"
        ]
      }
    },
    "/api/v2/tokens/{tokenId}/price": {
      "get": {
        "operationId": "get_token_price",
        "parameters": [
          {
            "description": "Token ID in chain:address format",
            "in": "path",
            "name": "tokenId",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse_TokenPrice"
                }
              }
            },
            "description": "Token price"
          },
          "404": {
            "description": "Token not found"
          }
        },
        "security": [
          {
            "bearer_auth": []
          }
        ],
        "summary": "GET /api/v2/tokens/:tokenId/price — Lightweight price endpoint",
        "tags": [
          "V2 Tokens"
        ]
      }
    },
    "/api/v2/tokens/{tokenId}/price/chart": {
      "get": {
        "operationId": "get_token_chart",
        "parameters": [
          {
            "description": "Token ID in chain:address format",
            "in": "path",
            "name": "tokenId",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Candle resolution: 1m, 5m, 15m, 30m, 1h, 6h, 1d (default: 1h)",
            "in": "query",
            "name": "resolution",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Number of candles (default: 100, max: 500)",
            "in": "query",
            "name": "count",
            "required": false,
            "schema": {
              "format": "int32",
              "minimum": 0,
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse_TokenChartResponse"
                }
              }
            },
            "description": "OHLCV candle data"
          }
        },
        "security": [
          {
            "bearer_auth": []
          }
        ],
        "summary": "GET /api/v2/tokens/:tokenId/price/chart — OHLCV candle data",
        "tags": [
          "V2 Tokens"
        ]
      }
    },
    "/api/v2/tokens/{tokenId}/stats": {
      "get": {
        "operationId": "get_token_stats",
        "parameters": [
          {
            "description": "Token ID in chain:address format",
            "in": "path",
            "name": "tokenId",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse_TokenStatsResponse"
                }
              }
            },
            "description": "Token trading statistics"
          }
        },
        "security": [
          {
            "bearer_auth": []
          }
        ],
        "summary": "GET /api/v2/tokens/:tokenId/stats — Token trading statistics",
        "tags": [
          "V2 Tokens"
        ]
      }
    },
    "/api/v2/transfers/retire-wallet": {
      "post": {
        "operationId": "retire_wallet",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RetireWalletBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse_TransferResult"
                }
              }
            },
            "description": "Retire-wallet task created or completed"
          },
          "400": {
            "description": "Validation failure or insufficient balance"
          },
          "403": {
            "description": "Missing transfer:write scope"
          }
        },
        "security": [
          {
            "bearer_auth": []
          }
        ],
        "summary": "POST /api/v2/transfers/retire-wallet",
        "tags": [
          "V2 Transfers"
        ]
      }
    },
    "/api/v2/transfers/send": {
      "post": {
        "operationId": "send_transfer",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SendBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse_TransferResult"
                }
              }
            },
            "description": "Transfer task created (or completed if awaitResult)"
          },
          "400": {
            "description": "Validation failure or unsupported chain"
          },
          "403": {
            "description": "Missing transfer:write scope"
          }
        },
        "security": [
          {
            "bearer_auth": []
          }
        ],
        "summary": "POST /api/v2/transfers/send",
        "tags": [
          "V2 Transfers"
        ]
      }
    },
    "/api/v2/trigger/order": {
      "post": {
        "operationId": "create_trigger_order",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateOrderRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse_TriggerOrder"
                }
              }
            },
            "description": "Order created"
          },
          "400": {
            "description": "Invalid params"
          }
        },
        "security": [
          {
            "bearer_auth": []
          }
        ],
        "summary": "POST /api/v2/trigger/order — Create a trigger order",
        "tags": [
          "V2 Trigger"
        ]
      }
    },
    "/api/v2/trigger/order/{orderId}": {
      "delete": {
        "operationId": "cancel_trigger_order",
        "parameters": [
          {
            "description": "Order ID to cancel",
            "in": "path",
            "name": "orderId",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse_CancelledTriggerOrder"
                }
              }
            },
            "description": "Order cancelled"
          }
        },
        "security": [
          {
            "bearer_auth": []
          }
        ],
        "summary": "DELETE /api/v2/trigger/order/:orderId — Cancel a trigger order",
        "tags": [
          "V2 Trigger"
        ]
      },
      "get": {
        "operationId": "get_trigger_order",
        "parameters": [
          {
            "description": "Order ID",
            "in": "path",
            "name": "orderId",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse_TriggerOrderView"
                }
              }
            },
            "description": "Order details"
          },
          "404": {
            "description": "Order not found"
          }
        },
        "security": [
          {
            "bearer_auth": []
          }
        ],
        "summary": "GET /api/v2/trigger/order/:orderId — Get a specific order",
        "tags": [
          "V2 Trigger"
        ]
      }
    },
    "/api/v2/trigger/orders": {
      "get": {
        "operationId": "list_trigger_orders",
        "parameters": [
          {
            "description": "Results per page (default: 20, max: 100)",
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "format": "int32",
              "minimum": 0,
              "type": "integer"
            }
          },
          {
            "description": "Opaque cursor for forward pagination (from previous response's nextCursor)",
            "in": "query",
            "name": "cursor",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse_TriggerOrdersResponse"
                }
              }
            },
            "description": "List of trigger orders"
          }
        },
        "security": [
          {
            "bearer_auth": []
          }
        ],
        "summary": "GET /api/v2/trigger/orders — List trigger orders",
        "tags": [
          "V2 Trigger"
        ]
      }
    },
    "/api/v2/wallet-groups": {
      "get": {
        "operationId": "list_wallet_groups",
        "parameters": [
          {
            "description": "Filter groups by chain (svm/base/bsc)",
            "in": "query",
            "name": "chain",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse_WalletGroupList"
                }
              }
            },
            "description": ""
          }
        },
        "security": [
          {
            "bearer_auth": []
          }
        ],
        "tags": [
          "super::wallet_groups"
        ]
      },
      "post": {
        "operationId": "create_wallet_group",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateWalletGroupBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse_WalletGroup"
                }
              }
            },
            "description": ""
          },
          "400": {
            "description": "GROUP_CHAIN_MISMATCH | GROUP_LIMIT_EXCEEDED | WALLET_NOT_FOUND"
          }
        },
        "security": [
          {
            "bearer_auth": []
          }
        ],
        "tags": [
          "super::wallet_groups"
        ]
      }
    },
    "/api/v2/wallet-groups/with-wallets": {
      "post": {
        "operationId": "create_wallet_group_with_wallets",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateWalletGroupWithWalletsBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse_WalletGroup"
                }
              }
            },
            "description": ""
          },
          "400": {
            "description": "GROUP_CHAIN_MISMATCH | GROUP_LIMIT_EXCEEDED | GROUP_COUNT_OUT_OF_RANGE | GROUP_NAME_INVALID | WALLET_CREATE_FAILED"
          }
        },
        "security": [
          {
            "bearer_auth": []
          }
        ],
        "summary": "Atomic: create N fresh wallets and a wallet group containing them in a\nsingle transaction. Used by the treasury-agent surface and the terminal's\n\"Generate new wallets\" pathway.",
        "tags": [
          "super::wallet_groups"
        ]
      }
    },
    "/api/v2/wallet-groups/{groupId}": {
      "delete": {
        "operationId": "delete_wallet_group",
        "parameters": [
          {
            "in": "path",
            "name": "groupId",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Not yet supported in this slice — passing true returns 501.",
            "in": "query",
            "name": "archiveWallets",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse_DeletedGroup"
                }
              }
            },
            "description": ""
          },
          "501": {
            "description": "ARCHIVE_WALLETS_NOT_SUPPORTED"
          }
        },
        "security": [
          {
            "bearer_auth": []
          }
        ],
        "tags": [
          "super::wallet_groups"
        ]
      },
      "get": {
        "operationId": "get_wallet_group",
        "parameters": [
          {
            "description": "Wallet group ID",
            "in": "path",
            "name": "groupId",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse_WalletGroup"
                }
              }
            },
            "description": ""
          },
          "404": {
            "description": "GROUP_NOT_FOUND"
          }
        },
        "security": [
          {
            "bearer_auth": []
          }
        ],
        "tags": [
          "super::wallet_groups"
        ]
      },
      "patch": {
        "operationId": "update_wallet_group",
        "parameters": [
          {
            "in": "path",
            "name": "groupId",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateWalletGroupBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse_WalletGroup"
                }
              }
            },
            "description": ""
          },
          "400": {
            "description": "GROUP_CHAIN_MISMATCH"
          },
          "404": {
            "description": "GROUP_NOT_FOUND"
          }
        },
        "security": [
          {
            "bearer_auth": []
          }
        ],
        "tags": [
          "super::wallet_groups"
        ]
      }
    },
    "/api/v2/wallet-groups/{groupId}/wallets": {
      "delete": {
        "operationId": "remove_wallets_from_group",
        "parameters": [
          {
            "in": "path",
            "name": "groupId",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RemoveWalletsBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse_WalletGroup"
                }
              }
            },
            "description": ""
          },
          "404": {
            "description": "GROUP_NOT_FOUND"
          }
        },
        "security": [
          {
            "bearer_auth": []
          }
        ],
        "tags": [
          "super::wallet_groups"
        ]
      },
      "post": {
        "operationId": "add_wallets_to_group",
        "parameters": [
          {
            "in": "path",
            "name": "groupId",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AddWalletsBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse_WalletGroup"
                }
              }
            },
            "description": ""
          },
          "400": {
            "description": "GROUP_CHAIN_MISMATCH | WALLET_NOT_FOUND"
          },
          "404": {
            "description": "GROUP_NOT_FOUND"
          }
        },
        "security": [
          {
            "bearer_auth": []
          }
        ],
        "tags": [
          "super::wallet_groups"
        ]
      }
    },
    "/api/v2/wallet-groups/{groupId}/wallets/order": {
      "put": {
        "operationId": "reorder_wallets_in_group",
        "parameters": [
          {
            "in": "path",
            "name": "groupId",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ReorderWalletsBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse_WalletGroup"
                }
              }
            },
            "description": ""
          },
          "400": {
            "description": "WALLET_SET_MISMATCH"
          },
          "404": {
            "description": "GROUP_NOT_FOUND"
          }
        },
        "security": [
          {
            "bearer_auth": []
          }
        ],
        "tags": [
          "super::wallet_groups"
        ]
      }
    },
    "/api/v2/wallets/bulk-archive": {
      "post": {
        "operationId": "bulk_archive",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BulkArchiveRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse_BulkArchiveResponse"
                }
              }
            },
            "description": ""
          },
          "400": {
            "description": "BULK_ARCHIVE_LIMIT"
          }
        },
        "security": [
          {
            "bearer_auth": []
          }
        ],
        "tags": [
          "Wallets"
        ]
      }
    },
    "/api/v2/wallets/{walletId}/archive": {
      "post": {
        "operationId": "archive",
        "parameters": [
          {
            "description": "Wallet ID to archive",
            "in": "path",
            "name": "walletId",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse_ArchiveResponse"
                }
              }
            },
            "description": ""
          },
          "404": {
            "description": "WALLET_NOT_FOUND"
          }
        },
        "security": [
          {
            "bearer_auth": []
          }
        ],
        "tags": [
          "Wallets"
        ]
      }
    },
    "/api/v2/wallets/{walletId}/move": {
      "post": {
        "operationId": "move_wallet",
        "parameters": [
          {
            "in": "path",
            "name": "walletId",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MoveWalletBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse_WalletGroup"
                }
              }
            },
            "description": ""
          },
          "400": {
            "description": "GROUP_CHAIN_MISMATCH | WALLET_NOT_FOUND"
          },
          "404": {
            "description": "GROUP_NOT_FOUND"
          }
        },
        "security": [
          {
            "bearer_auth": []
          }
        ],
        "tags": [
          "super::wallet_groups"
        ]
      }
    },
    "/api/v2/wallets/{walletId}/unarchive": {
      "post": {
        "operationId": "unarchive",
        "parameters": [
          {
            "description": "Wallet ID to unarchive",
            "in": "path",
            "name": "walletId",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse_UnarchiveResponse"
                }
              }
            },
            "description": ""
          },
          "404": {
            "description": "WALLET_NOT_FOUND"
          }
        },
        "security": [
          {
            "bearer_auth": []
          }
        ],
        "tags": [
          "Wallets"
        ]
      }
    },
    "/api/v2/ws/auth": {
      "post": {
        "operationId": "authorize_ws_channel",
        "requestBody": {
          "content": {
            "application/x-www-form-urlencoded": {
              "schema": {
                "$ref": "#/components/schemas/WsAuthRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WsAuthResponse"
                }
              }
            },
            "description": "Channel authorized"
          },
          "400": {
            "description": "Invalid socket_id or channel_name"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Channel access denied"
          }
        },
        "security": [
          {
            "bearer_auth": []
          }
        ],
        "tags": [
          "V2 WebSocket"
        ]
      }
    },
    "/api/v2/ws/session": {
      "post": {
        "operationId": "create_ws_session",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SessionRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SessionResponse"
                }
              }
            },
            "description": "Session created"
          },
          "400": {
            "description": "Unknown stream or invalid filter"
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "security": [
          {
            "bearer_auth": []
          }
        ],
        "tags": [
          "V2 WebSocket"
        ]
      }
    },
    "/api/v2/ws/streams": {
      "get": {
        "operationId": "get_ws_streams",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse_StreamCatalogResponse"
                }
              }
            },
            "description": "Stream catalog"
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "security": [
          {
            "bearer_auth": []
          }
        ],
        "tags": [
          "V2 WebSocket"
        ]
      }
    }
  },
  "tags": [
    {
      "description": "SplitNOW cross-chain split plan + execute",
      "name": "V2 Splits"
    },
    {
      "description": "Wallet archive lifecycle (archive / unarchive / bulk-archive)",
      "name": "Wallets"
    },
    {
      "description": "Token discovery, metadata, and pricing",
      "name": "V2 Tokens"
    },
    {
      "description": "Quote and execute swaps",
      "name": "V2 Swap"
    },
    {
      "description": "Limit orders and stop-loss",
      "name": "V2 Trigger"
    },
    {
      "description": "Managed-agent invocation",
      "name": "V2 Agents"
    },
    {
      "description": "Portfolio positions and PnL",
      "name": "V2 Portfolio"
    },
    {
      "description": "User account management",
      "name": "V2 Account"
    },
    {
      "description": "WebSocket stream discovery, session bootstrap, and channel authorization",
      "name": "V2 WebSocket"
    },
    {
      "description": "Perpetual trading on Hyperliquid",
      "name": "V2 Perps"
    },
    {
      "description": "Agent-proposed trade suggestions",
      "name": "V2 Suggestions"
    }
  ],
  "servers": [
    {
      "url": "https://api.shuriken.trade"
    }
  ]
}