# Table of Contents - [Saturn | Saturn Documentation](#saturn-saturn-documentation) - [Trading in Saturn | Saturn Documentation](#trading-in-saturn-saturn-documentation) - [How to Swap | Saturn Documentation](#how-to-swap-saturn-documentation) - [How Saturn Protects Your Trades from MEV Risks | Saturn Documentation](#how-saturn-protects-your-trades-from-mev-risks-saturn-documentation) - [Managing your Portfolio on Saturn | Saturn Documentation](#managing-your-portfolio-on-saturn-saturn-documentation) - [Pool API | Saturn Documentation](#pool-api-saturn-documentation) - [Open a position in a Liquidity Pool | Saturn Documentation](#open-a-position-in-a-liquidity-pool-saturn-documentation) - [Saturn API | Saturn Documentation](#saturn-api-saturn-documentation) - [How to Create a Pool on Saturn | Saturn Documentation](#how-to-create-a-pool-on-saturn-saturn-documentation) - [Add Shards | Saturn Documentation](#add-shards-saturn-documentation) - [Initialize pool | Saturn Documentation](#initialize-pool-saturn-documentation) - [Open position | Saturn Documentation](#open-position-saturn-documentation) - [Increase Liquidity | Saturn Documentation](#increase-liquidity-saturn-documentation) - [Liquidity Pool SDK | Saturn Documentation](#liquidity-pool-sdk-saturn-documentation) - [Indexer API | Saturn Documentation](#indexer-api-saturn-documentation) - [Prices | Saturn Documentation](#prices-saturn-documentation) - [Charts | Saturn Documentation](#charts-saturn-documentation) - [Swap | Saturn Documentation](#swap-saturn-documentation) - [Remove Liquidity | Saturn Documentation](#remove-liquidity-saturn-documentation) - [Wallet | Saturn Documentation](#wallet-saturn-documentation) - [Swap Quotes | Saturn Documentation](#swap-quotes-saturn-documentation) - [Stats | Saturn Documentation](#stats-saturn-documentation) - [Overview | Saturn Documentation](#overview-saturn-documentation) - [How-To-Links | Saturn Documentation](#how-to-links-saturn-documentation) - [Withdrawing from Trading account | Saturn Documentation](#withdrawing-from-trading-account-saturn-documentation) - [Boost Transaction | Saturn Documentation](#boost-transaction-saturn-documentation) - [Setting up Trading Account | Saturn Documentation](#setting-up-trading-account-saturn-documentation) - [Trade History | Saturn Documentation](#trade-history-saturn-documentation) - [Setting up a Trading Account (v3) and preparing for Rings Airdrops | Saturn Documentation](#setting-up-a-trading-account-v3-and-preparing-for-rings-airdrops-saturn-documentation) - [Collect | Saturn Documentation](#collect-saturn-documentation) - [Charts | Saturn Documentation](#charts-saturn-documentation) - [Positions | Saturn Documentation](#positions-saturn-documentation) - [Your Profile | Saturn Documentation](#your-profile-saturn-documentation) - [Orderbook | Saturn Documentation](#orderbook-saturn-documentation) - [Positions | Saturn Documentation](#positions-saturn-documentation) - [Transactions | Saturn Documentation](#transactions-saturn-documentation) - [Tutorial videos | Saturn Documentation](#tutorial-videos-saturn-documentation) - [How to place a sell order | Saturn Documentation](#how-to-place-a-sell-order-saturn-documentation) - [Swap | Saturn Documentation](#swap-saturn-documentation) - [Trading on Saturn | Saturn Documentation](#trading-on-saturn-saturn-documentation) - [How to place a buy order | Saturn Documentation](#how-to-place-a-buy-order-saturn-documentation) - [Collections | Saturn Documentation](#collections-saturn-documentation) - [What is a PSBT | Saturn Documentation](#what-is-a-psbt-saturn-documentation) - [Why are there batch sizes? | Saturn Documentation](#why-are-there-batch-sizes-saturn-documentation) - [FAQs | Saturn Documentation](#faqs-saturn-documentation) - [What is a UTXO | Saturn Documentation](#what-is-a-utxo-saturn-documentation) - [Compatible Wallets | Saturn Documentation](#compatible-wallets-saturn-documentation) - [More on Rare SATs | Saturn Documentation](#more-on-rare-sats-saturn-documentation) - [Why is my Available balance different than my Total balance? | Saturn Documentation](#why-is-my-available-balance-different-than-my-total-balance-saturn-documentation) - [Pools | Saturn Documentation](#pools-saturn-documentation) - [What are Satoshi's, Rare SATs, and Rings? | Saturn Documentation](#what-are-satoshi-s-rare-sats-and-rings-saturn-documentation) --- # Saturn | Saturn Documentation ![Page cover](https://docs.saturnbtc.io/~gitbook/image?url=https%3A%2F%2F3489665744-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FedBT5s5MOw7m2x4ZUZp0%252Fuploads%252Ftm4XUn5sgL1cNZQ5Ssoc%252Fbackground-1440x1024.png%3Falt%3Dmedia%26token%3Daf1c6bd5-3eea-4c16-a965-8fccb02010d0&width=1248&dpr=4&quality=100&sign=11713c26&sv=2) Saturn is a decentralized exchange (DEX) on the base layer of Bitcoin, introducing features that allow users to trade assets directly on Bitcoin without relying on custodial solutions, layer two bridges or wrapped assets. By utilizing the Arch Network's virtual machine and verifier nodes, Saturn enables smart contract functionalities, atomic swaps, and liquidity pools—bringing decentralized finance (DeFi) capabilities to Bitcoin's most secure base layer. * * * #### [](https://docs.saturnbtc.io/#about-saturn-a-new-approach-to-bitcoin-defi) About Saturn: A New Approach to Bitcoin DeFi * Overview: Saturn enables trading, liquidity provision, and decentralized finance on Bitcoin's main layer without bridging or wrapping assets. This feature provides a secure, transparent, and efficient trading experience while adhering to Bitcoin's principles. * Unique Value Proposition: Saturn simplifies DeFi on Bitcoin with an intuitive experience, making it comparable to trading experiences on networks like Solana while offering superior security through Bitcoin’s decentralization. #### [](https://docs.saturnbtc.io/#history) History Saturn was born during the rise of the rare satoshi craze. The team noticed people trading Bitcoin derivatives, with pizza satoshis changing hands on Discord in an entirely trust-dependent environment—no reliable pricing or secure market structure existed. This created a highly inefficient market. Saturn’s first offering was a straightforward orderbook, allowing users to trade rare satoshi UTXOs securely. The product gained momentum as Bitcoin tokens became more popular, especially after the introduction of Runes. From the start, we’ve held a core belief: delivering the best possible user experience will drive the most growth on Bitcoin. This led to the development of Saturn’s second iteration, a trading wallet-based exchange on Bitcoin’s base layer, offering features like open orders, simple swaps, partially fillable orders, and mempool sniping resistance—functionality not available anywhere else. However, we recognized friction in the user experience with trading wallets, which fell short of our ideal. That’s when we partnered with Arch, whose smart contract execution on Bitcoin’s base layer enables us to bring an unparalleled DeFi experience directly to Bitcoin, creating a seamless and intuitive environment for our users. [](https://docs.saturnbtc.io/#important-links) Important Links ------------------------------------------------------------------- Saturn - [https://www.saturnbtc.io/](https://www.saturnbtc.io/) Twitter - [https://twitter.com/Saturn\_btc](https://twitter.com/Saturn_btc) Discord - [https://discord.gg/KxgMSgWe](https://discord.gg/KxgMSgWe) [NextTrading in Saturn](https://docs.saturnbtc.io/traders/trading-in-saturn) Last updated 8 months ago --- # Trading in Saturn | Saturn Documentation Trading Bitcoin tokens should be simple. That guiding principle has driven Saturn’s development from the very start, inspiring us to create a platform that removes the friction and complexity typically associated with trading on Bitcoin. Saturn is now the most seamless and reliable way to trade directly on Bitcoin’s base layer. It’s a powerful yet intuitive trading platform, built to deliver a smooth experience while maintaining Bitcoin’s trustless and decentralized nature. Saturn empowers users with advanced trading features, allowing for liquidity pools and AMM swaps on the base layer of Bitcoin. With Saturn’s latest enhancements, traders can engage with a streamlined UI, designed to offer easy access to deep liquidity and an unmatched DeFi experience on Bitcoin. [PreviousSaturn](https://docs.saturnbtc.io/) [NextHow to Swap](https://docs.saturnbtc.io/traders/how-to-swap) Last updated 8 months ago --- # How to Swap | Saturn Documentation 1. **Connect Wallet** - Click the "Connect" button ![](https://docs.saturnbtc.io/~gitbook/image?url=https%3A%2F%2Flh7-rt.googleusercontent.com%2Fdocsz%2FAD_4nXddB4UPh4gjVylF6j_Pd70AL6gs0_y8MM_KxQ415nSRa31LQ6lPTwNSsfqk-aL36UdB6fnS6yz3nENcx6bsOZeDC0rUE8hL0bDTxI8HFIzuncGoGrYAfdH3lLWNllPMDjq4YHrNEg%3Fkey%3DoAtmyo-NMCvIOuXKIAp_NlJ6&width=768&dpr=4&quality=100&sign=298d2048&sv=2) 1. **Select Tokens** - Select the token you’d like to use (Sell) and the token you want to receive (Buy) using the dropdowns. ![](https://docs.saturnbtc.io/~gitbook/image?url=https%3A%2F%2Flh7-rt.googleusercontent.com%2Fdocsz%2FAD_4nXcHNleeuHqv8IOKOUXk0qI2z4EoxapBRwe87oCLQK0YCJis0QfAqV-bEAfGJp375_stVtxTwuQsT19nr6UAbSgQxHci_PLF01kgDBsBXiVuq3n2BERI2M7qx5Cf_yYlWSpV5Mlrkg%3Fkey%3DoAtmyo-NMCvIOuXKIAp_NlJ6&width=768&dpr=4&quality=100&sign=1dd9f92f&sv=2) 1. **Input Amounts** - Enter the amount you want to pay or receive in the appropriate fields, or use the "Half" or "Max" preset options to automatically fill in those specific values. ![](https://docs.saturnbtc.io/~gitbook/image?url=https%3A%2F%2Flh7-rt.googleusercontent.com%2Fdocsz%2FAD_4nXeNNzJ42HbNlukVo3h0jEdtRsVQxsJwPr7jBiDQnbC8T35DDzAxkzMJeEEu8rJ_-jbENJdjqP_1tEe_GXj42AhY841pwwix2bCV6Nh1YR4XroZ6cZuRL_9ud9xczH_Dpc59oOgG2A%3Fkey%3DoAtmyo-NMCvIOuXKIAp_NlJ6&width=768&dpr=4&quality=100&sign=2b884ce7&sv=2) 1. **Review Details** - A quote for your trade will be displayed below the "Submit" button, you can also use the "Show more" drop down arrow, to view more details about your trade. ![](https://docs.saturnbtc.io/~gitbook/image?url=https%3A%2F%2Flh7-rt.googleusercontent.com%2Fdocsz%2FAD_4nXeZboRyuVK0ugCDAxDwXL_y_CCp4h2OHHbzkv9FNAZFZYHiED5LeFw5y4qoHSzdXZQvTif9LUH6t21AK5b8YURTr5AC0CBD_JqyYu6ngWFdIZlq6cXw1TumNfWHxxFgR1ITixKQUA%3Fkey%3DoAtmyo-NMCvIOuXKIAp_NlJ6&width=768&dpr=4&quality=100&sign=d298d567&sv=2) 1. **Submit** \- Confirm the details of the trade, and if happy, click "Submit" and approve the transaction. The UI will display the progress of your trade before showing you a confirmation. [PreviousTrading in Saturn](https://docs.saturnbtc.io/traders/trading-in-saturn) [NextHow Saturn Protects Your Trades from MEV Risks](https://docs.saturnbtc.io/traders/how-saturn-protects-your-trades-from-mev-risks) Last updated 8 months ago --- # How Saturn Protects Your Trades from MEV Risks | Saturn Documentation Maximal Extractable Value (MEV) can lead to unfair trading practices like front-running, where others profit by manipulating transactions. Saturn has implemented smart solutions to keep your trades safe and fair: 1. #### [](https://docs.saturnbtc.io/traders/how-saturn-protects-your-trades-from-mev-risks#secure-btc-to-rune-swaps) Secure BTC to Rune Swaps * Immutable Transactions: Your transactions are signed securely so they can't be changed once sent. * Your Benefit: Eliminates the risk of someone intercepting or altering your trade. 1. **Protected Rune to BTC Swaps** * Pooled Transactions with CPFP: Saturn pools user transactions and uses a method called Child Pays for Parent (CPFP), where each transaction supports the next. * Your Benefit: Makes it nearly impossible for attackers to interfere with your trade. 1. #### [](https://docs.saturnbtc.io/traders/how-saturn-protects-your-trades-from-mev-risks#transparent-user-controlled-liquidity-pools) Transparent, User-Controlled Liquidity Pools * Non-Custodial Pools: You always maintain control of your funds. * Transparency: All operations are open, so you know exactly what's happening. * Your Benefit: No hidden manipulation—just fair and secure trading. 1. #### [](https://docs.saturnbtc.io/traders/how-saturn-protects-your-trades-from-mev-risks#fair-transaction-ordering) Fair Transaction Ordering * First-In, First-Out Processing: Transactions are processed exactly in the order they arrive. * Future Enhancements: Saturn is working on cryptographic methods to guarantee transaction order can't be tampered with. * Your Benefit: Ensures no one can jump the line or reorder trades to their advantage. [PreviousHow to Swap](https://docs.saturnbtc.io/traders/how-to-swap) [NextOpen a position in a Liquidity Pool](https://docs.saturnbtc.io/liquidity-providers/open-a-position-in-a-liquidity-pool) Last updated 8 months ago --- # Managing your Portfolio on Saturn | Saturn Documentation 1. **Navigate to the portfolio tab which can be found in the "Pools" section of Saturn** ![](https://docs.saturnbtc.io/~gitbook/image?url=https%3A%2F%2Flh7-rt.googleusercontent.com%2Fdocsz%2FAD_4nXdbqCrX3vAq-D6Q8wIq3hYRNCGEc-h98yzW-aFN6l46ICTpBt2fwqrPo86vYgVjEeLVF71nsX8cf2byVP7kYLUxR5eTFdAcsRxesBsCGGbK_QDjKvRaRL-Hf_PigfyVwTA_aZWM9Q%3Fkey%3DoAtmyo-NMCvIOuXKIAp_NlJ6&width=768&dpr=4&quality=100&sign=7ffab7c3&sv=2) 1. **Select the position you want to adjust** ![](https://docs.saturnbtc.io/~gitbook/image?url=https%3A%2F%2Flh7-rt.googleusercontent.com%2Fdocsz%2FAD_4nXdfHbDCRt_OOCqMLkcrWYcWV8F1ACeq_RDgQ4WhA0KyNrKZMOUbEDyUmnxTV_8Lf9C2FQlc7d_aPr0OQSaqEynyHefuBl3PJ6puoy5nViAOKubu2Xn1IX7TGtPeZszFFUdeS2elBw%3Fkey%3DoAtmyo-NMCvIOuXKIAp_NlJ6&width=768&dpr=4&quality=100&sign=5939667&sv=2) If depositing, enter the liquidity amounts that you want to deposit into the pool. Review all pool details, including tokens, liquidity amounts, and fee tier. If this is a new pool and there is no liquidity, the amount of liquidity that you provide will set the initial price of the pool. _TIP: Ensure you double-check the token details to avoid creating a pool with the wrong assets._ ![](https://docs.saturnbtc.io/~gitbook/image?url=https%3A%2F%2Flh7-rt.googleusercontent.com%2Fdocsz%2FAD_4nXe3abVr312dV4ya3FJu3iTN8cVQmZku6ckRYMhDtGfrLSW6i6BiDFR89cUNSrk56zfckKgQ0AKi9KHI7TGsjNF1703pKp5sYShnRs1U_WVEBhTMdBXUhi8RaifsySsgOAMgVbQZ%3Fkey%3DoAtmyo-NMCvIOuXKIAp_NlJ6&width=768&dpr=4&quality=100&sign=ab2d1408&sv=2) If withdrawing, enter the amount of tokens you wish to withdraw using the fields, percentage slider, or preset percentage buttons. ![](https://docs.saturnbtc.io/~gitbook/image?url=https%3A%2F%2Flh7-rt.googleusercontent.com%2Fdocsz%2FAD_4nXd-HiQHH_QvVB1VI8G3hDU8hL8ZjoKDN03PfoQCim25aK_qWddMXySzNIGN-lhs2J79yayjK7p42xlZP430V9MtQ6v182_7Wrdw6cvrLDpPD6lij6E2gO0R3JBZIByibY8C9o7eQA%3Fkey%3DoAtmyo-NMCvIOuXKIAp_NlJ6&width=768&dpr=4&quality=100&sign=f929c4ac&sv=2) 1. **Click Submit** - Once you have double checked all the detail are accurate, click the "Submit Button". Congratulations, you have successfully adjusted your position! ![](https://docs.saturnbtc.io/~gitbook/image?url=https%3A%2F%2Flh7-rt.googleusercontent.com%2Fdocsz%2FAD_4nXfmGCke_Z_MVmi4XGt7ZIIiGcDD4JKzvL-kKoO5kd6Wavymz6yUOlN4Gj1YwOkt0q-VCv3P31EqIB7Zuli9BgNCUILJBuFje-19OH-SCW421IbJGslJAToVuGRgnOEVPfloX9okxA%3Fkey%3DoAtmyo-NMCvIOuXKIAp_NlJ6&width=768&dpr=4&quality=100&sign=9439ede5&sv=2) [PreviousOpen a position in a Liquidity Pool](https://docs.saturnbtc.io/liquidity-providers/open-a-position-in-a-liquidity-pool) [NextHow to Create a Pool on Saturn](https://docs.saturnbtc.io/creators/how-to-create-a-pool-on-saturn) Last updated 8 months ago --- # Pool API | Saturn Documentation The Pools API allows you to interact with the program's instructions for managing liquidity pools, performing swaps, and more. The general process for most instructions consists of three main steps: ### [](https://docs.saturnbtc.io/builders/saturn-api/pool-api#general-process-overview) General Process Overview 1. **Generate a PSBT (Partially Signed Bitcoin Transaction):** * **Endpoint:** `/{instruction}/psbt` * **Description:** Call this endpoint to generate a PSBT along with additional information such as fees, inputs to sign, and other necessary data. * **Response Includes:** * The PSBT in base64 format. * Fee details. * Inputs that need to be signed. * Any additional necessary data. 2. **Obtain a Message to Sign:** * **Endpoint:** `/{instruction}/message` * **Description:** After generating and signing the PSBT, send it along with the required parameters for the instruction to this endpoint. It will return a message in hexadecimal format that you need to sign with your wallet. * **Requirements:** * Use **BIP322** for signing. * Use a **Taproot** address for the signature. 3. **Submit the Signed Message and Execute the Instruction:** * **Endpoint:** `/{instruction}` * **Description:** Once you have the signed message, send the signature along with the necessary parameters for the instruction to this endpoint. All parameters will be validated, and if everything matches, the message will be broadcast to the Arch network. #### [](https://docs.saturnbtc.io/builders/saturn-api/pool-api#notes) Notes: * In some instructions, such as **Swap**, the signed PSBT is included in the message sent to the program. The program will then complete the PSBT with its relevant inputs and outputs and broadcast it to the network. * In other instructions, like **Increase Liquidity**, **Open Position**, **Initialize Pool**, and **Decrease Liquidity**, the PSBT is broadcast to the network in the third step, and immediately after, the program instruction is called. * The general process is similar across all instructions, but there are specific differences in some cases. ### [](https://docs.saturnbtc.io/builders/saturn-api/pool-api#specific-instructions-and-notes) Specific Instructions and Notes #### [](https://docs.saturnbtc.io/builders/saturn-api/pool-api#decrease-liquidity) Decrease Liquidity * **Optional PSBT Creation:** Creating a PSBT is optional for this instruction. * **Purpose of PSBT:** The PSBT is used to pay transaction fees in case the BTC withdrawn from the pool is not sufficient to cover the network fees. * **Process:** If you choose to create a PSBT, follow the general process. If not, you can proceed directly to obtaining the message to sign. #### [](https://docs.saturnbtc.io/builders/saturn-api/pool-api#swap-from-rune-to-btc) Swap from Rune to BTC * **Additional PSBT (**`**splitRunePsbt**`**):** When swapping from Rune to BTC, the `/{instruction}/psbt` endpoint may return an additional PSBT called `splitRunePsbt`. * **Purpose of** `**splitRunePsbt**`**:** This PSBT is necessary to create a transaction that generates a UTXO with the required amount of Runes to trade. * **Process:** * If the endpoint responds with a `splitRunePsbt`, you need to sign both the `splitRunePsbt` and the main PSBT for trading. * Send both signed PSBTs to the `/{instruction}/message` endpoint. ### [](https://docs.saturnbtc.io/builders/saturn-api/pool-api#additional-considerations) Additional Considerations * **Signing Requirements:** * **BIP322:** Ensure you are using BIP322 for signing messages. This standard allows for message signing in a way that is compatible with Bitcoin's consensus rules. * **Taproot Addresses:** Signatures for Arch Network messages must come from a Taproot address. ### [](https://docs.saturnbtc.io/builders/saturn-api/pool-api#start-building-now) Start building now If you want to get a hands-on experience now and stop reading docs, check out these options and start building with the Pools API: * [**Typescript SDK**](https://www.npmjs.com/package/@saturnbtcio/pools-api-sdk) : A fully-featured SDK, allowing for easy and type-safe interactions with the API. * [**Swagger Documentation**](https://api.staging.saturnbtc.io/swagger) : An OpenAPI specification is available, providing detailed information about each endpoint, request, and response format. * [**Stackblitz Environment**](https://saturnbtc.io/sdk/api) : We've deployed a Stockblitz environment where you can experiment with the API in a live setting, enabling you to test queries and see real-time data without setting up your own backend. [PreviousSaturn API](https://docs.saturnbtc.io/builders/saturn-api) [NextInitialize pool](https://docs.saturnbtc.io/builders/saturn-api/pool-api/initialize-pool) Last updated 3 months ago --- # Open a position in a Liquidity Pool | Saturn Documentation 1. **Navigate to the Pools section on the Saturn platform** ![](https://docs.saturnbtc.io/~gitbook/image?url=https%3A%2F%2Flh7-rt.googleusercontent.com%2Fdocsz%2FAD_4nXdx1G1NEkyG-NxMZerfOmZRzlnssCD5yjcDqvkCDBTjNOxhyaKeOaifF0mGsZD9rmRjLwTwLmTpP5q2FMdhwWby9yVy-NxCHwsi6KDaAahs2FJdu-Ro19UBHENhHuzzewENa-tP%3Fkey%3DoAtmyo-NMCvIOuXKIAp_NlJ6&width=768&dpr=4&quality=100&sign=1f91c5e1&sv=2) 1. **Select the pool you want to open a position in** - In this example we will use BESTINSLOT.XYZ ![](https://docs.saturnbtc.io/~gitbook/image?url=https%3A%2F%2Flh7-rt.googleusercontent.com%2Fdocsz%2FAD_4nXe6fYYHOKK8NgZqZRcYNyKH-iELefOdmMZlLVDvsnDDKslXf2EIGGDZCsNgB7hd1L9GjtN2j-lHQq-Ypp0Escv6_b9n0J4JhoN1nRlL4rKajHfFmhd60lTrKuiGgaC8kYkofXunOw%3Fkey%3DoAtmyo-NMCvIOuXKIAp_NlJ6&width=768&dpr=4&quality=100&sign=dfe46666&sv=2) 1. **Select the pool for the token you have chosen with the fee rate that you desire** ![](https://docs.saturnbtc.io/~gitbook/image?url=https%3A%2F%2Flh7-rt.googleusercontent.com%2Fdocsz%2FAD_4nXcYkWlCYI4tAsJUsurePAsfpwWWa0TMQiJyKqjGy1swonGhzN96KzR7dbbcyRkt9QpBx7gHouZB19JaNYGFp_AoY1VoG5_hhFU2XpcTP-ScTyinL6SwFzUpWlmyfX1Ezmk_auuI6Q%3Fkey%3DoAtmyo-NMCvIOuXKIAp_NlJ6&width=768&dpr=4&quality=100&sign=26af12dd&sv=2) 1. **Click deposit to add to liquidity the pool** ![](https://docs.saturnbtc.io/~gitbook/image?url=https%3A%2F%2Flh7-rt.googleusercontent.com%2Fdocsz%2FAD_4nXdcbqgCUxpBCjsujMHWUu0xw8OkKgkoc8lcRQkxXLTKgTMgAvw3wAwwH8MNHtBs1NcjUz7LBuYc_jI_gsW5spmzVT7QIFsg6yzNEGSndbkAq2vIUw4pTQ_g7wpvd9baXzLt-9i8%3Fkey%3DoAtmyo-NMCvIOuXKIAp_NlJ6&width=768&dpr=4&quality=100&sign=658c9a09&sv=2) 1. **Enter the amounts** - Enter the liquidity amounts that you want to deposit into the pool. Review all pool details, including tokens, liquidity amounts, and fee tier. If this is a new pool and there is no liquidity, the amount of liquidity that you provide will set the initial price of the pool. _TIP: Ensure you double-check the token details to avoid creating a pool with the wrong assets._ ![](https://docs.saturnbtc.io/~gitbook/image?url=https%3A%2F%2Flh7-rt.googleusercontent.com%2Fdocsz%2FAD_4nXe3abVr312dV4ya3FJu3iTN8cVQmZku6ckRYMhDtGfrLSW6i6BiDFR89cUNSrk56zfckKgQ0AKi9KHI7TGsjNF1703pKp5sYShnRs1U_WVEBhTMdBXUhi8RaifsySsgOAMgVbQZ%3Fkey%3DoAtmyo-NMCvIOuXKIAp_NlJ6&width=768&dpr=4&quality=100&sign=ab2d1408&sv=2) 1. **Click Submit** - Submit and approve you transaction. Congratulations, you have added to liquidity to a pool! _NOTE: Creating a pool incurs network fees on the Bitcoin base layer. Review the fees before confirming._ ![](https://docs.saturnbtc.io/~gitbook/image?url=https%3A%2F%2Flh7-rt.googleusercontent.com%2Fdocsz%2FAD_4nXdKxhXHdJjjoWw9SmW-abr4Dyl2chohuCblRwRdxn6ek0HFFcVKZxIdLBCcCr57UvELE5VvfQNykN1qCRI2ZSJF3IEVoL2Slho_cyABlK-IcelWUvNRsKnFxAP8SrZ7N1p-xCpU-g%3Fkey%3DoAtmyo-NMCvIOuXKIAp_NlJ6&width=768&dpr=4&quality=100&sign=d34beb4e&sv=2) [PreviousHow Saturn Protects Your Trades from MEV Risks](https://docs.saturnbtc.io/traders/how-saturn-protects-your-trades-from-mev-risks) [NextManaging your Portfolio on Saturn](https://docs.saturnbtc.io/liquidity-providers/managing-your-portfolio-on-saturn) Last updated 8 months ago --- # Saturn API | Saturn Documentation Saturn has created the first decentralized AMM program on Bitcoin. To facilitate development on top of these liquidity pools, we've created APIs to make it easier for developers like you to build innovative applications. We offer two services: 1. [**Pool API**](https://docs.saturnbtc.io/builders/saturn-api/pool-api) : This API allows you to interact with the liquidity pools. You can create pools, open positions, add or remove liquidity, and perform token swaps. 2. [**Indexer API**](https://docs.saturnbtc.io/builders/saturn-api/indexer-api) : This service lets you search all available pools and provides extensive information and statistics about them. You can also view transactions made within a pool or by a user, filter by transaction type, and more. If you're eager to get started quickly, we've provided direct links to the Swagger documentation for each API, as well as a development environment powered by StockBlitz, so you can test these APIs directly. An API Key is required to call the different APIs. The best way to obtain an API Key is to reach out to us on [Telegram](https://t.me/+a7xuJQCamRdiYmQ0) . If you feel like API is not your thing and you instead want to call the program on the Arch Network, check out our [Liquidity Pool SDK](https://docs.saturnbtc.io/builders/liquidity-pool-sdk) . [PreviousHow to Create a Pool on Saturn](https://docs.saturnbtc.io/creators/how-to-create-a-pool-on-saturn) [NextPool API](https://docs.saturnbtc.io/builders/saturn-api/pool-api) Last updated 9 months ago --- # How to Create a Pool on Saturn | Saturn Documentation ### [](https://docs.saturnbtc.io/creators/how-to-create-a-pool-on-saturn#introduction) Introduction Creating a liquidity pool on Saturn allows you to bring your token into a decentralized, trustless trading environment directly on the Bitcoin base layer. Saturn pools eliminate the need for bridging or centralized intermediaries, offering a secure platform for Bitcoin-native token trading. ### [](https://docs.saturnbtc.io/creators/how-to-create-a-pool-on-saturn#step-by-step-guide-to-creating-a-new-pool) Step-by-Step Guide to Creating a new Pool 1. **Navigate to the Pools Page** - Go to the Pools section on the Saturn platform. ![](https://docs.saturnbtc.io/~gitbook/image?url=https%3A%2F%2Flh7-rt.googleusercontent.com%2Fdocsz%2FAD_4nXdx1G1NEkyG-NxMZerfOmZRzlnssCD5yjcDqvkCDBTjNOxhyaKeOaifF0mGsZD9rmRjLwTwLmTpP5q2FMdhwWby9yVy-NxCHwsi6KDaAahs2FJdu-Ro19UBHENhHuzzewENa-tP%3Fkey%3DoAtmyo-NMCvIOuXKIAp_NlJ6&width=768&dpr=4&quality=100&sign=1f91c5e1&sv=2) 2\. **Connect Your Wallet** - Ensure your wallet is connected and linked to the Bitcoin network. ![](https://docs.saturnbtc.io/~gitbook/image?url=https%3A%2F%2Flh7-rt.googleusercontent.com%2Fdocsz%2FAD_4nXctvYREJdvfiMBTPZJUvLspxhBHyj_EwgQJX7g6PcrpGAyvd118CHX6Mq8p4mysrmutHd22ygNbAiLva_BnNq_CnhXHsziW94Zgodxfz6_qPnbYjy1Glcg-AEH7LTD4hFN2llgzXA%3Fkey%3DoAtmyo-NMCvIOuXKIAp_NlJ6&width=768&dpr=4&quality=100&sign=1c220b84&sv=2) 1. **Create Pool** - Click the "Create Pool" button ![](https://docs.saturnbtc.io/~gitbook/image?url=https%3A%2F%2Flh7-rt.googleusercontent.com%2Fdocsz%2FAD_4nXd1rwn8gc4rcEpUPefgUIR4KFbw51aj0zWB4OPGYyPspt53F7ZhP-ekKcvNJy0LtjtqgslSLuM7GPTDTbgmGLfkuOfTtXDQTULqb6aPHXVMUIDXlAYcqlBYH0IcqX3AaJSX1E0_bw%3Fkey%3DoAtmyo-NMCvIOuXKIAp_NlJ6&width=768&dpr=4&quality=100&sign=153a59f8&sv=2) 1. **Select Pool Tokens** - Under "Token A" select the token you wish to create the pool for. Token B is automatically set as BTC. ![](https://docs.saturnbtc.io/~gitbook/image?url=https%3A%2F%2Flh7-rt.googleusercontent.com%2Fdocsz%2FAD_4nXdO-iIrtjcRfMDIsfae6WFo-d2IP0aTFUw2KaeGJl1XXD1WXeHAmoGoPBZ7AYS70j7L_ovyZJtkQZ6v5knbVzk9e1RsMSfpuAe6apZZRVdbhXswsjC_fURAANLWQry8vJZCeGzk%3Fkey%3DoAtmyo-NMCvIOuXKIAp_NlJ6&width=768&dpr=4&quality=100&sign=6442c1b5&sv=2) 1. **Select Fee Tier** - Fee tiers determine the trading fees that liquidity providers will earn. Choose a fee tier that aligns with your trading volume expectations. * **Low Fee Tier**: Ideal for high-volume tokens, offering a competitive trading fee. * **High Fee Tier**: Suited for less liquid tokens, allowing liquidity providers to earn more per trade. ![](https://docs.saturnbtc.io/~gitbook/image?url=https%3A%2F%2Flh7-rt.googleusercontent.com%2Fdocsz%2FAD_4nXcv6r8qvyOUyK6k11eSEHOkTISOrNg-D_2ln9Lozplf5Y5zdhB_6sxJX3BpTwYqTfU0_oDuLeWEPNH-RXUmq27V28MQcojn_RDNoSTpvEMuZyAj8Z5Zw4VXFOux_SS1nHQrNR0R%3Fkey%3DoAtmyo-NMCvIOuXKIAp_NlJ6&width=768&dpr=4&quality=100&sign=6861ae91&sv=2) 1. **Submit** \- Click the "Submit" button. Congratulations, you have just created a new liquidity pool for a Rune token! ![](https://docs.saturnbtc.io/~gitbook/image?url=https%3A%2F%2Flh7-rt.googleusercontent.com%2Fdocsz%2FAD_4nXdTeqI2YsrtRN8VYsk_viAQEfwZFoFHjpCb8GwsUgs4IlaRkSmZSkx1ndc_EuSz-3pOyrNw6eSPpA5I2Z9RzpRU3ZEbfO4lFTpicKubKhuD_734wLn4l40bl8g-w5Rv79C994Ql%3Fkey%3DoAtmyo-NMCvIOuXKIAp_NlJ6&width=768&dpr=4&quality=100&sign=53ffd450&sv=2) [PreviousManaging your Portfolio on Saturn](https://docs.saturnbtc.io/liquidity-providers/managing-your-portfolio-on-saturn) [NextSaturn API](https://docs.saturnbtc.io/builders/saturn-api) Last updated 8 months ago --- # Add Shards | Saturn Documentation ### [](https://docs.saturnbtc.io/builders/saturn-api/pool-api/add-shards#post-v0-pool-add-pool-shards-psbt) Add Pool Shards PSBT post https://api-dev.saturnbtc.io/v0/pool/add-pool-shards/psbt Generates a PSBT for adding shards to an existing pool. Authorizations Body feeRateinteger · min: 1Required The fee rate for the transaction (in sats per byte). shardsLengthnumberRequired The number of accounts to create. Maximum is 10. poolIdstring · min: 64 · max: 66Required The id of the pool to add shards. Pattern: `^[0-9a-fA-F]+$` runePubkeystring · min: 64 · max: 66Required The public key of the rune address of the user initiating the request. Pattern: `^[0-9a-fA-F]+$` paymentPubkeystring · min: 64 · max: 66Optional The public key of the bitcoin address of the user initiating the request. If the user doesn't have a bitcoin address, the runePubkey will be used Pattern: `^[0-9a-fA-F]+$` runeAddressstringRequired The rune address of the user. It must be a taproot address. (P2TR). If no bitcoin address is provided, the rune address will be used for bitcoin too. paymentAddressstringOptional The bitcoin address of the user. Responses 201 An object containing the PSBT, fee, utxos to sign, and the created accounts. application/json Responseobject Show properties 400 Pool error application/json 401 Unauthorized application/json 403 User not found application/json 500 Internal Server Error application/json post /v0/pool/add-pool-shards/psbt HTTP HTTPcURLJavaScriptPython Copy POST /v0/pool/add-pool-shards/psbt HTTP/1.1 Host: api-dev.saturnbtc.io x-api-key: YOUR_API_KEY Content-Type: application/json Accept: */* Content-Length: 134 { "feeRate": 1, "shardsLength": 1, "poolId": "text", "runePubkey": "text", "paymentPubkey": "text", "runeAddress": "text", "paymentAddress": "text" } Test it 201 An object containing the PSBT, fee, utxos to sign, and the created accounts. Copy { "psbt": "text", "fee": 1, "utxosToSign": [\ {\ "address": "text",\ "signingIndexes": [\ 1\ ],\ "sigHash": 1,\ "utxo": "text"\ }\ ] } ### [](https://docs.saturnbtc.io/builders/saturn-api/pool-api/add-shards#post-v0-pool-add-pool-shards-message) Add Pool Shards Message post https://api-dev.saturnbtc.io/v0/pool/add-pool-shards/message Generates a message hash required to add shards to a pool. Authorizations Body poolIdstring · min: 64 · max: 66RequiredPattern: `^[0-9a-fA-F]+$` feeRateinteger · min: 1Required The fee rate for the transaction (in sats per byte). signedPsbtstringRequired The signed PSBT in base64 format. Pattern: `^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{4}|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{2}={2})$` shardsLengthnumberRequired The number of accounts to create. Maximum is 10. runePubkeystring · min: 64 · max: 66Required The public key of the rune address of the user initiating the request. Pattern: `^[0-9a-fA-F]+$` paymentPubkeystring · min: 64 · max: 66Optional The public key of the bitcoin address of the user initiating the request. If the user doesn't have a bitcoin address, the runePubkey will be used Pattern: `^[0-9a-fA-F]+$` runeAddressstringRequired The rune address of the user. It must be a taproot address. (P2TR). If no bitcoin address is provided, the rune address will be used for bitcoin too. paymentAddressstringOptional The bitcoin address of the user. Responses 201 A hexadecimal string representing the hash of the add shards message. application/json Responsestring 400 Pool error application/json 401 Unauthorized application/json 403 User not found application/json 500 Internal Server Error application/json post /v0/pool/add-pool-shards/message HTTP HTTPcURLJavaScriptPython Copy POST /v0/pool/add-pool-shards/message HTTP/1.1 Host: api-dev.saturnbtc.io x-api-key: YOUR_API_KEY Content-Type: application/json Accept: */* Content-Length: 154 { "poolId": "text", "feeRate": 1, "signedPsbt": "text", "shardsLength": 1, "runePubkey": "text", "paymentPubkey": "text", "runeAddress": "text", "paymentAddress": "text" } Test it 201 A hexadecimal string representing the hash of the add shards message. Copy text ### [](https://docs.saturnbtc.io/builders/saturn-api/pool-api/add-shards#post-v0-pool-add-pool-shards) Add Pool Shards post https://api-dev.saturnbtc.io/v0/pool/add-pool-shards Finalizes the process of adding shards to a pool. Authorizations Body signaturestringRequired The user's signature of the initialization message. Pattern: `^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{4}|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{2}={2})$` poolIdstring · min: 64 · max: 66RequiredPattern: `^[0-9a-fA-F]+$` feeRateinteger · min: 1Required The fee rate for the transaction (in sats per byte). signedPsbtstringRequired The signed PSBT in base64 format. Pattern: `^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{4}|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{2}={2})$` shardsLengthnumberRequired The number of accounts to create. Maximum is 10. runePubkeystring · min: 64 · max: 66Required The public key of the rune address of the user initiating the request. Pattern: `^[0-9a-fA-F]+$` paymentPubkeystring · min: 64 · max: 66Optional The public key of the bitcoin address of the user initiating the request. If the user doesn't have a bitcoin address, the runePubkey will be used Pattern: `^[0-9a-fA-F]+$` runeAddressstringRequired The rune address of the user. It must be a taproot address. (P2TR). If no bitcoin address is provided, the rune address will be used for bitcoin too. paymentAddressstringOptional The bitcoin address of the user. Responses 201 The Arch Network transaction ID of the pool shards addition. application/json Responseobject Show properties 400 Pool error application/json 401 Unauthorized application/json 403 User not found application/json 500 Internal Server Error application/json post /v0/pool/add-pool-shards HTTP HTTPcURLJavaScriptPython Copy POST /v0/pool/add-pool-shards HTTP/1.1 Host: api-dev.saturnbtc.io x-api-key: YOUR_API_KEY Content-Type: application/json Accept: */* Content-Length: 173 { "signature": "text", "poolId": "text", "feeRate": 1, "signedPsbt": "text", "shardsLength": 1, "runePubkey": "text", "paymentPubkey": "text", "runeAddress": "text", "paymentAddress": "text" } Test it 201 The Arch Network transaction ID of the pool shards addition. Copy { "archTxId": "text", "bitcoinTxIds": [\ "text"\ ] } [PreviousInitialize pool](https://docs.saturnbtc.io/builders/saturn-api/pool-api/initialize-pool) [NextOpen position](https://docs.saturnbtc.io/builders/saturn-api/pool-api/open-position) Last updated 3 months ago --- # Initialize pool | Saturn Documentation ### [](https://docs.saturnbtc.io/builders/saturn-api/pool-api/initialize-pool#post-v0-pool-initialize-pool-psbt) Initialize Pool PSBT post https://api-dev.saturnbtc.io/v0/pool/initialize-pool/psbt Generates a partially signed Bitcoin transaction (PSBT) for creating the needed UTXOs for creating the accounts for a pool. The request body containing details for creating accounts PSBT. Authorizations Body feeRateinteger · min: 1Required The fee rate for the transaction (in sats per byte). shardsLengthnumberRequired The number of accounts to create. Maximum is 10. token0stringRequired The first token's identifier. token1stringRequired The second token's identifier. feeTiernumberRequired The fee tier for the pool. runePubkeystring · min: 64 · max: 66Required The public key of the rune address of the user initiating the request. Pattern: `^[0-9a-fA-F]+$` paymentPubkeystring · min: 64 · max: 66Optional The public key of the bitcoin address of the user initiating the request. If the user doesn't have a bitcoin address, the runePubkey will be used Pattern: `^[0-9a-fA-F]+$` runeAddressstringRequired The rune address of the user. It must be a taproot address. (P2TR). If no bitcoin address is provided, the rune address will be used for bitcoin too. paymentAddressstringOptional The bitcoin address of the user. Responses 201 An object containing the PSBT, fee, utxos to sign, and the created accounts. application/json Responseobject Show properties 400 Pool error application/json 401 Unauthorized application/json 403 User not found application/json 500 Internal Server Error application/json post /v0/pool/initialize-pool/psbt HTTP HTTPcURLJavaScriptPython Copy POST /v0/pool/initialize-pool/psbt HTTP/1.1 Host: api-dev.saturnbtc.io x-api-key: YOUR_API_KEY Content-Type: application/json Accept: */* Content-Length: 162 { "feeRate": 1, "shardsLength": 1, "token0": "text", "token1": "text", "feeTier": 1, "runePubkey": "text", "paymentPubkey": "text", "runeAddress": "text", "paymentAddress": "text" } Test it 201 An object containing the PSBT, fee, utxos to sign, and the created accounts. Copy { "psbt": "text", "fee": 1, "utxosToSign": [\ {\ "address": "text",\ "signingIndexes": [\ 1\ ],\ "sigHash": 1,\ "utxo": "text"\ }\ ] } ### [](https://docs.saturnbtc.io/builders/saturn-api/pool-api/initialize-pool#post-v0-pool-initialize-pool-message) Initialize Pool Message post https://api-dev.saturnbtc.io/v0/pool/initialize-pool/message Generates a message hash required to initialize a pool. Authorizations Body token0stringRequired The first token's identifier. token1stringRequired The second token's identifier. feeTiernumberRequired The fee tier for the pool. shardsLengthnumberRequired The number of accounts to create. Maximum is 10. feeRateinteger · min: 1Required The fee rate for the transaction (in sats per byte). signedPsbtstringRequired The signed PSBT in base64 format. Pattern: `^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{4}|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{2}={2})$` runePubkeystring · min: 64 · max: 66Required The public key of the rune address of the user initiating the request. Pattern: `^[0-9a-fA-F]+$` paymentPubkeystring · min: 64 · max: 66Optional The public key of the bitcoin address of the user initiating the request. If the user doesn't have a bitcoin address, the runePubkey will be used Pattern: `^[0-9a-fA-F]+$` runeAddressstringRequired The rune address of the user. It must be a taproot address. (P2TR). If no bitcoin address is provided, the rune address will be used for bitcoin too. paymentAddressstringOptional The bitcoin address of the user. Responses 201 A hexadecimal string representing the hash of the initialization message. application/json Responsestring 400 Pool error application/json 401 Unauthorized application/json 403 User not found application/json 500 Internal Server Error application/json post /v0/pool/initialize-pool/message HTTP HTTPcURLJavaScriptPython Copy POST /v0/pool/initialize-pool/message HTTP/1.1 Host: api-dev.saturnbtc.io x-api-key: YOUR_API_KEY Content-Type: application/json Accept: */* Content-Length: 182 { "token0": "text", "token1": "text", "feeTier": 1, "shardsLength": 1, "feeRate": 1, "signedPsbt": "text", "runePubkey": "text", "paymentPubkey": "text", "runeAddress": "text", "paymentAddress": "text" } Test it 201 A hexadecimal string representing the hash of the initialization message. Copy text ### [](https://docs.saturnbtc.io/builders/saturn-api/pool-api/initialize-pool#post-v0-pool-initialize-pool) Initialize Pool post https://api-dev.saturnbtc.io/v0/pool/initialize-pool Finalizes the pool initialization process. Authorizations Body signaturestringRequired The user's signature of the initialization message. Pattern: `^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{4}|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{2}={2})$` token0stringRequired The first token's identifier. token1stringRequired The second token's identifier. feeTiernumberRequired The fee tier for the pool. shardsLengthnumberRequired The number of accounts to create. Maximum is 10. feeRateinteger · min: 1Required The fee rate for the transaction (in sats per byte). signedPsbtstringRequired The signed PSBT in base64 format. Pattern: `^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{4}|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{2}={2})$` runePubkeystring · min: 64 · max: 66Required The public key of the rune address of the user initiating the request. Pattern: `^[0-9a-fA-F]+$` paymentPubkeystring · min: 64 · max: 66Optional The public key of the bitcoin address of the user initiating the request. If the user doesn't have a bitcoin address, the runePubkey will be used Pattern: `^[0-9a-fA-F]+$` runeAddressstringRequired The rune address of the user. It must be a taproot address. (P2TR). If no bitcoin address is provided, the rune address will be used for bitcoin too. paymentAddressstringOptional The bitcoin address of the user. Responses 201 The Arch Network transaction ID of the pool creation. application/json Responseobject Show properties 400 Pool error application/json 401 Unauthorized application/json 403 User not found application/json 500 Internal Server Error application/json post /v0/pool/initialize-pool HTTP HTTPcURLJavaScriptPython Copy POST /v0/pool/initialize-pool HTTP/1.1 Host: api-dev.saturnbtc.io x-api-key: YOUR_API_KEY Content-Type: application/json Accept: */* Content-Length: 201 { "signature": "text", "token0": "text", "token1": "text", "feeTier": 1, "shardsLength": 1, "feeRate": 1, "signedPsbt": "text", "runePubkey": "text", "paymentPubkey": "text", "runeAddress": "text", "paymentAddress": "text" } Test it 201 The Arch Network transaction ID of the pool creation. Copy { "archTxId": "text", "bitcoinTxIds": [\ "text"\ ] } [PreviousPool API](https://docs.saturnbtc.io/builders/saturn-api/pool-api) [NextAdd Shards](https://docs.saturnbtc.io/builders/saturn-api/pool-api/add-shards) Last updated 3 months ago --- # Open position | Saturn Documentation ### [](https://docs.saturnbtc.io/builders/saturn-api/pool-api/open-position#post-v0-pool-open-position-psbt) Open Position PSBT post https://api-dev.saturnbtc.io/v0/pool/open-position/psbt Generates a PSBT for opening a new liquidity position by sending funds to the pool. Authorizations Body poolIdstring · min: 64 · max: 66Required The pool's identifier. Pattern: `^[0-9a-fA-F]+$` amount0stringRequired The amount of the first token to deposit. Pattern: `^[1-9][0-9]*$` amount1stringRequired The amount of the second token to deposit. Pattern: `^[1-9][0-9]*$` initializeAccountUtxobooleanRequired A boolean indicating whether to initialize the account UTXO. If you're creating a new position, you should set this to `true`. feeRateinteger · min: 1Required The fee rate for the transaction (in sats per byte). runePubkeystring · min: 64 · max: 66Required The public key of the rune address of the user initiating the request. Pattern: `^[0-9a-fA-F]+$` paymentPubkeystring · min: 64 · max: 66Optional The public key of the bitcoin address of the user initiating the request. If the user doesn't have a bitcoin address, the runePubkey will be used Pattern: `^[0-9a-fA-F]+$` runeAddressstringRequired The rune address of the user. It must be a taproot address. (P2TR). If no bitcoin address is provided, the rune address will be used for bitcoin too. paymentAddressstringOptional The bitcoin address of the user. Responses 201 An object containing the PSBT (in base64 format), the fee, the list of UTXOs to sign, and optionally the created account. application/json Responseobject Show properties 400 Pool error application/json 401 Unauthorized application/json 403 User not found application/json 500 Internal Server Error application/json post /v0/pool/open-position/psbt HTTP HTTPcURLJavaScriptPython Copy POST /v0/pool/open-position/psbt HTTP/1.1 Host: api-dev.saturnbtc.io x-api-key: YOUR_API_KEY Content-Type: application/json Accept: */* Content-Length: 180 { "poolId": "text", "amount0": "text", "amount1": "text", "initializeAccountUtxo": true, "feeRate": 1, "runePubkey": "text", "paymentPubkey": "text", "runeAddress": "text", "paymentAddress": "text" } Test it 201 An object containing the PSBT (in base64 format), the fee, the list of UTXOs to sign, and optionally the created account. Copy { "mergeUtxoPsbt": { "psbt": "text", "fee": 1, "utxosToSign": [\ {\ "address": "text",\ "signingIndexes": [\ 1\ ],\ "sigHash": 1,\ "utxo": "text"\ }\ ] }, "psbt": "text", "fee": 1, "utxosToSign": [\ {\ "address": "text",\ "signingIndexes": [\ 1\ ],\ "sigHash": 1,\ "utxo": "text"\ }\ ] } ### [](https://docs.saturnbtc.io/builders/saturn-api/pool-api/open-position#post-v0-pool-open-position-message) Open Position Message post https://api-dev.saturnbtc.io/v0/pool/open-position/message Generates a message hash for opening a new liquidity position, which the user should sign. Authorizations Body poolIdstring · min: 64 · max: 66Required The pubkey of the pool. Pattern: `^[0-9a-fA-F]+$` amount0stringRequired The amount of the first token to deposit. Pattern: `^[1-9][0-9]*$` amount1stringRequired The amount of the second token to deposit. Pattern: `^[1-9][0-9]*$` feeRateinteger · min: 1Required The fee rate for the transaction (in sats per byte). signedPsbtstringRequired The signed PSBT in base64 format. Pattern: `^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{4}|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{2}={2})$` mergeUtxoPsbtstringOptional The merge UTXO PSBT in base64 format. Pattern: `^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{4}|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{2}={2})$` runePubkeystring · min: 64 · max: 66Required The public key of the rune address of the user initiating the request. Pattern: `^[0-9a-fA-F]+$` paymentPubkeystring · min: 64 · max: 66Optional The public key of the bitcoin address of the user initiating the request. If the user doesn't have a bitcoin address, the runePubkey will be used Pattern: `^[0-9a-fA-F]+$` runeAddressstringRequired The rune address of the user. It must be a taproot address. (P2TR). If no bitcoin address is provided, the rune address will be used for bitcoin too. paymentAddressstringOptional The bitcoin address of the user. Responses 201 A hexadecimal string representing the hash of the message to be signed by the user. application/json Responsestring 400 Pool error application/json 401 Unauthorized application/json 403 User not found application/json 500 Internal Server Error application/json post /v0/pool/open-position/message HTTP HTTPcURLJavaScriptPython Copy POST /v0/pool/open-position/message HTTP/1.1 Host: api-dev.saturnbtc.io x-api-key: YOUR_API_KEY Content-Type: application/json Accept: */* Content-Length: 194 { "poolId": "text", "amount0": "text", "amount1": "text", "feeRate": 1, "signedPsbt": "text", "mergeUtxoPsbt": "text", "runePubkey": "text", "paymentPubkey": "text", "runeAddress": "text", "paymentAddress": "text" } Test it 201 A hexadecimal string representing the hash of the message to be signed by the user. Copy text ### [](https://docs.saturnbtc.io/builders/saturn-api/pool-api/open-position#post-v0-pool-open-position) Open Position post https://api-dev.saturnbtc.io/v0/pool/open-position Finalizes the opening of a new liquidity position by submitting the signed message and executing the transaction on the network. Authorizations Body signaturestringRequired The user's signature of the open position message. Pattern: `^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{4}|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{2}={2})$` poolIdstring · min: 64 · max: 66Required The pubkey of the pool. Pattern: `^[0-9a-fA-F]+$` amount0stringRequired The amount of the first token to deposit. Pattern: `^[1-9][0-9]*$` amount1stringRequired The amount of the second token to deposit. Pattern: `^[1-9][0-9]*$` feeRateinteger · min: 1Required The fee rate for the transaction (in sats per byte). signedPsbtstringRequired The signed PSBT in base64 format. Pattern: `^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{4}|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{2}={2})$` mergeUtxoPsbtstringOptional The merge UTXO PSBT in base64 format. Pattern: `^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{4}|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{2}={2})$` runePubkeystring · min: 64 · max: 66Required The public key of the rune address of the user initiating the request. Pattern: `^[0-9a-fA-F]+$` paymentPubkeystring · min: 64 · max: 66Optional The public key of the bitcoin address of the user initiating the request. If the user doesn't have a bitcoin address, the runePubkey will be used Pattern: `^[0-9a-fA-F]+$` runeAddressstringRequired The rune address of the user. It must be a taproot address. (P2TR). If no bitcoin address is provided, the rune address will be used for bitcoin too. paymentAddressstringOptional The bitcoin address of the user. Responses 201 The Arch Network transaction ID of the position opening. application/json Responseobject Show properties 400 Pool error application/json 401 Unauthorized application/json 403 User not found application/json 500 Internal Server Error application/json post /v0/pool/open-position HTTP HTTPcURLJavaScriptPython Copy POST /v0/pool/open-position HTTP/1.1 Host: api-dev.saturnbtc.io x-api-key: YOUR_API_KEY Content-Type: application/json Accept: */* Content-Length: 213 { "signature": "text", "poolId": "text", "amount0": "text", "amount1": "text", "feeRate": 1, "signedPsbt": "text", "mergeUtxoPsbt": "text", "runePubkey": "text", "paymentPubkey": "text", "runeAddress": "text", "paymentAddress": "text" } Test it 201 The Arch Network transaction ID of the position opening. Copy { "archTxId": "text", "bitcoinTxIds": [\ "text"\ ] } [PreviousAdd Shards](https://docs.saturnbtc.io/builders/saturn-api/pool-api/add-shards) [NextIncrease Liquidity](https://docs.saturnbtc.io/builders/saturn-api/pool-api/increase-liquidity) Last updated 3 months ago --- # Increase Liquidity | Saturn Documentation ### [](https://docs.saturnbtc.io/builders/saturn-api/pool-api/increase-liquidity#post-v0-pool-increase-liquidity-psbt) Increase Liquidity PSBT post https://api-dev.saturnbtc.io/v0/pool/increase-liquidity/psbt Generates a PSBT for increasing liquidity in an existing position by sending funds to the pool. Authorizations Body poolIdstring · min: 64 · max: 66Required The pool's identifier. Pattern: `^[0-9a-fA-F]+$` amount0stringRequired The amount of the first token to deposit. Pattern: `^[1-9][0-9]*$` amount1stringRequired The amount of the second token to deposit. Pattern: `^[1-9][0-9]*$` initializeAccountUtxobooleanRequired A boolean indicating whether to initialize the account UTXO. If you're creating a new position, you should set this to `true`. feeRateinteger · min: 1Required The fee rate for the transaction (in sats per byte). runePubkeystring · min: 64 · max: 66Required The public key of the rune address of the user initiating the request. Pattern: `^[0-9a-fA-F]+$` paymentPubkeystring · min: 64 · max: 66Optional The public key of the bitcoin address of the user initiating the request. If the user doesn't have a bitcoin address, the runePubkey will be used Pattern: `^[0-9a-fA-F]+$` runeAddressstringRequired The rune address of the user. It must be a taproot address. (P2TR). If no bitcoin address is provided, the rune address will be used for bitcoin too. paymentAddressstringOptional The bitcoin address of the user. Responses 201 An object containing the PSBT (in base64 format), the fee, and the list of UTXOs to sign. application/json Responseobject Show properties 400 Pool error application/json 401 Unauthorized application/json 403 User not found application/json 500 Internal Server Error application/json post /v0/pool/increase-liquidity/psbt HTTP HTTPcURLJavaScriptPython Copy POST /v0/pool/increase-liquidity/psbt HTTP/1.1 Host: api-dev.saturnbtc.io x-api-key: YOUR_API_KEY Content-Type: application/json Accept: */* Content-Length: 180 { "poolId": "text", "amount0": "text", "amount1": "text", "initializeAccountUtxo": true, "feeRate": 1, "runePubkey": "text", "paymentPubkey": "text", "runeAddress": "text", "paymentAddress": "text" } Test it 201 An object containing the PSBT (in base64 format), the fee, and the list of UTXOs to sign. Copy { "mergeUtxoPsbt": { "psbt": "text", "fee": 1, "utxosToSign": [\ {\ "address": "text",\ "signingIndexes": [\ 1\ ],\ "sigHash": 1,\ "utxo": "text"\ }\ ] }, "psbt": "text", "fee": 1, "utxosToSign": [\ {\ "address": "text",\ "signingIndexes": [\ 1\ ],\ "sigHash": 1,\ "utxo": "text"\ }\ ] } ### [](https://docs.saturnbtc.io/builders/saturn-api/pool-api/increase-liquidity#post-v0-pool-increase-liquidity-message) Increase Liquidity Message post https://api-dev.saturnbtc.io/v0/pool/increase-liquidity/message Generates a message hash for increasing liquidity in an existing position, which the user should sign. Authorizations Body positionPubKeystring · min: 64 · max: 66Required The pubkey of the position. Pattern: `^[0-9a-fA-F]+$` poolIdstring · min: 64 · max: 66Required The pubkey of the pool. Pattern: `^[0-9a-fA-F]+$` feeRateinteger · min: 1Required The fee rate for the transaction (in sats per byte). signedPsbtstringRequired The signed PSBT in base64 format. Pattern: `^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{4}|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{2}={2})$` runePubkeystring · min: 64 · max: 66Required The public key of the rune address of the user initiating the request. Pattern: `^[0-9a-fA-F]+$` paymentPubkeystring · min: 64 · max: 66Optional The public key of the bitcoin address of the user initiating the request. If the user doesn't have a bitcoin address, the runePubkey will be used Pattern: `^[0-9a-fA-F]+$` mergeUtxoPsbtstringOptional The merge UTXO PSBT in base64 format. Pattern: `^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{4}|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{2}={2})$` amount0stringRequired The amount of the first token to deposit. Pattern: `^[1-9][0-9]*$` amount1stringRequired The amount of the second token to deposit. Pattern: `^[1-9][0-9]*$` runeAddressstringRequired The rune address of the user. It must be a taproot address. (P2TR). If no bitcoin address is provided, the rune address will be used for bitcoin too. paymentAddressstringOptional The bitcoin address of the user. Responses 201 A hexadecimal string representing the hash of the message to be signed by the user. application/json Responsestring 400 Pool error application/json 401 Unauthorized application/json 403 User not found application/json 500 Internal Server Error application/json post /v0/pool/increase-liquidity/message HTTP HTTPcURLJavaScriptPython Copy POST /v0/pool/increase-liquidity/message HTTP/1.1 Host: api-dev.saturnbtc.io x-api-key: YOUR_API_KEY Content-Type: application/json Accept: */* Content-Length: 218 { "positionPubKey": "text", "poolId": "text", "feeRate": 1, "signedPsbt": "text", "runePubkey": "text", "paymentPubkey": "text", "mergeUtxoPsbt": "text", "amount0": "text", "amount1": "text", "runeAddress": "text", "paymentAddress": "text" } Test it 201 A hexadecimal string representing the hash of the message to be signed by the user. Copy text ### [](https://docs.saturnbtc.io/builders/saturn-api/pool-api/increase-liquidity#post-v0-pool-increase-liquidity) Increase Liquidity post https://api-dev.saturnbtc.io/v0/pool/increase-liquidity Finalizes the increase of liquidity in an existing position by submitting the signed message and executing the transaction on the network. Authorizations Body signaturestringRequired The user's signature of the increase liquidity message. Pattern: `^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{4}|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{2}={2})$` positionPubKeystring · min: 64 · max: 66Required The pubkey of the position. Pattern: `^[0-9a-fA-F]+$` poolIdstring · min: 64 · max: 66Required The pubkey of the pool. Pattern: `^[0-9a-fA-F]+$` feeRateinteger · min: 1Required The fee rate for the transaction (in sats per byte). signedPsbtstringRequired The signed PSBT in base64 format. Pattern: `^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{4}|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{2}={2})$` runePubkeystring · min: 64 · max: 66Required The public key of the rune address of the user initiating the request. Pattern: `^[0-9a-fA-F]+$` paymentPubkeystring · min: 64 · max: 66Optional The public key of the bitcoin address of the user initiating the request. If the user doesn't have a bitcoin address, the runePubkey will be used Pattern: `^[0-9a-fA-F]+$` mergeUtxoPsbtstringOptional The merge UTXO PSBT in base64 format. Pattern: `^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{4}|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{2}={2})$` amount0stringRequired The amount of the first token to deposit. Pattern: `^[1-9][0-9]*$` amount1stringRequired The amount of the second token to deposit. Pattern: `^[1-9][0-9]*$` runeAddressstringRequired The rune address of the user. It must be a taproot address. (P2TR). If no bitcoin address is provided, the rune address will be used for bitcoin too. paymentAddressstringOptional The bitcoin address of the user. Responses 201 The Arch Network transaction ID of the liquidity increase. application/json Responseobject Show properties 400 Pool error application/json 401 Unauthorized application/json 403 User not found application/json 500 Internal Server Error application/json post /v0/pool/increase-liquidity HTTP HTTPcURLJavaScriptPython Copy POST /v0/pool/increase-liquidity HTTP/1.1 Host: api-dev.saturnbtc.io x-api-key: YOUR_API_KEY Content-Type: application/json Accept: */* Content-Length: 237 { "signature": "text", "positionPubKey": "text", "poolId": "text", "feeRate": 1, "signedPsbt": "text", "runePubkey": "text", "paymentPubkey": "text", "mergeUtxoPsbt": "text", "amount0": "text", "amount1": "text", "runeAddress": "text", "paymentAddress": "text" } Test it 201 The Arch Network transaction ID of the liquidity increase. Copy { "archTxId": "text", "bitcoinTxIds": [\ "text"\ ] } [PreviousOpen position](https://docs.saturnbtc.io/builders/saturn-api/pool-api/open-position) [NextRemove Liquidity](https://docs.saturnbtc.io/builders/saturn-api/pool-api/remove-liquidity) Last updated 3 months ago --- # Liquidity Pool SDK | Saturn Documentation Coming soon... [PreviousStats](https://docs.saturnbtc.io/builders/saturn-api/indexer-api/stats) [NextOverview](https://docs.saturnbtc.io/saturn-v1/overview) Last updated 9 months ago --- # Indexer API | Saturn Documentation The **Indexer API** is a powerful tool designed to provide seamless access to blockchain data, enabling developers to interact with collections, pools, positions, transactions, and more. This API allows you to: * **Manage Collections**: Retrieve and search for collections (runes) with advanced filtering and sorting options. * **Access Pool Data**: Obtain detailed information about liquidity pools, including statistics and historical data. * **Monitor Positions**: Fetch user positions, estimated yields, and pool statistics. * **Query Transactions**: Access transaction histories for specific pools or users, with support for filtering by date, type, and tokens. * **Obtain Market Data**: Retrieve OHLC (Open, High, Low, Close) data for asset pairs to support trading and analysis applications. The Indexer API stands out for its robustness and flexibility, providing comprehensive endpoints that cater to a wide range of blockchain data needs. Its powerful querying capabilities make it an indispensable tool for developers building applications in the decentralized finance (DeFi) space. To make integration even more straightforward, we offer: * [**Typescript SDK**](https://www.npmjs.com/package/@saturnbtcio/indexer-api-sdk) : A fully-featured SDK, allowing for easy and type-safe interactions with the API. * [**Swagger Documentation**](https://indexer.staging.saturnbtc.io/swagger) : An OpenAPI specification is available, providing detailed information about each endpoint, request, and response format. [PreviousWallet](https://docs.saturnbtc.io/builders/saturn-api/pool-api/wallet) [NextCollections](https://docs.saturnbtc.io/builders/saturn-api/indexer-api/collections) Last updated 3 months ago --- # Prices | Saturn Documentation get http://127.0.0.1:3000/price Query parameters collectionIdsstring\[\]Required Responses 200 List of prices for matching collections application/json Responseobject\[\] Show properties get /price HTTP HTTPcURLJavaScriptPython Copy GET /price HTTP/1.1 Host: 127.0.0.1:3000 Accept: */* Test it 200 List of prices for matching collections Copy [\ {\ "blockHeight": "text",\ "token0Id": "1234:5678",\ "btcPrice": "text"\ }\ ] [PreviousPools](https://docs.saturnbtc.io/builders/saturn-api/indexer-api/pools) [NextPositions](https://docs.saturnbtc.io/builders/saturn-api/indexer-api/positions) Last updated 3 months ago --- # Charts | Saturn Documentation get http://127.0.0.1:3000/ohlc Fetch OHLC (candlestick) data for the requested pair Query parameters granularitystring · enumRequiredPossible values: `1m``5m``15m``30m``1h``4h``1d``1w` startDatestringRequired endDatestringRequired token0stringRequired token1stringRequired Responses 200 OHLC Data application/json Responseobject\[\] Show properties 400 Bad request get /ohlc HTTP HTTPcURLJavaScriptPython Copy GET /ohlc HTTP/1.1 Host: 127.0.0.1:3000 Accept: */* Test it 200 OHLC Data Copy [\ {\ "id": 1,\ "pair": {\ "token0Id": "1234:5678",\ "token1Id": "1234:5678"\ },\ "openPrice": "text",\ "highPrice": "text",\ "lowPrice": "text",\ "closePrice": "text",\ "volume": "text",\ "feeToken0": "text",\ "feeToken1": "text",\ "startTimestamp": "2025-08-17T08:46:06.428Z",\ "endTimestamp": "2025-08-17T08:46:06.428Z",\ "granularity": "1m",\ "transactions": 1,\ "createdAt": "2025-08-17T08:46:06.428Z",\ "updatedAt": "2025-08-17T08:46:06.428Z"\ }\ ] [PreviousTransactions](https://docs.saturnbtc.io/builders/saturn-api/indexer-api/transactions) [NextStats](https://docs.saturnbtc.io/builders/saturn-api/indexer-api/stats) Last updated 3 months ago --- # Swap | Saturn Documentation ### [](https://docs.saturnbtc.io/builders/saturn-api/pool-api/swap#post-v0-pool-swap-psbt) Swap PSBT post https://api-dev.saturnbtc.io/v0/pool/swap/psbt Generates a PSBT for performing a swap between tokens in a pool. Authorizations Body poolIdstring · min: 64 · max: 66Required The identifier of the pool. Pattern: `^[0-9a-fA-F]+$` amountInstringRequired The amount of input token to swap. Pattern: `^[1-9][0-9]*$` amountOutstringRequired The amount of output token expected. Pattern: `^[1-9][0-9]*$` feeRateinteger · min: 1Required The fee rate for the transaction (in sats per byte). zeroToOnebooleanRequired A boolean indicating whether to swap from token0 to token1. exactInbooleanRequired A boolean indicating whether the swap is exact in. splitRunePsbtstringOptional The split rune PSBT in base64 format. Pattern: `^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{4}|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{2}={2})$` runePubkeystring · min: 64 · max: 66Required The public key of the rune address of the user initiating the request. Pattern: `^[0-9a-fA-F]+$` paymentPubkeystring · min: 64 · max: 66Optional The public key of the bitcoin address of the user initiating the request. If the user doesn't have a bitcoin address, the runePubkey will be used Pattern: `^[0-9a-fA-F]+$` runeAddressstringRequired The rune address of the user. It must be a taproot address. (P2TR). If no bitcoin address is provided, the rune address will be used for bitcoin too. paymentAddressstringOptional The bitcoin address of the user. Responses 201 An object containing the PSBT (in base64 format), the fee, the list of UTXOs to sign, and optionally additional swap details. application/json Responseobject Show properties 400 Pool error application/json 401 Unauthorized application/json 403 User not found application/json 500 Internal Server Error application/json post /v0/pool/swap/psbt HTTP HTTPcURLJavaScriptPython Copy POST /v0/pool/swap/psbt HTTP/1.1 Host: api-dev.saturnbtc.io x-api-key: YOUR_API_KEY Content-Type: application/json Accept: */* Content-Length: 209 { "poolId": "text", "amountIn": "text", "amountOut": "text", "feeRate": 1, "zeroToOne": true, "exactIn": true, "splitRunePsbt": "text", "runePubkey": "text", "paymentPubkey": "text", "runeAddress": "text", "paymentAddress": "text" } Test it 201 An object containing the PSBT (in base64 format), the fee, the list of UTXOs to sign, and optionally additional swap details. Copy { "splitRunePsbt": { "totalAmount": "text", "amountToReceive": "text", "psbt": "text", "fee": 1, "utxosToSign": [\ {\ "address": "text",\ "signingIndexes": [\ 1\ ],\ "sigHash": 1,\ "utxo": "text"\ }\ ] }, "shardPubkeys": [\ "text"\ ], "psbt": "text", "fee": 1, "utxosToSign": [\ {\ "address": "text",\ "signingIndexes": [\ 1\ ],\ "sigHash": 1,\ "utxo": "text"\ }\ ] } ### [](https://docs.saturnbtc.io/builders/saturn-api/pool-api/swap#post-v0-pool-swap-message) Swap Message post https://api-dev.saturnbtc.io/v0/pool/swap/message Generates a message hash for performing a swap, which the user should sign. Authorizations Body signedPsbtstringRequired The signed PSBT in base64 format. Pattern: `^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{4}|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{2}={2})$` splitRunePsbtstringOptional The split rune PSBT in base64 format. Pattern: `^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{4}|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{2}={2})$` shardPubkeysstring\[\]Optional The pubkeys of the shards. Only applicable in the btc=>rune swap. (zeroToOne=false) poolIdstring · min: 64 · max: 66Required The identifier of the pool. Pattern: `^[0-9a-fA-F]+$` amountInstringRequired The amount of input token to swap. Pattern: `^[1-9][0-9]*$` amountOutstringRequired The amount of output token expected. Pattern: `^[1-9][0-9]*$` feeRateinteger · min: 1Required The fee rate for the transaction (in sats per byte). zeroToOnebooleanRequired A boolean indicating whether to swap from token0 to token1. exactInbooleanRequired A boolean indicating whether the swap is exact in. runePubkeystring · min: 64 · max: 66Required The public key of the rune address of the user initiating the request. Pattern: `^[0-9a-fA-F]+$` paymentPubkeystring · min: 64 · max: 66Optional The public key of the bitcoin address of the user initiating the request. If the user doesn't have a bitcoin address, the runePubkey will be used Pattern: `^[0-9a-fA-F]+$` runeAddressstringRequired The rune address of the user. It must be a taproot address. (P2TR). If no bitcoin address is provided, the rune address will be used for bitcoin too. paymentAddressstringOptional The bitcoin address of the user. Responses 201 A hexadecimal string representing the hash of the message to be signed by the user. application/json Responsestring 400 Pool error application/json 401 Unauthorized application/json 403 User not found application/json 500 Internal Server Error application/json post /v0/pool/swap/message HTTP HTTPcURLJavaScriptPython Copy POST /v0/pool/swap/message HTTP/1.1 Host: api-dev.saturnbtc.io x-api-key: YOUR_API_KEY Content-Type: application/json Accept: */* Content-Length: 253 { "signedPsbt": "text", "splitRunePsbt": "text", "shardPubkeys": [\ "text"\ ], "poolId": "text", "amountIn": "text", "amountOut": "text", "feeRate": 1, "zeroToOne": true, "exactIn": true, "runePubkey": "text", "paymentPubkey": "text", "runeAddress": "text", "paymentAddress": "text" } Test it 201 A hexadecimal string representing the hash of the message to be signed by the user. Copy text ### [](https://docs.saturnbtc.io/builders/saturn-api/pool-api/swap#post-v0-pool-swap) Swap post https://api-dev.saturnbtc.io/v0/pool/swap Finalizes the swap transaction by submitting the signed message and executing the swap on the network. Authorizations Body signedPsbtstringRequired The signed PSBT in base64 format. Pattern: `^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{4}|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{2}={2})$` splitRunePsbtstringOptional The split rune PSBT in base64 format. Pattern: `^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{4}|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{2}={2})$` shardPubkeysstring\[\]Optional The pubkeys of the shards. Only applicable in the btc=>rune swap. (zeroToOne=false) poolIdstring · min: 64 · max: 66Required The identifier of the pool. Pattern: `^[0-9a-fA-F]+$` amountInstringRequired The amount of input token to swap. Pattern: `^[1-9][0-9]*$` amountOutstringRequired The amount of output token expected. Pattern: `^[1-9][0-9]*$` feeRateinteger · min: 1Required The fee rate for the transaction (in sats per byte). zeroToOnebooleanRequired A boolean indicating whether to swap from token0 to token1. exactInbooleanRequired A boolean indicating whether the swap is exact in. runePubkeystring · min: 64 · max: 66Required The public key of the rune address of the user initiating the request. Pattern: `^[0-9a-fA-F]+$` paymentPubkeystring · min: 64 · max: 66Optional The public key of the bitcoin address of the user initiating the request. If the user doesn't have a bitcoin address, the runePubkey will be used Pattern: `^[0-9a-fA-F]+$` signaturestringRequired The user's signature of the swap message. Pattern: `^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{4}|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{2}={2})$` runeAddressstringRequired The rune address of the user. It must be a taproot address. (P2TR). If no bitcoin address is provided, the rune address will be used for bitcoin too. paymentAddressstringOptional The bitcoin address of the user. Responses 201 The Arch Network transaction ID of the swap. application/json Responseobject Show properties 400 Pool error application/json 401 Unauthorized application/json 403 User not found application/json 500 Internal Server Error application/json post /v0/pool/swap HTTP HTTPcURLJavaScriptPython Copy POST /v0/pool/swap HTTP/1.1 Host: api-dev.saturnbtc.io x-api-key: YOUR_API_KEY Content-Type: application/json Accept: */* Content-Length: 272 { "signedPsbt": "text", "splitRunePsbt": "text", "shardPubkeys": [\ "text"\ ], "poolId": "text", "amountIn": "text", "amountOut": "text", "feeRate": 1, "zeroToOne": true, "exactIn": true, "runePubkey": "text", "paymentPubkey": "text", "signature": "text", "runeAddress": "text", "paymentAddress": "text" } Test it 201 The Arch Network transaction ID of the swap. Copy { "archTxId": "text", "bitcoinTxIds": [\ "text"\ ] } ### [](https://docs.saturnbtc.io/builders/saturn-api/pool-api/swap#how-to-apply-slippage-to-your-swaps) How to Apply Slippage to Your Swaps * **Understanding Slippage:** Slippage refers to the difference between the expected price of a trade and the price at which the trade is executed. * **Applying Slippage:** * To apply slippage, request less `amountOut` for the `amountIn` you are swapping. * For example, to apply a 3% slippage tolerance: * Subtract 3% from the `amountOut` value. * Use this adjusted `amountOut` in your swap request. #### [](https://docs.saturnbtc.io/builders/saturn-api/pool-api/swap#swap-processing) Swap Processing: * **Program Behavior:** * The program checks if you are entitled to receive more `tokenOut` than specified in the transaction. * **If Yes:** * **Swap from Rune to BTC:** The program will include the additional BTC you should receive in the transaction. * **Swap from BTC to Rune:** The program will hold the extra Rune you should have received. In your next call to the program, it will send you your corresponding portion. [PreviousRemove Liquidity](https://docs.saturnbtc.io/builders/saturn-api/pool-api/remove-liquidity) [NextSwap Quotes](https://docs.saturnbtc.io/builders/saturn-api/pool-api/swap-quotes) Last updated 3 months ago --- # Remove Liquidity | Saturn Documentation ### [](https://docs.saturnbtc.io/builders/saturn-api/pool-api/remove-liquidity#post-v0-pool-decrease-liquidity-psbt) Decrease Liquidity PSBT post https://api-dev.saturnbtc.io/v0/pool/decrease-liquidity/psbt Generates a PSBT for decreasing liquidity from a position. This PSBT is optional and it will be used to pay for the decrease transaction fees if the funds to withdraw are not enough to cover the fees. Authorizations Body feeRateinteger · min: 1Required The fee rate for the transaction (in sats per byte). runePubkeystring · min: 64 · max: 66Required The public key of the rune address of the user initiating the request. Pattern: `^[0-9a-fA-F]+$` paymentPubkeystring · min: 64 · max: 66Optional The public key of the bitcoin address of the user initiating the request. If the user doesn't have a bitcoin address, the runePubkey will be used Pattern: `^[0-9a-fA-F]+$` runeAddressstringRequired The rune address of the user. It must be a taproot address. (P2TR). If no bitcoin address is provided, the rune address will be used for bitcoin too. paymentAddressstringOptional The bitcoin address of the user. Responses 201 An object containing the PSBT (in base64 format), the fee, and the list of UTXOs to sign. application/json Responseobject Show properties 400 Pool error application/json 401 Unauthorized application/json 403 User not found application/json 500 Internal Server Error application/json post /v0/pool/decrease-liquidity/psbt HTTP HTTPcURLJavaScriptPython Copy POST /v0/pool/decrease-liquidity/psbt HTTP/1.1 Host: api-dev.saturnbtc.io x-api-key: YOUR_API_KEY Content-Type: application/json Accept: */* Content-Length: 101 { "feeRate": 1, "runePubkey": "text", "paymentPubkey": "text", "runeAddress": "text", "paymentAddress": "text" } Test it 201 An object containing the PSBT (in base64 format), the fee, and the list of UTXOs to sign. Copy { "psbt": "text", "fee": 1, "utxosToSign": [\ {\ "address": "text",\ "signingIndexes": [\ 1\ ],\ "sigHash": 1,\ "utxo": "text"\ }\ ] } ### [](https://docs.saturnbtc.io/builders/saturn-api/pool-api/remove-liquidity#post-v0-pool-decrease-liquidity-message) Decrease Liquidity Message post https://api-dev.saturnbtc.io/v0/pool/decrease-liquidity/message Generates a message hash for decreasing liquidity from a position, which the user should sign. Authorizations Body poolIdstring · min: 64 · max: 66Required The pubkey of the pool. Pattern: `^[0-9a-fA-F]+$` positionPubKeystring · min: 64 · max: 66Required The pubkey of the position. Pattern: `^[0-9a-fA-F]+$` liquidityAmountstringRequired The amount of liquidity to withdraw. feeRateinteger · min: 1Required The fee rate for the transaction (in sats per byte). minToken0stringRequired The minimum amount of the first token to withdraw. Pattern: `^[1-9][0-9]*$` minToken1stringRequired The minimum amount of the second token to withdraw. Pattern: `^[1-9][0-9]*$` withdrawAddressToken0stringRequired The address to withdraw the first token to. withdrawAddressToken1stringRequired The address to withdraw the second token to. signedPsbtstringOptional The signed PSBT in base64 format. Pattern: `^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{4}|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{2}={2})$` runePubkeystring · min: 64 · max: 66Required The public key of the rune address of the user initiating the request. Pattern: `^[0-9a-fA-F]+$` paymentPubkeystring · min: 64 · max: 66Optional The public key of the bitcoin address of the user initiating the request. If the user doesn't have a bitcoin address, the runePubkey will be used Pattern: `^[0-9a-fA-F]+$` runeAddressstringRequired The rune address of the user. It must be a taproot address. (P2TR). If no bitcoin address is provided, the rune address will be used for bitcoin too. paymentAddressstringOptional The bitcoin address of the user. Responses 201 A hexadecimal string representing the hash of the message to be signed by the user. application/json Responsestring 400 Pool error application/json 401 Unauthorized application/json 403 User not found application/json 500 Internal Server Error application/json post /v0/pool/decrease-liquidity/message HTTP HTTPcURLJavaScriptPython Copy POST /v0/pool/decrease-liquidity/message HTTP/1.1 Host: api-dev.saturnbtc.io x-api-key: YOUR_API_KEY Content-Type: application/json Accept: */* Content-Length: 286 { "poolId": "text", "positionPubKey": "text", "liquidityAmount": "text", "feeRate": 1, "minToken0": "text", "minToken1": "text", "withdrawAddressToken0": "text", "withdrawAddressToken1": "text", "signedPsbt": "text", "runePubkey": "text", "paymentPubkey": "text", "runeAddress": "text", "paymentAddress": "text" } Test it 201 A hexadecimal string representing the hash of the message to be signed by the user. Copy text ### [](https://docs.saturnbtc.io/builders/saturn-api/pool-api/remove-liquidity#post-v0-pool-decrease-liquidity) Decrease Liquidity post https://api-dev.saturnbtc.io/v0/pool/decrease-liquidity Finalizes the decrease of liquidity from a position by submitting the signed message and executing the transaction on the network. Authorizations Body signaturestringRequired The user's signature of the decrease liquidity message. Pattern: `^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{4}|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{2}={2})$` poolIdstring · min: 64 · max: 66Required The pubkey of the pool. Pattern: `^[0-9a-fA-F]+$` positionPubKeystring · min: 64 · max: 66Required The pubkey of the position. Pattern: `^[0-9a-fA-F]+$` liquidityAmountstringRequired The amount of liquidity to withdraw. feeRateinteger · min: 1Required The fee rate for the transaction (in sats per byte). minToken0stringRequired The minimum amount of the first token to withdraw. Pattern: `^[1-9][0-9]*$` minToken1stringRequired The minimum amount of the second token to withdraw. Pattern: `^[1-9][0-9]*$` withdrawAddressToken0stringRequired The address to withdraw the first token to. withdrawAddressToken1stringRequired The address to withdraw the second token to. signedPsbtstringOptional The signed PSBT in base64 format. Pattern: `^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{4}|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{2}={2})$` runePubkeystring · min: 64 · max: 66Required The public key of the rune address of the user initiating the request. Pattern: `^[0-9a-fA-F]+$` paymentPubkeystring · min: 64 · max: 66Optional The public key of the bitcoin address of the user initiating the request. If the user doesn't have a bitcoin address, the runePubkey will be used Pattern: `^[0-9a-fA-F]+$` runeAddressstringRequired The rune address of the user. It must be a taproot address. (P2TR). If no bitcoin address is provided, the rune address will be used for bitcoin too. paymentAddressstringOptional The bitcoin address of the user. Responses 201 The Arch Network transaction ID of the liquidity decrease. application/json Responseobject Show properties 400 Pool error application/json 401 Unauthorized application/json 403 User not found application/json 500 Internal Server Error application/json post /v0/pool/decrease-liquidity HTTP HTTPcURLJavaScriptPython Copy POST /v0/pool/decrease-liquidity HTTP/1.1 Host: api-dev.saturnbtc.io x-api-key: YOUR_API_KEY Content-Type: application/json Accept: */* Content-Length: 305 { "signature": "text", "poolId": "text", "positionPubKey": "text", "liquidityAmount": "text", "feeRate": 1, "minToken0": "text", "minToken1": "text", "withdrawAddressToken0": "text", "withdrawAddressToken1": "text", "signedPsbt": "text", "runePubkey": "text", "paymentPubkey": "text", "runeAddress": "text", "paymentAddress": "text" } Test it 201 The Arch Network transaction ID of the liquidity decrease. Copy { "archTxId": "text", "bitcoinTxIds": [\ "text"\ ] } [PreviousIncrease Liquidity](https://docs.saturnbtc.io/builders/saturn-api/pool-api/increase-liquidity) [NextSwap](https://docs.saturnbtc.io/builders/saturn-api/pool-api/swap) Last updated 3 months ago --- # Wallet | Saturn Documentation #### [](https://docs.saturnbtc.io/builders/saturn-api/pool-api/wallet#balance-endpoint) Balance Endpoint **Overview** The Balance Endpoint offers comprehensive balance and transaction data for specified wallet addresses. This endpoint is specifically tailored to provide detailed insights into the runes and bitcoin associated with a given address. **Functionality** * **Address Parameter**: Users must specify a wallet address to query its balance and transaction data. * **Real-Time Data on Runes**: The endpoint focuses on providing detailed information about runes and bitcoin held in the queried wallet. * **UTXOs and UTXOsIds**: Understanding the difference between `utxos` and `utxosIds` is crucial: * **utxos**: This array contains detailed information about each unspent transaction output (UTXO) that has been parsed and is available for the specified wallet address. * **utxosIds**: Represents all UTXOs associated with the wallet, including those not yet parsed. Initially, new wallet queries may show only `utxosIds` without corresponding `utxos` data, indicating that parsing is pending. Subsequent queries will reveal detailed UTXO data as parsing is completed. **Endpoint Details** ### [](https://docs.saturnbtc.io/builders/saturn-api/pool-api/wallet#get-v0-wallet-balance) Get wallet balance and UTXO data get https://api-dev.saturnbtc.io/v0/wallet/balance Authorizations Query parameters addressstringRequired Responses 200 Wallet - The wallet's balance runes, btc and UTXO data. application/json Responseobject Show properties 401 Unauthorized application/json 500 Internal Server Error application/json get /v0/wallet/balance HTTP HTTPcURLJavaScriptPython Copy GET /v0/wallet/balance HTTP/1.1 Host: api-dev.saturnbtc.io x-api-key: YOUR_API_KEY Accept: */* Test it 200 Wallet - The wallet's balance runes, btc and UTXO data. Copy { "address": "text", "balance": "text", "utxosIds": [\ "text"\ ], "utxos": [\ {\ "collectionStatuses": [\ {\ "type": null,\ "id": "text",\ "name": "text",\ "displayName": "text",\ "symbol": null,\ "divisibility": 1,\ "supply": "text",\ "createdAt": "text",\ "updatedAt": "text",\ "batchSize": 1,\ "isWatchedByUser": true,\ "amount": "text",\ "riskyAmount": "text"\ }\ ],\ "isUsed": true,\ "hasInscription": true,\ "inscriptionIds": [\ "text"\ ],\ "txid": "text",\ "vout": 1,\ "status": {\ "confirmed": true,\ "block_height": 1,\ "block_hash": "text",\ "block_time": 1\ },\ "value": "text"\ }\ ] } * **Parameters**: * `address` (string, required): The wallet address for which balance and UTXO data is requested. **Response Structure** The response from this endpoint provides a JSON object with the following key details: * `address`: The queried wallet address. * `balance`: The overall balance of the wallet. * `utxos`: An array of UTXO objects, each containing: * Details about its balance and associated collections. * Information on any inscriptions, including their content and metadata. * `utxosIds`: An array of UTXO IDs representing all UTXOs associated with the wallet. * Each UTXO and collection item contains additional fields such as market price, batch size, verification status, and timestamps. [PreviousBoost Transaction](https://docs.saturnbtc.io/builders/saturn-api/pool-api/boost-transaction) [NextIndexer API](https://docs.saturnbtc.io/builders/saturn-api/indexer-api) Last updated 3 months ago --- # Swap Quotes | Saturn Documentation ### [](https://docs.saturnbtc.io/builders/saturn-api/pool-api/swap-quotes#swap-details-endpoint) Swap Details Endpoint * **Endpoint:** `/swap/details` * **Description:** This endpoint allows you to obtain the best exchange rate between two tokens and identify the best pool to perform the swap. * **Response Includes:** * Best pool for performing the swap. * `amountIn` and `amountOut` values. * Network fees and liquidity provider fees. * Price impact of the swap. #### [](https://docs.saturnbtc.io/builders/saturn-api/pool-api/swap-quotes#important-notes) Important Notes: * **Swap from Rune to BTC:** * The `amountOut` provided by the `/swap/details` endpoint does not account for the network fees. * You need to subtract the network fees from the `amountOut` to get the correct amount to send to the endpoint. ### [](https://docs.saturnbtc.io/builders/saturn-api/pool-api/swap-quotes#get-v0-pool-swap-details) Get Swap Details get https://api-dev.saturnbtc.io/v0/pool/swap/details Retrieves detailed information about a potential swap, including expected amounts and fees. Query parameters feeRateinteger · min: 1Required The fee rate for the transaction (in sats per byte). token0stringRequired The identifier of the first token. Format: `0:0` token1stringRequired The identifier of the second token. Usually '0:0: (Bitcoin) zeroToOnebooleanRequired A boolean indicating whether to swap from token0 to token1. exactInbooleanRequired A boolean indicating whether the swap is exact in. amountstringRequiredPattern: `^[1-9][0-9]*$` Responses 200 An object containing detailed swap information such as expected amounts, price, price impact, fees, and pool ID. application/json Responseobject Show properties 400 Pool error application/json 500 Internal Server Error application/json get /v0/pool/swap/details HTTP HTTPcURLJavaScriptPython Copy GET /v0/pool/swap/details HTTP/1.1 Host: api-dev.saturnbtc.io Accept: */* Test it 200 An object containing detailed swap information such as expected amounts, price, price impact, fees, and pool ID. Copy { "amountIn": "text", "amountOut": "text", "price": "text", "priceImpact": "text", "fees": { "makers": "text", "network": "text" }, "poolId": "text" } [PreviousSwap](https://docs.saturnbtc.io/builders/saturn-api/pool-api/swap) [NextBoost Transaction](https://docs.saturnbtc.io/builders/saturn-api/pool-api/boost-transaction) Last updated 3 months ago --- # Stats | Saturn Documentation get http://127.0.0.1:3000/stats/most-traded Fetches the rune collection with the biggest volume of trades Responses 200 Rune collection with stats application/json Responseobject Show properties 404 No collections found get /stats/most-traded HTTP HTTPcURLJavaScriptPython Copy GET /stats/most-traded HTTP/1.1 Host: 127.0.0.1:3000 Accept: */* Test it 200 Rune collection with stats Copy { "token0": { "id": "1234:5678", "name": "text", "displayName": "text", "symbol": null, "divisibility": 1, "batchSize": 1, "supply": "text", "createdAt": "2025-08-17T19:38:34.540Z", "updatedAt": "2025-08-17T19:38:34.540Z", "type": "btc" }, "token1": { "id": "1234:5678", "name": "text", "displayName": "text", "symbol": null, "divisibility": 1, "batchSize": 1, "supply": "text", "createdAt": "2025-08-17T19:38:34.540Z", "updatedAt": "2025-08-17T19:38:34.540Z", "type": "btc" }, "current_price": "text", "stats_per_period": [\ {\ "period": "Day",\ "total_volume": "text",\ "transactions": 1,\ "fee_token0": "text",\ "fee_token1": "text",\ "price_change": {\ "percentage": 1,\ "absolute": 1\ },\ "high_price": "text",\ "low_price": "text"\ }\ ] } [PreviousCharts](https://docs.saturnbtc.io/builders/saturn-api/indexer-api/charts) [NextLiquidity Pool SDK](https://docs.saturnbtc.io/builders/liquidity-pool-sdk) Last updated 3 months ago --- # Overview | Saturn Documentation [](https://docs.saturnbtc.io/saturn-v1/overview#general-overview) General Overview --------------------------------------------------------------------------------------- Saturn is the first order book for trading Rare Satoshis, and Rings. For general info on what these are, refer to "[What are Satoshi's, Rare SATs, and Rings](https://docs.saturnbtc.io/saturn-v1/faqs/what-are-satoshis-rare-sats-and-rings) " FAQ. [](https://docs.saturnbtc.io/saturn-v1/overview#what-can-i-do-on-saturn) What can I do on Saturn? ------------------------------------------------------------------------------------------------------ #### [](https://docs.saturnbtc.io/saturn-v1/overview#id-1.-orderbook) 1\. [Orderbook](https://docs.saturnbtc.io/saturn-v1/how-to-links/orderbook) Buy, Sell and Trade Rare Satoshi categories in whatever categories you want. By placing orders/bids or simply buying last price. #### [](https://docs.saturnbtc.io/saturn-v1/overview#id-2-discover) 2 - Discover Easily identify what Rare Satoshis you hold in a wallet and in what quantity. #### [](https://docs.saturnbtc.io/saturn-v1/overview#id-3-collect) 3 - [Collect](https://docs.saturnbtc.io/saturn-v1/how-to-links/collect) Collect your Rare Satoshis in a tradeable bundle (UTXO) safely padded to ensure your Rare Satoshis will not be accidentally spent as fees. [PreviousLiquidity Pool SDK](https://docs.saturnbtc.io/builders/liquidity-pool-sdk) [NextHow-To-Links](https://docs.saturnbtc.io/saturn-v1/how-to-links) Last updated 8 months ago --- # How-To-Links | Saturn Documentation [](https://docs.saturnbtc.io/saturn-v1/how-to-links/setting-up-trading-account) ![Cover](https://docs.saturnbtc.io/~gitbook/image?url=https%3A%2F%2F3489665744-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FedBT5s5MOw7m2x4ZUZp0%252Fuploads%252FcLsEtIvuTsEoEwv3gpyf%252Fcreate%2520trading%2520account%25201.png%3Falt%3Dmedia%26token%3D48b055ed-9b89-4375-8a19-1ddf19e2612e&width=376&dpr=4&quality=100&sign=61980f4c&sv=2) [**Create a Trading Account**](https://docs.saturnbtc.io/saturn-v1/how-to-links/setting-up-trading-account) [](https://docs.saturnbtc.io/saturn-v1/how-to-links/orderbook) ![Cover](https://docs.saturnbtc.io/~gitbook/image?url=https%3A%2F%2F3489665744-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FedBT5s5MOw7m2x4ZUZp0%252Fuploads%252FjYVTHQe9CcVRgbE6YaOv%252FCool%2520picture%2520of%2520Saturn%2520trading%2520platform.png%3Falt%3Dmedia%26token%3D1c55f249-66c8-4f93-b537-a243286cf0dc&width=376&dpr=4&quality=100&sign=49d0a720&sv=2) [**The Orderbook**](https://docs.saturnbtc.io/saturn-v1/how-to-links/orderbook) [](https://docs.saturnbtc.io/saturn-v1/how-to-links/tutorial-videos/setting-up-a-trading-account-v3-and-preparing-for-rings-airdrops) ![Cover](https://docs.saturnbtc.io/~gitbook/image?url=https%3A%2F%2F3489665744-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FedBT5s5MOw7m2x4ZUZp0%252Fuploads%252Fv8LATSgaRrKdCgXUToKY%252Ftutorial%2520video%27s%2520picture.png%3Falt%3Dmedia%26token%3D5ba7a4ed-260c-4209-9944-7ab3aa0f0b89&width=376&dpr=4&quality=100&sign=37d335b&sv=2) [**Tutorial Videos**](https://docs.saturnbtc.io/saturn-v1/how-to-links/tutorial-videos/setting-up-a-trading-account-v3-and-preparing-for-rings-airdrops) Liquidity Provision [PreviousOverview](https://docs.saturnbtc.io/saturn-v1/overview) [NextSetting up Trading Account](https://docs.saturnbtc.io/saturn-v1/how-to-links/setting-up-trading-account) Last updated 9 months ago --- # Withdrawing from Trading account | Saturn Documentation Click the button featured below to go to your profile. It is found on the top-right of the Saturn website. ![](https://docs.saturnbtc.io/~gitbook/image?url=https%3A%2F%2F3489665744-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FedBT5s5MOw7m2x4ZUZp0%252Fuploads%252F452aL6pCIPiDbUKQKi7E%252Fmy%2520profile%2520saturn%2520button.png%3Falt%3Dmedia%26token%3De970abe8-c3fa-4fd9-a708-cdbf12d62543&width=768&dpr=4&quality=100&sign=a98a57e4&sv=2) Profile button Clicking this, will open up the window featured below. Click the button that the arrow points to. ![](https://docs.saturnbtc.io/~gitbook/image?url=https%3A%2F%2F3489665744-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FedBT5s5MOw7m2x4ZUZp0%252Fuploads%252F9jOQ7BFjXrfYjl9UINJW%252Fmanage%2520utxo%2520profile.png%3Falt%3Dmedia%26token%3D80da34bc-1d0a-4eb2-93a4-c090217777f3&width=768&dpr=4&quality=100&sign=9e8beef6&sv=2) Your profile start screen 1. Click Withdraw 2. Select the UTXO you want to withdraw (the $ indicates how much BTC you are withdrawing, and if the UTXO holds any Rare SATs, this will be indicated by their [ICONs](https://docs.saturnbtc.io/saturn-v1/faqs/what-are-satoshis-rare-sats-and-rings) 3. Select a fee rate and hit withdraw. 4. The UTXO will now me moved form your Trading Account, back into the BTC wallet you have connected to Saturn ![](https://docs.saturnbtc.io/~gitbook/image?url=https%3A%2F%2F3489665744-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FedBT5s5MOw7m2x4ZUZp0%252Fuploads%252FnUg9oiYXJ6wA2J0DP1Tk%252Fwithdrawing%2520utxo%27s.png%3Falt%3Dmedia%26token%3D8c57e73c-b44a-4215-8069-992caced55c0&width=768&dpr=4&quality=100&sign=be38ab91&sv=2) Withdrawing an UTXO [PreviousSetting up Trading Account](https://docs.saturnbtc.io/saturn-v1/how-to-links/setting-up-trading-account) [NextSwap](https://docs.saturnbtc.io/saturn-v1/how-to-links/swap) Last updated 1 year ago --- # Boost Transaction | Saturn Documentation #### [](https://docs.saturnbtc.io/builders/saturn-api/pool-api/boost-transaction#overview) Overview * **Functionality**: Boost and broadcast transactions * **API Key authentication**: Access to all endpoints requires the `x-api-key` header provided by Saturn * **Address parameter**: All requests must have the `Content-Type` header of `application/json` and provide the `address` in the body of the wallet that is requesting the broadcast. **Endpoints** ### [](https://docs.saturnbtc.io/builders/saturn-api/pool-api/boost-transaction#post-v0-transaction-boost) Boost an array of transaction ids. User must own some of the outputs of those transactions post https://api-dev.saturnbtc.io/v0/transaction/boost Boost an array of transaction ids. User must own some of the outputs of those transactions. The response will contain a PSBT that can be signed by the user. You can then broadcast the PSBT using the `/broadcast` endpoint. Authorizations Body runeAddressstringRequired The rune address of the user. It must be a taproot address. (P2TR). If no bitcoin address is provided, the rune address will be used for bitcoin too. paymentAddressstringOptional The bitcoin address of the user. runePublicKeystring · min: 64 · max: 66Required The rune public key of the user. Pattern: `^[0-9a-fA-F]+$` paymentPublicKeystring · min: 64 · max: 66Optional The payment public key of the user. Pattern: `^[0-9a-fA-F]+$` transactionIdsstring\[\]Required The transaction ids to boost. Responses 201Success application/json Responseobject Show properties 400 Transaction speedup error application/json 401 Unauthorized application/json 403 User not found application/json post /v0/transaction/boost HTTP HTTPcURLJavaScriptPython Copy POST /v0/transaction/boost HTTP/1.1 Host: api-dev.saturnbtc.io x-api-key: YOUR_API_KEY Content-Type: application/json Accept: */* Content-Length: 121 { "runeAddress": "text", "paymentAddress": "text", "runePublicKey": "text", "paymentPublicKey": "text", "transactionIds": [\ "text"\ ] } Test it 201Success Copy { "psbt": "text", "fee": "text", "newFeeRate": 1, "feeRate": 1, "utxosToSign": [\ {\ "address": "text",\ "signingIndexes": [\ 1\ ],\ "sigHash": 1,\ "utxo": "text"\ }\ ] } ### [](https://docs.saturnbtc.io/builders/saturn-api/pool-api/boost-transaction#post-v0-transaction-broadcast) Broadcast a signed transaction post https://api-dev.saturnbtc.io/v0/transaction/broadcast Broadcast a signed transaction. Authorizations Body runeAddressstringRequired The rune address of the user. It must be a taproot address. (P2TR). If no bitcoin address is provided, the rune address will be used for bitcoin too. paymentAddressstringOptional The bitcoin address of the user. signedPsbtstringRequired The signed PSBT of the transaction. txTypeone ofRequired The type of the transaction. anyOptional or anyOptional or anyOptional or anyOptional or anyOptional or anyOptional or anyOptional or anyOptional or anyOptional or anyOptional or anyOptional or anyOptional or anyOptional or anyOptional or anyOptional Responses 201Success application/json Responsestring 400 Transaction speedup error application/json 401 Unauthorized application/json 403 User not found application/json post /v0/transaction/broadcast HTTP HTTPcURLJavaScriptPython Copy POST /v0/transaction/broadcast HTTP/1.1 Host: api-dev.saturnbtc.io x-api-key: YOUR_API_KEY Content-Type: application/json Accept: */* Content-Length: 80 { "runeAddress": "text", "paymentAddress": "text", "signedPsbt": "text", "txType": null } Test it 201Success Copy text [PreviousSwap Quotes](https://docs.saturnbtc.io/builders/saturn-api/pool-api/swap-quotes) [NextWallet](https://docs.saturnbtc.io/builders/saturn-api/pool-api/wallet) Last updated 3 months ago --- # Setting up Trading Account | Saturn Documentation [A full explanation of the changes in V3](https://twitter.com/Saturn_btc/status/1740145247366131877) You have two options (see picture below): 1. **Deposit BTC directly to the Trading account wallet address, by copying it.** This is recommended if there are only small UTXO's present in your wallet or you don't own any Rare SATs or Rings yet, that you want to deposit and trade on Saturn. 2. Click the TOP-up button to deposit BTC already present in your connected wallet ![](https://docs.saturnbtc.io/~gitbook/image?url=https%3A%2F%2F3489665744-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FedBT5s5MOw7m2x4ZUZp0%252Fuploads%252FcLsEtIvuTsEoEwv3gpyf%252Fcreate%2520trading%2520account%25201.png%3Falt%3Dmedia%26token%3D48b055ed-9b89-4375-8a19-1ddf19e2612e&width=768&dpr=4&quality=100&sign=61980f4c&sv=2) Option 2 (continued) You have clicked "Top up". The window seen below will pop up. Here you have two steps: 1. You select the UTXO you want to deposit. "UTXO" refers to a portion of your wallet containing BTC. The $ value, will indicate how much BTC is present in said UTXO, or portion of your wallet balance. 2. You have to select a Fee rate. This is how many fees you will pay, and how fast your transaction will be completed On-Chain. It is recommended to use Medium, or Fast is the chain is busy. ![](https://docs.saturnbtc.io/~gitbook/image?url=https%3A%2F%2F3489665744-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FedBT5s5MOw7m2x4ZUZp0%252Fuploads%252FzjStHXYdgCnOxYhPf1Va%252Fcreate%2520trading%2520account%25202.png%3Falt%3Dmedia%26token%3D07be3b00-a542-4941-90f2-6833b8067954&width=768&dpr=4&quality=100&sign=e01346aa&sv=2) Depositing UTXO's Optionally if you already hold any Rare SATs types in your wallet, these will be indicated by their respective ICONS (see below). This way you can easily identify the UTXO's containing rare SATs, if you wish to trade these on Saturn. ![](https://docs.saturnbtc.io/~gitbook/image?url=https%3A%2F%2F3489665744-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FedBT5s5MOw7m2x4ZUZp0%252Fuploads%252FV0HPbCGkbF7e2HsqRD87%252Fvintage%2520sats%2520in%2520wallet.png%3Falt%3Dmedia%26token%3D0f2fa664-6540-4317-b2dc-eea5615963ab&width=768&dpr=4&quality=100&sign=53bc052d&sv=2) In the connected BTC wallet, there is an UTXO present that holds 10.000 Vintage SATs [PreviousHow-To-Links](https://docs.saturnbtc.io/saturn-v1/how-to-links) [NextWithdrawing from Trading account](https://docs.saturnbtc.io/saturn-v1/how-to-links/setting-up-trading-account/withdrawing-from-trading-account) Last updated 9 months ago --- # Trade History | Saturn Documentation Enter your Trade history, under Your Profile, middle tab: * Click the Arrow to view the Status, and more details about the trade * The % next to it, indicates how much of the order is filled. ![](https://docs.saturnbtc.io/~gitbook/image?url=https%3A%2F%2F3489665744-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FedBT5s5MOw7m2x4ZUZp0%252Fuploads%252FUfIhvt8IYhuuwV5okZJl%252FHistory%2520saturn.png%3Falt%3Dmedia%26token%3Dce4bd122-b3d1-4fe6-b3fe-13951d09ed99&width=768&dpr=4&quality=100&sign=4c31dfc7&sv=2) Trade history [PreviousYour Profile](https://docs.saturnbtc.io/saturn-v1/how-to-links/orderbook/your-profile) [NextHow to place a sell order](https://docs.saturnbtc.io/saturn-v1/how-to-links/orderbook/how-to-place-a-sell-order) Last updated 1 year ago --- # Setting up a Trading Account (v3) and preparing for Rings Airdrops | Saturn Documentation Setting up Saturn Rings, by [Fab](https://twitter.com/fabulameo) @Goodthings with "What is $RUG" @AmitDhun\_ on how to quallify for the first Rings airdrops [PreviousTutorial videos](https://docs.saturnbtc.io/saturn-v1/how-to-links/tutorial-videos) [NextTrading on Saturn](https://docs.saturnbtc.io/saturn-v1/how-to-links/tutorial-videos/trading-on-saturn) Last updated 9 months ago --- # Collect | Saturn Documentation BTC is stored in what we call [UTXOs](https://docs.saturnbtc.io/saturn-v1/faqs/what-is-a-utxo) . Your wallet is always comprised of UTXO's, they are "parts" of your wallet. The amount of BTC, or type of Assets a UTXO stores, can vary. In order to safely move around Bitcoin, Rare SATs, or Rings we need to specify which part of our wallet, we want to "collect", or optionally send elsewhere. [PreviousPositions](https://docs.saturnbtc.io/saturn-v1/how-to-links/orderbook/positions) [NextCharts](https://docs.saturnbtc.io/saturn-v1/how-to-links/charts) Last updated 1 year ago --- # Charts | Saturn Documentation ![](https://docs.saturnbtc.io/~gitbook/image?url=https%3A%2F%2F3489665744-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FedBT5s5MOw7m2x4ZUZp0%252Fuploads%252FFBysvTCjQaygURd7prn1%252Fimage.png%3Falt%3Dmedia%26token%3D9babdef4-3bfa-4c67-b9c8-1797611d3d3d&width=768&dpr=4&quality=100&sign=f23972f4&sv=2) Charts can be found on the Limit view of any asset. Saturn BTC leverages TradingView technology for its market quotes, presenting them through sophisticated charts. This integration offers a broad spectrum of analytical tools for [monitoring cryptocurrency prices](https://www.tradingview.com/markets/cryptocurrencies/prices-all/) and accessing the latest market insights. [PreviousCollect](https://docs.saturnbtc.io/saturn-v1/how-to-links/collect) [NextTutorial videos](https://docs.saturnbtc.io/saturn-v1/how-to-links/tutorial-videos) Last updated 9 months ago --- # Positions | Saturn Documentation At the bottom of the orderbook under the charts, you will find the "Positions" Tab. Here you can see any open orders you have placed, that have not been filled yet. _**You can cancel any open positions for free at any time.**_ **Costs (including gas fees) are only made, once an order has been accepted.** ![](https://docs.saturnbtc.io/~gitbook/image?url=https%3A%2F%2F3489665744-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FedBT5s5MOw7m2x4ZUZp0%252Fuploads%252FQBgED26uxj3G2g1fRoEq%252Fpositions%2520saturn.png%3Falt%3Dmedia%26token%3D8c1549dd-301f-43fc-8b6d-ae16897a5e5f&width=768&dpr=4&quality=100&sign=fed4531e&sv=2) To cancel a trade, or to see more info, click the three dots on the rightside ![](https://docs.saturnbtc.io/~gitbook/image?url=https%3A%2F%2F3489665744-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FedBT5s5MOw7m2x4ZUZp0%252Fuploads%252FjMQRqfpjhZEoiXTKoKgW%252Fthree%2520dots%2520positions%2520tab.png%3Falt%3Dmedia%26token%3D421291b2-f920-41f0-9b40-1adbab6535f7&width=768&dpr=4&quality=100&sign=b964d390&sv=2) [PreviousHow to place a buy order](https://docs.saturnbtc.io/saturn-v1/how-to-links/orderbook/how-to-place-a-buy-order) [NextCollect](https://docs.saturnbtc.io/saturn-v1/how-to-links/collect) Last updated 1 year ago --- # Your Profile | Saturn Documentation Click the button featured below to go to your profile. It is found on the top-right of the Saturn website. ![](https://docs.saturnbtc.io/~gitbook/image?url=https%3A%2F%2F3489665744-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FedBT5s5MOw7m2x4ZUZp0%252Fuploads%252F452aL6pCIPiDbUKQKi7E%252Fmy%2520profile%2520saturn%2520button.png%3Falt%3Dmedia%26token%3De970abe8-c3fa-4fd9-a708-cdbf12d62543&width=768&dpr=4&quality=100&sign=a98a57e4&sv=2) Profile button Clicking this, will open up the window featured below: ![](https://docs.saturnbtc.io/~gitbook/image?url=https%3A%2F%2F3489665744-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FedBT5s5MOw7m2x4ZUZp0%252Fuploads%252FQnRuQ1tQFOUIjwjOlgu5%252Fyour%2520profile%2520start%2520screen.png%3Falt%3Dmedia%26token%3D71fbb81c-512f-4f04-a24e-4ef54651c41b&width=768&dpr=4&quality=100&sign=d885e030&sv=2) Your profile start screen If there are any asset present in your Trading Account, that are tradeable on Saturn, they will show up here. If you don't have any assets in your Trading account, you can use one of two options: You have two options (see picture below): 1. **Deposit BTC directly to the Trading account wallet address, by copying it.** This is recommended if there are only small UTXO's present in your wallet or you don't own any Rare SATs or Rings yet, that you want to deposit and trade on Saturn. 2. Click the TOP-up button to deposit BTC already present in your connected wallet. For more on this option, refer to ["Setting up a trading Account"](https://docs.saturnbtc.io/saturn-v1/how-to-links/setting-up-trading-account) ![](https://docs.saturnbtc.io/~gitbook/image?url=https%3A%2F%2F3489665744-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FedBT5s5MOw7m2x4ZUZp0%252Fuploads%252F07VlFbkbfmK87BTP70kM%252FOption%25201-2%2520profile.png%3Falt%3Dmedia%26token%3D9016ce2d-61f5-46e7-ac82-8f19c418ec1e&width=768&dpr=4&quality=100&sign=6aaca7ae&sv=2) [PreviousOrderbook](https://docs.saturnbtc.io/saturn-v1/how-to-links/orderbook) [NextTrade History](https://docs.saturnbtc.io/saturn-v1/how-to-links/orderbook/your-profile/trade-history) Last updated 1 year ago --- # Orderbook | Saturn Documentation ![](https://docs.saturnbtc.io/~gitbook/image?url=https%3A%2F%2F3489665744-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FedBT5s5MOw7m2x4ZUZp0%252Fuploads%252FCEhNjaT40KZdO183KW63%252FSaturn%2520v3%2520live.jpg%3Falt%3Dmedia%26token%3D2cedabdf-1d9a-4de8-acc8-06f02b01c302&width=768&dpr=4&quality=100&sign=431f3341&sv=2) Saturn is the first live Order Book for Rare Satoshis. Bringing fungibility and collectability to Satoshis that haven't been seen before. So how do you use it? * [Your Profile](https://docs.saturnbtc.io/saturn-v1/how-to-links/orderbook/your-profile) * [How to sell](https://docs.saturnbtc.io/saturn-v1/how-to-links/orderbook/how-to-place-a-sell-order) * [How to bu](https://docs.saturnbtc.io/saturn-v1/how-to-links/orderbook/how-to-place-a-buy-order) [y](https://docs.saturnbtc.io/saturn-v1/how-to-links/orderbook/how-to-place-a-buy-order) * [Positions](https://docs.saturnbtc.io/saturn-v1/how-to-links/orderbook/positions) [PreviousSwap](https://docs.saturnbtc.io/saturn-v1/how-to-links/swap) [NextYour Profile](https://docs.saturnbtc.io/saturn-v1/how-to-links/orderbook/your-profile) Last updated 9 months ago --- # Positions | Saturn Documentation post http://127.0.0.1:3000/positions/{pubkey}/by-filter Get paginated positions for a user that match the specified filter Path parameters pubkeystringRequired User's pubkey as hex string Body namearray | nullOptional min\_liquidityinteger | nullOptional offsetinteger | nullOptional limitinteger | nullOptional Responses 200 Paginated positions application/json Responseobject Show properties 400 Invalid pubkey format post /positions/{pubkey}/by-filter HTTP HTTPcURLJavaScriptPython Copy POST /positions/{pubkey}/by-filter HTTP/1.1 Host: 127.0.0.1:3000 Content-Type: application/json Accept: */* Content-Length: 65 { "name": [\ "text"\ ], "min_liquidity": null, "offset": null, "limit": null } Test it 200 Paginated positions Copy { "response": [\ {\ "position": {\ "id": "text",\ "invalid": true,\ "poolId": "text",\ "owner": "text"\ },\ "state": {\ "positionId": "text",\ "blockHeight": "text",\ "liquidity": "text",\ "incrementToken0Amount": 1,\ "incrementToken1Amount": 1\ },\ "estimateYield": "text",\ "totalIncrementToken0Amount": 1,\ "totalIncrementToken1Amount": 1\ }\ ], "offset": 1 } get http://127.0.0.1:3000/position/{id} Get position details Path parameters idstringRequired Position pubkey as hex string Responses 200 Position details application/json Responseobject Show properties 400 Invalid pubkey format application/json 404 Position not found text/plain get /position/{id} HTTP HTTPcURLJavaScriptPython Copy GET /position/{id} HTTP/1.1 Host: 127.0.0.1:3000 Accept: */* Test it 200 Position details Copy { "position": { "id": "text", "invalid": true, "poolId": "text", "owner": "text" }, "state": { "positionId": "text", "blockHeight": "text", "liquidity": "text", "incrementToken0Amount": 1, "incrementToken1Amount": 1 } } get http://127.0.0.1:3000/position/{pubkey}/{pool\_id} Get details for a user's position in the specified pool Path parameters pubkeystringRequired User's pubkey as hex string pool\_idstringRequired Pool ID as a hex string Responses 200 List of positions application/json Responseobject Show properties 400 Invalid pubkey format application/json 404 Position not found for specified pool text/plain get /position/{pubkey}/{pool\_id} HTTP HTTPcURLJavaScriptPython Copy GET /position/{pubkey}/{pool_id} HTTP/1.1 Host: 127.0.0.1:3000 Accept: */* Test it 200 List of positions Copy { "position": { "id": "text", "invalid": true, "poolId": "text", "owner": "text" }, "state": { "positionId": "text", "blockHeight": "text", "liquidity": "text", "incrementToken0Amount": 1, "incrementToken1Amount": 1 }, "estimateYield": "text", "totalIncrementToken0Amount": 1, "totalIncrementToken1Amount": 1 } get http://127.0.0.1:3000/positions/{pubkey} Get a list of positions owned by the user Path parameters pubkeystringRequired User's pubkey as hex string Responses 200 List of positions application/json Responseobject\[\] Show properties 400 Invalid pubkey format get /positions/{pubkey} HTTP HTTPcURLJavaScriptPython Copy GET /positions/{pubkey} HTTP/1.1 Host: 127.0.0.1:3000 Accept: */* Test it 200 List of positions Copy [\ {\ "position": {\ "id": "text",\ "invalid": true,\ "poolId": "text",\ "owner": "text"\ },\ "state": {\ "positionId": "text",\ "blockHeight": "text",\ "liquidity": "text",\ "incrementToken0Amount": 1,\ "incrementToken1Amount": 1\ },\ "estimateYield": "text",\ "totalIncrementToken0Amount": 1,\ "totalIncrementToken1Amount": 1\ }\ ] [PreviousPrices](https://docs.saturnbtc.io/builders/saturn-api/indexer-api/prices) [NextTransactions](https://docs.saturnbtc.io/builders/saturn-api/indexer-api/transactions) Last updated 3 months ago --- # Transactions | Saturn Documentation get http://127.0.0.1:3000/transaction/pool/{pool\_id} Get a paginated list of all transactions in the specified pool that match the provided filter Path parameters pool\_idstringRequired Pool ID in hex format Query parameters startDatestring | nullOptional endDatestring | nullOptional typesarray | nullOptional offsetinteger | nullOptional limitinteger | nullOptional sortCreatedAtone ofOptional nullOptional or string · enumOptionalPossible values: `ASC``DESC` Responses 200 List of transactions application/json Responseobject Show properties 400 Invalid pubkey format get /transaction/pool/{pool\_id} HTTP HTTPcURLJavaScriptPython Copy GET /transaction/pool/{pool_id} HTTP/1.1 Host: 127.0.0.1:3000 Accept: */* Test it 200 List of transactions Copy { "response": [\ {\ "id": "text",\ "status": {\ "type": "queued"\ },\ "rollbackStatus": {\ "message": "text",\ "type": "rolledback"\ },\ "bitcoinTxId": null,\ "bitcoinBlockHeight": null,\ "bitcoinTxStatus": null,\ "blockHeight": "text",\ "poolPubkey": "text",\ "userPubkey": "text",\ "transactionType": "open_position",\ "createdAt": "2025-08-17T17:57:49.733Z",\ "details": {\ "positionId": "text",\ "token0Amount": "text",\ "token1Amount": "text",\ "liquidityAmount": "text",\ "diffLiquidityAmount": "text",\ "type": "open_position"\ }\ }\ ], "offset": 1 } get http://127.0.0.1:3000/transaction/user/{pubkey} Fetches a paginated list of user's transactions that match the provided filter Path parameters pubkeystringRequired User public key in hex format Query parameters startDatestring | nullOptional endDatestring | nullOptional typesarray | nullOptional offsetinteger | nullOptional limitinteger | nullOptional sortCreatedAtone ofOptional nullOptional or string · enumOptionalPossible values: `ASC``DESC` Responses 200 Paginated list of transactions application/json Responseobject Show properties 400 Invalid pubkey format get /transaction/user/{pubkey} HTTP HTTPcURLJavaScriptPython Copy GET /transaction/user/{pubkey} HTTP/1.1 Host: 127.0.0.1:3000 Accept: */* Test it 200 Paginated list of transactions Copy { "response": [\ {\ "transaction": {\ "id": "text",\ "status": {\ "type": "queued"\ },\ "rollbackStatus": {\ "message": "text",\ "type": "rolledback"\ },\ "bitcoinTxId": null,\ "bitcoinBlockHeight": null,\ "bitcoinTxStatus": null,\ "blockHeight": "text",\ "poolPubkey": "text",\ "userPubkey": "text",\ "transactionType": "open_position",\ "createdAt": "2025-08-17T17:57:49.733Z",\ "details": {\ "positionId": "text",\ "token0Amount": "text",\ "token1Amount": "text",\ "liquidityAmount": "text",\ "diffLiquidityAmount": "text",\ "type": "open_position"\ }\ },\ "token0": {\ "id": "1234:5678",\ "name": "text",\ "displayName": "text",\ "symbol": null,\ "divisibility": 1,\ "batchSize": 1,\ "supply": "text",\ "createdAt": "2025-08-17T17:57:49.733Z",\ "updatedAt": "2025-08-17T17:57:49.733Z",\ "type": "btc"\ },\ "token1": {\ "id": "1234:5678",\ "name": "text",\ "displayName": "text",\ "symbol": null,\ "divisibility": 1,\ "batchSize": 1,\ "supply": "text",\ "createdAt": "2025-08-17T17:57:49.733Z",\ "updatedAt": "2025-08-17T17:57:49.733Z",\ "type": "btc"\ }\ }\ ], "offset": 1 } get http://127.0.0.1:3000/transaction/all Paginated list of all transactions that match the provided filter Query parameters startDatestring | nullOptional endDatestring | nullOptional typesarray | nullOptional offsetinteger | nullOptional limitinteger | nullOptional sortCreatedAtone ofOptional nullOptional or string · enumOptionalPossible values: `ASC``DESC` Responses 200 Paginated list of transactions application/json Responseobject Show properties get /transaction/all HTTP HTTPcURLJavaScriptPython Copy GET /transaction/all HTTP/1.1 Host: 127.0.0.1:3000 Accept: */* Test it 200 Paginated list of transactions Copy { "response": [\ {\ "id": "text",\ "status": {\ "type": "queued"\ },\ "rollbackStatus": {\ "message": "text",\ "type": "rolledback"\ },\ "bitcoinTxId": null,\ "bitcoinBlockHeight": null,\ "bitcoinTxStatus": null,\ "blockHeight": "text",\ "poolPubkey": "text",\ "userPubkey": "text",\ "transactionType": "open_position",\ "createdAt": "2025-08-17T17:57:49.733Z",\ "details": {\ "positionId": "text",\ "token0Amount": "text",\ "token1Amount": "text",\ "liquidityAmount": "text",\ "diffLiquidityAmount": "text",\ "type": "open_position"\ }\ }\ ], "offset": 1 } get http://127.0.0.1:3000/transaction/swaps List of swap transactions for specific collections Query parameters token0string · tokenRequired Token identifier in format block:tx Example: `1234:5678` token1string · tokenRequired Token identifier in format block:tx Example: `1234:5678` offsetinteger | nullOptional limitinteger | nullOptional Responses 200 Paginated list of transactions application/json Responseobject Show properties get /transaction/swaps HTTP HTTPcURLJavaScriptPython Copy GET /transaction/swaps HTTP/1.1 Host: 127.0.0.1:3000 Accept: */* Test it 200 Paginated list of transactions Copy { "response": [\ {\ "transaction": {\ "id": "text",\ "status": {\ "type": "queued"\ },\ "rollbackStatus": {\ "message": "text",\ "type": "rolledback"\ },\ "bitcoinTxId": null,\ "bitcoinBlockHeight": null,\ "bitcoinTxStatus": null,\ "blockHeight": "text",\ "poolPubkey": "text",\ "userPubkey": "text",\ "transactionType": "open_position",\ "createdAt": "2025-08-17T17:57:49.733Z",\ "details": {\ "positionId": "text",\ "token0Amount": "text",\ "token1Amount": "text",\ "liquidityAmount": "text",\ "diffLiquidityAmount": "text",\ "type": "open_position"\ }\ },\ "token0": {\ "id": "1234:5678",\ "name": "text",\ "displayName": "text",\ "symbol": null,\ "divisibility": 1,\ "batchSize": 1,\ "supply": "text",\ "createdAt": "2025-08-17T17:57:49.733Z",\ "updatedAt": "2025-08-17T17:57:49.733Z",\ "type": "btc"\ },\ "token1": {\ "id": "1234:5678",\ "name": "text",\ "displayName": "text",\ "symbol": null,\ "divisibility": 1,\ "batchSize": 1,\ "supply": "text",\ "createdAt": "2025-08-17T17:57:49.733Z",\ "updatedAt": "2025-08-17T17:57:49.733Z",\ "type": "btc"\ }\ }\ ], "offset": 1 } [PreviousPositions](https://docs.saturnbtc.io/builders/saturn-api/indexer-api/positions) [NextCharts](https://docs.saturnbtc.io/builders/saturn-api/indexer-api/charts) Last updated 3 months ago --- # Tutorial videos | Saturn Documentation The Tutorial Videos cover a range of topics, featured below: [](https://app.gitbook.com/o/5MvUtKzcUNatJYSYVvps/s/edBT5s5MOw7m2x4ZUZp0/~/changes/41/how-to-links/tutorial-videos/setting-up-a-trading-account-v3-and-preparing-for-rings-airdrops) ![Cover](https://docs.saturnbtc.io/~gitbook/image?url=https%3A%2F%2F3489665744-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FedBT5s5MOw7m2x4ZUZp0%252Fuploads%252Fv8LATSgaRrKdCgXUToKY%252Ftutorial%2520video%27s%2520picture.png%3Falt%3Dmedia%26token%3D5ba7a4ed-260c-4209-9944-7ab3aa0f0b89&width=376&dpr=4&quality=100&sign=37d335b&sv=2) [**Setting up a Trading Account (v3) and preparing for Rings Airdrops**](https://app.gitbook.com/o/5MvUtKzcUNatJYSYVvps/s/edBT5s5MOw7m2x4ZUZp0/~/changes/41/how-to-links/tutorial-videos/setting-up-a-trading-account-v3-and-preparing-for-rings-airdrops) [](https://app.gitbook.com/o/5MvUtKzcUNatJYSYVvps/s/edBT5s5MOw7m2x4ZUZp0/~/changes/41/how-to-links/tutorial-videos/trading-on-saturn) ![Cover](https://docs.saturnbtc.io/~gitbook/image?url=https%3A%2F%2F3489665744-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FedBT5s5MOw7m2x4ZUZp0%252Fuploads%252FjYVTHQe9CcVRgbE6YaOv%252FCool%2520picture%2520of%2520Saturn%2520trading%2520platform.png%3Falt%3Dmedia%26token%3D1c55f249-66c8-4f93-b537-a243286cf0dc&width=376&dpr=4&quality=100&sign=49d0a720&sv=2) [**Trading on Saturn**](https://app.gitbook.com/o/5MvUtKzcUNatJYSYVvps/s/edBT5s5MOw7m2x4ZUZp0/~/changes/41/how-to-links/tutorial-videos/trading-on-saturn) [PreviousCharts](https://docs.saturnbtc.io/saturn-v1/how-to-links/charts) [NextSetting up a Trading Account (v3) and preparing for Rings Airdrops](https://docs.saturnbtc.io/saturn-v1/how-to-links/tutorial-videos/setting-up-a-trading-account-v3-and-preparing-for-rings-airdrops) Last updated 9 months ago --- # How to place a sell order | Saturn Documentation _You don't have to match the exact quantities within the orderbook, but you do have the match atleast the minimum order size._ _**Minimum order Sizes per Type:**_ The First Transaction, Palindrome, Uncommon: _**1**_ Nakamoto, Block 78: _**1,000**_ Pizza, Vintage: _**10,000**_ 1. Navigate to the orderbook using the **LIMIT** tab located at the top of Saturn website. ![](https://docs.saturnbtc.io/~gitbook/image?url=https%3A%2F%2F3489665744-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FedBT5s5MOw7m2x4ZUZp0%252Fuploads%252FFGNtAd7pA8dFOCtS4v15%252Fimage.png%3Falt%3Dmedia%26token%3Df19d6218-1f86-411a-a73e-e3ffe2e01e60&width=768&dpr=4&quality=100&sign=86ea658b&sv=2) Use the limit button to navigate to the orderbook. ![](https://docs.saturnbtc.io/~gitbook/image?url=https%3A%2F%2F3489665744-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FedBT5s5MOw7m2x4ZUZp0%252Fuploads%252FDHS92CCORqdjR4OgysUr%252Fmake%2520a%2520sell%2520order%2520image.png%3Falt%3Dmedia%26token%3Db6def754-de24-4454-ad78-d151e9e0beb4&width=768&dpr=4&quality=100&sign=ddef07e1&sv=2) How to place a sell order 1. Choose the quantity you want to sell: right above this input field, you see your current Balance (how much your wallet holds) 2. Choose the price at which you want to sell. We've chosen a price of 425.000 [Satoshi's](https://docs.saturnbtc.io/saturn-v1/faqs/what-are-satoshis-rare-sats-and-rings) per Uncommon, because if this is the highest buy order on the orderbook (check rightside) 3. Here you see the total value of your order. In this case we are selling 1 uncommon, for 425.000 Satoshi's, so the total order size is 425.000 4. Under 4. You see we have an open sell-order, and this is reflected on the sell-side of the orderbook. 5. Click on "Swap". 6. In the following window, you have to choose your Fee rate. If the Bitcoin network is busy, it is recommended to choose Medium, or Fast. ![](https://docs.saturnbtc.io/~gitbook/image?url=https%3A%2F%2F3489665744-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FedBT5s5MOw7m2x4ZUZp0%252Fuploads%252Foz5F6WjfPqKBwxhchVpR%252Fimage.png%3Falt%3Dmedia%26token%3Dd7babdcc-4460-4c30-b926-46418ec11c8a&width=768&dpr=4&quality=100&sign=1abebbd4&sv=2) Choosing a fee rate 1. Click "Sell". Your order is now entered into the Orderbook. If a buy-order at your sell price, is present it gets filled immediately. If there is no buy-order at your sell price, it get's added to the sell-side (top) of the orderbook, as illustrated under point 4. 2. Congratulations! You just sold some Satoshis. [PreviousTrade History](https://docs.saturnbtc.io/saturn-v1/how-to-links/orderbook/your-profile/trade-history) [NextHow to place a buy order](https://docs.saturnbtc.io/saturn-v1/how-to-links/orderbook/how-to-place-a-buy-order) Last updated 9 months ago --- # Swap | Saturn Documentation [PreviousWithdrawing from Trading account](https://docs.saturnbtc.io/saturn-v1/how-to-links/setting-up-trading-account/withdrawing-from-trading-account) [NextOrderbook](https://docs.saturnbtc.io/saturn-v1/how-to-links/orderbook) --- # Trading on Saturn | Saturn Documentation [PreviousSetting up a Trading Account (v3) and preparing for Rings Airdrops](https://docs.saturnbtc.io/saturn-v1/how-to-links/tutorial-videos/setting-up-a-trading-account-v3-and-preparing-for-rings-airdrops) [NextFAQs](https://docs.saturnbtc.io/saturn-v1/faqs) --- # How to place a buy order | Saturn Documentation _You don't have to match the exact quantities within the orderbook, but you do have the match atleast the minimum order size._ _**Minimum order Sizes per Type:**_ The First Transaction, Palindrome, Uncommon: _**1**_ Nakamoto, Block 78: _**1,000**_ Pizza, Vintage: _**10,000**_ 1. Navigate to the orderbook using the **LIMIT** tab located at the top of Saturn website. ![](https://docs.saturnbtc.io/~gitbook/image?url=https%3A%2F%2F3489665744-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FedBT5s5MOw7m2x4ZUZp0%252Fuploads%252FFGNtAd7pA8dFOCtS4v15%252Fimage.png%3Falt%3Dmedia%26token%3Df19d6218-1f86-411a-a73e-e3ffe2e01e60&width=768&dpr=4&quality=100&sign=86ea658b&sv=2) Use the limit button to navigate to the orderbook. ![](https://docs.saturnbtc.io/~gitbook/image?url=https%3A%2F%2F3489665744-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FedBT5s5MOw7m2x4ZUZp0%252Fuploads%252F1stfUJnLf5SGd9HW7BG8%252Fhow%2520to%2520make%2520a%2520buy%2520order%2520-%2520final%2520edits.png%3Falt%3Dmedia%26token%3D01b6acd0-611d-43ff-b3b3-ad534780ebc8&width=768&dpr=4&quality=100&sign=4da770d0&sv=2) How to place a buy order 1. Choose the quantity you want to **BUY** 2. Choose the price at which you want to sell. We've chosen a price of 65 [Satoshi's](https://docs.saturnbtc.io/saturn-v1/faqs/what-are-satoshis-rare-sats-and-rings) per Nakamoto, because this is the lowest sell order on the orderbook (check rightside). 3. Here you see the total value of your order. In this case we are buying a 1000 Nakamoto's at a price of 65 Satoshi's, so the total order size is 65.000 (1000 x 65). Right above this input field, you can see the balance, or total amount of Satoshi's (BTC) in your wallet. 4. Under 4, you can see the Sell-order in the orderbook, that we are trying to fill with our buy-order. 5. Click on "Swap". 6. In the following window, you have to choose your Fee rate. If the Bitcoin network is busy, it is recommended to choose Medium, or Fast. ![](https://docs.saturnbtc.io/~gitbook/image?url=https%3A%2F%2F3489665744-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FedBT5s5MOw7m2x4ZUZp0%252Fuploads%252Foz5F6WjfPqKBwxhchVpR%252Fimage.png%3Falt%3Dmedia%26token%3Dd7babdcc-4460-4c30-b926-46418ec11c8a&width=768&dpr=4&quality=100&sign=1abebbd4&sv=2) Choosing a fee rate 1. Click "BUY". Your order is now entered into the Orderbook. If a sell-order at your buy-price, is present in the orderbook (like in our example) it gets filled immediately. If there is no sell-order at your buy-price, it get's added to the buy-side (bottom) of the orderbook. 2. Congratulations! You just bought some Satoshi's. [PreviousHow to place a sell order](https://docs.saturnbtc.io/saturn-v1/how-to-links/orderbook/how-to-place-a-sell-order) [NextPositions](https://docs.saturnbtc.io/saturn-v1/how-to-links/orderbook/positions) Last updated 1 year ago --- # Collections | Saturn Documentation post http://127.0.0.1:3000/collection/mintable/multi-search Search mintable collections using filter criteria Body Struct used to filter mintable collections. namestring | nullOptional sortarray | nullOptional limitinteger | nullOptional offsetinteger | nullOptional Responses 200 Paginated collections application/json Responseobject Show properties 400 Bad request post /collection/mintable/multi-search HTTP HTTPcURLJavaScriptPython Copy POST /collection/mintable/multi-search HTTP/1.1 Host: 127.0.0.1:3000 Content-Type: application/json Accept: */* Content-Length: 78 { "name": null, "sort": [\ {\ "field": "id",\ "order": "ASC"\ }\ ], "limit": null, "offset": null } Test it 200 Paginated collections Copy { "response": [\ {\ "id": "1234:5678",\ "name": "text",\ "displayName": "text",\ "symbol": null,\ "divisibility": 1,\ "batchSize": 1,\ "supply": "text",\ "createdAt": "2025-08-17T11:00:38.384Z",\ "updatedAt": "2025-08-17T11:00:38.384Z",\ "type": "btc"\ },\ {\ "mint": {\ "collection_id": "1234:5678",\ "start": null,\ "end": null,\ "mintable": true,\ "mints": "text",\ "cap": "text",\ "amount": "text"\ }\ }\ ], "offset": 1 } post http://127.0.0.1:3000/collection/multi-search Get multiple collections using filter criteria Body Struct used to filter collections. namestring | nullOptional sortarray | nullOptional limitinteger | nullOptional offsetinteger | nullOptional addressstring | nullOptional Responses 200 Paginated collections application/json Responseobject Show properties 400 Bad request post /collection/multi-search HTTP HTTPcURLJavaScriptPython Copy POST /collection/multi-search HTTP/1.1 Host: 127.0.0.1:3000 Content-Type: application/json Accept: */* Content-Length: 93 { "name": null, "sort": [\ {\ "field": "id",\ "order": "ASC"\ }\ ], "limit": null, "offset": null, "address": null } Test it 200 Paginated collections Copy { "response": [\ {\ "id": "1234:5678",\ "name": "text",\ "displayName": "text",\ "symbol": null,\ "divisibility": 1,\ "batchSize": 1,\ "supply": "text",\ "createdAt": "2025-08-17T11:00:38.384Z",\ "updatedAt": "2025-08-17T11:00:38.384Z",\ "type": "btc"\ }\ ], "offset": 1 } post http://127.0.0.1:3000/collection/mintable/id Get mintable collections by ids Body idsstring\[\]Required Responses 200 List of mintable collections application/json Responseall of\[\] Show properties 400 Bad request post /collection/mintable/id HTTP HTTPcURLJavaScriptPython Copy POST /collection/mintable/id HTTP/1.1 Host: 127.0.0.1:3000 Content-Type: application/json Accept: */* Content-Length: 16 { "ids": [\ "text"\ ] } Test it 200 List of mintable collections Copy [\ {\ "id": "1234:5678",\ "name": "text",\ "displayName": "text",\ "symbol": null,\ "divisibility": 1,\ "batchSize": 1,\ "supply": "text",\ "createdAt": "2025-08-17T11:00:38.384Z",\ "updatedAt": "2025-08-17T11:00:38.384Z",\ "type": "btc"\ },\ {\ "mint": {\ "collection_id": "1234:5678",\ "start": null,\ "end": null,\ "mintable": true,\ "mints": "text",\ "cap": "text",\ "amount": "text"\ }\ }\ ] get http://127.0.0.1:3000/collection/id/{id} Get details for a single collection by ID Path parameters idstringRequired ID of the collection Responses 200 Collection application/json Responseone of all ofOptional objectOptional Show properties or all ofOptional objectOptional Show properties 400 Bad request get /collection/id/{id} HTTP HTTPcURLJavaScriptPython Copy GET /collection/id/{id} HTTP/1.1 Host: 127.0.0.1:3000 Accept: */* Test it 200 Collection Copy { "id": "1234:5678", "name": "text", "displayName": "text", "symbol": null, "divisibility": 1, "batchSize": 1, "supply": "text", "createdAt": "2025-08-17T11:00:38.384Z", "updatedAt": "2025-08-17T11:00:38.384Z", "type": "btc" } get http://127.0.0.1:3000/collection/ids Get multiple collection details by IDs Query parameters idsstring\[\]Required Responses 200 List of collections application/json Responseone of\[\] Show available items 400 Bad request get /collection/ids HTTP HTTPcURLJavaScriptPython Copy GET /collection/ids HTTP/1.1 Host: 127.0.0.1:3000 Accept: */* Test it 200 List of collections Copy [\ {\ "id": "1234:5678",\ "name": "text",\ "displayName": "text",\ "symbol": null,\ "divisibility": 1,\ "batchSize": 1,\ "supply": "text",\ "createdAt": "2025-08-17T11:00:38.384Z",\ "updatedAt": "2025-08-17T11:00:38.384Z",\ "type": "btc"\ }\ ] get http://127.0.0.1:3000/collection/names Get multiple collection that match the name query Query parameters namesstring\[\]Required Responses 200 List of collections application/json Responseone of\[\] Show available items 400 Bad request get /collection/names HTTP HTTPcURLJavaScriptPython Copy GET /collection/names HTTP/1.1 Host: 127.0.0.1:3000 Accept: */* Test it 200 List of collections Copy [\ {\ "id": "1234:5678",\ "name": "text",\ "displayName": "text",\ "symbol": null,\ "divisibility": 1,\ "batchSize": 1,\ "supply": "text",\ "createdAt": "2025-08-17T11:00:38.384Z",\ "updatedAt": "2025-08-17T11:00:38.384Z",\ "type": "btc"\ }\ ] [PreviousIndexer API](https://docs.saturnbtc.io/builders/saturn-api/indexer-api) [NextPools](https://docs.saturnbtc.io/builders/saturn-api/indexer-api/pools) Last updated 3 months ago --- # What is a PSBT | Saturn Documentation A PSBT, or Partially Signed Bitcoin Transaction, is a standardized format for Bitcoin transactions that aren't fully signed yet. It provides a way to work with transactions that might require multiple signatures or other processes before they're finalized and broadcasted to the Bitcoin network. Thanks to PSBTs we are able to sent orders and bids without the need of a smart contract enabling decentralised P2P order books. [PreviousWhat is a UTXO](https://docs.saturnbtc.io/saturn-v1/faqs/what-is-a-utxo) [NextWhy are there batch sizes?](https://docs.saturnbtc.io/saturn-v1/faqs/why-are-there-batch-sizes) Last updated 1 year ago --- # Why are there batch sizes? | Saturn Documentation Batch sizing ensures that the order remains as liquid as possible. We do large batch sizing to avoid people spending more on transaction fees than the cost of the order/bid. **What are our Batch standards?** **Palindrome, Uncommon, Block9**: 1 rare sat + 545 common Satoshis for padding. **Block78, Nakamoto:** 1,000 Rare Satoshis without padding. **Vintage, Pizza**: 10,000 Rare Satoshis without padding [PreviousWhat is a PSBT](https://docs.saturnbtc.io/saturn-v1/faqs/what-is-a-psbt) [NextCompatible Wallets](https://docs.saturnbtc.io/saturn-v1/faqs/compatible-wallets) Last updated 1 year ago --- # FAQs | Saturn Documentation Frequently Asked Questions[](https://docs.saturnbtc.io/saturn-v1/faqs#frequently-asked-questions) [What are Satoshi's, Rare SATs, and Rings?](https://docs.saturnbtc.io/saturn-v1/faqs/what-are-satoshis-rare-sats-and-rings) [What is a UTXO](https://docs.saturnbtc.io/saturn-v1/faqs/what-is-a-utxo) [What is a PSBT](https://docs.saturnbtc.io/saturn-v1/faqs/what-is-a-psbt) [Why are there batch sizes](https://docs.saturnbtc.io/saturn-v1/faqs/why-are-there-batch-sizes) [Compatible wallets](https://docs.saturnbtc.io/saturn-v1/faqs/compatible-wallets) [PreviousTrading on Saturn](https://docs.saturnbtc.io/saturn-v1/how-to-links/tutorial-videos/trading-on-saturn) [NextWhat are Satoshi's, Rare SATs, and Rings?](https://docs.saturnbtc.io/saturn-v1/faqs/what-are-satoshis-rare-sats-and-rings) Last updated 1 year ago --- # What is a UTXO | Saturn Documentation In the Bitcoin system, a UTXO stands for "Unspent Transaction Output." Here's what it means in basic terms: 1. **Transaction Outputs:** When a Bitcoin transaction occurs, it creates "outputs." These outputs are amounts of Bitcoin that are designated for specific addresses. Essentially, they represent how the Bitcoin is divided up and where it's sent. 2. **Unspent:** When we say an output is "unspent," it means that the Bitcoin assigned to that output has not been used in a new transaction yet. It's still available to be used by the owner of the associated address. 3. **The UTXO Model:** Bitcoin uses the UTXO model to track ownership and transaction states. Every time you receive Bitcoin, a new UTXO is created, associating that amount with your address. When you send Bitcoin, you are consuming one or more UTXOs and creating new ones. The Bitcoin network checks only the UTXOs (and not any account balance) to validate that you have enough Bitcoin to send in a transaction. 4. **Record Keeping:** Think of UTXOs as individual line entries in Bitcoin's ledger. Instead of each user having a singular balance, Bitcoin's history consists of these UTXOs which, when totaled up, give the balance of an address. In essence, the UTXO model is Bitcoin's way of keeping track of who has how much Bitcoin by maintaining a record of all individual transaction outputs that have not been spent yet. [PreviousMore on Rare SATs](https://docs.saturnbtc.io/saturn-v1/faqs/what-are-satoshis-rare-sats-and-rings/more-on-rare-sats) [NextWhat is a PSBT](https://docs.saturnbtc.io/saturn-v1/faqs/what-is-a-psbt) Last updated 1 year ago --- # Compatible Wallets | Saturn Documentation Unisat Twitter - [https://twitter.com/unisat\_wallet](https://twitter.com/unisat_wallet) Xverse Twitter - [https://twitter.com/xverseApp](https://twitter.com/xverseApp) Xverse currently does not support multiple signings of PSBTs therefore in order to increase usability we recommend to use Unisat when transacting on Saturn. [PreviousWhy are there batch sizes?](https://docs.saturnbtc.io/saturn-v1/faqs/why-are-there-batch-sizes) [NextWhy is my Available balance different than my Total balance?](https://docs.saturnbtc.io/saturn-v1/faqs/why-is-my-available-balance-different-than-my-total-balance) Last updated 8 months ago --- # More on Rare SATs | Saturn Documentation In order to understand Rare Satoshis we first need to understand what a Satoshi is. #### [](https://docs.saturnbtc.io/saturn-v1/faqs/what-are-satoshis-rare-sats-and-rings/more-on-rare-sats#what-is-a-satoshi) What is a Satoshi? A Satoshi (sat) is the smallest denomination of Bitcoin. There are 100 million Satoshis in one Bitcoin. Each Satoshi is worth 0.00000001 Bitcoin. ![](https://docs.saturnbtc.io/~gitbook/image?url=https%3A%2F%2F3489665744-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FedBT5s5MOw7m2x4ZUZp0%252Fuploads%252Fj98qzW3kHJQqnWuEPa8p%252Fimage.png%3Falt%3Dmedia%26token%3Da950bf06-442f-4947-a4a9-7ab5b9cc7cd8&width=768&dpr=4&quality=100&sign=a79c912c&sv=2) Next to understand what a Rare Satoshi is we need to understand what Ordinal Theory is... #### [](https://docs.saturnbtc.io/saturn-v1/faqs/what-are-satoshis-rare-sats-and-rings/more-on-rare-sats#ordinal-theory) Ordinal Theory Ordinal Theory essentially assigns Satoshis (the smallest denomination of Bitcoin) with a numismatic value, numbering them in order of creation. This allows individual Satoshis to be collected and traded as digital artefacts, similar to non-fungible tokens (NFTs) #### [](https://docs.saturnbtc.io/saturn-v1/faqs/what-are-satoshis-rare-sats-and-rings/more-on-rare-sats#rare-satoshis) Rare Satoshis Thanks to Ordinal Theory, we know exactly which Satoshi is which, when it was made, and how it was used. This allows us verify historically significant Satoshis to be collected. For example, Pizza Satoshis represent the Satoshis used in the first ever Bitcoin Transaction of 10,000 Bitcoin for two pizzas. Thanks to Ordinals Theory we can identify and verify those Satoshis to be collected. [PreviousWhat are Satoshi's, Rare SATs, and Rings?](https://docs.saturnbtc.io/saturn-v1/faqs/what-are-satoshis-rare-sats-and-rings) [NextWhat is a UTXO](https://docs.saturnbtc.io/saturn-v1/faqs/what-is-a-utxo) Last updated 1 year ago --- # Why is my Available balance different than my Total balance? | Saturn Documentation There are a few reasons why your Available balance is different than your Total balance. First, lets break down what each of them represent. **Total balance**: The total amount of an asset within your wallet. **Available balance**: The amount of that asset that is available to be used for trading or withdrawing. As you deposit, withdraw, collect, buy, sell, or receive airdrops, these balances will continuously change. The most common reason why your Available balance might be lower than your Total balance, or even 0, is because you have an open position, or pending order. ### [](https://docs.saturnbtc.io/saturn-v1/faqs/why-is-my-available-balance-different-than-my-total-balance#how-to-check-open-positions) How to Check Open Positions You can check on your open positions within the Positions widget on the Limit tab: ![](https://docs.saturnbtc.io/~gitbook/image?url=https%3A%2F%2F3489665744-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FedBT5s5MOw7m2x4ZUZp0%252Fuploads%252FsWNnUsvPnCT6VrgR6kJe%252Fimage.png%3Falt%3Dmedia%26token%3D0b32c7bb-45d3-4c89-b157-52cbef5e0170&width=768&dpr=4&quality=100&sign=a7421c66&sv=2) While this position is open, any assets involved in the order are removed from your Available balance until the position is cancelled or processed. Cancelling a position with 0% filled will make any assets involved available again under Available balance immediately. Cancelling a position partially filled, will process the order at that partially filled amount. Your balances won't update until that order is broadcasted and confirmed. ### [](https://docs.saturnbtc.io/saturn-v1/faqs/why-is-my-available-balance-different-than-my-total-balance#how-to-check-pending-orders) How to Check Pending Orders You can check on your Pending Orders by opening up the History tab of your Trading Wallet: ![](https://docs.saturnbtc.io/~gitbook/image?url=https%3A%2F%2F3489665744-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FedBT5s5MOw7m2x4ZUZp0%252Fuploads%252FeBY4ou5NnkcKqX1O65tn%252Fimage.png%3Falt%3Dmedia%26token%3De84a7718-fbf2-4776-a609-5da6d0c9d234&width=768&dpr=4&quality=100&sign=4175fe3b&sv=2) Just because your order is Filled, it does not mean it's completed. It could still be pending. Click on the icon next to your order to check the status. If your status is Pending to Broadcast, Transaction to be Broadcasted, or Pending Confirmation, your order is still pending and your Available balance will not yet be updated. If your status is Confirmed, the order is fully completed and your Available balance will be updated. ### [](https://docs.saturnbtc.io/saturn-v1/faqs/why-is-my-available-balance-different-than-my-total-balance#utxos-with-more-than-one-asset-type) UTXO's with More than One Asset Type Another reason your Available balance might be lower than your Total balance, or even 0, is because there's more than one asset within the same UTXO. This is likely the culprit if you don't have any open positions, or pending orders and still seeing a discrepancy between your Total and Available balances. This is usually the result of a recent airdrop to your wallet or how the UTXO was when you deposited. #### [](https://docs.saturnbtc.io/saturn-v1/faqs/why-is-my-available-balance-different-than-my-total-balance#airdrops) Airdrops When your wallet receives an airdrop, the airdropped tokens are dropped into an existing UTXO. If you have a UTXO with 100,000 Common Sats and receive an airdrop of 2000 RUG, the UTXO is updated to 98,000 Common Sats and 2000 RUG. Afterwards, your 2000 RUG will show under Available balance and can be traded right away. The 98,000 Common Sats within that UTXO are removed from your Available balance and will only display under your Total balance. ![](https://docs.saturnbtc.io/~gitbook/image?url=https%3A%2F%2F3489665744-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FedBT5s5MOw7m2x4ZUZp0%252Fuploads%252FUBvwC7As21Ri2KLNCLeL%252Fimage.png%3Falt%3Dmedia%26token%3D1a21fe9f-2cb4-4e0d-85b9-faddd0e750e4&width=768&dpr=4&quality=100&sign=126aa1b0&sv=2) If you had more than 1 UTXO during the airdrop, the other UTXO's with Common Sats will continue to show under Available balance. Only the UTXO that the airdrop was added to has the Common Sats made unavailable. In order to make those Common Sats available again, you would need to split the UTXO into two UTXO's. One with just Common Sats and one with just RUG. You can use the Collect tool to do this. #### [](https://docs.saturnbtc.io/saturn-v1/faqs/why-is-my-available-balance-different-than-my-total-balance#deposits) Deposits When depositing UTXO's, some contain just Common Sats, while others contain Rare Sats or Rings tokens on their own or mixed in with Common Sats (yellow box in the screenshot below shows a UTXO with both a Palindrome Sat and Common Sats) ![](https://docs.saturnbtc.io/~gitbook/image?url=https%3A%2F%2F3489665744-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FedBT5s5MOw7m2x4ZUZp0%252Fuploads%252FBtb8wbEJpINHXLCocdTO%252Fimage.png%3Falt%3Dmedia%26token%3D8cbe087b-e492-409f-b4cf-17d5c9dcaa64&width=768&dpr=4&quality=100&sign=67c0ad2d&sv=2) In this example, depositing the UTXO with the Palindrome Sat will result in 1 Palindrome Sat displaying under Available balance. This can be traded right after it's deposited. However, the Common Sats within that UTXO will only display under Total balance. Since they're within the same UTXO as a Rare Sat (or Rings token), they're not available to be used for trading and will not show under Available balance. ![](https://docs.saturnbtc.io/~gitbook/image?url=https%3A%2F%2F3489665744-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FedBT5s5MOw7m2x4ZUZp0%252Fuploads%252FgrnAYLvtkjqP0FM6ZCg6%252Fimage.png%3Falt%3Dmedia%26token%3D861c72be-e971-4678-be3e-e2c3d35fc97f&width=768&dpr=4&quality=100&sign=f68e0907&sv=2) In the example above, the wallet has 1 Palindrome Sat with 327,221 Common Sats within the same UTXO. The 1 Palindrome Sat is available, while the 327,221 Common Sats are only showing under Total and not available to be used for trading. In order to make those Common Sats available again, you would need to split the UTXO into two UTXO's. One with just Common Sats and one with the Palindrome Sat (and minimum padding) . You can use the Collect tool to do this. [PreviousCompatible Wallets](https://docs.saturnbtc.io/saturn-v1/faqs/compatible-wallets) Last updated 9 months ago --- # Pools | Saturn Documentation get http://127.0.0.1:3000/pool/by-id/{id} Returns the pool and its latest state Path parameters idstringRequired Pool ID as hex string Responses 200 Swap pool application/json Responseall of objectOptional Show properties 400 Invalid pubkey format 404 Pool not found get /pool/by-id/{id} HTTP HTTPcURLJavaScriptPython Copy GET /pool/by-id/{id} HTTP/1.1 Host: 127.0.0.1:3000 Accept: */* Test it 200 Swap pool Copy { "id": "text", "feeRate": 1, "config": { "feeTier": 1, "shards": 1, "token0": "1234:5678", "token1": "1234:5678" }, "invalid": true, "assetPair": { "token0Id": "1234:5678", "token1Id": "1234:5678" }, "createdBlockHeight": "text", "shards": [\ {\ "poolPubkey": "text",\ "runeUtxo": null,\ "btcUtxos": [\ {\ "txid": "text",\ "vout": 1,\ "value": "text",\ "runes": [\ {\ "id": "1234:5678",\ "amount": "text"\ }\ ],\ "needsConsolidation": {\ "type": "no"\ }\ }\ ],\ "liquidity": "text",\ "protocolFeeOwed": "text",\ "lastBlockHeight": "text",\ "timesUpdated": "text",\ "kLast": "text",\ "kLastCounter": "text",\ "pendingToSend": [\ {\ "address": [\ 1\ ],\ "amount": "text"\ }\ ],\ "swapBalance": {\ "blockHeight": 1,\ "runeToBtcSwaps": 1,\ "btcToRuneSwaps": 1\ },\ "pubkey": "text",\ "utxo": "text"\ }\ ], "token0Amount": "text", "token1Amount": "text", "liquidity": "text", "price": "text" } get http://127.0.0.1:3000/pool/by-token-names Returns a list of pool details with its current state where the token names match. Search is case-insensitive and will find pools where either token matches any of the given ones Query parameters token0stringRequired token1stringRequired feeTierinteger | nullOptional Responses 200 Swap pools application/json Responseall of\[\] Show properties 404 No matching pools found get /pool/by-token-names HTTP HTTPcURLJavaScriptPython Copy GET /pool/by-token-names HTTP/1.1 Host: 127.0.0.1:3000 Accept: */* Test it 200 Swap pools Copy [\ {\ "id": "text",\ "feeRate": 1,\ "config": {\ "feeTier": 1,\ "shards": 1,\ "token0": "1234:5678",\ "token1": "1234:5678"\ },\ "invalid": true,\ "assetPair": {\ "token0Id": "1234:5678",\ "token1Id": "1234:5678"\ },\ "createdBlockHeight": "text",\ "shards": [\ {\ "poolPubkey": "text",\ "runeUtxo": null,\ "btcUtxos": [\ {\ "txid": "text",\ "vout": 1,\ "value": "text",\ "runes": [\ {\ "id": "1234:5678",\ "amount": "text"\ }\ ],\ "needsConsolidation": {\ "type": "no"\ }\ }\ ],\ "liquidity": "text",\ "protocolFeeOwed": "text",\ "lastBlockHeight": "text",\ "timesUpdated": "text",\ "kLast": "text",\ "kLastCounter": "text",\ "pendingToSend": [\ {\ "address": [\ 1\ ],\ "amount": "text"\ }\ ],\ "swapBalance": {\ "blockHeight": 1,\ "runeToBtcSwaps": 1,\ "btcToRuneSwaps": 1\ },\ "pubkey": "text",\ "utxo": "text"\ }\ ],\ "token0Amount": "text",\ "token1Amount": "text",\ "liquidity": "text",\ "price": "text"\ }\ ] get http://127.0.0.1:3000/pool/by-token-ids Returns a list of pool details with its current state, where the provided ids match exactly and are optionally filtered by the fee tier Query parameters token0stringRequired token1stringRequired feeTierinteger | nullOptional Responses 200 Swap pools application/json Responseall of\[\] Show properties 404 No matching pools found get /pool/by-token-ids HTTP HTTPcURLJavaScriptPython Copy GET /pool/by-token-ids HTTP/1.1 Host: 127.0.0.1:3000 Accept: */* Test it 200 Swap pools Copy [\ {\ "id": "text",\ "feeRate": 1,\ "config": {\ "feeTier": 1,\ "shards": 1,\ "token0": "1234:5678",\ "token1": "1234:5678"\ },\ "invalid": true,\ "assetPair": {\ "token0Id": "1234:5678",\ "token1Id": "1234:5678"\ },\ "createdBlockHeight": "text",\ "shards": [\ {\ "poolPubkey": "text",\ "runeUtxo": null,\ "btcUtxos": [\ {\ "txid": "text",\ "vout": 1,\ "value": "text",\ "runes": [\ {\ "id": "1234:5678",\ "amount": "text"\ }\ ],\ "needsConsolidation": {\ "type": "no"\ }\ }\ ],\ "liquidity": "text",\ "protocolFeeOwed": "text",\ "lastBlockHeight": "text",\ "timesUpdated": "text",\ "kLast": "text",\ "kLastCounter": "text",\ "pendingToSend": [\ {\ "address": [\ 1\ ],\ "amount": "text"\ }\ ],\ "swapBalance": {\ "blockHeight": 1,\ "runeToBtcSwaps": 1,\ "btcToRuneSwaps": 1\ },\ "pubkey": "text",\ "utxo": "text"\ }\ ],\ "token0Amount": "text",\ "token1Amount": "text",\ "liquidity": "text",\ "price": "text"\ }\ ] post http://127.0.0.1:3000/pool/stats/by-filter Returns a paginated list of pool statistics matching the provided filter criteria Body namearray | nullOptional minTvlinteger | nullOptional minVolumeinteger | nullOptional sortarray | nullOptional limitinteger | nullOptional offsetinteger | nullOptional Responses 200 swap pool application/json Responseobject Show properties 404 no matching pools found post /pool/stats/by-filter HTTP HTTPcURLJavaScriptPython Copy POST /pool/stats/by-filter HTTP/1.1 Host: 127.0.0.1:3000 Content-Type: application/json Accept: */* Content-Length: 122 { "name": [\ "text"\ ], "minTvl": null, "minVolume": null, "sort": [\ {\ "field": "token0_name",\ "order": "ASC"\ }\ ], "limit": null, "offset": null } Test it 200 swap pool Copy { "response": [\ {\ "poolId": "text",\ "token0": {\ "id": "1234:5678",\ "name": "text",\ "displayName": "text",\ "symbol": null,\ "divisibility": 1,\ "batchSize": 1,\ "supply": "text",\ "createdAt": "2025-08-16T20:36:46.273Z",\ "updatedAt": "2025-08-16T20:36:46.273Z",\ "type": "btc"\ },\ "token1": {\ "id": "1234:5678",\ "name": "text",\ "displayName": "text",\ "symbol": null,\ "divisibility": 1,\ "batchSize": 1,\ "supply": "text",\ "createdAt": "2025-08-16T20:36:46.273Z",\ "updatedAt": "2025-08-16T20:36:46.273Z",\ "type": "btc"\ },\ "token0Amount": "text",\ "token1Amount": "text",\ "liquidity": "text",\ "price": "text",\ "tvlNow": null,\ "tvl24hAgo": null,\ "tvlDiff": null,\ "volume24h": null,\ "volumePrev24h": null,\ "volumeDiff24h": null,\ "fees24h": null,\ "apy24h": null,\ "volume7d": null,\ "fees7d": null,\ "apy7d": null,\ "feeRate": 1\ }\ ], "offset": 1 } get http://127.0.0.1:3000/pool/stats/by-ids Returns a list of detailed statistics for pools matching the provided IDs, including token information, TVL, volume, fees, and APY data. Query parameters poolIdsstring\[\]Optional Responses 200 swap pools application/json Responseobject\[\] Show properties 404 No matching pools found get /pool/stats/by-ids HTTP HTTPcURLJavaScriptPython Copy GET /pool/stats/by-ids HTTP/1.1 Host: 127.0.0.1:3000 Accept: */* Test it 200 swap pools Copy [\ {\ "poolId": "text",\ "token0": {\ "id": "1234:5678",\ "name": "text",\ "displayName": "text",\ "symbol": null,\ "divisibility": 1,\ "batchSize": 1,\ "supply": "text",\ "createdAt": "2025-08-16T20:36:46.273Z",\ "updatedAt": "2025-08-16T20:36:46.273Z",\ "type": "btc"\ },\ "token1": {\ "id": "1234:5678",\ "name": "text",\ "displayName": "text",\ "symbol": null,\ "divisibility": 1,\ "batchSize": 1,\ "supply": "text",\ "createdAt": "2025-08-16T20:36:46.273Z",\ "updatedAt": "2025-08-16T20:36:46.273Z",\ "type": "btc"\ },\ "token0Amount": "text",\ "token1Amount": "text",\ "liquidity": "text",\ "price": "text",\ "tvlNow": null,\ "tvl24hAgo": null,\ "tvlDiff": null,\ "volume24h": null,\ "volumePrev24h": null,\ "volumeDiff24h": null,\ "fees24h": null,\ "apy24h": null,\ "volume7d": null,\ "fees7d": null,\ "apy7d": null,\ "feeRate": 1\ }\ ] post http://127.0.0.1:3000/pool/stats/by-token-filter Returns a paginated list of token pairs with aggregated pool statistics filtered by the provided criteria Body namearray | nullOptional minTvlinteger | nullOptional minVolumeinteger | nullOptional sortarray | nullOptional limitinteger | nullOptional offsetinteger | nullOptional Responses 200 swap pools application/json Responseobject Show properties 404 no matching pools found post /pool/stats/by-token-filter HTTP HTTPcURLJavaScriptPython Copy POST /pool/stats/by-token-filter HTTP/1.1 Host: 127.0.0.1:3000 Content-Type: application/json Accept: */* Content-Length: 122 { "name": [\ "text"\ ], "minTvl": null, "minVolume": null, "sort": [\ {\ "field": "token0_name",\ "order": "ASC"\ }\ ], "limit": null, "offset": null } Test it 200 swap pools Copy { "response": [\ {\ "token0": {\ "id": "1234:5678",\ "name": "text",\ "displayName": "text",\ "symbol": null,\ "divisibility": 1,\ "batchSize": 1,\ "supply": "text",\ "createdAt": "2025-08-16T20:36:46.273Z",\ "updatedAt": "2025-08-16T20:36:46.273Z",\ "type": "btc"\ },\ "token1": {\ "id": "1234:5678",\ "name": "text",\ "displayName": "text",\ "symbol": null,\ "divisibility": 1,\ "batchSize": 1,\ "supply": "text",\ "createdAt": "2025-08-16T20:36:46.273Z",\ "updatedAt": "2025-08-16T20:36:46.273Z",\ "type": "btc"\ },\ "volume24h": null,\ "volumeDiff24h": null,\ "volume7d": null,\ "fees24h": null,\ "tvlNow": "text",\ "tvl24hAgo": "text",\ "tvlDiff": "text",\ "smaller24hApy": null,\ "larger24hApy": null,\ "smaller7dApy": null,\ "larger7dApy": null,\ "pools": [\ {\ "id": "text",\ "tvlNow": "text",\ "tvl24hAgo": "text",\ "tvlDiff": "text",\ "volume24h": null,\ "volumeDiff24h": null,\ "fees24h": null,\ "apy24h": null,\ "volume7d": null,\ "fees7d": null,\ "apy7d": null,\ "price": "text",\ "token0Amount": "text",\ "token1Amount": "text",\ "liquidity": "text",\ "feeRate": 1\ }\ ]\ }\ ], "offset": 1 } get http://127.0.0.1:3000/pool Paginated list of swap pools stats matched by the filter Query parameters namestring | nullOptional sortVolumestring | nullOptional sortFeeGeneratedstring | nullOptional limitinteger | nullOptional offsetinteger | nullOptional Responses 200 swap pools application/json Responseobject Show properties get /pool HTTP HTTPcURLJavaScriptPython Copy GET /pool HTTP/1.1 Host: 127.0.0.1:3000 Accept: */* Test it 200 swap pools Copy { "response": [\ {\ "poolId": "text",\ "token0": {\ "id": "1234:5678",\ "name": "text",\ "displayName": "text",\ "symbol": null,\ "divisibility": 1,\ "batchSize": 1,\ "supply": "text",\ "createdAt": "2025-08-16T20:36:46.273Z",\ "updatedAt": "2025-08-16T20:36:46.273Z",\ "type": "btc"\ },\ "token1": {\ "id": "1234:5678",\ "name": "text",\ "displayName": "text",\ "symbol": null,\ "divisibility": 1,\ "batchSize": 1,\ "supply": "text",\ "createdAt": "2025-08-16T20:36:46.273Z",\ "updatedAt": "2025-08-16T20:36:46.273Z",\ "type": "btc"\ },\ "token0Amount": "text",\ "token1Amount": "text",\ "liquidity": "text",\ "price": "text",\ "tvlNow": null,\ "tvl24hAgo": null,\ "tvlDiff": null,\ "volume24h": null,\ "volumePrev24h": null,\ "volumeDiff24h": null,\ "fees24h": null,\ "apy24h": null,\ "volume7d": null,\ "fees7d": null,\ "apy7d": null,\ "feeRate": 1\ }\ ], "offset": 1 } [PreviousCollections](https://docs.saturnbtc.io/builders/saturn-api/indexer-api/collections) [NextPrices](https://docs.saturnbtc.io/builders/saturn-api/indexer-api/prices) Last updated 3 months ago --- # What are Satoshi's, Rare SATs, and Rings? | Saturn Documentation [](https://docs.saturnbtc.io/saturn-v1/faqs/what-are-satoshis-rare-sats-and-rings#satoshis) **Satoshi's** -------------------------------------------------------------------------------------------------------------- There are 100 million SATs in every Bitcoin. 1 SAT = 0.00000001 BTC. Satoshi's refers to parts of a Bitcoin, like Cents would refer to parts of a Dollar. ![](https://docs.saturnbtc.io/~gitbook/image?url=https%3A%2F%2F3489665744-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FedBT5s5MOw7m2x4ZUZp0%252Fuploads%252FnxS9VaB1lvvhiRzrFGnL%252Fsatoshi%2520to%2520bitcoin%25202.webp%3Falt%3Dmedia%26token%3Decf38244-ef79-4011-b24d-3793d5528627&width=768&dpr=4&quality=100&sign=ebe3edd1&sv=2) Satoshi's to Bitcoin Conversions [](https://docs.saturnbtc.io/saturn-v1/faqs/what-are-satoshis-rare-sats-and-rings#special-sat-types) **Special SAT types** ------------------------------------------------------------------------------------------------------------------------------- These are Satoshi's (small parts of Bitcoin), that were involved in transaction with historical significance (like Pizza), or are special, because of when they we're created (like Uncommon). Refer below for the descriptions of the different types available on Saturn. ![](https://docs.saturnbtc.io/~gitbook/image?url=https%3A%2F%2F3489665744-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FedBT5s5MOw7m2x4ZUZp0%252Fuploads%252F9K7ETxbOwZLkIAgWs1a9%252Fspecial%2520sat%2520types%252C%2520saturn.png%3Falt%3Dmedia%26token%3D9bf84b91-39be-42b4-a4e9-6474e2d03fb9&width=768&dpr=4&quality=100&sign=b1844364&sv=2) Special SAT types on Saturn [](https://docs.saturnbtc.io/saturn-v1/faqs/what-are-satoshis-rare-sats-and-rings#rings-token-standard) **Rings Token Standard** ------------------------------------------------------------------------------------------------------------------------------------- Rings refers to a new Token-Standard developed by Saturn. The first token that will be released on this standard will be $RUG. Tied to the NFT-community with Ordinals "Bitcoin Rugs". Multiple Ordinal-communities have been selected to be eligble for Airdrops of this new Token Standard. For the full list, check the following channel in the Saturn discord: [https://discord.com/channels/1136713785462227046/1190390772831375411](https://discord.com/channels/1136713785462227046/1190390772831375411) Early users of Saturn (that deposit a minimum amount of 100K Satoshi's (0.001 BTC) into their [Trading Account](https://docs.saturnbtc.io/saturn-v1/how-to-links/setting-up-trading-account) , will also be eligble to receive Airdrops of this new Rings Token Standard. A minimum deposit into a Trading Account on Saturn is required for anyone in the Collaboration Communities, that wants to receive the Rings token Airdrops. Please refer to [Setting up Trading Account](https://docs.saturnbtc.io/saturn-v1/how-to-links/setting-up-trading-account) [](https://twitter.com/Saturn_btc/status/1731732672580325705) ![Cover](https://docs.saturnbtc.io/~gitbook/image?url=https%3A%2F%2F3489665744-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FedBT5s5MOw7m2x4ZUZp0%252Fuploads%252FRbopyDiJiOfR3VwnqXND%252Frings%2520saturn.jpg%3Falt%3Dmedia%26token%3Da42c62e9-9b57-454e-9029-a71ad2e0315d&width=245&dpr=4&quality=100&sign=edf737b2&sv=2) [https://twitter.com/Saturn\_btc/status/1731732672580325705](https://twitter.com/Saturn_btc/status/1731732672580325705) [](https://twitter.com/ordinalrugs/status/1730282507218665492) ![Cover](https://docs.saturnbtc.io/~gitbook/image?url=https%3A%2F%2F3489665744-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FedBT5s5MOw7m2x4ZUZp0%252Fuploads%252F3sAdn1NsHviOEfd8pxzi%252Frug%2520token%2520image.jpg%3Falt%3Dmedia%26token%3D540ada0b-af37-41dd-bf57-513e20161aed&width=245&dpr=4&quality=100&sign=ddabd3f8&sv=2) [https://twitter.com/ordinalrugs/status/1730282507218665492](https://twitter.com/ordinalrugs/status/1730282507218665492) [](https://twitter.com/Saturn_btc/status/1730225853076763003) ![Cover](https://docs.saturnbtc.io/~gitbook/image?url=https%3A%2F%2F3489665744-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FedBT5s5MOw7m2x4ZUZp0%252Fuploads%252F87opoKeRm9ZMxdzWogFo%252Fblockgods%2520eligble.jpg%3Falt%3Dmedia%26token%3D563f98b2-a407-4370-be6a-e1a4fc39bc05&width=245&dpr=4&quality=100&sign=3414948&sv=2) [https://twitter.com/Saturn\_btc/status/1730225853076763003](https://twitter.com/Saturn_btc/status/1730225853076763003) [](https://twitter.com/Saturn_btc/status/1729953439818661956) ![Cover](https://docs.saturnbtc.io/~gitbook/image?url=https%3A%2F%2F3489665744-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FedBT5s5MOw7m2x4ZUZp0%252Fuploads%252Fy3zL26sCtoOhFWH1jAPe%252Fomb%2520eligble.jpg%3Falt%3Dmedia%26token%3Da98e1200-d56c-4e51-a69b-e567af93a011&width=245&dpr=4&quality=100&sign=adbbbd6f&sv=2) [https://twitter.com/Saturn\_btc/status/1729953439818661956](https://twitter.com/Saturn_btc/status/1729953439818661956) [](https://twitter.com/Saturn_btc/status/1730166766628741215) ![Cover](https://docs.saturnbtc.io/~gitbook/image?url=https%3A%2F%2F3489665744-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FedBT5s5MOw7m2x4ZUZp0%252Fuploads%252FsidUvoRg6L0H5VaEB2Lm%252Fbandits%2520eligible.jpg%3Falt%3Dmedia%26token%3D8b6e9161-ef5e-469f-826e-e22af4acb0c9&width=245&dpr=4&quality=100&sign=314e7373&sv=2) [https://twitter.com/Saturn\_btc/status/1730166766628741215](https://twitter.com/Saturn_btc/status/1730166766628741215) [](https://twitter.com/Saturn_btc/status/1730255231382954090) ![Cover](https://docs.saturnbtc.io/~gitbook/image?url=https%3A%2F%2F3489665744-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FedBT5s5MOw7m2x4ZUZp0%252Fuploads%252FJ2U2toMWg5anErCM0E7A%252F%29XBT_BRC20.jpg%3Falt%3Dmedia%26token%3D507050d6-c993-4ccd-9538-d04b8c69b6c9&width=245&dpr=4&quality=100&sign=384d8f16&sv=2) [https://twitter.com/Saturn\_btc/status/1730255231382954090](https://twitter.com/Saturn_btc/status/1730255231382954090) [](https://twitter.com/Saturn_btc/status/1730632221353005132) ![Cover](https://docs.saturnbtc.io/~gitbook/image?url=https%3A%2F%2F3489665744-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FedBT5s5MOw7m2x4ZUZp0%252Fuploads%252FuG6xSv6t75rkcLonV5Ue%252Fdegods%2520eliglbe%2520good.jpg%3Falt%3Dmedia%26token%3De61c451d-742e-4e4d-a9ae-a0711c99f398&width=245&dpr=4&quality=100&sign=51bd9649&sv=2) [https://twitter.com/Saturn\_btc/status/1730632221353005132](https://twitter.com/Saturn_btc/status/1730632221353005132) [](https://twitter.com/Saturn_btc/status/1731351539434823881) ![Cover](https://docs.saturnbtc.io/~gitbook/image?url=https%3A%2F%2F3489665744-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FedBT5s5MOw7m2x4ZUZp0%252Fuploads%252FMkxdvrVOUCfhnmy85t9k%252Fordirocks%2520eligible.jpg%3Falt%3Dmedia%26token%3Df7643ad4-ec64-45a7-857d-88d13eb569db&width=245&dpr=4&quality=100&sign=f55dcf27&sv=2) [https://twitter.com/Saturn\_btc/status/1731351539434823881](https://twitter.com/Saturn_btc/status/1731351539434823881) [](https://twitter.com/Saturn_btc/status/1731619371498291588) ![Cover](https://docs.saturnbtc.io/~gitbook/image?url=https%3A%2F%2F3489665744-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FedBT5s5MOw7m2x4ZUZp0%252Fuploads%252FEECirMtsG1jdKaj8eEgS%252Fbitcoin%2520frogs%2520eligble.jpg%3Falt%3Dmedia%26token%3Daff402fd-03f3-449f-ad38-2a5006841897&width=245&dpr=4&quality=100&sign=7e35b4e8&sv=2) [https://twitter.com/Saturn\_btc/status/1731619371498291588](https://twitter.com/Saturn_btc/status/1731619371498291588) [](https://twitter.com/Saturn_btc/status/1732079490417737870) ![Cover](https://docs.saturnbtc.io/~gitbook/image?url=https%3A%2F%2F3489665744-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FedBT5s5MOw7m2x4ZUZp0%252Fuploads%252FgIp6e35a1WE1aHywkL69%252Fwizards%2520eligble.jpg%3Falt%3Dmedia%26token%3D7d028fcd-32ba-4415-91e2-7919aa883d1c&width=245&dpr=4&quality=100&sign=6a056ca0&sv=2) [https://twitter.com/Saturn\_btc/status/1732079490417737870](https://twitter.com/Saturn_btc/status/1732079490417737870) [](https://twitter.com/Saturn_btc/status/1732161561614053631) ![Cover](https://docs.saturnbtc.io/~gitbook/image?url=https%3A%2F%2F3489665744-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FedBT5s5MOw7m2x4ZUZp0%252Fuploads%252F1RmSIBc90UUOgQhgOek0%252Finscribed%2520pepes%2520eligble.jpg%3Falt%3Dmedia%26token%3D6aee7d81-e538-4eff-8c33-f6a9fac0efff&width=245&dpr=4&quality=100&sign=340afab8&sv=2) [https://twitter.com/Saturn\_btc/status/1732161561614053631](https://twitter.com/Saturn_btc/status/1732161561614053631) [](https://twitter.com/Saturn_btc/status/1734233732217770395) ![Cover](https://docs.saturnbtc.io/~gitbook/image?url=https%3A%2F%2F3489665744-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FedBT5s5MOw7m2x4ZUZp0%252Fuploads%252FgA3uHuWuu91CpeSKeNgJ%252Fbitcoin%2520whales%2520eliglbe.jpg%3Falt%3Dmedia%26token%3D54ac6264-6e29-4d76-8803-f297204e0e0a&width=245&dpr=4&quality=100&sign=824a367a&sv=2) [https://twitter.com/Saturn\_btc/status/1734233732217770395](https://twitter.com/Saturn_btc/status/1734233732217770395) [](https://twitter.com/Saturn_btc/status/1734933035202543805) ![Cover](https://docs.saturnbtc.io/~gitbook/image?url=https%3A%2F%2F3489665744-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FedBT5s5MOw7m2x4ZUZp0%252Fuploads%252FO4vfo4Ne1DnUpE1g1XV6%252Ffomojis%2520eligble.jpg%3Falt%3Dmedia%26token%3D75ea643b-5dc4-4738-a422-5e7a768b1787&width=245&dpr=4&quality=100&sign=bf01de1d&sv=2) [https://twitter.com/Saturn\_btc/status/1734933035202543805](https://twitter.com/Saturn_btc/status/1734933035202543805) [](https://twitter.com/Saturn_btc/status/1734966604759220259) ![Cover](https://docs.saturnbtc.io/~gitbook/image?url=https%3A%2F%2F3489665744-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FedBT5s5MOw7m2x4ZUZp0%252Fuploads%252FH5cgFiyNLRo2CzYJLPi8%252Fordinal%2520nexus%2520eligble.jpg%3Falt%3Dmedia%26token%3Dd60b2ef2-e4a3-41eb-bf6e-ef73b7901d2b&width=245&dpr=4&quality=100&sign=9c8cf1d0&sv=2) [https://twitter.com/Saturn\_btc/status/1734966604759220259](https://twitter.com/Saturn_btc/status/1734966604759220259) [](https://twitter.com/Saturn_btc/status/1735338789315256498) ![Cover](https://docs.saturnbtc.io/~gitbook/image?url=https%3A%2F%2F3489665744-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FedBT5s5MOw7m2x4ZUZp0%252Fuploads%252F051CIBi2r0NdKaN1Yzzn%252Fskellies%2520eligble.jpg%3Falt%3Dmedia%26token%3D3e515b04-57ce-40ba-9725-8b4538d06643&width=245&dpr=4&quality=100&sign=1ef4a99e&sv=2) [https://twitter.com/Saturn\_btc/status/1735338789315256498](https://twitter.com/Saturn_btc/status/1735338789315256498) [PreviousFAQs](https://docs.saturnbtc.io/saturn-v1/faqs) [NextMore on Rare SATs](https://docs.saturnbtc.io/saturn-v1/faqs/what-are-satoshis-rare-sats-and-rings/more-on-rare-sats) Last updated 1 year ago ---