{"protocolVersion":"2025-06-18","capabilities":{"tools":{"listChanged":false}},"agentGuidance":{"description":"General guidance for external AI agents using this MCP server. Read before selecting a project endpoint, requesting tool schemas, or calling protocol tools.","skillUrl":"https://erc8004.heyanon.ai/mcp/skill.md"},"serverInfo":{"name":"heyanon-erc8004-kraken","version":"1.0.0"},"tools":[{"name":"createSimpleOrder","description":"Create an order that is activated immediately, without a trigger attached to it.  The order will execute at the current market price or a specified limit price. Executing an order will consume the fees but the answer includes the fees in the amount field so if you need to know the amount after order execution take it from the answer.","inputSchema":{"type":"object","properties":{"market":{"type":"string","description":"Symbol of the market to trade, e.g. \"BTC/USDT\".  The FIRST (base) currency is the asset you are actually buying (side = \"buy\") or selling (side = \"sell\").  For a request like \"sell USDT for BTC\" you must use market \"BTC/USDT\" with side = \"buy\"."},"side":{"type":"string","enum":["buy","sell"],"description":"Side of the order, either \"buy\" or \"sell\".  Buy and sell are ALWAYS relative to the FIRST (base) currency in the market symbol.  Examples to avoid confusion (especially when the user speaks in terms of the quote currency): • Market \"BTC/USDT\":     – side = \"buy\" → you are BUYING BTC and paying with USDT.     – side = \"sell\" → you are SELLING BTC and receiving USDT.     – Natural-language request: \"Sell all my USDT for BTC\" → side = \"buy\" on market \"BTC/USDT\" (because you are ultimately buying BTC).     – Natural-language request: \"Buy USDT with BTC\" → side = \"sell\" on market \"BTC/USDT\" (because you are ultimately selling BTC).  When in doubt, rewrite the user sentence so the first currency is the one being bought (side = \"buy\") or sold (side = \"sell\")."},"amount":{"type":"number","description":"Amount is the FINAL trade size to transact; do NOT scale, prorate, or recalc it by price. User always provides the final size. You must pass it as-is using the correct \"amountCurrency\" value. amountCurrency: • BASE — the first currency of the market symbol (e.g., BTC in BTC/USDT). If the user gives a BASE amount, use it directly as the trade size in BASE. • QUOTE — the second currency of the market symbol (e.g., USDT in BTC/USDT). If the user gives a QUOTE amount, use it directly as the trade size in QUOTE notional. For QUOTE, USD / $ / USDT / USDC are treated the same (USD = USDT/USDC). Do NOT convert between BASE and QUOTE."},"amountCurrency":{"type":"string","enum":["BASE","QUOTE"],"description":"Specifies whether the amount is denominated in base currency or quote currency"},"limitPrice":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Price at which the order will be executed.  Include only if explicitly specified by the user.  Set to null for a market order."}},"required":["market","side","amount","amountCurrency","limitPrice"],"additionalProperties":false},"outputSchema":{"type":"object","anyOf":[{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"note":{"description":"Human-readable summary of the action","type":"string"},"cexApiRequestActions":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"The URL of the CEX API request"},"method":{"type":"string","enum":["POST","GET","PUT","DELETE"],"description":"HTTP method"},"headers":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"},"description":"Request headers"},"body":{"description":"Request body as JSON string","type":"string"},"toSign":{"type":"string","description":"Raw bytes (hex) to sign/HMAC for auth header"}},"required":["url","method","headers","toSign"],"additionalProperties":false},"description":"Unsigned API requests to sign and send sequentially"}},"required":["project","operation","cexApiRequestActions"],"additionalProperties":false},{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"error":{"type":"string","description":"Error message"}},"required":["project","operation","error"],"additionalProperties":false}]}},{"name":"createTriggerOrder","description":"Create an order that is activated only after the given price condition is met. Once activated, the order will be executed at either the current market price or a specified limit price.","inputSchema":{"type":"object","properties":{"market":{"type":"string","description":"Symbol of the market to trade, e.g. \"BTC/USDT\".  The FIRST (base) currency is the asset you are actually buying (side = \"buy\") or selling (side = \"sell\").  For a request like \"sell USDT for BTC\" you must use market \"BTC/USDT\" with side = \"buy\"."},"side":{"type":"string","enum":["buy","sell"],"description":"Side of the order, either \"buy\" or \"sell\".  Buy and sell are ALWAYS relative to the FIRST (base) currency in the market symbol.  Examples to avoid confusion (especially when the user speaks in terms of the quote currency): • Market \"BTC/USDT\":     – side = \"buy\" → you are BUYING BTC and paying with USDT.     – side = \"sell\" → you are SELLING BTC and receiving USDT.     – Natural-language request: \"Sell all my USDT for BTC\" → side = \"buy\" on market \"BTC/USDT\" (because you are ultimately buying BTC).     – Natural-language request: \"Buy USDT with BTC\" → side = \"sell\" on market \"BTC/USDT\" (because you are ultimately selling BTC).  When in doubt, rewrite the user sentence so the first currency is the one being bought (side = \"buy\") or sold (side = \"sell\")."},"amount":{"type":"number","description":"Amount is the FINAL trade size to transact; do NOT scale, prorate, or recalc it by price. User always provides the final size. You must pass it as-is using the correct \"amountCurrency\" value. amountCurrency: • BASE — the first currency of the market symbol (e.g., BTC in BTC/USDT). If the user gives a BASE amount, use it directly as the trade size in BASE. • QUOTE — the second currency of the market symbol (e.g., USDT in BTC/USDT). If the user gives a QUOTE amount, use it directly as the trade size in QUOTE notional. For QUOTE, USD / $ / USDT / USDC are treated the same (USD = USDT/USDC). Do NOT convert between BASE and QUOTE."},"amountCurrency":{"type":"string","enum":["BASE","QUOTE"],"description":"Specifies whether the amount is denominated in base currency or quote currency"},"limitPrice":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Price at which the order will be executed.  Include only if explicitly specified by the user.  Set to null for a market order."},"triggerPrice":{"type":"number","description":"Price at which the order will be activated"}},"required":["market","side","amount","amountCurrency","limitPrice","triggerPrice"],"additionalProperties":false},"outputSchema":{"type":"object","anyOf":[{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"note":{"description":"Human-readable summary of the action","type":"string"},"cexApiRequestActions":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"The URL of the CEX API request"},"method":{"type":"string","enum":["POST","GET","PUT","DELETE"],"description":"HTTP method"},"headers":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"},"description":"Request headers"},"body":{"description":"Request body as JSON string","type":"string"},"toSign":{"type":"string","description":"Raw bytes (hex) to sign/HMAC for auth header"}},"required":["url","method","headers","toSign"],"additionalProperties":false},"description":"Unsigned API requests to sign and send sequentially"}},"required":["project","operation","cexApiRequestActions"],"additionalProperties":false},{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"error":{"type":"string","description":"Error message"}},"required":["project","operation","error"],"additionalProperties":false}]}},{"name":"createTakeProfitStopLossOrder","description":"Create take profit and/or stop loss orders.  If both are provided, they will be created as an OCO (one-cancels-the-other) order. If both takeProfitAmount and stopLossAmount are provided, they must be in the same currency.","inputSchema":{"type":"object","properties":{"market":{"type":"string","description":"Symbol of the market to trade, e.g. \"BTC/USDT\".  The FIRST (base) currency is the asset you are actually buying (side = \"buy\") or selling (side = \"sell\").  For a request like \"sell USDT for BTC\" you must use market \"BTC/USDT\" with side = \"buy\"."},"side":{"type":"string","enum":["buy","sell"],"description":"Side of the order, either \"buy\" or \"sell\".  Buy and sell are ALWAYS relative to the FIRST (base) currency in the market symbol.  Examples to avoid confusion (especially when the user speaks in terms of the quote currency): • Market \"BTC/USDT\":     – side = \"buy\" → you are BUYING BTC and paying with USDT.     – side = \"sell\" → you are SELLING BTC and receiving USDT.     – Natural-language request: \"Sell all my USDT for BTC\" → side = \"buy\" on market \"BTC/USDT\" (because you are ultimately buying BTC).     – Natural-language request: \"Buy USDT with BTC\" → side = \"sell\" on market \"BTC/USDT\" (because you are ultimately selling BTC).  When in doubt, rewrite the user sentence so the first currency is the one being bought (side = \"buy\") or sold (side = \"sell\")."},"takeProfitAmount":{"description":"Amount of base or quote currency to take profit. If not specified, the take profit order will not be created.Amount is the FINAL trade size to transact; do NOT scale, prorate, or recalc it by price. User always provides the final size. You must pass it as-is using the correct \"amountCurrency\" value. amountCurrency: • BASE — the first currency of the market symbol (e.g., BTC in BTC/USDT). If the user gives a BASE amount, use it directly as the trade size in BASE. • QUOTE — the second currency of the market symbol (e.g., USDT in BTC/USDT). If the user gives a QUOTE amount, use it directly as the trade size in QUOTE notional. For QUOTE, USD / $ / USDT / USDC are treated the same (USD = USDT/USDC). Do NOT convert between BASE and QUOTE.","type":"number"},"stopLossAmount":{"description":"Amount of base or quote currency to stop loss. If not specified, the stop loss order will not be created.Amount is the FINAL trade size to transact; do NOT scale, prorate, or recalc it by price. User always provides the final size. You must pass it as-is using the correct \"amountCurrency\" value. amountCurrency: • BASE — the first currency of the market symbol (e.g., BTC in BTC/USDT). If the user gives a BASE amount, use it directly as the trade size in BASE. • QUOTE — the second currency of the market symbol (e.g., USDT in BTC/USDT). If the user gives a QUOTE amount, use it directly as the trade size in QUOTE notional. For QUOTE, USD / $ / USDT / USDC are treated the same (USD = USDT/USDC). Do NOT convert between BASE and QUOTE.","type":"number"},"amountCurrency":{"type":"string","enum":["BASE","QUOTE"],"description":"Specifies whether the amount is denominated in base currency or quote currency"},"takeProfitTriggerPrice":{"description":"Price at which the take profit order will be activated.  For sell orders, must be higher than stop loss trigger price.  For buy orders, must be lower than stop loss trigger price.  If not specified, the take profit order will not be created.","type":"number"},"takeProfitLimitPrice":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Price at which the take profit order will be executed.  Set to null for a market order."},"stopLossTriggerPrice":{"description":"Price at which the stop loss order will be activated.  If not specified, the stop loss order will not be created.","type":"number"},"stopLossLimitPrice":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Price at which the stop loss order will be executed.  Set to null for a market order."}},"required":["market","side","amountCurrency","takeProfitLimitPrice","stopLossLimitPrice"],"additionalProperties":false},"outputSchema":{"type":"object","anyOf":[{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"note":{"description":"Human-readable summary of the action","type":"string"},"cexApiRequestActions":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"The URL of the CEX API request"},"method":{"type":"string","enum":["POST","GET","PUT","DELETE"],"description":"HTTP method"},"headers":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"},"description":"Request headers"},"body":{"description":"Request body as JSON string","type":"string"},"toSign":{"type":"string","description":"Raw bytes (hex) to sign/HMAC for auth header"}},"required":["url","method","headers","toSign"],"additionalProperties":false},"description":"Unsigned API requests to sign and send sequentially"}},"required":["project","operation","cexApiRequestActions"],"additionalProperties":false},{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"error":{"type":"string","description":"Error message"}},"required":["project","operation","error"],"additionalProperties":false}]}},{"name":"createTrailingStopOrder","description":"Create a trailing stop order.  The order can be either a stop loss or take profit. Must only specify either trailingAmount or trailingDelta.","inputSchema":{"type":"object","properties":{"market":{"type":"string","description":"Symbol of the market to trade, e.g. \"BTC/USDT\".  The FIRST (base) currency is the asset you are actually buying (side = \"buy\") or selling (side = \"sell\").  For a request like \"sell USDT for BTC\" you must use market \"BTC/USDT\" with side = \"buy\"."},"side":{"type":"string","enum":["buy","sell"],"description":"Side of the order, either \"buy\" or \"sell\".  Buy and sell are ALWAYS relative to the FIRST (base) currency in the market symbol.  Examples to avoid confusion (especially when the user speaks in terms of the quote currency): • Market \"BTC/USDT\":     – side = \"buy\" → you are BUYING BTC and paying with USDT.     – side = \"sell\" → you are SELLING BTC and receiving USDT.     – Natural-language request: \"Sell all my USDT for BTC\" → side = \"buy\" on market \"BTC/USDT\" (because you are ultimately buying BTC).     – Natural-language request: \"Buy USDT with BTC\" → side = \"sell\" on market \"BTC/USDT\" (because you are ultimately selling BTC).  When in doubt, rewrite the user sentence so the first currency is the one being bought (side = \"buy\") or sold (side = \"sell\")."},"amount":{"type":"number","description":"Amount is the FINAL trade size to transact; do NOT scale, prorate, or recalc it by price. User always provides the final size. You must pass it as-is using the correct \"amountCurrency\" value. amountCurrency: • BASE — the first currency of the market symbol (e.g., BTC in BTC/USDT). If the user gives a BASE amount, use it directly as the trade size in BASE. • QUOTE — the second currency of the market symbol (e.g., USDT in BTC/USDT). If the user gives a QUOTE amount, use it directly as the trade size in QUOTE notional. For QUOTE, USD / $ / USDT / USDC are treated the same (USD = USDT/USDC). Do NOT convert between BASE and QUOTE.The amount for this order (trailing stop order) is always specified in the base currency."},"amountCurrency":{"type":"string","enum":["BASE","QUOTE"],"description":"Specifies whether the amount is denominated in base currency or quote currency"},"trailingAmount":{"description":"Amount change in price required to trigger order entry. Must only specify either trailingAmount or trailingDelta.","type":"number"},"trailingDelta":{"description":"Percentage change in price required to trigger order entry, expressed in BIPS (100 BIPS = 1%). Must be between 10 and 3000. Must only specify either trailingAmount or trailingDelta.","type":"number"},"trailingLimitAmount":{"description":"Fixed price distance(offset) from the market price at which the order will be triggered. Can be positive or negative. Negative only if the user specifies a \"-\" in front of the amount.","type":"number"},"trailingLimitPercent":{"description":"Percentage distance(offset) from the market price at which the order will be triggered. Expressed in BIPS (100 BIPS = 1%). Must be between 10 and 3000. Can be positive or negative. Negative only if the user specifies a \"-\" in front of the amount.","type":"number"}},"required":["market","side","amount","amountCurrency"],"additionalProperties":false},"outputSchema":{"type":"object","anyOf":[{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"note":{"description":"Human-readable summary of the action","type":"string"},"cexApiRequestActions":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"The URL of the CEX API request"},"method":{"type":"string","enum":["POST","GET","PUT","DELETE"],"description":"HTTP method"},"headers":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"},"description":"Request headers"},"body":{"description":"Request body as JSON string","type":"string"},"toSign":{"type":"string","description":"Raw bytes (hex) to sign/HMAC for auth header"}},"required":["url","method","headers","toSign"],"additionalProperties":false},"description":"Unsigned API requests to sign and send sequentially"}},"required":["project","operation","cexApiRequestActions"],"additionalProperties":false},{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"error":{"type":"string","description":"Error message"}},"required":["project","operation","error"],"additionalProperties":false}]}},{"name":"editOrderSpot","description":"Edit an existing spot order by modifying its parameters. Note: This operation cancels the original order and creates a new one, resulting in a new order ID.","inputSchema":{"type":"object","properties":{"id":{"type":"string","description":"The ID of the order to edit"},"market":{"type":"string","description":"Symbol of the market to trade, e.g. \"BTC/USDT\".  The FIRST (base) currency is the asset you are actually buying (side = \"buy\") or selling (side = \"sell\").  For a request like \"sell USDT for BTC\" you must use market \"BTC/USDT\" with side = \"buy\"."},"side":{"type":"string","enum":["buy","sell"],"description":"Side of the order, either \"buy\" or \"sell\".  Buy and sell are ALWAYS relative to the FIRST (base) currency in the market symbol.  Examples to avoid confusion (especially when the user speaks in terms of the quote currency): • Market \"BTC/USDT\":     – side = \"buy\" → you are BUYING BTC and paying with USDT.     – side = \"sell\" → you are SELLING BTC and receiving USDT.     – Natural-language request: \"Sell all my USDT for BTC\" → side = \"buy\" on market \"BTC/USDT\" (because you are ultimately buying BTC).     – Natural-language request: \"Buy USDT with BTC\" → side = \"sell\" on market \"BTC/USDT\" (because you are ultimately selling BTC).  When in doubt, rewrite the user sentence so the first currency is the one being bought (side = \"buy\") or sold (side = \"sell\")."},"amount":{"type":"number","description":"Amount of base currency that specified by user or must be specified by getting the order info."},"limitPrice":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Price at which the order will be executed. Include only if explicitly specified by the user. Set to null for a market order."}},"required":["id","market","side","amount","limitPrice"],"additionalProperties":false},"outputSchema":{"type":"object","anyOf":[{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"note":{"description":"Human-readable summary of the action","type":"string"},"cexApiRequestActions":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"The URL of the CEX API request"},"method":{"type":"string","enum":["POST","GET","PUT","DELETE"],"description":"HTTP method"},"headers":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"},"description":"Request headers"},"body":{"description":"Request body as JSON string","type":"string"},"toSign":{"type":"string","description":"Raw bytes (hex) to sign/HMAC for auth header"}},"required":["url","method","headers","toSign"],"additionalProperties":false},"description":"Unsigned API requests to sign and send sequentially"}},"required":["project","operation","cexApiRequestActions"],"additionalProperties":false},{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"error":{"type":"string","description":"Error message"}},"required":["project","operation","error"],"additionalProperties":false}]}},{"name":"editTakeProfitStopLossOrder","description":"Edit an existing take profit/stop loss order for spot trading. Note: This operation cancels the original order and creates a new one, resulting in a new order ID.","inputSchema":{"type":"object","properties":{"id":{"type":"string","description":"The ID of the order to edit"},"market":{"type":"string","description":"Symbol of the market to trade, e.g. \"BTC/USDT\".  The FIRST (base) currency is the asset you are actually buying (side = \"buy\") or selling (side = \"sell\").  For a request like \"sell USDT for BTC\" you must use market \"BTC/USDT\" with side = \"buy\"."},"side":{"type":"string","enum":["buy","sell"],"description":"Side of the order, either \"buy\" or \"sell\".  Buy and sell are ALWAYS relative to the FIRST (base) currency in the market symbol.  Examples to avoid confusion (especially when the user speaks in terms of the quote currency): • Market \"BTC/USDT\":     – side = \"buy\" → you are BUYING BTC and paying with USDT.     – side = \"sell\" → you are SELLING BTC and receiving USDT.     – Natural-language request: \"Sell all my USDT for BTC\" → side = \"buy\" on market \"BTC/USDT\" (because you are ultimately buying BTC).     – Natural-language request: \"Buy USDT with BTC\" → side = \"sell\" on market \"BTC/USDT\" (because you are ultimately selling BTC).  When in doubt, rewrite the user sentence so the first currency is the one being bought (side = \"buy\") or sold (side = \"sell\")."},"amount":{"type":"number","description":"Amount of base currency that specified by user or must be specified by getting the order info."},"takeProfitTriggerPrice":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Price at which the take profit order will be activated. For sell orders, must be higher than stop loss trigger price. For buy orders, must be lower than stop loss trigger price. Set to null if the take profit order should not be created."},"takeProfitLimitPrice":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Price at which the take profit order will be executed. Set to null for a market order."},"stopLossTriggerPrice":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Price at which the stop loss order will be activated. Set to null if the stop loss order should not be created."},"stopLossLimitPrice":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Price at which the stop loss order will be executed. Set to null for a market order."}},"required":["id","market","side","amount","takeProfitTriggerPrice","takeProfitLimitPrice","stopLossTriggerPrice","stopLossLimitPrice"],"additionalProperties":false},"outputSchema":{"type":"object","anyOf":[{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"note":{"description":"Human-readable summary of the action","type":"string"},"cexApiRequestActions":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"The URL of the CEX API request"},"method":{"type":"string","enum":["POST","GET","PUT","DELETE"],"description":"HTTP method"},"headers":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"},"description":"Request headers"},"body":{"description":"Request body as JSON string","type":"string"},"toSign":{"type":"string","description":"Raw bytes (hex) to sign/HMAC for auth header"}},"required":["url","method","headers","toSign"],"additionalProperties":false},"description":"Unsigned API requests to sign and send sequentially"}},"required":["project","operation","cexApiRequestActions"],"additionalProperties":false},{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"error":{"type":"string","description":"Error message"}},"required":["project","operation","error"],"additionalProperties":false}]}},{"name":"editTrailingStopOrder","description":"Edit an existing trailing stop order for spot trading. Must specify either trailingAmount or trailingDelta. Note: This operation cancels the original order and creates a new one, resulting in a new order ID.","inputSchema":{"type":"object","properties":{"id":{"type":"string","description":"The ID of the order to edit"},"market":{"type":"string","description":"Symbol of the market to trade, e.g. \"BTC/USDT\".  The FIRST (base) currency is the asset you are actually buying (side = \"buy\") or selling (side = \"sell\").  For a request like \"sell USDT for BTC\" you must use market \"BTC/USDT\" with side = \"buy\"."},"side":{"type":"string","enum":["buy","sell"],"description":"Side of the order, either \"buy\" or \"sell\".  Buy and sell are ALWAYS relative to the FIRST (base) currency in the market symbol.  Examples to avoid confusion (especially when the user speaks in terms of the quote currency): • Market \"BTC/USDT\":     – side = \"buy\" → you are BUYING BTC and paying with USDT.     – side = \"sell\" → you are SELLING BTC and receiving USDT.     – Natural-language request: \"Sell all my USDT for BTC\" → side = \"buy\" on market \"BTC/USDT\" (because you are ultimately buying BTC).     – Natural-language request: \"Buy USDT with BTC\" → side = \"sell\" on market \"BTC/USDT\" (because you are ultimately selling BTC).  When in doubt, rewrite the user sentence so the first currency is the one being bought (side = \"buy\") or sold (side = \"sell\")."},"amount":{"type":"number","description":"New amount of base currency that specified by user."},"trailingAmount":{"description":"Amount change in price required to trigger order entry. Must only specify either trailingAmount or trailingDelta.","type":"number"},"trailingDelta":{"description":"Percentage change in price required to trigger order entry, expressed in BIPS (100 BIPS = 1%). Must be between 10 and 3000. Must only specify either trailingAmount or trailingDelta.","type":"number"},"trailingLimitAmount":{"description":"Fixed price distance(offset) from the market price at which the order will be triggered. Can be positive or negative. Negative only if the user specifies a \"-\" in front of the amount.","type":"number"},"trailingLimitPercent":{"description":"Percentage distance(offset) from the market price at which the order will be triggered. Expressed in BIPS (100 BIPS = 1%). Must be between 10 and 3000. Can be positive or negative. Negative only if the user specifies a \"-\" in front of the amount.","type":"number"}},"required":["id","market","side","amount"],"additionalProperties":false},"outputSchema":{"type":"object","anyOf":[{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"note":{"description":"Human-readable summary of the action","type":"string"},"cexApiRequestActions":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"The URL of the CEX API request"},"method":{"type":"string","enum":["POST","GET","PUT","DELETE"],"description":"HTTP method"},"headers":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"},"description":"Request headers"},"body":{"description":"Request body as JSON string","type":"string"},"toSign":{"type":"string","description":"Raw bytes (hex) to sign/HMAC for auth header"}},"required":["url","method","headers","toSign"],"additionalProperties":false},"description":"Unsigned API requests to sign and send sequentially"}},"required":["project","operation","cexApiRequestActions"],"additionalProperties":false},{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"error":{"type":"string","description":"Error message"}},"required":["project","operation","error"],"additionalProperties":false}]}},{"name":"cancelOrderByIdAndMarket","description":"Cancel a specific order by ID and market symbol.  If you only have the order ID, use getOpenOrders to get the market symbol.","inputSchema":{"type":"object","properties":{"id":{"type":"string","description":"Order ID to cancel"},"market":{"description":"Symbol of the market the order belongs to, e.g. \"BTC/USDT\".","type":"string"}},"required":["id"],"additionalProperties":false},"outputSchema":{"type":"object","anyOf":[{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"note":{"description":"Human-readable summary of the action","type":"string"},"cexApiRequestActions":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"The URL of the CEX API request"},"method":{"type":"string","enum":["POST","GET","PUT","DELETE"],"description":"HTTP method"},"headers":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"},"description":"Request headers"},"body":{"description":"Request body as JSON string","type":"string"},"toSign":{"type":"string","description":"Raw bytes (hex) to sign/HMAC for auth header"}},"required":["url","method","headers","toSign"],"additionalProperties":false},"description":"Unsigned API requests to sign and send sequentially"}},"required":["project","operation","cexApiRequestActions"],"additionalProperties":false},{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"error":{"type":"string","description":"Error message"}},"required":["project","operation","error"],"additionalProperties":false}]}},{"name":"cancelAllOrders","description":"Cancel all open spot orders on Kraken","inputSchema":{"type":"object","properties":{},"additionalProperties":false},"outputSchema":{"type":"object","anyOf":[{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"note":{"description":"Human-readable summary of the action","type":"string"},"cexApiRequestActions":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"The URL of the CEX API request"},"method":{"type":"string","enum":["POST","GET","PUT","DELETE"],"description":"HTTP method"},"headers":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"},"description":"Request headers"},"body":{"description":"Request body as JSON string","type":"string"},"toSign":{"type":"string","description":"Raw bytes (hex) to sign/HMAC for auth header"}},"required":["url","method","headers","toSign"],"additionalProperties":false},"description":"Unsigned API requests to sign and send sequentially"}},"required":["project","operation","cexApiRequestActions"],"additionalProperties":false},{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"error":{"type":"string","description":"Error message"}},"required":["project","operation","error"],"additionalProperties":false}]}},{"name":"transferFunds","description":"Transfer funds between accounts of the same user, e.g. from spot to future account","inputSchema":{"type":"object","properties":{"currency":{"type":"string","description":"Currency to transfer, e.g. \"USDT\""},"amount":{"type":"number","description":"Amount to transfer (must be greater than 0)"},"from":{"description":"Account to transfer from. e.g. \"spot\" or \"future\". If not specified, defaults to the opposite of \"to\".","type":"string","enum":["spot","future"]},"to":{"type":"string","enum":["spot","future"],"description":"Account to transfer to. e.g. \"spot\" or \"future\""}},"required":["currency","amount","to"],"additionalProperties":false},"outputSchema":{"type":"object","anyOf":[{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"note":{"description":"Human-readable summary of the action","type":"string"},"cexApiRequestActions":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"The URL of the CEX API request"},"method":{"type":"string","enum":["POST","GET","PUT","DELETE"],"description":"HTTP method"},"headers":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"},"description":"Request headers"},"body":{"description":"Request body as JSON string","type":"string"},"toSign":{"type":"string","description":"Raw bytes (hex) to sign/HMAC for auth header"}},"required":["url","method","headers","toSign"],"additionalProperties":false},"description":"Unsigned API requests to sign and send sequentially"}},"required":["project","operation","cexApiRequestActions"],"additionalProperties":false},{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"error":{"type":"string","description":"Error message"}},"required":["project","operation","error"],"additionalProperties":false}]}},{"name":"getOpenOrders","description":"Show the most recent 25 open orders","inputSchema":{"type":"object","properties":{},"additionalProperties":false},"outputSchema":{"type":"object","anyOf":[{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"note":{"description":"Human-readable summary of the action","type":"string"},"cexApiRequestActions":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"The URL of the CEX API request"},"method":{"type":"string","enum":["POST","GET","PUT","DELETE"],"description":"HTTP method"},"headers":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"},"description":"Request headers"},"body":{"description":"Request body as JSON string","type":"string"},"toSign":{"type":"string","description":"Raw bytes (hex) to sign/HMAC for auth header"}},"required":["url","method","headers","toSign"],"additionalProperties":false},"description":"Unsigned API requests to sign and send sequentially"}},"required":["project","operation","cexApiRequestActions"],"additionalProperties":false},{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"error":{"type":"string","description":"Error message"}},"required":["project","operation","error"],"additionalProperties":false}]}},{"name":"getOrdersById","description":"Get information about multiple orders by their IDs and market symbols","inputSchema":{"type":"object","properties":{"orderIdsWithMarket":{"type":"array","items":{"type":"object","properties":{"orderId":{"type":"string","description":"Order ID to get information for"},"market":{"description":"Optional symbol of the market the order belongs to, e.g. \"BTC/USDT\"","type":"string"}},"required":["orderId"],"additionalProperties":false},"description":"Array of orders with their respective market information."}},"required":["orderIdsWithMarket"],"additionalProperties":false},"outputSchema":{"type":"object","anyOf":[{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"note":{"description":"Human-readable summary of the action","type":"string"},"cexApiRequestActions":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"The URL of the CEX API request"},"method":{"type":"string","enum":["POST","GET","PUT","DELETE"],"description":"HTTP method"},"headers":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"},"description":"Request headers"},"body":{"description":"Request body as JSON string","type":"string"},"toSign":{"type":"string","description":"Raw bytes (hex) to sign/HMAC for auth header"}},"required":["url","method","headers","toSign"],"additionalProperties":false},"description":"Unsigned API requests to sign and send sequentially"}},"required":["project","operation","cexApiRequestActions"],"additionalProperties":false},{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"error":{"type":"string","description":"Error message"}},"required":["project","operation","error"],"additionalProperties":false}]}},{"name":"getBalances","description":"Get user balances for spot and futures for multiple currencies. For each currency, also show how much is available to trade (free).","inputSchema":{"type":"object","properties":{"currencies":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"Array of currency codes to get balances for, e.g. [\"BTC\", \"ETH\"]. Set to null to get all currencies."}},"required":["currencies"],"additionalProperties":false},"outputSchema":{"type":"object","anyOf":[{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"note":{"description":"Human-readable summary of the action","type":"string"},"cexApiRequestActions":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"The URL of the CEX API request"},"method":{"type":"string","enum":["POST","GET","PUT","DELETE"],"description":"HTTP method"},"headers":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"},"description":"Request headers"},"body":{"description":"Request body as JSON string","type":"string"},"toSign":{"type":"string","description":"Raw bytes (hex) to sign/HMAC for auth header"}},"required":["url","method","headers","toSign"],"additionalProperties":false},"description":"Unsigned API requests to sign and send sequentially"}},"required":["project","operation","cexApiRequestActions"],"additionalProperties":false},{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"error":{"type":"string","description":"Error message"}},"required":["project","operation","error"],"additionalProperties":false}]}},{"name":"getCurrencyMarkets","description":"Get a list of all active markets (also called trading pairs) that include the given currencies or tokens.  Returns a list of market symbols. Show to user only first 10 markets and more only if user asks for it.","inputSchema":{"type":"object","properties":{"currencies":{"type":"array","items":{"type":"string"},"description":"Array of currencies to get markets for, e.g. [\"BTC\", \"ETH\"]"}},"required":["currencies"],"additionalProperties":false},"outputSchema":{"type":"object","anyOf":[{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"note":{"description":"Human-readable summary of the action","type":"string"},"data":{"type":"array","items":{"type":"object","properties":{"currency":{"type":"string"},"markets":{"type":"array","items":{"type":"string"}}},"required":["currency","markets"],"additionalProperties":false}}},"required":["project","operation","data"],"additionalProperties":false},{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"error":{"type":"string","description":"Error message"}},"required":["project","operation","error"],"additionalProperties":false}]}},{"name":"getMarketsInfo","description":"Get price and volume information about multiple markets (also called trading pairs).  Prices are in quote currency.  Always use this function to get up-to-date prices.","inputSchema":{"type":"object","properties":{"markets":{"type":"array","items":{"type":"string"},"description":"Array of market symbols to get information for, for example [\"BTC/USDT\", \"ETH/USDT\"]"}},"required":["markets"],"additionalProperties":false},"outputSchema":{"type":"object","anyOf":[{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"note":{"description":"Human-readable summary of the action","type":"string"},"data":{"type":"array","items":{"type":"object","properties":{"market":{"type":"string"},"marketInfo":{},"ticker":{}},"required":["market","marketInfo","ticker"],"additionalProperties":false}}},"required":["project","operation","data"],"additionalProperties":false},{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"error":{"type":"string","description":"Error message"}},"required":["project","operation","error"],"additionalProperties":false}]}},{"name":"getOrderBook","description":"Get the order book (bids and asks) for multiple spot markets. Shows current buy and sell orders with prices and amounts.","inputSchema":{"type":"object","properties":{"marketsWithLimit":{"type":"array","items":{"type":"object","properties":{"market":{"type":"string","description":"Symbol of the spot market to get order book for, e.g. \"BTC/USDT\""},"limit":{"description":"Optional limit on number of bids/asks to return. Default is 10.","type":"number"}},"required":["market"],"additionalProperties":false},"description":"Array of markets with their respective limits to get order books for."}},"required":["marketsWithLimit"],"additionalProperties":false},"outputSchema":{"type":"object","anyOf":[{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"note":{"description":"Human-readable summary of the action","type":"string"},"data":{"type":"array","items":{"type":"object","properties":{"market":{"type":"string"},"limit":{"type":"number"},"orderBook":{}},"required":["market","limit","orderBook"],"additionalProperties":false}}},"required":["project","operation","data"],"additionalProperties":false},{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"error":{"type":"string","description":"Error message"}},"required":["project","operation","error"],"additionalProperties":false}]}},{"name":"getTrades","description":"Get the user's trade history for multiple spot markets. Shows executed trades with prices, amounts, fees, and timestamps.","inputSchema":{"type":"object","properties":{"marketsWithLimitAndSince":{"type":"array","items":{"type":"object","properties":{"market":{"type":"string","description":"Market symbol to get trades for, e.g. \"BTC/USDT\""},"limit":{"description":"Optional limit on number of trades to return. Default is 50.","type":"number"},"since":{"description":"Optional timestamp (in milliseconds) to get trades from. If not specified, returns recent trades.","type":"number"}},"required":["market"],"additionalProperties":false},"description":"Array of markets with their respective limits and since parameters to get trades for."}},"required":["marketsWithLimitAndSince"],"additionalProperties":false},"outputSchema":{"type":"object","anyOf":[{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"note":{"description":"Human-readable summary of the action","type":"string"},"cexApiRequestActions":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"The URL of the CEX API request"},"method":{"type":"string","enum":["POST","GET","PUT","DELETE"],"description":"HTTP method"},"headers":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"},"description":"Request headers"},"body":{"description":"Request body as JSON string","type":"string"},"toSign":{"type":"string","description":"Raw bytes (hex) to sign/HMAC for auth header"}},"required":["url","method","headers","toSign"],"additionalProperties":false},"description":"Unsigned API requests to sign and send sequentially"}},"required":["project","operation","cexApiRequestActions"],"additionalProperties":false},{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"error":{"type":"string","description":"Error message"}},"required":["project","operation","error"],"additionalProperties":false}]}},{"name":"getTradingFees","description":"Get trading fees on Kraken. Shows maker/taker fees and fee tiers.","inputSchema":{"type":"object","properties":{},"additionalProperties":false},"outputSchema":{"type":"object","anyOf":[{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"note":{"description":"Human-readable summary of the action","type":"string"},"cexApiRequestActions":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"The URL of the CEX API request"},"method":{"type":"string","enum":["POST","GET","PUT","DELETE"],"description":"HTTP method"},"headers":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"},"description":"Request headers"},"body":{"description":"Request body as JSON string","type":"string"},"toSign":{"type":"string","description":"Raw bytes (hex) to sign/HMAC for auth header"}},"required":["url","method","headers","toSign"],"additionalProperties":false},"description":"Unsigned API requests to sign and send sequentially"}},"required":["project","operation","cexApiRequestActions"],"additionalProperties":false},{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"error":{"type":"string","description":"Error message"}},"required":["project","operation","error"],"additionalProperties":false}]}},{"name":"createSimpleOrderFutures","description":"Create a futures order that is activated immediately, without a trigger attached to it. The order will execute at the current market price or a specified limit price. Do not check whether the user has sufficient funds in their account. If the user specifies a leverage NEVER multiply the amount by the leverage, the amount is already leveraged but follow this procedure: use setLeverage to set the leverage for the market and then use this function.","inputSchema":{"type":"object","properties":{"market":{"type":"string","description":"Symbol of the futures market, e.g. \"BTC/USD\""},"side":{"type":"string","enum":["long","short"],"description":"Order side: long to buy/open a long position, short to sell/open a short position."},"amount":{"type":"number","description":"Amount is the FINAL trade size after leverage (total notional to transact), not margin. Do NOT scale, prorate, or recalc it by leverage or price. User always provides the final size. You must pass it as-is using the correct \"amountCurrency\" value. amountCurrency: • BASE — the first currency of the market symbol (e.g., BTC in BTC/USDT). If the user gives a BASE amount, use it directly as the trade size in BASE. • QUOTE — the second currency of the market symbol (e.g., USDT in BTC/USDT). If the user gives a QUOTE amount, use it directly as the trade size in QUOTE notional. For QUOTE, USD / $ / USDT / USDC are treated the same (USD = USDT/USDC). Do NOT convert between BASE and QUOTE."},"amountCurrency":{"type":"string","enum":["BASE","QUOTE"],"description":"Specifies whether the amount is denominated in base currency or quote currency"},"limitPrice":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Limit price for the order. Set to null for a market order."}},"required":["market","side","amount","amountCurrency","limitPrice"],"additionalProperties":false},"outputSchema":{"type":"object","anyOf":[{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"note":{"description":"Human-readable summary of the action","type":"string"},"cexApiRequestActions":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"The URL of the CEX API request"},"method":{"type":"string","enum":["POST","GET","PUT","DELETE"],"description":"HTTP method"},"headers":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"},"description":"Request headers"},"body":{"description":"Request body as JSON string","type":"string"},"toSign":{"type":"string","description":"Raw bytes (hex) to sign/HMAC for auth header"}},"required":["url","method","headers","toSign"],"additionalProperties":false},"description":"Unsigned API requests to sign and send sequentially"}},"required":["project","operation","cexApiRequestActions"],"additionalProperties":false},{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"error":{"type":"string","description":"Error message"}},"required":["project","operation","error"],"additionalProperties":false}]}},{"name":"createTriggerOrderFutures","description":"Create a futures order that is activated only after the given price condition is met. Once activated, the order will be executed at either the current market price or a specified limit price. Do not check whether the user has sufficient funds in their account.","inputSchema":{"type":"object","properties":{"market":{"type":"string","description":"Symbol of the futures market, e.g. \"BTC/USD\""},"side":{"type":"string","enum":["long","short"],"description":"Side of the order: long to buy/open a long position, short to sell/open a short position. Use \"long\" to close or reduce a short position, use \"short\" to close or reduce a long position."},"amount":{"type":"number","description":"Amount is the FINAL trade size after leverage (total notional to transact), not margin. Do NOT scale, prorate, or recalc it by leverage or price. User always provides the final size. You must pass it as-is using the correct \"amountCurrency\" value. amountCurrency: • BASE — the first currency of the market symbol (e.g., BTC in BTC/USDT). If the user gives a BASE amount, use it directly as the trade size in BASE. • QUOTE — the second currency of the market symbol (e.g., USDT in BTC/USDT). If the user gives a QUOTE amount, use it directly as the trade size in QUOTE notional. For QUOTE, USD / $ / USDT / USDC are treated the same (USD = USDT/USDC). Do NOT convert between BASE and QUOTE."},"amountCurrency":{"type":"string","enum":["BASE","QUOTE"],"description":"Specifies whether the amount is denominated in base currency or quote currency"},"limitPrice":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Price at which the order will be executed. Include only if explicitly specified by the user. Set to null for a market order."},"triggerPrice":{"type":"number","description":"Price at which the order will be activated"}},"required":["market","side","amount","amountCurrency","limitPrice","triggerPrice"],"additionalProperties":false},"outputSchema":{"type":"object","anyOf":[{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"note":{"description":"Human-readable summary of the action","type":"string"},"cexApiRequestActions":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"The URL of the CEX API request"},"method":{"type":"string","enum":["POST","GET","PUT","DELETE"],"description":"HTTP method"},"headers":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"},"description":"Request headers"},"body":{"description":"Request body as JSON string","type":"string"},"toSign":{"type":"string","description":"Raw bytes (hex) to sign/HMAC for auth header"}},"required":["url","method","headers","toSign"],"additionalProperties":false},"description":"Unsigned API requests to sign and send sequentially"}},"required":["project","operation","cexApiRequestActions"],"additionalProperties":false},{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"error":{"type":"string","description":"Error message"}},"required":["project","operation","error"],"additionalProperties":false}]}},{"name":"createTakeProfitStopLossOrderFutures","description":"Create take profit and/or stop loss orders for futures positions. If both are provided, they will be created as separate orders. If user want to set order for a long position, use \"short\" to close or reduce a long position and vice versa. Do not check whether the user has sufficient funds in their account.","inputSchema":{"type":"object","properties":{"market":{"type":"string","description":"Symbol of the futures market, e.g. \"BTC/USD\""},"side":{"type":"string","enum":["long","short"],"description":"Side of the order to open. You have to know the side of the position to create a trigger order for it. Always use ONLY \"long\" for short positions and ONLY \"short\" for long positions."},"amount":{"type":"number","description":"Amount is the FINAL trade size after leverage (total notional to transact), not margin. Do NOT scale, prorate, or recalc it by leverage or price. User always provides the final size. You must pass it as-is using the correct \"amountCurrency\" value. amountCurrency: • BASE — the first currency of the market symbol (e.g., BTC in BTC/USDT). If the user gives a BASE amount, use it directly as the trade size in BASE. • QUOTE — the second currency of the market symbol (e.g., USDT in BTC/USDT). If the user gives a QUOTE amount, use it directly as the trade size in QUOTE notional. For QUOTE, USD / $ / USDT / USDC are treated the same (USD = USDT/USDC). Do NOT convert between BASE and QUOTE."},"amountCurrency":{"type":"string","enum":["BASE","QUOTE"],"description":"Specifies whether the amount is denominated in base currency or quote currency"},"takeProfitTriggerPrice":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Price at which the take profit order will be activated. For long positions, must be higher than stop loss trigger price. For short positions, must be lower than stop loss trigger price. Set to null if the take profit order should not be created."},"takeProfitLimitPrice":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Price at which the take profit order will be executed. Set to null for a market order."},"stopLossTriggerPrice":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Price at which the stop loss order will be activated. Set to null if the stop loss order should not be created."},"stopLossLimitPrice":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Price at which the stop loss order will be executed. Set to null for a market order."}},"required":["market","side","amount","amountCurrency","takeProfitTriggerPrice","takeProfitLimitPrice","stopLossTriggerPrice","stopLossLimitPrice"],"additionalProperties":false},"outputSchema":{"type":"object","anyOf":[{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"note":{"description":"Human-readable summary of the action","type":"string"},"cexApiRequestActions":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"The URL of the CEX API request"},"method":{"type":"string","enum":["POST","GET","PUT","DELETE"],"description":"HTTP method"},"headers":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"},"description":"Request headers"},"body":{"description":"Request body as JSON string","type":"string"},"toSign":{"type":"string","description":"Raw bytes (hex) to sign/HMAC for auth header"}},"required":["url","method","headers","toSign"],"additionalProperties":false},"description":"Unsigned API requests to sign and send sequentially"}},"required":["project","operation","cexApiRequestActions"],"additionalProperties":false},{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"error":{"type":"string","description":"Error message"}},"required":["project","operation","error"],"additionalProperties":false}]}},{"name":"editOrderFutures","description":"Edit an existing futures order by modifying its parameters. Note: This operation cancels the original order and creates a new one, resulting in a new order ID.","inputSchema":{"type":"object","properties":{"id":{"type":"string","description":"The ID of the order to edit"},"market":{"type":"string","description":"Symbol of the futures market, e.g. \"BTC/USD\""},"side":{"type":"string","enum":["long","short"],"description":"Side of the order: long to buy/open a long position, short to sell/open a short position."},"amount":{"type":"number","description":"Amount of base currency that specified by user or must be specified by getting the order info."},"limitPrice":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Price at which the order will be executed. Include only if explicitly specified by the user. Set to null for a market order."}},"required":["id","market","side","amount","limitPrice"],"additionalProperties":false},"outputSchema":{"type":"object","anyOf":[{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"note":{"description":"Human-readable summary of the action","type":"string"},"cexApiRequestActions":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"The URL of the CEX API request"},"method":{"type":"string","enum":["POST","GET","PUT","DELETE"],"description":"HTTP method"},"headers":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"},"description":"Request headers"},"body":{"description":"Request body as JSON string","type":"string"},"toSign":{"type":"string","description":"Raw bytes (hex) to sign/HMAC for auth header"}},"required":["url","method","headers","toSign"],"additionalProperties":false},"description":"Unsigned API requests to sign and send sequentially"}},"required":["project","operation","cexApiRequestActions"],"additionalProperties":false},{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"error":{"type":"string","description":"Error message"}},"required":["project","operation","error"],"additionalProperties":false}]}},{"name":"closePosition","description":"Close an open futures position on a specific market. Requires the current position side and amount so the close order can be built without account prechecks.","inputSchema":{"type":"object","properties":{"market":{"type":"string","description":"Symbol of the futures market, e.g. \"BTC/USD\""},"side":{"type":"string","enum":["long","short"],"description":"Current side of the position being closed. Use \"long\" to close a long position and \"short\" to close a short position."},"amount":{"type":"number","description":"Amount of base currency to close."}},"required":["market","side","amount"],"additionalProperties":false},"outputSchema":{"type":"object","anyOf":[{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"note":{"description":"Human-readable summary of the action","type":"string"},"cexApiRequestActions":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"The URL of the CEX API request"},"method":{"type":"string","enum":["POST","GET","PUT","DELETE"],"description":"HTTP method"},"headers":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"},"description":"Request headers"},"body":{"description":"Request body as JSON string","type":"string"},"toSign":{"type":"string","description":"Raw bytes (hex) to sign/HMAC for auth header"}},"required":["url","method","headers","toSign"],"additionalProperties":false},"description":"Unsigned API requests to sign and send sequentially"}},"required":["project","operation","cexApiRequestActions"],"additionalProperties":false},{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"error":{"type":"string","description":"Error message"}},"required":["project","operation","error"],"additionalProperties":false}]}},{"name":"setLeverage","description":"Set the leverage for a specific futures market.","inputSchema":{"type":"object","properties":{"market":{"type":"string","description":"Symbol of the futures market, e.g. \"BTC/USD\""},"leverage":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Leverage to set (e.g., 5 for 5x leverage). Set to null to reset to default leverage and default margin mode (cross)."}},"required":["market","leverage"],"additionalProperties":false},"outputSchema":{"type":"object","anyOf":[{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"note":{"description":"Human-readable summary of the action","type":"string"},"cexApiRequestActions":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"The URL of the CEX API request"},"method":{"type":"string","enum":["POST","GET","PUT","DELETE"],"description":"HTTP method"},"headers":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"},"description":"Request headers"},"body":{"description":"Request body as JSON string","type":"string"},"toSign":{"type":"string","description":"Raw bytes (hex) to sign/HMAC for auth header"}},"required":["url","method","headers","toSign"],"additionalProperties":false},"description":"Unsigned API requests to sign and send sequentially"}},"required":["project","operation","cexApiRequestActions"],"additionalProperties":false},{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"error":{"type":"string","description":"Error message"}},"required":["project","operation","error"],"additionalProperties":false}]}},{"name":"cancelAllOrdersFutures","description":"Cancel all open Kraken futures orders.","inputSchema":{"type":"object","properties":{},"additionalProperties":false},"outputSchema":{"type":"object","anyOf":[{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"note":{"description":"Human-readable summary of the action","type":"string"},"cexApiRequestActions":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"The URL of the CEX API request"},"method":{"type":"string","enum":["POST","GET","PUT","DELETE"],"description":"HTTP method"},"headers":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"},"description":"Request headers"},"body":{"description":"Request body as JSON string","type":"string"},"toSign":{"type":"string","description":"Raw bytes (hex) to sign/HMAC for auth header"}},"required":["url","method","headers","toSign"],"additionalProperties":false},"description":"Unsigned API requests to sign and send sequentially"}},"required":["project","operation","cexApiRequestActions"],"additionalProperties":false},{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"error":{"type":"string","description":"Error message"}},"required":["project","operation","error"],"additionalProperties":false}]}},{"name":"cancelOrderByIdAndMarketFutures","description":"Cancel a specific futures order by ID and market symbol.","inputSchema":{"type":"object","properties":{"id":{"type":"string","description":"Order ID to cancel."},"market":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Symbol of the futures market the order belongs to, e.g. \"BTC/USD\". Set to null if unknown."}},"required":["id","market"],"additionalProperties":false},"outputSchema":{"type":"object","anyOf":[{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"note":{"description":"Human-readable summary of the action","type":"string"},"cexApiRequestActions":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"The URL of the CEX API request"},"method":{"type":"string","enum":["POST","GET","PUT","DELETE"],"description":"HTTP method"},"headers":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"},"description":"Request headers"},"body":{"description":"Request body as JSON string","type":"string"},"toSign":{"type":"string","description":"Raw bytes (hex) to sign/HMAC for auth header"}},"required":["url","method","headers","toSign"],"additionalProperties":false},"description":"Unsigned API requests to sign and send sequentially"}},"required":["project","operation","cexApiRequestActions"],"additionalProperties":false},{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"error":{"type":"string","description":"Error message"}},"required":["project","operation","error"],"additionalProperties":false}]}},{"name":"getPositions","description":"Get all open futures positions for the user.","inputSchema":{"type":"object","properties":{},"additionalProperties":false},"outputSchema":{"type":"object","anyOf":[{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"note":{"description":"Human-readable summary of the action","type":"string"},"cexApiRequestActions":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"The URL of the CEX API request"},"method":{"type":"string","enum":["POST","GET","PUT","DELETE"],"description":"HTTP method"},"headers":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"},"description":"Request headers"},"body":{"description":"Request body as JSON string","type":"string"},"toSign":{"type":"string","description":"Raw bytes (hex) to sign/HMAC for auth header"}},"required":["url","method","headers","toSign"],"additionalProperties":false},"description":"Unsigned API requests to sign and send sequentially"}},"required":["project","operation","cexApiRequestActions"],"additionalProperties":false},{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"error":{"type":"string","description":"Error message"}},"required":["project","operation","error"],"additionalProperties":false}]}},{"name":"getPositionOnMarkets","description":"Get the open futures positions for multiple markets.","inputSchema":{"type":"object","properties":{"markets":{"type":"array","items":{"type":"string"},"description":"Array of futures market symbols, e.g. [\"BTC/USD\", \"ETH/USD\"]"}},"required":["markets"],"additionalProperties":false},"outputSchema":{"type":"object","anyOf":[{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"note":{"description":"Human-readable summary of the action","type":"string"},"cexApiRequestActions":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"The URL of the CEX API request"},"method":{"type":"string","enum":["POST","GET","PUT","DELETE"],"description":"HTTP method"},"headers":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"},"description":"Request headers"},"body":{"description":"Request body as JSON string","type":"string"},"toSign":{"type":"string","description":"Raw bytes (hex) to sign/HMAC for auth header"}},"required":["url","method","headers","toSign"],"additionalProperties":false},"description":"Unsigned API requests to sign and send sequentially"}},"required":["project","operation","cexApiRequestActions"],"additionalProperties":false},{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"error":{"type":"string","description":"Error message"}},"required":["project","operation","error"],"additionalProperties":false}]}},{"name":"getOpenOrdersFutures","description":"Get all open futures orders for the user.","inputSchema":{"type":"object","properties":{},"additionalProperties":false},"outputSchema":{"type":"object","anyOf":[{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"note":{"description":"Human-readable summary of the action","type":"string"},"cexApiRequestActions":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"The URL of the CEX API request"},"method":{"type":"string","enum":["POST","GET","PUT","DELETE"],"description":"HTTP method"},"headers":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"},"description":"Request headers"},"body":{"description":"Request body as JSON string","type":"string"},"toSign":{"type":"string","description":"Raw bytes (hex) to sign/HMAC for auth header"}},"required":["url","method","headers","toSign"],"additionalProperties":false},"description":"Unsigned API requests to sign and send sequentially"}},"required":["project","operation","cexApiRequestActions"],"additionalProperties":false},{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"error":{"type":"string","description":"Error message"}},"required":["project","operation","error"],"additionalProperties":false}]}},{"name":"getOrdersByIdFutures","description":"Get information about multiple futures orders by their IDs.","inputSchema":{"type":"object","properties":{"orderIds":{"type":"array","items":{"type":"string"},"description":"Array of order IDs to get information for."}},"required":["orderIds"],"additionalProperties":false},"outputSchema":{"type":"object","anyOf":[{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"note":{"description":"Human-readable summary of the action","type":"string"},"cexApiRequestActions":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"The URL of the CEX API request"},"method":{"type":"string","enum":["POST","GET","PUT","DELETE"],"description":"HTTP method"},"headers":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"},"description":"Request headers"},"body":{"description":"Request body as JSON string","type":"string"},"toSign":{"type":"string","description":"Raw bytes (hex) to sign/HMAC for auth header"}},"required":["url","method","headers","toSign"],"additionalProperties":false},"description":"Unsigned API requests to sign and send sequentially"}},"required":["project","operation","cexApiRequestActions"],"additionalProperties":false},{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"error":{"type":"string","description":"Error message"}},"required":["project","operation","error"],"additionalProperties":false}]}},{"name":"getMarketsInfoFutures","description":"Get price and volume information about multiple futures markets (trading pairs). Prices are in quote currency.","inputSchema":{"type":"object","properties":{"markets":{"type":"array","items":{"type":"string"},"description":"Array of futures market symbols to get information for, e.g. [\"BTC/USD\", \"ETH/USD\"]"}},"required":["markets"],"additionalProperties":false},"outputSchema":{"type":"object","anyOf":[{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"note":{"description":"Human-readable summary of the action","type":"string"},"data":{"type":"array","items":{"type":"object","properties":{"market":{"type":"string"},"marketInfo":{},"ticker":{},"leverageTiers":{}},"required":["market","marketInfo","ticker","leverageTiers"],"additionalProperties":false}}},"required":["project","operation","data"],"additionalProperties":false},{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"error":{"type":"string","description":"Error message"}},"required":["project","operation","error"],"additionalProperties":false}]}},{"name":"getOrderBookFutures","description":"Get the order book (bids and asks) for multiple futures markets. Shows current buy and sell orders with prices and amounts.","inputSchema":{"type":"object","properties":{"marketsWithLimit":{"type":"array","items":{"type":"object","properties":{"market":{"type":"string","description":"Symbol of the futures market to get order book for, e.g. \"BTC/USD\""},"limit":{"description":"Optional limit on number of bids/asks to return. Default is 10.","type":"number"}},"required":["market"],"additionalProperties":false},"description":"Array of markets with their respective limits to get order books for."}},"required":["marketsWithLimit"],"additionalProperties":false},"outputSchema":{"type":"object","anyOf":[{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"note":{"description":"Human-readable summary of the action","type":"string"},"data":{"type":"array","items":{"type":"object","properties":{"market":{"type":"string"},"limit":{"type":"number"},"orderBook":{}},"required":["market","limit","orderBook"],"additionalProperties":false}}},"required":["project","operation","data"],"additionalProperties":false},{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"error":{"type":"string","description":"Error message"}},"required":["project","operation","error"],"additionalProperties":false}]}},{"name":"getTradesFutures","description":"Get the user's trade history for multiple futures markets. Shows executed trades with prices, amounts, fees, and timestamps.","inputSchema":{"type":"object","properties":{"marketsWithLimitAndSince":{"type":"array","items":{"type":"object","properties":{"market":{"type":"string","description":"Futures market symbol to get trades for, e.g. \"BTC/USD\""},"limit":{"description":"Optional limit on number of trades to return. Default is 50.","type":"number"},"since":{"description":"Optional timestamp (in milliseconds) to get trades from. If not specified, returns recent trades.","type":"number"}},"required":["market"],"additionalProperties":false},"description":"Array of markets with their respective limits and since parameters to get trades for."}},"required":["marketsWithLimitAndSince"],"additionalProperties":false},"outputSchema":{"type":"object","anyOf":[{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"note":{"description":"Human-readable summary of the action","type":"string"},"cexApiRequestActions":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"The URL of the CEX API request"},"method":{"type":"string","enum":["POST","GET","PUT","DELETE"],"description":"HTTP method"},"headers":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"},"description":"Request headers"},"body":{"description":"Request body as JSON string","type":"string"},"toSign":{"type":"string","description":"Raw bytes (hex) to sign/HMAC for auth header"}},"required":["url","method","headers","toSign"],"additionalProperties":false},"description":"Unsigned API requests to sign and send sequentially"}},"required":["project","operation","cexApiRequestActions"],"additionalProperties":false},{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"error":{"type":"string","description":"Error message"}},"required":["project","operation","error"],"additionalProperties":false}]}},{"name":"getUserLeverageAndMarginModeOnMarkets","description":"Get the current leverage and margin mode for the user on multiple futures markets.","inputSchema":{"type":"object","properties":{"markets":{"type":"array","items":{"type":"string"},"description":"Array of futures market symbols, e.g. [\"BTC/USD\", \"ETH/USD\"]"}},"required":["markets"],"additionalProperties":false},"outputSchema":{"type":"object","anyOf":[{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"note":{"description":"Human-readable summary of the action","type":"string"},"cexApiRequestActions":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"The URL of the CEX API request"},"method":{"type":"string","enum":["POST","GET","PUT","DELETE"],"description":"HTTP method"},"headers":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"},"description":"Request headers"},"body":{"description":"Request body as JSON string","type":"string"},"toSign":{"type":"string","description":"Raw bytes (hex) to sign/HMAC for auth header"}},"required":["url","method","headers","toSign"],"additionalProperties":false},"description":"Unsigned API requests to sign and send sequentially"}},"required":["project","operation","cexApiRequestActions"],"additionalProperties":false},{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"error":{"type":"string","description":"Error message"}},"required":["project","operation","error"],"additionalProperties":false}]}},{"name":"getAllUserLeverageAndMarginModes","description":"Get all user configured leverages and margin modes for all futures markets.","inputSchema":{"type":"object","properties":{},"additionalProperties":false},"outputSchema":{"type":"object","anyOf":[{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"note":{"description":"Human-readable summary of the action","type":"string"},"cexApiRequestActions":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"The URL of the CEX API request"},"method":{"type":"string","enum":["POST","GET","PUT","DELETE"],"description":"HTTP method"},"headers":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"},"description":"Request headers"},"body":{"description":"Request body as JSON string","type":"string"},"toSign":{"type":"string","description":"Raw bytes (hex) to sign/HMAC for auth header"}},"required":["url","method","headers","toSign"],"additionalProperties":false},"description":"Unsigned API requests to sign and send sequentially"}},"required":["project","operation","cexApiRequestActions"],"additionalProperties":false},{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"error":{"type":"string","description":"Error message"}},"required":["project","operation","error"],"additionalProperties":false}]}},{"name":"getFundingRateHistories","description":"Get historical funding rates for multiple futures markets.","inputSchema":{"type":"object","properties":{"marketsWithSince":{"type":"array","items":{"type":"object","properties":{"market":{"type":"string","description":"Symbol of the futures market, e.g. \"PF_XBTUSD\", \"PF_ETHUSD\" for Bitcoin, Ethereum, etc. perpetual futures"},"since":{"description":"Unix timestamp (in milliseconds) to fetch funding rates from. If not specified, returns recent funding rates.","type":"number"}},"required":["market"],"additionalProperties":false},"description":"Array of markets with their respective since parameters to get funding rate history for."}},"required":["marketsWithSince"],"additionalProperties":false},"outputSchema":{"type":"object","anyOf":[{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"note":{"description":"Human-readable summary of the action","type":"string"},"data":{"type":"array","items":{"type":"object","properties":{"market":{"type":"string"},"since":{"type":"number"},"fundingRates":{"type":"array","items":{}}},"required":["market","since","fundingRates"],"additionalProperties":false}}},"required":["project","operation","data"],"additionalProperties":false},{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"error":{"type":"string","description":"Error message"}},"required":["project","operation","error"],"additionalProperties":false}]}},{"name":"getDepositAddresses","description":"Get Kraken deposit addresses for explicit currency and method pairs.","inputSchema":{"type":"object","properties":{"codesAndMethods":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","description":"Currency code, e.g. \"BTC\", \"ETH\", \"USD\""},"method":{"type":"string","description":"Kraken deposit method, e.g. \"Bitcoin\", \"Ethereum\""}},"required":["code","method"],"additionalProperties":false},"description":"Array of currency/method pairs to get deposit addresses for."}},"required":["codesAndMethods"],"additionalProperties":false},"outputSchema":{"type":"object","anyOf":[{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"note":{"description":"Human-readable summary of the action","type":"string"},"cexApiRequestActions":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"The URL of the CEX API request"},"method":{"type":"string","enum":["POST","GET","PUT","DELETE"],"description":"HTTP method"},"headers":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"},"description":"Request headers"},"body":{"description":"Request body as JSON string","type":"string"},"toSign":{"type":"string","description":"Raw bytes (hex) to sign/HMAC for auth header"}},"required":["url","method","headers","toSign"],"additionalProperties":false},"description":"Unsigned API requests to sign and send sequentially"}},"required":["project","operation","cexApiRequestActions"],"additionalProperties":false},{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"error":{"type":"string","description":"Error message"}},"required":["project","operation","error"],"additionalProperties":false}]}},{"name":"getDepositMethods","description":"Get available deposit methods for multiple currencies on Kraken. Shows supported networks, fees, and limits.","inputSchema":{"type":"object","properties":{"codes":{"type":"array","items":{"type":"string"},"description":"Array of currency codes to get deposit methods for, e.g. [\"BTC\", \"ETH\", \"USD\"]"}},"required":["codes"],"additionalProperties":false},"outputSchema":{"type":"object","anyOf":[{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"note":{"description":"Human-readable summary of the action","type":"string"},"cexApiRequestActions":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"The URL of the CEX API request"},"method":{"type":"string","enum":["POST","GET","PUT","DELETE"],"description":"HTTP method"},"headers":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"},"description":"Request headers"},"body":{"description":"Request body as JSON string","type":"string"},"toSign":{"type":"string","description":"Raw bytes (hex) to sign/HMAC for auth header"}},"required":["url","method","headers","toSign"],"additionalProperties":false},"description":"Unsigned API requests to sign and send sequentially"}},"required":["project","operation","cexApiRequestActions"],"additionalProperties":false},{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"error":{"type":"string","description":"Error message"}},"required":["project","operation","error"],"additionalProperties":false}]}},{"name":"createDepositAddress","description":"Create a new deposit address for a specific currency and method on Kraken. Generates a fresh address for deposits.","inputSchema":{"type":"object","properties":{"code":{"type":"string","description":"Currency code to create deposit address for, e.g. \"BTC\", \"ETH\", \"USD\""},"method":{"type":"string","description":"Deposit method to use, e.g. \"Bitcoin\", \"Ethereum\". Use getDepositMethods first to see available methods."}},"required":["code","method"],"additionalProperties":false},"outputSchema":{"type":"object","anyOf":[{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"note":{"description":"Human-readable summary of the action","type":"string"},"cexApiRequestActions":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"The URL of the CEX API request"},"method":{"type":"string","enum":["POST","GET","PUT","DELETE"],"description":"HTTP method"},"headers":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"},"description":"Request headers"},"body":{"description":"Request body as JSON string","type":"string"},"toSign":{"type":"string","description":"Raw bytes (hex) to sign/HMAC for auth header"}},"required":["url","method","headers","toSign"],"additionalProperties":false},"description":"Unsigned API requests to sign and send sequentially"}},"required":["project","operation","cexApiRequestActions"],"additionalProperties":false},{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"error":{"type":"string","description":"Error message"}},"required":["project","operation","error"],"additionalProperties":false}]}},{"name":"getDeposits","description":"Get deposit history for Kraken for multiple currencies. Shows recent deposits with status, amounts, and transaction details.","inputSchema":{"type":"object","properties":{"codesWithLimit":{"type":"array","items":{"type":"object","properties":{"code":{"description":"Optional currency code to filter deposits, e.g. \"BTC\", \"ETH\", \"USD\". If not specified, returns deposits for all currencies.","type":"string"},"limit":{"description":"Optional limit on number of deposits to return. Default is 50.","type":"number"}},"additionalProperties":false},"description":"Array of currency codes with their respective limits to get deposit history for."}},"required":["codesWithLimit"],"additionalProperties":false},"outputSchema":{"type":"object","anyOf":[{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"note":{"description":"Human-readable summary of the action","type":"string"},"cexApiRequestActions":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"The URL of the CEX API request"},"method":{"type":"string","enum":["POST","GET","PUT","DELETE"],"description":"HTTP method"},"headers":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"},"description":"Request headers"},"body":{"description":"Request body as JSON string","type":"string"},"toSign":{"type":"string","description":"Raw bytes (hex) to sign/HMAC for auth header"}},"required":["url","method","headers","toSign"],"additionalProperties":false},"description":"Unsigned API requests to sign and send sequentially"}},"required":["project","operation","cexApiRequestActions"],"additionalProperties":false},{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"error":{"type":"string","description":"Error message"}},"required":["project","operation","error"],"additionalProperties":false}]}},{"name":"getWithdrawals","description":"Get withdrawal history for Kraken for multiple currencies. Shows recent withdrawals with status, amounts, and transaction details.","inputSchema":{"type":"object","properties":{"codesWithLimit":{"type":"array","items":{"type":"object","properties":{"code":{"description":"Optional currency code to filter withdrawals, e.g. \"BTC\", \"ETH\", \"USD\". If not specified, returns withdrawals for all currencies.","type":"string"},"limit":{"description":"Optional limit on number of withdrawals to return. Default is 50.","type":"number"}},"additionalProperties":false},"description":"Array of currency codes with their respective limits to get withdrawal history for."}},"required":["codesWithLimit"],"additionalProperties":false},"outputSchema":{"type":"object","anyOf":[{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"note":{"description":"Human-readable summary of the action","type":"string"},"cexApiRequestActions":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"The URL of the CEX API request"},"method":{"type":"string","enum":["POST","GET","PUT","DELETE"],"description":"HTTP method"},"headers":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"},"description":"Request headers"},"body":{"description":"Request body as JSON string","type":"string"},"toSign":{"type":"string","description":"Raw bytes (hex) to sign/HMAC for auth header"}},"required":["url","method","headers","toSign"],"additionalProperties":false},"description":"Unsigned API requests to sign and send sequentially"}},"required":["project","operation","cexApiRequestActions"],"additionalProperties":false},{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"error":{"type":"string","description":"Error message"}},"required":["project","operation","error"],"additionalProperties":false}]}},{"name":"withdraw","description":"Withdraw funds from Kraken to an external address. IMPORTANT: This will actually transfer funds - use with caution!","inputSchema":{"type":"object","properties":{"code":{"type":"string","description":"Currency code to withdraw, e.g. \"BTC\", \"ETH\", \"USD\""},"amount":{"type":"number","description":"Amount to withdraw (must be greater than 0)"},"address":{"type":"string","description":"Destination address for the withdrawal"},"key":{"type":"string","description":"Withdrawal key name as configured in your Kraken account withdrawal settings."},"tag":{"description":"Optional tag/memo for the withdrawal (required for some currencies like XRP, XLM)","type":"string"}},"required":["code","amount","address","key"],"additionalProperties":false},"outputSchema":{"type":"object","anyOf":[{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"note":{"description":"Human-readable summary of the action","type":"string"},"cexApiRequestActions":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"The URL of the CEX API request"},"method":{"type":"string","enum":["POST","GET","PUT","DELETE"],"description":"HTTP method"},"headers":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"},"description":"Request headers"},"body":{"description":"Request body as JSON string","type":"string"},"toSign":{"type":"string","description":"Raw bytes (hex) to sign/HMAC for auth header"}},"required":["url","method","headers","toSign"],"additionalProperties":false},"description":"Unsigned API requests to sign and send sequentially"}},"required":["project","operation","cexApiRequestActions"],"additionalProperties":false},{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"error":{"type":"string","description":"Error message"}},"required":["project","operation","error"],"additionalProperties":false}]}}]}