{
  "openapi": "3.1.0",
  "info": {
    "title": "Metis Trading API",
    "description": "Quicknode Metis Trading API reference",
    "version": "1.0.0"
  },
  "paths": {
    "/limit-orders/cancel": {
      "post": {
        "operationId": "post_limit_orders_cancel",
        "summary": "Send a POST request to get the unsigned transactions needed to cancel Jupiter Limit Order(s).",
        "tags": [
          "limit-orders"
        ],
        "externalDocs": {
          "description": "Quicknode docs",
          "url": "https://www.quicknode.com/docs/solana/limit-order-cancel"
        },
        "parameters": [
          {
            "name": "maker",
            "in": "query",
            "schema": {
              "type": "string",
              "description": "The wallet address associated to the order(s) that are being cancelled"
            },
            "required": true,
            "description": "The wallet address associated to the order(s) that are being cancelled"
          },
          {
            "name": "computeUnitPrice",
            "in": "query",
            "schema": {
              "type": "string",
              "description": "Used to determine a transaction's prioritization fee. By default, it is set to auto if its not provided. Otherwise, you can set a custom fee i.e 500000"
            },
            "description": "Used to determine a transaction's prioritization fee. By default, it is set to auto if its not provided. Otherwise, you can set a custom fee i.e 500000"
          },
          {
            "name": "orders",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "orderPubKey": {
                    "type": "string",
                    "description": "The public key of the order that is being cancelled"
                  }
                }
              },
              "description": "The order(s) that are being cancelled. If it is empty, all orders associated to the maker will be cancelled"
            },
            "description": "The order(s) that are being cancelled. If it is empty, all orders associated to the maker will be cancelled"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "txs": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "tx": {
                            "type": "string",
                            "description": "The unsigned transaction to cancel the order(s)"
                          }
                        }
                      },
                      "description": "The array of transaction strings that should be signed and sent to the network to cancel"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/limit-orders/create": {
      "post": {
        "operationId": "post_limit_orders_create",
        "summary": "Send a POST request to get the unsigned transactions needed to create a Jupiter Limit Order.",
        "tags": [
          "limit-orders"
        ],
        "externalDocs": {
          "description": "Quicknode docs",
          "url": "https://www.quicknode.com/docs/solana/limit-order-create"
        },
        "parameters": [
          {
            "name": "inputMint",
            "in": "query",
            "schema": {
              "type": "string",
              "description": "The mint address of the input token"
            },
            "required": true,
            "description": "The mint address of the input token"
          },
          {
            "name": "outputMint",
            "in": "query",
            "schema": {
              "type": "string",
              "description": "The mint address of the output token"
            },
            "required": true,
            "description": "The mint address of the output token"
          },
          {
            "name": "maker",
            "in": "query",
            "schema": {
              "type": "string",
              "description": "The wallet address of the user who wants to create an order"
            },
            "required": true,
            "description": "The wallet address of the user who wants to create an order"
          },
          {
            "name": "payer",
            "in": "query",
            "schema": {
              "type": "string",
              "description": "The wallet address of who is paying to open an order (usually 'maker')"
            },
            "required": true,
            "description": "The wallet address of who is paying to open an order (usually 'maker')"
          },
          {
            "name": "params",
            "in": "query",
            "schema": {
              "type": "object",
              "properties": {
                "makingAmount": {
                  "type": "string",
                  "description": "Amount of input mint to sell"
                },
                "takingAmount": {
                  "type": "string",
                  "description": "Amount of output mint to buy"
                },
                "expiredAt": {
                  "type": "string",
                  "description": "Unix time in seconds that determines when an order should automatically close. i.e Date.now() / 1_000"
                },
                "feeBps": {
                  "type": "string",
                  "description": "Amount of fee that the 'referral' collects. This field is required if 'referral' is provided"
                }
              },
              "description": "Order parameters containing amounts, expiration, and fee settings"
            },
            "required": true,
            "description": "Order parameters containing amounts, expiration, and fee settings"
          },
          {
            "name": "computeUnitPrice",
            "in": "query",
            "schema": {
              "type": "string",
              "description": "Used to determine a transaction's prioritization fee (i.e 500000). Defaults to 'auto'"
            },
            "description": "Used to determine a transaction's prioritization fee (i.e 500000). Defaults to 'auto'"
          },
          {
            "name": "referral",
            "in": "query",
            "schema": {
              "type": "string",
              "description": "The public key where fees get sent to. This field is required if 'feeBps' is provided"
            },
            "description": "The public key where fees get sent to. This field is required if 'feeBps' is provided"
          },
          {
            "name": "inputTokenProgram",
            "in": "query",
            "schema": {
              "type": "string",
              "description": "Specifies the program ID for the input token. Defaults to 'TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA'"
            },
            "description": "Specifies the program ID for the input token. Defaults to 'TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA'"
          },
          {
            "name": "outputTokenProgram",
            "in": "query",
            "schema": {
              "type": "string",
              "description": "Specifies the program ID for the output token. Defaults to 'TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA'"
            },
            "description": "Specifies the program ID for the output token. Defaults to 'TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA'"
          },
          {
            "name": "wrapAndUnwrapSol",
            "in": "query",
            "schema": {
              "type": "boolean",
              "description": "Defaults to 'true' if either input or output mints are raw SOL"
            },
            "description": "Defaults to 'true' if either input or output mints are raw SOL"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "order": {
                      "type": "string",
                      "description": "The public key of the Jupiter Limit Order for the unsigned transaction"
                    },
                    "tx": {
                      "type": "string",
                      "description": "The unsigned transaction to create the Jupiter Limit Order"
                    },
                    "instructions": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "instruction": {
                            "type": "object",
                            "properties": {
                              "programId": {
                                "type": "string",
                                "description": "The program ID of the instruction"
                              },
                              "keys": {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "pubkey": {
                                      "type": "string",
                                      "description": "The public key of the instruction"
                                    },
                                    "isSigner": {
                                      "type": "boolean",
                                      "description": "Whether the public key is a signer"
                                    },
                                    "isWritable": {
                                      "type": "boolean",
                                      "description": "Whether the pubkey is writable"
                                    }
                                  }
                                },
                                "description": "Array of objects containing the keys of the instruction"
                              },
                              "data": {
                                "type": "string",
                                "description": "The data of the instruction"
                              }
                            },
                            "description": "The instruction for the order"
                          }
                        }
                      },
                      "description": "The instructions to create the Jupiter Limit Order"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/limit-orders/fee": {
      "get": {
        "operationId": "get_limit_orders_fee",
        "summary": "Returns the fee in basis points Jupiter charges to fulfill orders.",
        "tags": [
          "limit-orders"
        ],
        "externalDocs": {
          "description": "Quicknode docs",
          "url": "https://www.quicknode.com/docs/solana/limit-order-fee"
        },
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "fee": {
                      "type": "object",
                      "properties": {
                        "normalFeeBps": {
                          "type": "integer",
                          "description": "The normal fee bps"
                        },
                        "stableFeeBps": {
                          "type": "integer",
                          "description": "The stable fee bps"
                        }
                      },
                      "description": "The data object which contain the following properties:"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/limit-orders/history": {
      "get": {
        "operationId": "get_limit_orders_history",
        "summary": "Returns a list of all Jupiter Limit Orders associated to a wallet and their trades.",
        "tags": [
          "limit-orders"
        ],
        "externalDocs": {
          "description": "Quicknode docs",
          "url": "https://www.quicknode.com/docs/solana/limit-order-history"
        },
        "description": "Returns a list of all Jupiter Limit Orders associated to a wallet and their trades. Results are paginated with 10 orders per page.",
        "parameters": [
          {
            "name": "wallet",
            "in": "query",
            "schema": {
              "type": "string",
              "description": "The wallet address of the user who wants to get their order history"
            },
            "required": true,
            "description": "The wallet address of the user who wants to get their order history"
          },
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "integer",
              "description": "The page number of the results, starts from page 1"
            },
            "description": "The page number of the results, starts from page 1"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "orders": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "userPubkey": {
                            "type": "string",
                            "description": "The public key of the user who created the order"
                          },
                          "orderKey": {
                            "type": "string",
                            "description": "The public key for the order"
                          },
                          "inputMint": {
                            "type": "string",
                            "description": "The mint address of the input token"
                          },
                          "outputMint": {
                            "type": "string",
                            "description": "The mint address of the output token"
                          },
                          "makingAmount": {
                            "type": "string",
                            "description": "The amount of tokens being offered in the order"
                          },
                          "takingAmount": {
                            "type": "string",
                            "description": "The amount of tokens being requested in the order"
                          },
                          "remainingMakingAmount": {
                            "type": "string",
                            "description": "The remaining amount of tokens being offered"
                          },
                          "remainingTakingAmount": {
                            "type": "string",
                            "description": "The remaining amount of tokens being requested"
                          },
                          "expiredAt": {
                            "type": "string",
                            "description": "Timestamp when the order expires, null if no expiration"
                          },
                          "createdAt": {
                            "type": "string",
                            "description": "Timestamp when the order was created"
                          },
                          "updatedAt": {
                            "type": "string",
                            "description": "Timestamp when the order was last updated"
                          },
                          "status": {
                            "type": "string",
                            "description": "Current status of the order (e.g., 'Cancelled')"
                          },
                          "openTx": {
                            "type": "string",
                            "description": "Transaction signature for order creation"
                          },
                          "closeTx": {
                            "type": "string",
                            "description": "Transaction signature for order closure"
                          },
                          "programVersion": {
                            "type": "string",
                            "description": "Version of the program used for the order"
                          },
                          "trades": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "orderKey": {
                                  "type": "string",
                                  "description": "The public key for the order"
                                },
                                "keeper": {
                                  "type": "string",
                                  "description": "Address of the keeper that processed the order"
                                },
                                "inputMint": {
                                  "type": "string",
                                  "description": "The mint address of the input token"
                                },
                                "outputMint": {
                                  "type": "string",
                                  "description": "The mint address of the output token"
                                },
                                "inputAmount": {
                                  "type": "string",
                                  "description": "The amount of input tokens used in the fill"
                                },
                                "outputAmount": {
                                  "type": "string",
                                  "description": "The amount of output tokens received from the fill"
                                },
                                "feeMint": {
                                  "type": "string",
                                  "description": "The mint address of the token used for fees"
                                },
                                "feeAmount": {
                                  "type": "string",
                                  "description": "The amount of fees charged for the fill"
                                },
                                "txId": {
                                  "type": "string",
                                  "description": "The transaction signature for the fill"
                                },
                                "confirmedAt": {
                                  "type": "string",
                                  "description": "Timestamp when the fill was confirmed"
                                },
                                "action": {
                                  "type": "string",
                                  "description": "The type of action performed (e.g., 'Fill')"
                                },
                                "productMeta": {
                                  "type": "null",
                                  "description": "Additional product metadata, if any"
                                }
                              }
                            },
                            "description": "Array of trades associated with this order"
                          }
                        }
                      },
                      "description": "Array of order objects containing order details and trades"
                    },
                    "hasMoreData": {
                      "type": "boolean",
                      "description": "Indicates if there are more orders available in subsequent pages"
                    },
                    "page": {
                      "type": "integer",
                      "description": "Current page number of the results"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/limit-orders/open": {
      "get": {
        "operationId": "get_limit_orders_open",
        "summary": "Returns a list of all open Jupiter Limit Orders associated to a wallet.",
        "tags": [
          "limit-orders"
        ],
        "externalDocs": {
          "description": "Quicknode docs",
          "url": "https://www.quicknode.com/docs/solana/limit-order-open"
        },
        "parameters": [
          {
            "name": "wallet",
            "in": "query",
            "schema": {
              "type": "string",
              "description": "The wallet address of the user who wants to get their open orders"
            },
            "required": true,
            "description": "The wallet address of the user who wants to get their open orders"
          },
          {
            "name": "inputMint",
            "in": "query",
            "schema": {
              "type": "string",
              "description": "The mint address of the input token to filter by."
            },
            "description": "The mint address of the input token to filter by."
          },
          {
            "name": "outputMint",
            "in": "query",
            "schema": {
              "type": "string",
              "description": "The mint address of the output token to filter by."
            },
            "description": "The mint address of the output token to filter by."
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "orders": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "publicKey": {
                            "type": "string",
                            "description": "The public key of the open order"
                          },
                          "account": {
                            "type": "object",
                            "properties": {
                              "maker": {
                                "type": "string",
                                "description": "Public key of the order maker"
                              },
                              "inputMint": {
                                "type": "string",
                                "description": "The mint address of the input token"
                              },
                              "outputMint": {
                                "type": "string",
                                "description": "The mint address of the output token"
                              },
                              "makingAmount": {
                                "type": "string",
                                "description": "The amount of tokens being offered"
                              },
                              "takingAmount": {
                                "type": "string",
                                "description": "The amount of tokens being requested"
                              },
                              "expiredAt": {
                                "type": "null",
                                "description": "Timestamp when the order expires, null if no expiration"
                              },
                              "borrowMakingAmount": {
                                "type": "string",
                                "description": "Amount of tokens borrowed for making the order"
                              },
                              "createdAt": {
                                "type": "string",
                                "description": "Unix timestamp when the account was created"
                              },
                              "updatedAt": {
                                "type": "string",
                                "description": "Unix timestamp when the account was last updated"
                              },
                              "feeAccount": {
                                "type": "string",
                                "description": "Public key of the account where fees are collected"
                              },
                              "inputTokenProgram": {
                                "type": "string",
                                "description": "Program ID of the input token program"
                              },
                              "inputMintReserve": {
                                "type": "string",
                                "description": "Reserve account address for the input mint"
                              },
                              "outputTokenProgram": {
                                "type": "string",
                                "description": "Program ID of the output token program"
                              },
                              "feeBps": {
                                "type": "integer",
                                "description": "Fee in basis points (1 bps = 0.01%)"
                              },
                              "bump": {
                                "type": "integer",
                                "description": "PDA bump seed for the account"
                              },
                              "uniqueId": {
                                "type": "string",
                                "description": "Unique identifier of the order"
                              },
                              "oriMakingAmount": {
                                "type": "string",
                                "description": "Original amount of tokens being offered when order was created"
                              },
                              "oriTakingAmount": {
                                "type": "string",
                                "description": "Original amount of tokens being requested when order was created"
                              }
                            },
                            "description": "The account object containing details of the open order with the following properties:"
                          }
                        }
                      },
                      "description": "Array of open order objects containing the following properties:"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/limit-orders/{pubkey}": {
      "get": {
        "operationId": "get_limit_orders_by_pubkey",
        "summary": "Returns the details of a specific Jupiter Limit Order by its public key.",
        "tags": [
          "limit-orders"
        ],
        "externalDocs": {
          "description": "Quicknode docs",
          "url": "https://www.quicknode.com/docs/solana/limit-order-pubkey"
        },
        "description": "Returns the details of a specific Jupiter Limit Order by its public key. Replace {pubkey} with the order's public key. The order must be open.",
        "parameters": [
          {
            "name": "pubkey",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "order": {
                      "type": "object",
                      "properties": {
                        "maker": {
                          "type": "string",
                          "description": "Public key of the order maker"
                        },
                        "inputMint": {
                          "type": "string",
                          "description": "The mint address of the input token"
                        },
                        "outputMint": {
                          "type": "string",
                          "description": "The mint address of the output token"
                        },
                        "makingAmount": {
                          "type": "string",
                          "description": "The amount of tokens being offered"
                        },
                        "takingAmount": {
                          "type": "string",
                          "description": "The amount of tokens being requested"
                        },
                        "expiredAt": {
                          "type": "null",
                          "description": "Timestamp when the order expires, null if no expiration"
                        },
                        "borrowMakingAmount": {
                          "type": "string",
                          "description": "Amount of tokens borrowed for making the order"
                        },
                        "createdAt": {
                          "type": "string",
                          "description": "Unix timestamp when the account was created"
                        },
                        "updatedAt": {
                          "type": "string",
                          "description": "Unix timestamp when the account was last updated"
                        },
                        "feeAccount": {
                          "type": "string",
                          "description": "Public key of the account where fees are collected"
                        },
                        "inputTokenProgram": {
                          "type": "string",
                          "description": "Program ID of the input token program"
                        },
                        "inputMintReserve": {
                          "type": "string",
                          "description": "Reserve account address for the input mint"
                        },
                        "outputTokenProgram": {
                          "type": "string",
                          "description": "Program ID of the output token program"
                        },
                        "feeBps": {
                          "type": "integer",
                          "description": "Fee in basis points (1 bps = 0.01%)"
                        },
                        "bump": {
                          "type": "integer",
                          "description": "PDA bump seed for the account"
                        },
                        "uniqueId": {
                          "type": "string",
                          "description": "Unique identifier of the order"
                        },
                        "oriMakingAmount": {
                          "type": "string",
                          "description": "Original amount of tokens being offered when order was created"
                        },
                        "oriTakingAmount": {
                          "type": "string",
                          "description": "Original amount of tokens being requested when order was created"
                        }
                      },
                      "description": "The order object containing details of the open order with the following properties:"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/new-pools": {
      "get": {
        "operationId": "get_new_pools",
        "summary": "Returns recently deployed Solana liquidity pools and tokens.",
        "tags": [
          "new-pools"
        ],
        "externalDocs": {
          "description": "Quicknode docs",
          "url": "https://www.quicknode.com/docs/solana/new-pools"
        },
        "description": "Returns recently deployed Solana liquidity pools and tokens. It's updated in real-time and lists the 200 most recent token and liquidity pool launches on Raydium & pump.fun.",
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "lpSignature": {
                            "type": "string",
                            "description": "The signature of the liquidity pool deployment transaction"
                          },
                          "lpSigner": {
                            "type": "string",
                            "description": "The address of the liquidity pool signer"
                          },
                          "lpAddress": {
                            "type": "string",
                            "description": "The address of the liquidity pool"
                          },
                          "timestamp": {
                            "type": "string",
                            "description": "The timestamp of the liquidity pool deployment"
                          },
                          "tokenAddress": {
                            "type": "string",
                            "description": "The address of the token"
                          },
                          "tokenMeta": {
                            "type": "object",
                            "properties": {
                              "address": {
                                "type": "string",
                                "description": "The address of the token"
                              },
                              "decimals": {
                                "type": "integer",
                                "description": "The decimals of the token"
                              },
                              "lpAmount": {
                                "type": "integer",
                                "description": "The amount of liquidity pool tokens in the transaction"
                              }
                            },
                            "description": "The meta data associated to the token which contains the following fields:"
                          },
                          "quoteAddress": {
                            "type": "string",
                            "description": "The address of the quote token being paired for the liquidity pool"
                          },
                          "quoteMeta": {
                            "type": "object",
                            "properties": {
                              "address": {
                                "type": "string",
                                "description": "The address of the quote token"
                              },
                              "decimals": {
                                "type": "integer",
                                "description": "The decimals of the quote token"
                              },
                              "lpAmount": {
                                "type": "integer",
                                "description": "The amount of liquidity pool quote tokens in the transaction"
                              }
                            },
                            "description": "The meta data associated to the quote token being paired for the liquidity pool which contains the following fields:"
                          },
                          "exchange": {
                            "type": "string",
                            "description": "The name of the exchange the liquidty pool was deployed on"
                          }
                        }
                      },
                      "description": "The data array of objects which contain the following properties:"
                    },
                    "status": {
                      "type": "string",
                      "description": "The status of the response"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/price": {
      "get": {
        "operationId": "get_price",
        "summary": "Returns the precise and real-time pricing for all SPL tokens.",
        "tags": [
          "price"
        ],
        "externalDocs": {
          "description": "Quicknode docs",
          "url": "https://www.quicknode.com/docs/solana/price"
        },
        "parameters": [
          {
            "name": "ids",
            "in": "query",
            "schema": {
              "type": "string",
              "description": "Supports symbol or address of a token. You can also pass in an array of ids with a comma as a separator. Address and symbol modes both are case-sensitive. Each id included will be counted towards your request limit."
            },
            "required": true,
            "description": "Supports symbol or address of a token. You can also pass in an array of ids with a comma as a separator. Address and symbol modes both are case-sensitive. Each id included will be counted towards your request limit."
          },
          {
            "name": "vsToken",
            "in": "query",
            "schema": {
              "type": "string",
              "description": "The token to compare price versus (supports symbol or address of a token). The default value is set to USDC"
            },
            "description": "The token to compare price versus (supports symbol or address of a token). The default value is set to USDC"
          },
          {
            "name": "restrictIntermediateTokens",
            "in": "query",
            "schema": {
              "type": "boolean",
              "description": "Default is true. Restrict intermediate tokens to a top token set that has stable liquidity. This will help improve latency on /price requests."
            },
            "description": "Default is true. Restrict intermediate tokens to a top token set that has stable liquidity. This will help improve latency on /price requests."
          },
          {
            "name": "onlyDirectRoutes",
            "in": "query",
            "schema": {
              "type": "boolean",
              "description": "Default is false. If true, only direct routes will be used when determining the price via single hop routes only. This will help improve latency on /price requests."
            },
            "description": "Default is false. If true, only direct routes will be used when determining the price via single hop routes only. This will help improve latency on /price requests."
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "properties": {
                        "token": {
                          "type": "object",
                          "properties": {
                            "id": {
                              "type": "string",
                              "description": "The address of a token"
                            },
                            "mintSymbol": {
                              "type": "string",
                              "description": "The symbol of id token"
                            },
                            "vsToken": {
                              "type": "string",
                              "description": "The address of vs token"
                            },
                            "vsTokenSymbol": {
                              "type": "string",
                              "description": "The symbol of vs token"
                            },
                            "price": {
                              "type": "number",
                              "description": "The price of the token."
                            }
                          },
                          "description": "The token object which contains the following fields:"
                        }
                      },
                      "description": "The data object which contains the following fields:"
                    },
                    "timeTaken": {
                      "type": "number",
                      "description": "The API internal compute response time"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/program-id-to-label": {
      "get": {
        "operationId": "get_program_id_to_label",
        "summary": "Returns a hash, whose key is the program id and the value is the label.",
        "tags": [
          "program-id-to-label"
        ],
        "externalDocs": {
          "description": "Quicknode docs",
          "url": "https://www.quicknode.com/docs/solana/program-id-to-label"
        },
        "description": "Returns a hash, whose key is the program id and the value is the label. This is used to help map errors from the transaction by identifying the fault program id. With that, we can use the excludeDexes or dexes parameter",
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "Key:Value": {
                      "type": "object",
                      "description": "The key value pair, key is the program id and value is the label"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/pump-fun/quote": {
      "get": {
        "operationId": "get_pump_fun_quote",
        "summary": "Sends a GET request to get the best priced quote on Pump.",
        "tags": [
          "pump-fun"
        ],
        "externalDocs": {
          "description": "Quicknode docs",
          "url": "https://www.quicknode.com/docs/solana/pump-fun-quote"
        },
        "description": "Sends a GET request to get the best priced quote on Pump.fun. If the bonding threshold has been reached, the meta.isCompleted field will be true. Please note bonded tokens are not supported to swap with /pump-fun/swap - it is recommended to use the native Jupiter /swap endpoint.",
        "parameters": [
          {
            "name": "type",
            "in": "query",
            "schema": {
              "type": "string",
              "description": "The type of quote to get (BUY or SELL)"
            },
            "required": true,
            "description": "The type of quote to get (BUY or SELL)"
          },
          {
            "name": "mint",
            "in": "query",
            "schema": {
              "type": "string",
              "description": "The pump.fun mint address of the token to quote"
            },
            "required": true,
            "description": "The pump.fun mint address of the token to quote"
          },
          {
            "name": "amount",
            "in": "query",
            "schema": {
              "type": "string",
              "description": "The amount of tokens to quote for the input token. For type = BUY, the amount should be for SOL. For type = SELL, the amount should be for the pump.fun token being sold, which is provided in the mint field. Note: All Pump.fun mints have 6 decimals. Specified amount should include those decimals here, e.g. Selling 100 tokens should be passed as 100000000."
            },
            "required": true,
            "description": "The amount of tokens to quote for the input token. For type = BUY, the amount should be for SOL. For type = SELL, the amount should be for the pump.fun token being sold, which is provided in the mint field. Note: All Pump.fun mints have 6 decimals. Specified amount should include those decimals here, e.g. Selling 100 tokens should be passed as 100000000."
          },
          {
            "name": "commitment",
            "in": "query",
            "schema": {
              "type": "string",
              "description": "The level of commitment required for the query. The options include: 'finalized', 'confirmed', and 'processed'. (default: 'confirmed')"
            },
            "description": "The level of commitment required for the query. The options include: 'finalized', 'confirmed', and 'processed'. (default: 'confirmed')"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "quote": {
                      "type": "object",
                      "properties": {
                        "mint": {
                          "type": "string",
                          "description": "The pump.fun mint address of the token"
                        },
                        "bondingCurve": {
                          "type": "string",
                          "description": "The pump.fun bonding curve address for the token"
                        },
                        "type": {
                          "type": "string",
                          "description": "The type of quote (BUY or SELL)"
                        },
                        "inAmount": {
                          "type": "string",
                          "description": "The raw input amount in base units"
                        },
                        "inAmountUi": {
                          "type": "number",
                          "description": "The formatted input amount"
                        },
                        "inTokenAddress": {
                          "type": "string",
                          "description": "The input mint token address"
                        },
                        "outAmount": {
                          "type": "string",
                          "description": "The raw output amount in base units"
                        },
                        "outAmountUi": {
                          "type": "number",
                          "description": "The formatted output amount"
                        },
                        "outTokenAddress": {
                          "type": "string",
                          "description": "The output mint token address"
                        },
                        "meta": {
                          "type": "object",
                          "properties": {
                            "isCompleted": {
                              "type": "boolean",
                              "description": "Whether the bonding curve is completed"
                            },
                            "outDecimals": {
                              "type": "number",
                              "description": "Decimal places for the output token"
                            },
                            "inDecimals": {
                              "type": "number",
                              "description": "Decimal places for the input token"
                            },
                            "totalSupply": {
                              "type": "string",
                              "description": "Total supply of the token"
                            },
                            "currentMarketCapInSol": {
                              "type": "number",
                              "description": "Current market cap in SOL"
                            }
                          },
                          "description": "Additional metadata about the quote"
                        }
                      },
                      "description": "Quote details for the requested token swap"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/pump-fun/swap": {
      "post": {
        "operationId": "post_pump_fun_swap",
        "summary": "Returns a transaction that you can use to swap on Pump.",
        "tags": [
          "pump-fun"
        ],
        "externalDocs": {
          "description": "Quicknode docs",
          "url": "https://www.quicknode.com/docs/solana/pump-fun-swap"
        },
        "description": "Returns a transaction that you can use to swap on Pump.fun. Please note bonded tokens are not supported to swap with /pump-fun/swap - it is recommended to use the native Jupiter /swap endpoint.",
        "parameters": [
          {
            "name": "wallet",
            "in": "query",
            "schema": {
              "type": "string",
              "description": "The wallet address of the user who wants to perform the swap"
            },
            "required": true,
            "description": "The wallet address of the user who wants to perform the swap"
          },
          {
            "name": "type",
            "in": "query",
            "schema": {
              "type": "string",
              "description": "The type of swap (BUY or SELL)"
            },
            "required": true,
            "description": "The type of swap (BUY or SELL)"
          },
          {
            "name": "mint",
            "in": "query",
            "schema": {
              "type": "string",
              "description": "The pump.fun mint address of the token to swap"
            },
            "required": true,
            "description": "The pump.fun mint address of the token to swap"
          },
          {
            "name": "inAmount",
            "in": "query",
            "schema": {
              "type": "string",
              "description": "The input amount for the swap. For type = BUY, the input token is SOL and its being swapped for the provided pump.fun token (mint). For type = SELL, the input token is the pump.fun mint token being sold, which is provided in the mint field. Note: All Pump.fun mints have 6 decimals. Specified amount should include those decimals here, e.g. Selling 100 tokens should be passed as 100000000."
            },
            "required": true,
            "description": "The input amount for the swap. For type = BUY, the input token is SOL and its being swapped for the provided pump.fun token (mint). For type = SELL, the input token is the pump.fun mint token being sold, which is provided in the mint field. Note: All Pump.fun mints have 6 decimals. Specified amount should include those decimals here, e.g. Selling 100 tokens should be passed as 100000000."
          },
          {
            "name": "priorityFeeLevel",
            "in": "query",
            "schema": {
              "type": "string",
              "description": "Priority fee level for the transaction (low, medium, high, extreme). If you set a priority fee level, the transaction will be simulated before returning a response. If the simulation fails, the method will throw."
            },
            "description": "Priority fee level for the transaction (low, medium, high, extreme). If you set a priority fee level, the transaction will be simulated before returning a response. If the simulation fails, the method will throw."
          },
          {
            "name": "slippageBps",
            "in": "query",
            "schema": {
              "type": "string",
              "description": "Slippage tolerance in basis points (defaults to 100 if not provided)"
            },
            "description": "Slippage tolerance in basis points (defaults to 100 if not provided)"
          },
          {
            "name": "commitment",
            "in": "query",
            "schema": {
              "type": "string",
              "description": "The level of commitment required for the query. The options include: 'finalized', 'confirmed', and 'processed'. (default: 'confirmed')"
            },
            "description": "The level of commitment required for the query. The options include: 'finalized', 'confirmed', and 'processed'. (default: 'confirmed')"
          },
          {
            "name": "feeAccount",
            "in": "query",
            "schema": {
              "type": "string",
              "description": "The wallet address of the user who wants to collect a fee on the swap. Must use with `platformFeeBps`. This feature is only available for paid Metis users."
            },
            "description": "The wallet address of the user who wants to collect a fee on the swap. Must use with `platformFeeBps`. This feature is only available for paid Metis users."
          },
          {
            "name": "platformFeeBps",
            "in": "query",
            "schema": {
              "type": "integer",
              "description": "The fee in basis points the feeAccount will receive on the swap (i.e 100 = 1%). Must use with `feeAccount`. This feature is only available for paid Metis users."
            },
            "description": "The fee in basis points the feeAccount will receive on the swap (i.e 100 = 1%). Must use with `feeAccount`. This feature is only available for paid Metis users."
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "tx": {
                      "type": "string",
                      "description": "The base-64 encoded transaction that can be signed and submitted to the network"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/pump-fun/swap-instructions": {
      "post": {
        "operationId": "post_pump_fun_swap_instructions",
        "summary": "Returns instructions that you can use to swap on Pump.",
        "tags": [
          "pump-fun"
        ],
        "externalDocs": {
          "description": "Quicknode docs",
          "url": "https://www.quicknode.com/docs/solana/pump-fun-swap-instructions"
        },
        "description": "Returns instructions that you can use to swap on Pump.fun. Please note bonded tokens are not supported to swap with /pump-fun/swap-instructions - it is recommended to use the native Jupiter /swap-instructions endpoint.",
        "parameters": [
          {
            "name": "wallet",
            "in": "query",
            "schema": {
              "type": "string",
              "description": "The wallet address of the user who wants to perform the swap"
            },
            "required": true,
            "description": "The wallet address of the user who wants to perform the swap"
          },
          {
            "name": "type",
            "in": "query",
            "schema": {
              "type": "string",
              "description": "The type of swap (BUY or SELL)"
            },
            "required": true,
            "description": "The type of swap (BUY or SELL)"
          },
          {
            "name": "mint",
            "in": "query",
            "schema": {
              "type": "string",
              "description": "The pump.fun mint address of the token to swap"
            },
            "required": true,
            "description": "The pump.fun mint address of the token to swap"
          },
          {
            "name": "inAmount",
            "in": "query",
            "schema": {
              "type": "string",
              "description": "The input amount for the swap. For type = BUY, the input token is SOL and its being swapped for the provided pump.fun token (mint). For type = SELL, the input token is the pump.fun mint token being sold, which is provided in the mint field. Note: All Pump.fun mints have 6 decimals. Specified amount should include those decimals here, e.g. Selling 100 tokens should be passed as 100000000."
            },
            "required": true,
            "description": "The input amount for the swap. For type = BUY, the input token is SOL and its being swapped for the provided pump.fun token (mint). For type = SELL, the input token is the pump.fun mint token being sold, which is provided in the mint field. Note: All Pump.fun mints have 6 decimals. Specified amount should include those decimals here, e.g. Selling 100 tokens should be passed as 100000000."
          },
          {
            "name": "priorityFeeLevel",
            "in": "query",
            "schema": {
              "type": "string",
              "description": "Priority fee level for the transaction (low, medium, high, extreme). If you set a priority fee level, the transaction will be simulated before returning a response. If the simulation fails, the method will throw."
            },
            "description": "Priority fee level for the transaction (low, medium, high, extreme). If you set a priority fee level, the transaction will be simulated before returning a response. If the simulation fails, the method will throw."
          },
          {
            "name": "slippageBps",
            "in": "query",
            "schema": {
              "type": "string",
              "description": "Slippage tolerance in basis points (defaults to 100 if not provided)"
            },
            "description": "Slippage tolerance in basis points (defaults to 100 if not provided)"
          },
          {
            "name": "commitment",
            "in": "query",
            "schema": {
              "type": "string",
              "description": "The level of commitment required for the query. The options include: 'finalized', 'confirmed', and 'processed'. (default: 'confirmed')"
            },
            "description": "The level of commitment required for the query. The options include: 'finalized', 'confirmed', and 'processed'. (default: 'confirmed')"
          },
          {
            "name": "feeAccount",
            "in": "query",
            "schema": {
              "type": "string",
              "description": "The wallet address of the user who wants to collect a fee on the swap. Must use with `platformFeeBps`."
            },
            "description": "The wallet address of the user who wants to collect a fee on the swap. Must use with `platformFeeBps`."
          },
          {
            "name": "platformFeeBps",
            "in": "query",
            "schema": {
              "type": "integer",
              "description": "The fee in basis points the feeAccount will receive on the swap (i.e 100 = 1%). Must use with `feeAccount`."
            },
            "description": "The fee in basis points the feeAccount will receive on the swap (i.e 100 = 1%). Must use with `feeAccount`."
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "instructions": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "keys": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "pubkey": {
                                  "type": "string",
                                  "description": "Public key of the account"
                                },
                                "isSigner": {
                                  "type": "boolean",
                                  "description": "Whether this account needs to sign the transaction"
                                },
                                "isWritable": {
                                  "type": "boolean",
                                  "description": "Whether this account will be written to"
                                }
                              }
                            },
                            "description": "Array of account keys needed for the instruction"
                          },
                          "programId": {
                            "type": "string",
                            "description": "The program that will process this instruction"
                          },
                          "data": {
                            "type": "array",
                            "items": {},
                            "description": "The instruction data as an array of numbers"
                          }
                        }
                      },
                      "description": "Array of instructions to execute the swap"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/quote": {
      "get": {
        "operationId": "get_quote",
        "summary": "Sends a GET request to the Jupiter API to get the best priced quote.",
        "tags": [
          "quote"
        ],
        "externalDocs": {
          "description": "Quicknode docs",
          "url": "https://www.quicknode.com/docs/solana/quote"
        },
        "parameters": [
          {
            "name": "inputMint",
            "in": "query",
            "schema": {
              "type": "string",
              "description": "Input token mint address"
            },
            "required": true,
            "description": "Input token mint address"
          },
          {
            "name": "outputMint",
            "in": "query",
            "schema": {
              "type": "string",
              "description": "Output token mint address"
            },
            "required": true,
            "description": "Output token mint address"
          },
          {
            "name": "amount",
            "in": "query",
            "schema": {
              "type": "integer",
              "description": "Raw amount to swap (before decimals). Input amount if swapMode is ExactIn, output amount if swapMode is ExactOut"
            },
            "required": true,
            "description": "Raw amount to swap (before decimals). Input amount if swapMode is ExactIn, output amount if swapMode is ExactOut"
          },
          {
            "name": "slippageBps",
            "in": "query",
            "schema": {
              "type": "integer",
              "description": "Slippage threshold in basis points. If the output token amount exceeds the slippage then the swap transaction will fail. Default is 50"
            },
            "description": "Slippage threshold in basis points. If the output token amount exceeds the slippage then the swap transaction will fail. Default is 50"
          },
          {
            "name": "swapMode",
            "in": "query",
            "schema": {
              "type": "string",
              "description": "The swap mode. Possible values include: ExactIn, ExactOut. The default value is set to ExactIn. ExactOut is for supporting use cases where you need an exact token amount, like payments"
            },
            "description": "The swap mode. Possible values include: ExactIn, ExactOut. The default value is set to ExactIn. ExactOut is for supporting use cases where you need an exact token amount, like payments"
          },
          {
            "name": "dexes",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {},
              "description": "Only the DEXes that you want to include. Separate them with commas. If you want to route directly to the GooseFX Gamma API, you can set the dexes to 'Gamma' without any additional dexes."
            },
            "description": "Only the DEXes that you want to include. Separate them with commas. If you want to route directly to the GooseFX Gamma API, you can set the dexes to 'Gamma' without any additional dexes."
          },
          {
            "name": "excludeDexes",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {},
              "description": "The DEXes that you want to exclude. Separate them with commas."
            },
            "description": "The DEXes that you want to exclude. Separate them with commas."
          },
          {
            "name": "restrictIntermediateTokens",
            "in": "query",
            "schema": {
              "type": "boolean",
              "description": "Restrict intermediate tokens to a top token set that has stable liquidity. This will help to ease potential high slippage error rate when swapping with minimal impact on pricing. Default is true"
            },
            "description": "Restrict intermediate tokens to a top token set that has stable liquidity. This will help to ease potential high slippage error rate when swapping with minimal impact on pricing. Default is true"
          },
          {
            "name": "onlyDirectRoutes",
            "in": "query",
            "schema": {
              "type": "boolean",
              "description": "Direct Routes limits Jupiter routing to single hop routes only. By default, it is set to false"
            },
            "description": "Direct Routes limits Jupiter routing to single hop routes only. By default, it is set to false"
          },
          {
            "name": "asLegacyTransaction",
            "in": "query",
            "schema": {
              "type": "boolean",
              "description": "Instead of using versioned transaction, this will use the legacy transaction. By default, it is set to false"
            },
            "description": "Instead of using versioned transaction, this will use the legacy transaction. By default, it is set to false"
          },
          {
            "name": "platformFeeBps",
            "in": "query",
            "schema": {
              "type": "integer",
              "description": "If you want to charge the user a fee, you can specify the fee in BPS. Fee % is taken out of the output token"
            },
            "description": "If you want to charge the user a fee, you can specify the fee in BPS. Fee % is taken out of the output token"
          },
          {
            "name": "maxAccounts",
            "in": "query",
            "schema": {
              "type": "integer",
              "description": "Rough estimate of the max accounts to be used for the quote, so that you can compose with your own accounts. Default is 64"
            },
            "description": "Rough estimate of the max accounts to be used for the quote, so that you can compose with your own accounts. Default is 64"
          },
          {
            "name": "instructionVersion",
            "in": "query",
            "schema": {
              "type": "string",
              "description": "The version of instruction to use in the swap program, defaults to V1. Options are: V1 or V2"
            },
            "description": "The version of instruction to use in the swap program, defaults to V1. Options are: V1 or V2"
          },
          {
            "name": "dynamicSlippage",
            "in": "query",
            "schema": {
              "type": "boolean",
              "description": "No longer applicable. Default is false"
            },
            "description": "No longer applicable. Default is false"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "inputMint": {
                      "type": "string",
                      "description": "The source token's mint address"
                    },
                    "inAmount": {
                      "type": "string",
                      "description": "The amount of the source token being swapped"
                    },
                    "outputMint": {
                      "type": "string",
                      "description": "The destination token's mint address"
                    },
                    "outAmount": {
                      "type": "string",
                      "description": "Calculated output amount from the routing engine. Value includes platform fees and DEX fees, excluding slippage"
                    },
                    "otherAmountThreshold": {
                      "type": "string",
                      "description": "Calculated minimum output amount after accounting for slippageBps on the outAmount value"
                    },
                    "swapMode": {
                      "type": "string",
                      "description": "Indicates the swap mode"
                    },
                    "slippageBps": {
                      "type": "integer",
                      "description": "Slippage tolerance in basis points"
                    },
                    "platformFee": {
                      "type": "object",
                      "properties": {
                        "amount": {
                          "type": "string",
                          "description": "The amount of the platform fee"
                        },
                        "feeBps": {
                          "type": "integer",
                          "description": "The fee percentage in basis points"
                        }
                      },
                      "description": "The platform Fee object which contains the following fields:"
                    },
                    "priceImpactPct": {
                      "type": "string",
                      "description": "The percentage of price impact due to the swap"
                    },
                    "routePlan": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "swapInfo": {
                            "type": "object",
                            "properties": {
                              "ammKey": {
                                "type": "string",
                                "description": "The key identifying the Automated Market Maker (AMM) responsible for the swap"
                              },
                              "label": {
                                "type": "string",
                                "description": "A label or identifier for the AMM"
                              },
                              "inputMint": {
                                "type": "string",
                                "description": "The mint address of the token being swapped from in this step"
                              },
                              "outputMint": {
                                "type": "string",
                                "description": "The mint address of the token being received in this step"
                              },
                              "inAmount": {
                                "type": "string",
                                "description": "The amount of the token being swapped from in this step"
                              },
                              "outAmount": {
                                "type": "string",
                                "description": "The amount of the token being received after the swap in this step"
                              },
                              "feeAmount": {
                                "type": "string",
                                "description": "The amount of fee charged for this step of the swap"
                              },
                              "feeMint": {
                                "type": "string",
                                "description": "The mint address of the token used for paying fees in this step"
                              }
                            },
                            "description": "Detailed information about a specific swap step"
                          },
                          "percent": {
                            "type": "integer",
                            "description": "The percentage allocation of the swap for this step"
                          },
                          "bps": {
                            "type": "integer",
                            "description": "The basis points allocation of the swap for this step"
                          }
                        }
                      },
                      "description": "An array containing detailed information about each step of the swap process"
                    },
                    "instructionVersion": {
                      "type": "string",
                      "description": "The version of instruction used in the swap program. Possible values: V1 or V2, or null"
                    },
                    "contextSlot": {
                      "type": "integer",
                      "description": "A contextual identifier"
                    },
                    "timeTaken": {
                      "type": "integer",
                      "description": "Time taken for the request to be processed"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/swap": {
      "post": {
        "operationId": "post_swap",
        "summary": "Returns a transaction that you can use from the quote you get from /quote.",
        "tags": [
          "swap"
        ],
        "externalDocs": {
          "description": "Quicknode docs",
          "url": "https://www.quicknode.com/docs/solana/swap"
        },
        "parameters": [
          {
            "name": "userPublicKey",
            "in": "query",
            "schema": {
              "type": "string",
              "description": "The user public key"
            },
            "required": true,
            "description": "The user public key"
          },
          {
            "name": "payer",
            "in": "query",
            "schema": {
              "type": "string",
              "description": "A custom payer address that will cover transaction fees and token account rent. Ensure your fee model accounts for cases where users close their ATAs and you must reopen them."
            },
            "description": "A custom payer address that will cover transaction fees and token account rent. Ensure your fee model accounts for cases where users close their ATAs and you must reopen them."
          },
          {
            "name": "wrapAndUnwrapSol",
            "in": "query",
            "schema": {
              "type": "boolean",
              "description": "If set to true, it will automatically wrap/unwrap SOL. If it is false, it will use wSOL token account. It will be ignored if destinationTokenAccount is set because the destinationTokenAccount may belong to a different user that we have no authority to close. By default it is set to true"
            },
            "description": "If set to true, it will automatically wrap/unwrap SOL. If it is false, it will use wSOL token account. It will be ignored if destinationTokenAccount is set because the destinationTokenAccount may belong to a different user that we have no authority to close. By default it is set to true"
          },
          {
            "name": "useSharedAccounts",
            "in": "query",
            "schema": {
              "type": "boolean",
              "description": "This enables the usage of shared program accounts. That means no intermediate token accounts or open orders accounts need to be created for the users. But it also means that the likelihood of hot accounts is higher. By default, it is set to true"
            },
            "description": "This enables the usage of shared program accounts. That means no intermediate token accounts or open orders accounts need to be created for the users. But it also means that the likelihood of hot accounts is higher. By default, it is set to true"
          },
          {
            "name": "feeAccount",
            "in": "query",
            "schema": {
              "type": "string",
              "description": "The fee token account is derived using the seeds ['referral_ata', referral_account, mint], along with the REFER4ZgmyYx9c6He5XfaTMiGfdLwRnkV4RPp9t9iF3 referral contract. Only pass in if you set a feeBps and make sure that the feeAccount has been created"
            },
            "description": "The fee token account is derived using the seeds ['referral_ata', referral_account, mint], along with the REFER4ZgmyYx9c6He5XfaTMiGfdLwRnkV4RPp9t9iF3 referral contract. Only pass in if you set a feeBps and make sure that the feeAccount has been created"
          },
          {
            "name": "trackingAccount",
            "in": "query",
            "schema": {
              "type": "string",
              "description": "Any public key associated with your system to track swap transactions. Useful for analytics using Solana block explorers or services like Dune or Flipside."
            },
            "description": "Any public key associated with your system to track swap transactions. Useful for analytics using Solana block explorers or services like Dune or Flipside."
          },
          {
            "name": "computeUnitPriceMicroLamports",
            "in": "query",
            "schema": {
              "type": "integer",
              "description": "The compute unit price to prioritize the transaction, the additional fee will be computeUnitLimit (1400000) * computeUnitPriceMicroLamports. If auto is used, Jupiter will automatically set a priority fee and it will be capped at 5,000,000 lamports / 0.005 SOL"
            },
            "description": "The compute unit price to prioritize the transaction, the additional fee will be computeUnitLimit (1400000) * computeUnitPriceMicroLamports. If auto is used, Jupiter will automatically set a priority fee and it will be capped at 5,000,000 lamports / 0.005 SOL"
          },
          {
            "name": "prioritizationFeeLamports",
            "in": "query",
            "schema": {
              "type": "object",
              "properties": {
                "priorityLevelWithMaxLamports": {
                  "type": "object",
                  "properties": {
                    "priorityLevel": {
                      "type": "string",
                      "description": "The priority level to use for transaction prioritization. Can be set to either medium, high or veryHigh"
                    },
                    "maxLamports": {
                      "type": "integer",
                      "description": "The maximum amount of lamports to cap the priority fee estimation to prevent overpaying"
                    },
                    "global": {
                      "type": "boolean",
                      "description": "When set to true, the priority fee estimation will use a global estimate across the network rather than a localized estimate based on the specific accounts involved in the transaction"
                    }
                  },
                  "description": "Specifies the priority level and maximum lamports for transaction prioritization"
                },
                "jitoTipLamports": {
                  "type": "integer",
                  "description": "The exact amount of tip to use in a tip instruction for JITO. You can estimate how much to set using Jito tip percentiles endpoint. It should be used together with the Lil Jit - JITO Marketplace addon or JITO RPC."
                },
                "jitoTipLamportsWithPayer": {
                  "type": "object",
                  "properties": {
                    "lamports": {
                      "type": "integer",
                      "description": "Exact amount of lamports to use for the tip"
                    },
                    "payer": {
                      "type": "string",
                      "description": "Public key of an account that will be used to pay for the tip"
                    }
                  },
                  "description": "Specifies the Jito tip amount and a custom payer account to pay for the tip"
                }
              },
              "description": "To specify a level or amount of additional fees to prioritize the transaction. It can be used for either the priority fee or the JITO tip. If you want to include both, you will need to use /swap-instructions to add both at the same time"
            },
            "description": "To specify a level or amount of additional fees to prioritize the transaction. It can be used for either the priority fee or the JITO tip. If you want to include both, you will need to use /swap-instructions to add both at the same time"
          },
          {
            "name": "asLegacyTransaction",
            "in": "query",
            "schema": {
              "type": "boolean",
              "description": "Request a legacy transaction rather than the default versioned transaction, needs to be paired with a quote using asLegacyTransaction otherwise the transaction might be too large. By default it is set as 'False'"
            },
            "description": "Request a legacy transaction rather than the default versioned transaction, needs to be paired with a quote using asLegacyTransaction otherwise the transaction might be too large. By default it is set as 'False'"
          },
          {
            "name": "destinationTokenAccount",
            "in": "query",
            "schema": {
              "type": "string",
              "description": "Public key of the token account that will be used to receive the token out of the swap. If not provided, the user's ATA will be used. If provided, we assume that the token account is already initialized"
            },
            "description": "Public key of the token account that will be used to receive the token out of the swap. If not provided, the user's ATA will be used. If provided, we assume that the token account is already initialized"
          },
          {
            "name": "nativeDestinationAccount",
            "in": "query",
            "schema": {
              "type": "string",
              "description": "Public key of an account that will be used to receive native SOL out of the swap. This only works when the output mint is SOL. The account must not be owned by the token program. If not provided, the wrapped SOL will be unwrapped and the native SOL will be sent to the swap authority account. When sending native SOL to a new account, you must swap at least enough to cover the rent required to create it. This parameter is mutually exclusive with destinationTokenAccount"
            },
            "description": "Public key of an account that will be used to receive native SOL out of the swap. This only works when the output mint is SOL. The account must not be owned by the token program. If not provided, the wrapped SOL will be unwrapped and the native SOL will be sent to the swap authority account. When sending native SOL to a new account, you must swap at least enough to cover the rent required to create it. This parameter is mutually exclusive with destinationTokenAccount"
          },
          {
            "name": "dynamicComputeUnitLimit",
            "in": "query",
            "schema": {
              "type": "boolean",
              "description": "When enabled, it will do a swap simulation to get the compute unit used and set it in ComputeBudget's compute unit limit. This will increase latency slightly since there will be one extra RPC call to simulate this. By default, it is set to false"
            },
            "description": "When enabled, it will do a swap simulation to get the compute unit used and set it in ComputeBudget's compute unit limit. This will increase latency slightly since there will be one extra RPC call to simulate this. By default, it is set to false"
          },
          {
            "name": "skipUserAccountsRpcCalls",
            "in": "query",
            "schema": {
              "type": "boolean",
              "description": "When enabled, it will not do any rpc calls check on user's accounts. Enable it only when you already setup all the accounts needed for the trasaction, like wrapping or unwrapping sol, destination account is already created."
            },
            "description": "When enabled, it will not do any rpc calls check on user's accounts. Enable it only when you already setup all the accounts needed for the trasaction, like wrapping or unwrapping sol, destination account is already created."
          },
          {
            "name": "dynamicSlippage",
            "in": "query",
            "schema": {
              "type": "boolean",
              "description": "When enabled, the swap transaction estimates slippage dynamically and overrides the `slippageBps` value from the /quote response. This must be used together with `dynamicSlippage` in the /quote call; otherwise, the static `slippageBps` from /quote will be used instead. Default is false."
            },
            "description": "When enabled, the swap transaction estimates slippage dynamically and overrides the `slippageBps` value from the /quote response. This must be used together with `dynamicSlippage` in the /quote call; otherwise, the static `slippageBps` from /quote will be used instead. Default is false."
          },
          {
            "name": "blockhashSlotsToExpiry",
            "in": "query",
            "schema": {
              "type": "integer",
              "description": "The number of slots for which the transaction remains valid. Each slot is ~400ms, so 10 slots means ~4 seconds of expiry time."
            },
            "description": "The number of slots for which the transaction remains valid. Each slot is ~400ms, so 10 slots means ~4 seconds of expiry time."
          },
          {
            "name": "quoteResponse",
            "in": "query",
            "schema": {
              "type": "object",
              "properties": {
                "inputMint": {
                  "type": "string",
                  "description": "The source token's mint address"
                },
                "inAmount": {
                  "type": "string",
                  "description": "The amount of the source token being swapped"
                },
                "outputMint": {
                  "type": "string",
                  "description": "The destination token's mint address"
                },
                "outAmount": {
                  "type": "string",
                  "description": "Calculated output amount from the routing engine. Value includes platform fees and DEX fees, excluding slippage"
                },
                "otherAmountThreshold": {
                  "type": "string",
                  "description": "Calculated minimum output amount after accounting for slippageBps on the outAmount value"
                },
                "swapMode": {
                  "type": "string",
                  "description": "Indicates the swap mode"
                },
                "slippageBps": {
                  "type": "integer",
                  "description": "Slippage tolerance in basis points"
                },
                "platformFee": {
                  "type": "object",
                  "properties": {
                    "amount": {
                      "type": "string",
                      "description": "The amount of the platform fee"
                    },
                    "feeBps": {
                      "type": "integer",
                      "description": "The fee percentage in basis points"
                    }
                  },
                  "description": "The platform Fee object which contains the following fields:"
                },
                "priceImpactPct": {
                  "type": "string",
                  "description": "The percentage of price impact due to the swap"
                },
                "routePlan": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "swapInfo": {
                        "type": "object",
                        "properties": {
                          "ammKey": {
                            "type": "string",
                            "description": "The key identifying the Automated Market Maker (AMM) responsible for the swap"
                          },
                          "label": {
                            "type": "string",
                            "description": "A label or identifier for the AMM"
                          },
                          "inputMint": {
                            "type": "string",
                            "description": "The mint address of the token being swapped from in this step"
                          },
                          "outputMint": {
                            "type": "string",
                            "description": "The mint address of the token being received in this step"
                          },
                          "inAmount": {
                            "type": "string",
                            "description": "The amount of the token being swapped from in this step"
                          },
                          "outAmount": {
                            "type": "string",
                            "description": "The amount of the token being received after the swap in this step"
                          },
                          "feeAmount": {
                            "type": "string",
                            "description": "The amount of fee charged for this step of the swap"
                          },
                          "feeMint": {
                            "type": "string",
                            "description": "The mint address of the token used for paying fees in this step"
                          }
                        },
                        "description": "Detailed information about a specific swap step"
                      },
                      "percent": {
                        "type": "integer",
                        "description": "The percentage allocation of the swap for this step"
                      },
                      "bps": {
                        "type": "integer",
                        "description": "The basis points allocation of the swap for this step"
                      }
                    }
                  },
                  "description": "An array containing detailed information about each step of the swap process"
                },
                "instructionVersion": {
                  "type": "string",
                  "description": "The version of instruction used in the swap program. Possible values: V1 or V2, or null"
                },
                "contextSlot": {
                  "type": "integer",
                  "description": "A contextual identifier"
                },
                "timeTaken": {
                  "type": "integer",
                  "description": "Time taken for the request to be processed"
                }
              },
              "description": "The quoteResponse object which you can get from the response from the /quote method"
            },
            "required": true,
            "description": "The quoteResponse object which you can get from the response from the /quote method"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "swapTransaction": {
                      "type": "string",
                      "description": "The serialized transaction for the swap"
                    },
                    "lastValidBlockHeight": {
                      "type": "integer",
                      "description": "The last valid block height"
                    },
                    "prioritizationFeeLamports": {
                      "type": "integer",
                      "description": "The prioritization fee in lamports"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/swap-instructions": {
      "post": {
        "operationId": "post_swap_instructions",
        "summary": "Returns instructions that you can use from the quote you get from /quote.",
        "tags": [
          "swap-instructions"
        ],
        "externalDocs": {
          "description": "Quicknode docs",
          "url": "https://www.quicknode.com/docs/solana/swap-instructions"
        },
        "parameters": [
          {
            "name": "userPublicKey",
            "in": "query",
            "schema": {
              "type": "string",
              "description": "The user public key"
            },
            "required": true,
            "description": "The user public key"
          },
          {
            "name": "payer",
            "in": "query",
            "schema": {
              "type": "string",
              "description": "Optional custom payer address that will be used to pay transaction fees and rent for token accounts. Useful if you wish to sponsor users' costs. Be aware that users can close their ATAs externally, so your fee logic should accommodate potential re-creation."
            },
            "description": "Optional custom payer address that will be used to pay transaction fees and rent for token accounts. Useful if you wish to sponsor users' costs. Be aware that users can close their ATAs externally, so your fee logic should accommodate potential re-creation."
          },
          {
            "name": "wrapAndUnwrapSol",
            "in": "query",
            "schema": {
              "type": "boolean",
              "description": "If set to true, it will automatically wrap/unwrap SOL. If it is false, it will use wSOL token account. It will be ignored if destinationTokenAccount is set because the destinationTokenAccount may belong to a different user that we have no authority to close. By default, it is set to true"
            },
            "description": "If set to true, it will automatically wrap/unwrap SOL. If it is false, it will use wSOL token account. It will be ignored if destinationTokenAccount is set because the destinationTokenAccount may belong to a different user that we have no authority to close. By default, it is set to true"
          },
          {
            "name": "useSharedAccounts",
            "in": "query",
            "schema": {
              "type": "boolean",
              "description": "This enables the usage of shared program accountns. That means no intermediate token accounts or open orders accounts need to be created for the users. But it also means that the likelihood of hot accounts is higher. By default, it is set to true"
            },
            "description": "This enables the usage of shared program accountns. That means no intermediate token accounts or open orders accounts need to be created for the users. But it also means that the likelihood of hot accounts is higher. By default, it is set to true"
          },
          {
            "name": "feeAccount",
            "in": "query",
            "schema": {
              "type": "string",
              "description": "The fee token account is derived using the seeds ['referral_ata', referral_account, mint], along with the REFER4ZgmyYx9c6He5XfaTMiGfdLwRnkV4RPp9t9iF3 referral contract. Only pass in if you set a feeBps and make sure that the feeAccount has been created"
            },
            "description": "The fee token account is derived using the seeds ['referral_ata', referral_account, mint], along with the REFER4ZgmyYx9c6He5XfaTMiGfdLwRnkV4RPp9t9iF3 referral contract. Only pass in if you set a feeBps and make sure that the feeAccount has been created"
          },
          {
            "name": "trackingAccount",
            "in": "query",
            "schema": {
              "type": "string",
              "description": "Optional public key used to tag and track swap transactions. Enables analytics and indexing via block explorers or analytics platforms like Solscan, SolanaFM, Dune, or Flipside."
            },
            "description": "Optional public key used to tag and track swap transactions. Enables analytics and indexing via block explorers or analytics platforms like Solscan, SolanaFM, Dune, or Flipside."
          },
          {
            "name": "computeUnitPriceMicroLamports",
            "in": "query",
            "schema": {
              "type": "integer",
              "description": "The compute unit price to prioritize the transaction, the additional fee will be computeUnitLimit (1400000) * computeUnitPriceMicroLamports. If auto is used, Jupiter will automatically set a priority fee and it will be capped at 5,000,000 lamports / 0.005 SOL"
            },
            "description": "The compute unit price to prioritize the transaction, the additional fee will be computeUnitLimit (1400000) * computeUnitPriceMicroLamports. If auto is used, Jupiter will automatically set a priority fee and it will be capped at 5,000,000 lamports / 0.005 SOL"
          },
          {
            "name": "prioritizationFeeLamports",
            "in": "query",
            "schema": {
              "type": "object",
              "properties": {
                "priorityLevelWithMaxLamports": {
                  "type": "object",
                  "properties": {
                    "priorityLevel": {
                      "type": "string",
                      "description": "The priority level to use for transaction prioritization. Can be set to either medium, high or veryHigh"
                    },
                    "maxLamports": {
                      "type": "integer",
                      "description": "The maximum amount of lamports to cap the priority fee estimation to prevent overpaying"
                    },
                    "global": {
                      "type": "boolean",
                      "description": "When set to true, the priority fee estimation will use a global estimate across the network rather than a localized estimate based on the specific accounts involved in the transaction"
                    }
                  },
                  "description": "Specifies the priority level and maximum lamports for transaction prioritization"
                },
                "jitoTipLamports": {
                  "type": "integer",
                  "description": "The exact amount of tip to use in a tip instruction for JITO. You can estimate how much to set using Jito tip percentiles endpoint. It should be used together with the Lil Jit - JITO Marketplace addon or JITO RPC."
                },
                "jitoTipLamportsWithPayer": {
                  "type": "object",
                  "properties": {
                    "lamports": {
                      "type": "integer",
                      "description": "Exact amount of lamports to use for the tip"
                    },
                    "payer": {
                      "type": "string",
                      "description": "Public key of an account that will be used to pay for the tip"
                    }
                  },
                  "description": "Specifies the Jito tip amount and a custom payer account to pay for the tip"
                }
              },
              "description": "To specify a level or amount of additional fees to prioritize the transaction. It can be used for either the priority fee or the JITO tip."
            },
            "description": "To specify a level or amount of additional fees to prioritize the transaction. It can be used for either the priority fee or the JITO tip."
          },
          {
            "name": "asLegacyTransaction",
            "in": "query",
            "schema": {
              "type": "boolean",
              "description": "Request a legacy transaction rather than the default versioned transaction, needs to be paired with a quote using asLegacyTransaction otherwise the transaction might be too large. By default, it is set as false"
            },
            "description": "Request a legacy transaction rather than the default versioned transaction, needs to be paired with a quote using asLegacyTransaction otherwise the transaction might be too large. By default, it is set as false"
          },
          {
            "name": "destinationTokenAccount",
            "in": "query",
            "schema": {
              "type": "string",
              "description": "Public key of the token account that will be used to receive the token out of the swap. If not provided, the user's ATA will be used. If provided, we assume that the token account is already initialized"
            },
            "description": "Public key of the token account that will be used to receive the token out of the swap. If not provided, the user's ATA will be used. If provided, we assume that the token account is already initialized"
          },
          {
            "name": "nativeDestinationAccount",
            "in": "query",
            "schema": {
              "type": "string",
              "description": "Public key of an account that will be used to receive native SOL out of the swap. This only works when the output mint is SOL. The account must not be owned by the token program. If not provided, the wrapped SOL will be unwrapped and the native SOL will be sent to the swap authority account. When sending native SOL to a new account, you must swap at least enough to cover the rent required to create it. This parameter is mutually exclusive with destinationTokenAccount"
            },
            "description": "Public key of an account that will be used to receive native SOL out of the swap. This only works when the output mint is SOL. The account must not be owned by the token program. If not provided, the wrapped SOL will be unwrapped and the native SOL will be sent to the swap authority account. When sending native SOL to a new account, you must swap at least enough to cover the rent required to create it. This parameter is mutually exclusive with destinationTokenAccount"
          },
          {
            "name": "dynamicComputeUnitLimit",
            "in": "query",
            "schema": {
              "type": "boolean",
              "description": "When enabled, it will do a swap simulation to get the compute unit used and set it in ComputeBudget's compute unit limit. This will increase latency slightly since there will be one extra RPC call to simulate this. By default it is set to 'False'"
            },
            "description": "When enabled, it will do a swap simulation to get the compute unit used and set it in ComputeBudget's compute unit limit. This will increase latency slightly since there will be one extra RPC call to simulate this. By default it is set to 'False'"
          },
          {
            "name": "skipUserAccountsRpcCalls",
            "in": "query",
            "schema": {
              "type": "boolean",
              "description": "When enabled, it will not do any rpc calls check on user's accounts. Enable it only when you already setup all the accounts needed for the trasaction, like wrapping or unwrapping sol, destination account is already created."
            },
            "description": "When enabled, it will not do any rpc calls check on user's accounts. Enable it only when you already setup all the accounts needed for the trasaction, like wrapping or unwrapping sol, destination account is already created."
          },
          {
            "name": "dynamicSlippage",
            "in": "query",
            "schema": {
              "type": "boolean",
              "description": "When enabled, the swap transaction will estimate slippage in real time and automatically override the `slippageBps` value from the quote response. This must be used together with `dynamicSlippage` in the /quote endpoint to ensure consistency. If not used in both places, the transaction will fall back to the original `slippageBps` from the /quote response. Default is false."
            },
            "description": "When enabled, the swap transaction will estimate slippage in real time and automatically override the `slippageBps` value from the quote response. This must be used together with `dynamicSlippage` in the /quote endpoint to ensure consistency. If not used in both places, the transaction will fall back to the original `slippageBps` from the /quote response. Default is false."
          },
          {
            "name": "blockhashSlotsToExpiry",
            "in": "query",
            "schema": {
              "type": "integer",
              "description": "Number of slots (≈400ms each) the transaction remains valid after being built. For example, 10 slots ≈ 4 seconds of validity."
            },
            "description": "Number of slots (≈400ms each) the transaction remains valid after being built. For example, 10 slots ≈ 4 seconds of validity."
          },
          {
            "name": "quoteResponse",
            "in": "query",
            "schema": {
              "type": "object",
              "properties": {
                "inputMint": {
                  "type": "string",
                  "description": "The source token's mint address"
                },
                "inAmount": {
                  "type": "string",
                  "description": "The amount of the source token being swapped"
                },
                "outputMint": {
                  "type": "string",
                  "description": "The destination token's mint address"
                },
                "outAmount": {
                  "type": "string",
                  "description": "Calculated output amount from the routing engine. Value includes platform fees and DEX fees, excluding slippage"
                },
                "otherAmountThreshold": {
                  "type": "string",
                  "description": "Calculated minimum output amount after accounting for slippageBps on the outAmount value"
                },
                "swapMode": {
                  "type": "string",
                  "description": "Indicates the swap mode"
                },
                "slippageBps": {
                  "type": "integer",
                  "description": "Slippage tolerance in basis points"
                },
                "platformFee": {
                  "type": "object",
                  "properties": {
                    "amount": {
                      "type": "string",
                      "description": "The amount of the platform fee"
                    },
                    "feeBps": {
                      "type": "integer",
                      "description": "The fee percentage in basis points"
                    }
                  },
                  "description": "The platform Fee object which contains the following fields:"
                },
                "priceImpactPct": {
                  "type": "string",
                  "description": "The percentage of price impact due to the swap"
                },
                "routePlan": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "swapInfo": {
                        "type": "object",
                        "properties": {
                          "ammKey": {
                            "type": "string",
                            "description": "The key identifying the Automated Market Maker (AMM) responsible for the swap"
                          },
                          "label": {
                            "type": "string",
                            "description": "A label or identifier for the AMM"
                          },
                          "inputMint": {
                            "type": "string",
                            "description": "The mint address of the token being swapped from in this step"
                          },
                          "outputMint": {
                            "type": "string",
                            "description": "The mint address of the token being received in this step"
                          },
                          "inAmount": {
                            "type": "string",
                            "description": "The amount of the token being swapped from in this step"
                          },
                          "outAmount": {
                            "type": "string",
                            "description": "The amount of the token being received after the swap in this step"
                          },
                          "feeAmount": {
                            "type": "string",
                            "description": "The amount of fee charged for this step of the swap"
                          },
                          "feeMint": {
                            "type": "string",
                            "description": "The mint address of the token used for paying fees in this step"
                          }
                        },
                        "description": "Detailed information about a specific swap step"
                      },
                      "percent": {
                        "type": "integer",
                        "description": "The percentage allocation of the swap for this step"
                      },
                      "bps": {
                        "type": "integer",
                        "description": "The basis points allocation of the swap for this step"
                      }
                    }
                  },
                  "description": "An array containing detailed information about each step of the swap process"
                },
                "instructionVersion": {
                  "type": "string",
                  "description": "The version of instruction used in the swap program. Possible values: V1 or V2, or null"
                },
                "contextSlot": {
                  "type": "integer",
                  "description": "A contextual identifier"
                },
                "timeTaken": {
                  "type": "integer",
                  "description": "Time taken for the request to be processed"
                }
              },
              "description": "The quoteResponse object which you can get from the response from the /quote method"
            },
            "required": true,
            "description": "The quoteResponse object which you can get from the response from the /quote method"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "tokenLedgerInstruction": {
                      "type": "object",
                      "properties": {
                        "programId": {
                          "type": "string",
                          "description": "The program ID of the token ledger program"
                        },
                        "accounts": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "pubkey": {
                                "type": "string",
                                "description": "The public key of the account"
                              },
                              "isSigner": {
                                "type": "boolean",
                                "description": "A boolean indicating if the account is a signer"
                              },
                              "isWritable": {
                                "type": "boolean",
                                "description": "A boolean indicating if the account is writable"
                              }
                            }
                          },
                          "description": "List of accounts involved in the instruction"
                        },
                        "data": {
                          "type": "string",
                          "description": "Instruction data in base64 encoding"
                        }
                      },
                      "description": "(Optional) The tokenLedgerInstruction object which contains the following fields:"
                    },
                    "computeBudgetInstructions": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "programId": {
                            "type": "string",
                            "description": "The program ID of the compute budget program"
                          },
                          "accounts": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "pubkey": {
                                  "type": "string",
                                  "description": "The public key of the account"
                                },
                                "isSigner": {
                                  "type": "boolean",
                                  "description": "A boolean indicating if the account is a signer"
                                },
                                "isWritable": {
                                  "type": "boolean",
                                  "description": "A boolean indicating if the account is writable"
                                }
                              }
                            },
                            "description": "List of accounts involved in the instruction"
                          },
                          "data": {
                            "type": "string",
                            "description": "Instruction data in base64 encoding"
                          }
                        }
                      },
                      "description": "The computeBudgetInstructions object which contains the following fields:"
                    },
                    "setupInstructions": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "programId": {
                            "type": "string",
                            "description": "The program ID of the token setup program"
                          },
                          "accounts": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "pubkey": {
                                  "type": "string",
                                  "description": "The public key of the account"
                                },
                                "isSigner": {
                                  "type": "boolean",
                                  "description": "A boolean indicating if the account is a signer"
                                },
                                "isWritable": {
                                  "type": "boolean",
                                  "description": "A boolean indicating if the account is writable"
                                }
                              }
                            },
                            "description": "List of accounts involved in the instruction"
                          },
                          "data": {
                            "type": "string",
                            "description": "Instruction data in base64 encoding"
                          }
                        }
                      },
                      "description": "The setupInstructions object which contains the following fields:"
                    },
                    "swapInstruction": {
                      "type": "object",
                      "properties": {
                        "programId": {
                          "type": "string",
                          "description": "The program ID of the swap program"
                        },
                        "accounts": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "pubkey": {
                                "type": "string",
                                "description": "The public key of the account"
                              },
                              "isSigner": {
                                "type": "boolean",
                                "description": "A boolean indicating if the account is a signer"
                              },
                              "isWritable": {
                                "type": "boolean",
                                "description": "A boolean indicating if the account is writable"
                              }
                            }
                          },
                          "description": "List of accounts involved in the instruction"
                        },
                        "data": {
                          "type": "string",
                          "description": "Instruction data in base64 encoding"
                        }
                      },
                      "description": "The swapInstruction object which contains the following fields:"
                    },
                    "cleanupInstruction": {
                      "type": "object",
                      "properties": {
                        "programId": {
                          "type": "string",
                          "description": "The program ID of the cleanup program"
                        },
                        "accounts": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "pubkey": {
                                "type": "string",
                                "description": "The public key of the account"
                              },
                              "isSigner": {
                                "type": "boolean",
                                "description": "A boolean indicating if the account is a signer"
                              },
                              "isWritable": {
                                "type": "boolean",
                                "description": "A boolean indicating if the account is writable"
                              }
                            }
                          },
                          "description": "List of accounts involved in the instruction"
                        },
                        "data": {
                          "type": "string",
                          "description": "Instruction data in base64 encoding"
                        }
                      },
                      "description": "(Optional) The cleanupInstruction object which contains the following fields:"
                    },
                    "otherInstructions": {
                      "type": "array",
                      "items": {},
                      "description": "Additional instructions if any"
                    },
                    "addressLookupTableAddresses": {
                      "type": "array",
                      "items": {},
                      "description": "List of lookup table addresses for versioned transactions"
                    },
                    "prioritizationFeeLamports": {
                      "type": "integer",
                      "description": "The prioritization fee in lamports"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/tokens": {
      "get": {
        "operationId": "get_tokens",
        "summary": "Returns a list of all the tradable mints.",
        "tags": [
          "tokens"
        ],
        "externalDocs": {
          "description": "Quicknode docs",
          "url": "https://www.quicknode.com/docs/solana/tokens"
        },
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "mints": {
                      "type": "array",
                      "items": {},
                      "description": "A list of the addresses of all tradable mints"
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  },
  "servers": [
    {
      "url": "https://docs-demo.solana-mainnet.quiknode.pro",
      "description": "Quicknode Solana"
    }
  ]
}