# Welcome

River is building a chain-abstraction stablecoin system that enables cross-chain collateral, yield, and liquidity—all without bridging.&#x20;

Powered by the omni-CDP stablecoin satUSD, users can earn, leverage, and scale across different ecosystems natively.&#x20;

River features the first omni-CDP module that allows users to collateralize assets on Chain A and mint stablecoin satUSD on Chain B—without bridging the assets.

### **Core Modules**

#### **Omni-CDP**

The first cross-chain CDP system built on LayerZero’s OFT standard, enabling users to collateralize BTC, ETH, BNB, or LSTs on a source chain and mint satUSD natively on a destination chain—no bridges or wrappers required.&#x20;

* Deposit BTC, ETH, BNB, or LST as collateral and mint satUSD
* Swap USDT/USDC/USD1 for satUSD at 1:1 ratios

Mint/Swap to get satUSD : <https://app.river.inc/mint>

#### **Yield**

Stake satUSD to receive satUSD+, a yield-bearing token that shares protocol revenue.

River launches smart vaults where institutions and retail deposit BTC or ETH to earn real yield from DeFi strategies and protocol revenue, with no liquidation risk and flexible returns.

Stake satUSD : <https://app.river.inc/staking>

#### **River4FUN**

A contribution layer where users stake tokens, connect their X account, and earn River Pts by posting, referring, and voting—turning social engagement into on-chain rewards and governance activity.

* Connect X to earn initial airdrop&#x20;
* Stake any token to accumulate River Pts&#x20;
* Vote for your fav and earn campaign reward

Join River4FUN : <https://app.river.inc/fun>

#### **Smart Vault**

A yield product where you deposit assets like USDT, BTC, or ETH and earn returns without liquidation risk. &#x20;

Smart Vault deploys your funds across DeFi and institutional-grade CeDeFi strategies, while also minting satUSD and deposit it into the staking pool to earn staking rewards.

Access yield with one-click : <https://app.river.inc/smart-vault>

#### **Prime Vault**

Prime Vault is River’s institutional-grade product built for maximum security, predictable yield, and operational simplicity.&#x20;

It integrates directly with leading custodians and listed company partners, ensuring assets remain under regulated custody while earning yield through River’s stablecoin yield system.

Institutional access : <https://app.river.inc/prime-vault>

***

### What You Can Do

**1. Mint satUSD**

Use BTC, ETH, BNB, or LSTs as collateral to mint satUSD with zero interest.

**2. Stake for Yield**

Stake satUSD to earn satUSD+, a liquid token that shares protocol revenue.

**3. Engage to earn**

Join River4FUN by connecting your X (Twitter) account. Create or share content to earn River Pts.

Stake any token to earn River Pts daily.&#x20;

**4. Use satUSD across ecosystem**

Use satUSD across Pendle, PancakeSwap, Segment, LayerBank and more to unlock 5 – 25× multiplier River Pts rewards.

### Explore the Docs

* [Omni CDP](/how-to-use/omni-cdp) → Native stablecoin minting across chains
* [satUSD+](/products/satusd+) → Earn protocol rewards with satUSD+
* [River4FUN](/products/river4fun) → Contribute and earn through social activity
* [Smart Vault](/products/smart-vault) → One-Click Yield Module, Zero Liquidation Risk
* [Prime Vault](/products/prime-vault)→ Institutional-grade security with sustainable yield

Need help? Check the [FAQ](/intro/faq) → or reach out on [X](https://x.com/RiverdotInc).

<table data-view="cards"><thead><tr><th></th><th data-hidden data-card-cover data-type="image">Cover image</th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td>Omni-CDP</td><td><a href="/files/lQ6S0c0HHRS5DfezbihB">/files/lQ6S0c0HHRS5DfezbihB</a></td><td><a href="/pages/cEHgDv7NGBquDGHeLyQ4">/pages/cEHgDv7NGBquDGHeLyQ4</a></td></tr><tr><td>Rive4FUN</td><td><a href="/files/oeX6UVH1dExbm7YqUKK3">/files/oeX6UVH1dExbm7YqUKK3</a></td><td><a href="/pages/eVTDYwKQZgmrEb2OFLl9">/pages/eVTDYwKQZgmrEb2OFLl9</a></td></tr></tbody></table>


# Introduction

Circulatory system for your crypto

River is building a chain-abstraction stablecoin system connecting liquidity across ecosystems. Powered by omni-CDP’s satUSD, users can deposit collateral on one chain and mint satUSD on another—no bridges, no wrapping.&#x20;

This enables true cross-chain capital efficiency and seamless liquidity flow across ecosystems.

### Why River

Despite rapid ecosystem growth, DeFi remains fragmented:

* Capital is siloed across chains
* Stablecoin liquidity lacks coordination
* Governance systems rarely reward impact and contribution

River addresses this by building a full-cycle system where assets, yield, and user actions are synchronized.

It turns stablecoin protocols into living economies — where capital flows and community participation feed back into each other.

### Key Modules

#### **Omni-CDP**

The foundation of River. Deposit BTC, ETH, BNB, or LSTs like solvBTC and wstETH as collateral on one chain, mint **satUSD** natively on another — no bridges or wrapped tokens.

Built with LayerZero’s OApp and OFT standard for real-time syncing.

[Omni CDP](/how-to-use/omni-cdp)

#### **Yield**

Stake satUSD to receive **satUSD+**, a liquid token that earns protocol revenue from minting, redemption, and liquidation.

[satUSD+](/products/satusd+)

#### **4FUN**

A contribution layer that rewards users based on content, engagement, and influence, you can also stake any tokens we supported to access extra rewards.&#x20;

Connect your X account and post to earn **River Pts**, convertible to $RIVER at TGE.

[River4FUN](/products/river4fun)

#### **Smart Vault**

**One-Click Yield Module, Zero Liquidation Risk**

Smart Vault delivers zero liquidation risk + sustainable yield for deposited assets. Users deposit assets and receive stable returns without facing liquidation under any market conditions.

[Prime Vault](/products/prime-vault)

#### **Prime Vault**

**Institutional-grade security with sustainable yield**

Prime Vault is built for institutions that require maximum security, predictable yield, and operational simplicity. By collaborating with leading custodians and listed companies, Prime Vault ensures assets remain under regulated custody while still accessing River’s stablecoin yield system.

[Prime Vault](/products/prime-vault)


# Mission

River is building the first chain-abstraction stablecoin system that connects liquidity across ecosystems.&#x20;

Powered by omni-CDP’s satUSD, users can collateralize on one chain and mint on another—unlocking native cross-chain capital flow without friction.

### Our Mission&#x20;

Build the chain-abstraction stablecoin system that connects liquidity and value across ecosystems—so any asset, anywhere can take part in value creation, distribution, and circulation without friction.&#x20;

Connect with value, flow with River.

### The Problem

DeFi has entered a multi-chain era, but capital remains fragmented:

* Assets and collateral are trapped in isolated ecosystems
* Stablecoin liquidity is split and slow to move
* Transfers require costly bridging and swaps
* Yield stays concentrated in a few protocols

The outcome: fragmented capital, poor efficiency, and limited stablecoin utility.

### River’s Approach

River fixes this disconnect by creating a unified capital system:

* Omni-CDP standardizes collateral deposits and satUSD minting across chains
* satUSD+ channels protocol revenue to stakers
* Native chain-abstraction design lets liquidity flow without bridges or wrappers

Capital isn’t just deployed—it circulates across ecosystems.

### What This Means for You

* If you hold BTC, ETH, BNB, or LSTs—you can mint satUSD without selling.
* If you hold satUSD—you can stake and earn protocol revenue with satUSD+.
* If you build protocols—you can integrate satUSD and satUSD+ into liquidity and staking models.

But River is more than a set of tools.

It is a chain-abstraction stablecoin system designed to connect liquidity across ecosystems, not fragment it.

With satUSD, any asset, anywhere, can take part in value creation, circulation, and yield — instantly, securely, and without friction.

Connect with value. Flow with River.


# FAQ

## General FAQs <a href="#general-faqs" id="general-faqs"></a>

<details>

<summary>What is River</summary>

River is building the first chain-abstraction stablecoin system that connects liquidity across ecosystems. Powered by omni-CDP’s satUSD, users can collateralize on one chain and mint on another—unlocking native cross-chain capital flow without friction.

</details>

<details>

<summary>What’s new in River?</summary>

1. **Omni-CDP integration:** Enables users to collateralize their BTC and BTC LST assets and allows them to mint satUSD on any integrated chains.
2. **satUSD Bridge:** Powered by [**LayerZero’s OFT standard**](https://docs.layerzero.network/v2/home/token-standards/oft-standard?ref=blog.satoshiprotocol.org), move satUSD between chains natively—no wrapped assets, no delays, low fees, & unified liquidity.

</details>

<details>

<summary>How to use River</summary>

Check out our tutorial for a step-by-step guide

1. Go to [**River**](https://app.river.inc/) & head to the [**Mint Page**](https://app.river.inc/mint)
2. Select collateral & network
3. Input collateral & satUSD amount
4. Select satUSD destination network
5. Mint satUSD

<https://www.youtube.com/@RiverdotInc/videos>

</details>

<details>

<summary>What’s LayerZero?</summary>

[LayerZero](https://layerzero.network/?ref=blog.satoshiprotocol.org) is an omnichain interoperability protocol that enables seamless communication between different blockchains. It allows developers to build omnichain applications (OApps) that can interact across multiple chains as if they were on a single chain.

</details>

<details>

<summary>What is satUSD?</summary>

satUSD is an over-collateralized stablecoin backed by BTC, ETH, BNB, and other liquid staking tokens (LSTs). It lets users access liquidity without selling their assets and earn yield by staking satUSD to share protocol revenue.

</details>

<details>

<summary>What is Omni-CDP?</summary>

River has launched V2, introducing the first Omni-CDP integrated with LayerZero to enable omnichain liquidity management for BTC, ETH, BNB and LST.

With this upgrade, users can deposit BTC or BTC LSTs (e.g., solvBTC, LBTC) on any supported chain and seamlessly mint satUSD on a destination chain.&#x20;

This architecture enhances BTC liquidity across ecosystems, unlocking new opportunities for yield, trading, and capital efficiency.

</details>

<details>

<summary>What makes satUSD different from other stablecoins?</summary>

satUSD is a universal stablecoin backed by Bitcoin. It offers greater transparency and user control compared to fiat-backed centralized stablecoins.

</details>

<details>

<summary>How can I mint satUSD?</summary>

You can deposit BTC, ETH, BNB and LST as collateral on the source chain and choose to mint satUSD on a destination chain.

To ensure the stability of your position, a minimum collateral ratio (MCR) is required: **110% for BTC and 120%-150% for LSTs**, though the exact ratio may vary depending on the specific asset

</details>

<details>

<summary>What are the fees for minting satUSD?</summary>

There is a one-time minting fee that ranges from 0.5% to 5%, and a 0% interest fee. \
*Learn more about minting fees* [*here*](/products/editor/minting#minting-costs)*.* \
*Why 0% interest fee? Learn more* [*here*](https://blog.satoshiprotocol.org/satoshi-protocol-slashes-borrowing-fees-to-0-unlock-bitcoin-liquidity-with-unprecedented-efficiency/)

</details>

<details>

<summary>What is gas compensation?</summary>

Gas compensation refers to a small reserve of satUSD set aside to cover transaction fees associated with the liquidation of your position.

</details>

<details>

<summary>How does satUSD maintain its peg to the US dollar?</summary>

satUSD maintains its peg through over-collateralization, an instant liquidation module, and a peg mechanism.

1. If satUSD drops below $1, arbitragers can purchase discounted satUSD and redeem it for $1 worth of BTC from the protocol.
2. If satUSD exceeds $1.10, users can mint satUSD at 110% MCR and sell it immediately on the market.

</details>

<details>

<summary>Why is my position liquidated?</summary>

If your position’s collateral ratio fall below 110%, it will be allowed to trigger liquidation, which mean your collateral will be sold to stability pool providers for satUSD to repay your debt.

</details>

<details>

<summary>How can I avoid liquidations?</summary>

To avoid liquidations, maintain a healthy collateralization ratio, typically above 150%. You can add collateral to your position or repay part of your debt to improve the ratio and prevent liquidation.

</details>

<details>

<summary>How can I close position and claim my collateral?</summary>

You can close your position by repaying your satUSD debt in full. Once the debt is repaid, you can claim your collateral.

</details>

<details>

<summary>How does Recovery Mode work?</summary>

During Recovery Mode, actions are taken to improve the Total Collateral Ratio (TCR) to 150%:

1. Positions with a collateral ratio below 150% are liquidated.
2. Minting is restricted to maintaining a 150% Minimum Collateral Ratio (MCR).
3. To incentivize recovery, the minting fee is set to 0%.

</details>

<details>

<summary>Can I use satUSD across other chains?</summary>

Yes, satUSD is designed to operate on multiple chains, currently it works on BEVM, BOB, BSquared, & Bitlayer. We are working on to add more chains.

</details>

<details>

<summary>Has River been audited?</summary>

Yes, River has undergone audits to ensure security and safety. The audits were conducted by Scalebit, Supremacy, and Billh.

For more details, you can view the *audit reports*

</details>

## Stability Pool Related FAQs <a href="#stability-pool-related-faqs" id="stability-pool-related-faqs"></a>

<details>

<summary>What is Stability Pool?</summary>

The Stability Pool (SP) is a key part of the River that maintains system stability by providing liquidity for settling debts from liquidated positions. Users can deposit satUSD into the pool and benefit from discounted liquidated collateral.

</details>

<details>

<summary>Can I earn rewards from the Stability Pool?</summary>

Yes, users can deposit satUSD into the pool and benefit from discounted liquidated collateral.

</details>

<details>

<summary>How is the APR on the Stability Pool calculated?</summary>

The APR displayed on the protocol is calculated based on the average amount of collateral liquidated over the past 7 days, along with the current BTC price.

</details>

<details>

<summary>Why is my satUSD in the Stability Pool decreasing?</summary>

If you find your deposited satUSD decreasing, it means a liquidation has occurred. satUSD depositors gain liquidated collateral, such as wBTC, tBTC, etc., at a discounted price.

</details>

<details>

<summary>Why my BTC balance didn’t increase after claiming liquidation from the stability pool?</summary>

The reward you claim from the Stability Pool liquidation is wBTC, please add the wBTC contract address to your wallet. Keep in mind that the contract addresses for wBTC can differ based on the chain you are using, so make sure to verify and use the correct address for the specific chain you are operating on.

</details>

## Swap Related FAQs <a href="#swap-related-faqs" id="swap-related-faqs"></a>

<details>

<summary>Can I swap satUSD to USDT/USDC?</summary>

Yes, you can swap satUSD for USDT/USDC at a 1:1 ratio. Please note that there is a 3-day lock-up period for withdrawals.

</details>

<details>

<summary>Why is there a 3-day lock-up period for satUSD to USDT swaps?</summary>

The 3-day lock-up period is implemented to ensure sufficient liquidity is available for transactions. This measure helps maintain the stability of the market and protects users' funds.

</details>

## Bridge Related FAQs <a href="#swap-related-faqs" id="swap-related-faqs"></a>

<details>

<summary>How does satUSD Bridge work? </summary>

satUSD adopts the **OFT (Omnichain Fungible Token) standard**, enabling **native cross-chain transfers** without using wrapped assets. We have integrated with **LayerZero**, allowing satUSD to move seamlessly across supported networks while maintaining a **consistent total supply**.

LayerZero Bridge : <https://app.satoshiprotocol.org/bridge>

</details>

<details>

<summary>Which chains support satUSD bridging?</summary>

The availability of satUSD bridging **varies by network**. Some chains allow direct bridging between multiple networks, while others may have restrictions.

For the latest supported chains and bridging options, please refer to the [**Bridge**](/products/editor/bridge)**.**

</details>

## Redemption Related FAQs <a href="#redemption-related-faqs" id="redemption-related-faqs"></a>

<details>

<summary><strong>What is Redemption?</strong></summary>

Redemption allows users to exchange 1 satUSD for $1 USD worth of collateral. This feature ensures that satUSD maintains its value and provides users with a mechanism to utilize their satUSD effectively.

</details>

<details>

<summary>Can I exchange satUSD for BTC or other assets?</summary>

Yes, you can exchange satUSD for BTC or other assets. Simply go to the River app and navigate to the Redemption section.

</details>

<details>

<summary>How does Redemption work?</summary>

Redemption begins with liquidating positions having the lowest Collateralization Ratio (CR). To avoid your position being redeemed by others, it’s important to maintain a higher CR than the average.

</details>

<details>

<summary>How does the Redemption fee work?</summary>

The Redemption fee is a dynamic fee that ranges from 0.5% to 5%, calculated based on market volatility.

</details>

For more FAQs and explanatory videos, please visit [Discord FAQ channel](https://discord.com/channels/1212686319596216350/1212770924965928980).

### General FAQs

<details>

<summary>What is River?</summary>

River is building the circulatory system for crypto, connecting capital, liquidity, and yield across chains. Powered by the omni-CDP stablecoin protocol, it lets you earn, leverage, and scale—without selling your assets.

</details>

<details>

<summary>What is satUSD?</summary>

satUSD is an over-collateralized stablecoin backed by BTC, ETH, BNB, and other liquid staking tokens (LSTs).&#x20;

It lets users access liquidity without selling their assets and earn yield by staking satUSD to share protocol revenue.

</details>

<details>

<summary>What is CDP?</summary>

CDP, or Collateralized Debt Position, allows users to deposit BTC as collateral to borrow the stablecoin satUSD. It requires a minimum collateral ratio (MCR) of 110%, enabling users to hold BTC while accessing liquidity.

</details>

<details>

<summary>What makes satUSD different from other stablecoins?</summary>

satUSD is a universal stablecoin backed by Bitcoin. It offers greater transparency and user control compared to fiat-backed centralized stablecoins.

</details>

<details>

<summary>How can I mint satUSD?</summary>

You can mint satUSD by depositing BTC as collateral. This process requires maintaining a minimum collateral ratio (MCR) of 110% to ensure the stability of your position.

</details>

<details>

<summary>What are the fees for minting satUSD?</summary>

There is a one-time minting fee that ranges from 0.5% to 5%, and a 0% interest fee. \
\
*Learn more about minting fees*[ *here.*](https://docs.satoshiprotocol.org/mechanism/minting#minting-costs)\
*Why 0% interest fee? Learn more* [*here*](https://blog.satoshiprotocol.org/satoshi-protocol-slashes-borrowing-fees-to-0-unlock-bitcoin-liquidity-with-unprecedented-efficiency/)

</details>

<details>

<summary>What is gas compensation?</summary>

Gas compensation refers to a small reserve of satUSD set aside to cover transaction fees associated with the liquidation of your position.

</details>

<details>

<summary>How does satUSD maintain its peg to the US dollar?</summary>

satUSD maintains its peg through over-collateralization, an instant liquidation module, and a peg mechanism.

1. If satUSD drops below $1, arbitragers can purchase discounted satUSD and redeem it for $1 worth of BTC from the protocol.
2. If satUSD exceeds $1.10, users can mint satUSD at 110% MCR and sell it immediately on the market.

</details>

<details>

<summary>Why is my position liquidated?</summary>

If your position’s collateral ratio fall below 110%, it will be allowed to trigger liquidation, which mean your collateral will be sold to stability pool providers for satUSD to repay your debt.

</details>

<details>

<summary>How can I avoid liquidations?</summary>

To avoid liquidations, maintain a healthy collateralization ratio, typically above 150%. \
You can add collateral to your position or repay part of your debt to improve the ratio and prevent liquidation.

</details>

<details>

<summary>How can I close position and claim my collateral?</summary>

You can close your position by repaying your satUSD debt in full. Once the debt is repaid, you can claim your collateral.

</details>

<details>

<summary>How does Recovery Mode work?</summary>

During Recovery Mode, actions are taken to improve the Total Collateral Ratio (TCR) to 150%:

1. Positions with a collateral ratio below 150% are liquidated.
2. Minting is restricted to maintaining a 150% Minimum Collateral Ratio (MCR).
3. To incentivize recovery, the minting fee is set to 0%.

</details>

<details>

<summary>Can I use satUSD across other chains?</summary>

Yes, satUSD is designed to operate on multiple chains, currently it works on BEVM, BOB, & Bitlayer. We are working on to add more chains.

</details>

<details>

<summary>Has Satoshi Protocol been audited?</summary>

Yes, Satoshi Protocol has undergone audits to ensure security and safety. The audits were conducted by Scalebit, Supremacy, and Billh.

For more details, you can view the [*audit reports*](https://docs.satoshiprotocol.org/outro/audit-reports)

</details>

### Stability Pool Related FAQs

<details>

<summary>What is Stability Pool?</summary>

The Stability Pool (SP) is a key part of the River that maintains system stability by providing liquidity for settling debts from liquidated positions. Users can deposit satUSD into the pool and benefit from discounted liquidated collateral.

</details>

<details>

<summary>Can I earn rewards from the Stability Pool?</summary>

Yes, users can deposit satUSD into the pool and benefit from discounted liquidated collateral.

</details>

<details>

<summary>How is the APR on the Stability Pool calculated?</summary>

The APR displayed on the protocol is calculated based on the average amount of collateral liquidated over the past 7 days, along with the current BTC price.

</details>

<details>

<summary>Why is my satUSD in the Stability Pool decreasing?</summary>

If you find your deposited satUSD decreasing, it means a liquidation has occurred. satUSD depositors gain liquidated collateral, such as wBTC, tBTC, etc., at a discounted price.

</details>

<details>

<summary>Why my BTC balance didn’t increase after claiming liquidation from the stability pool?</summary>

The reward you claim from the Stability Pool liquidation is wBTC, please add the wBTC contract address to your wallet. \
Keep in mind that the contract addresses for wBTC can differ based on the chain you are using, so make sure to verify and use the correct address for the specific chain you are operating on.

</details>

### Swap Related FAQs

<details>

<summary>Can I swap satUSD to USDT/USDC?</summary>

Yes, you can swap satUSD for USDT/USDC at a 1:1 ratio. Please note that there is a 3-day lock-up period for withdrawals.

</details>

<details>

<summary>Why is there a 3-day lock-up period for satUSD to USDT swaps?</summary>

The 3-day lock-up period is implemented to ensure sufficient liquidity is available for transactions. This measure helps maintain the stability of the market and protects users' funds.

</details>

### Redemption Related FAQs

<details>

<summary><strong>What is Redemption?</strong></summary>

Redemption allows users to exchange 1 satUSD for $1 USD worth of collateral. This feature ensures that satUSD maintains its value and provides users with a mechanism to utilize their satUSD effectively.

</details>

<details>

<summary>Can I exchange satUSD for BTC or other assets?</summary>

Yes, you can exchange satUSD for BTC or other assets. Simply go to the Satoshi Protocol app and navigate to the Redemption section.

</details>

<details>

<summary>How does Redemption work?</summary>

Redemption begins with liquidating positions having the lowest Collateralization Ratio (CR). To avoid your position being redeemed by others, it’s important to maintain a higher CR than the average.

</details>

<details>

<summary>How does the Redemption fee work?</summary>

The Redemption fee is a dynamic fee that ranges from 0.5% to 5%, calculated based on market volatility.

</details>

For more FAQs and explanatory videos, please visit [Discord FAQ channel](https://discord.com/channels/1212686319596216350/1212770924965928980).


# Omni-CDP

We built the first Omni-CDP protocol by integrating LayerZero's cross-chain technology. This allows users to deposit BTC on one network and mint satUSD on another, seamlessly connecting liquidity across multiple chains.

### What is LayerZero

**LayerZero** is an **omnichain interoperability protocol** that enables seamless communication between different blockchains. It allows developers to build omnichain applications (OApps) that can interact across multiple chains as if they were on a single chain.All **core protocol contracts** are **immutable** and **non-upgradeable**, ensuring you never face unplanned changes from the protocol.&#x20;

Application contract owners have the flexibility to define, customize, and lock configurations, allowing them to optimize security and cost according to their specific needs.

### How to Use Omni CDP

{% stepper %}
{% step %}

### Choose Chains

Conenct wallet and choose your source chain&#x20;
{% endstep %}

{% step %}

<figure><img src="/files/qM18f50OOMmxZOHOyM0g" alt=""><figcaption></figcaption></figure>

### Select Collateral

Select which assets your wanna deposit as collateral to mint satUSD

<figure><img src="/files/ylxOJWZiikXK5IweSHR6" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}

### Mint satUSD

Click "Mint" to receive satUSD on destination chain

<figure><img src="/files/v0bWi4Yc1M1ppuYHv84j" alt=""><figcaption></figcaption></figure>
{% endstep %}
{% endstepper %}


# Minting

River allows users to collateralize BTC and LST assets across multiple chains and mint satUSD on any supported destination chain. With the integration of LayerZero’s OFT (Omnichain Fungible Token) standard, River introduces a seamless omnichain minting experience, eliminating liquidity fragmentation and unlocking BTC’s full potential across EVM, Solana, and Bitcoin Layer 2 ecosystems.

## Omnichain Minting via LayerZero

River introduces Omni-CDP, enabling users to deposit BTC or LST on a source chain and mint satUSD on a destination chain.

<figure><img src="/files/PFdRqgEaUfMUwnlEtc32" alt=""><figcaption></figcaption></figure>

**How It Works?**

1. **Deposit Collateral**
   * Users deposit BTC or BTC LSTs on a supported source chain (e.g., Bitcoin L2, Ethereum, Solana).
2. **Omnichain Minting**
   * satUSD is minted on any supported destination chain based on the deposited collateral.
3. **Cross-Chain Liquidity**
   * satUSD can be transferred across chains without wrapped assets or liquidity fragmentation, ensuring unified liquidity across the ecosystem.

**How LayerZero Enables Cross-Chain Minting & Transfers?**

1. **Burn & Lock Mechanism**
   * On the source chain, satUSD is burned or locked, ensuring total supply consistency.
2. **LayerZero Messaging**
   * LayerZero transmits a cross-chain message, triggering minting on the destination chain.
3. **Omnichain Minting & Liquidity Preservation**
   * satUSD is minted on the destination chain, ensuring consistent collateral ratios across all supported networks.

#### Security & Consistency

* The River OApp (deployed on LayerZero) manages cross-chain minting, position creation, and liquidationsvia `_lzSend` and `_lzReceive` functions.
* This ensures all chains maintain synchronized debt and collateral data, preventing inconsistencies.

## Minting Costs

When minting satUSD, the protocol imposes:

* **Minting Fee**: Calculated as the **Base Rate + 0.5%** (minimum of **0.5%**, maximum of **5%**).
* **Annual Interest Fee**: Fixed rate applied to the outstanding debt. Currently 0% interest fee. ( [why 0% interest](https://blog.satoshiprotocol.org/satoshi-protocol-slashes-borrowing-fees-to-0-unlock-bitcoin-liquidity-with-unprecedented-efficiency/) )
* **Gas Compensation**: A reserve of **2 satUSD** set aside for gas fees. This reserve is intended to cover potential costs associated with the liquidation process. If the position is closed without liquidation, the 2 satUSD will not be charged.

#### **Total Minting Fee Calculation**:

$$
TotalMinting Fee=MintingFee + InterestFee + Gas Compensation
$$

While the annual interest fee is fixed, the one-time minting fee is calculated as "base rate + 0.5%" and is applied to the total amount of satUSD minted.

$$
Minting Fee\_t = BaseRate\_t + 0.5 %
$$

The current base rate is determined by previous base rate and the quantity of satUSD redeemed as a proportion of the total stablecoin supply. This dynamic fee structure has a minimum of 0.5% and a maximum cap of 5%, ensuring flexibility based on market conditions.

$$
BaseRate\_t = BaseRate\_{t−1} + 0.5 × \frac{m}{n}
$$

where $$m$$ denotes the amount of redeemed satUSD, $$n$$ signifies the current supply of satUSD.

Over time, the base rate experiences decay due to a decay factor applied with every satUSD redemption and issuance before calculating the resulting fee. The decay follows the form:

$$
BaseRate\_t = BaseRate\_{t−1} × δ^{∆t}
$$

Where `δ` represents an hourly decay factor (0.944 in our case), and `∆t` denotes the time elapsed in hours since the last redemption or loan issuance. The decay factor `δ` is selected to ensure a 12-hour half-life for the base rate.

**Example**: If the base rate is set at 0.5% and a user deposits BTC worth $2,000 to mint 2,000 satUSD, they will incur a 0.5% one-time minting fee, amounting to 10 satUSD, and an additional 2 satUSD for gas compensation. Consequently, while the user receives 2,000 satUSD, their total debt is 2,012 satUSD. To fully close the Position and retrieve their BTC collateral, the users must settle this 2,012 satUSD debt.

## Restrictions During Recovery Mode

In Recovery Mode, minting is restricted to protect against liquidation risks. Users should keep their collateral ratio well above the MCR (ideally over 150%) to minimize liquidation risk.

This strategy decreases the likelihood of liquidation and reduces the potential impact of large redemptions on their positions.

***

## Borrow Interest Rate

Currently, the Borrow Interest Rate is 0% when using BTC as collateral. This interest accumulates over time, serving as a revenue stream for the protocol.

## Detailed Interest Amount Calculation

Interest accrues on the minted satUSD for all users within the protocol. The accumulation of interest is triggered by any interaction with the smart contracts, ensuring that the debt value remains up-to-date with the accrued interest over time.&#x20;

**Example of Interest Accrual**

* Alice mints 10,000 satUSD against her BTC collateral.
* The annual interest rate is fixed, which translates to about debt amount times $$1.427 × 10^{-9}$$ per second.
* If there is no interaction with the smart contract for 100 seconds, interest continues to accrue on Alice's minted amount during this period.
* Upon a subsequent interaction with the protocol (e.g., Bob mints some satUSD), Alice's debt would reflect the accrued interest over those 100 seconds.

**Using the specific per second interest rate**

* The additional interest accrued over 100 seconds on Alice's initial minting of 10,000 satUSD would be $$10,000×1.427×10^{-9}=0.0001427$$ satUSD.
* Alice’s updated debt would be $$10,000+0.0001427=10,000.0001427$$ satUSD after 100 seconds of accrued interest. For the next updated debt calculation, it would based on this amount of 10,000.0001427 satUSD.

The minting process in the River facilitates liquidity while ensuring stability. By maintaining over-collateralization, users can safely manage their debt while contributing to the overall health of the ecosystem.


# Stability Pool

### What is the Stability Pool (SP)? <a href="#what-is-the-stability-pool-sp" id="what-is-the-stability-pool-sp"></a>

The Stability Pool (SP) serves as a crucial mechanism within the River, designed to preserve the system's stability by providing liquidity for settling debts from liquidated Positions. When a Position undergoes liquidation, the SP uses satUSD to clear the debt and, in return, acquires the collateral from the liquidated Position. This process maintains the integrity of the protocol by ensuring that under-collateralized positions do not threaten the system’s stability.

### Why Contribute satUSD to the Stability Pool? <a href="#why-contribute-satusd-to-the-stability-pool" id="why-contribute-satusd-to-the-stability-pool"></a>

Stability Pool providers are incentivized through several mechanisms:

* **Collateral Gains:** When liquidations occur, SP providers receive discounted collateral in proportion to their satUSD holdings in the pool.
* **Liquidation Trigger Rewards:** Users who initiate liquidations earn 0.25% of the collateral and 2 satUSD as gas compensation.
* **Revenue Sharing**: Revenue earned by the protocol will be shared with staked $RIVER holders.

### Liquidation Mechanics <a href="#liquidation-mechanics" id="liquidation-mechanics"></a>

Liquidations ensure that satUSD is always fully backed by collateral. Positions with a collateral ratio below 110% are eligible for liquidation. Any user can trigger a liquidation, which helps maintain the stability of the protocol by removing riskier positions.

### Liquidation Process and Incentives <a href="#liquidation-process-and-incentives" id="liquidation-process-and-incentives"></a>

* Once a position’s collateral ratio drops below 110%, it becomes eligible for liquidation.
* The liquidation is initiated by any user, who is rewarded with 0.25% of the collateral and 2 satUSD for gas fees.
* The Stability Pool absorbs the position’s debt and acquires its collateral.

### Benefits for Stability Pool Providers <a href="#benefits-for-stability-pool-providers" id="benefits-for-stability-pool-providers"></a>

* Stability Pool Providers gain a share of liquidated collateral, typically at a discounted rate.
* These gains are in proportion to their satUSD contributions to the pool.

### Withdrawal Policies <a href="#withdrawal-policies" id="withdrawal-policies"></a>

Stability Pool providers can generally withdraw their satUSD from the Stability Pool without restrictions. However, withdrawals may be temporarily paused during pending liquidations to ensure sufficient liquidity is available for settling debts.

### Risks and Considerations <a href="#risks-and-considerations" id="risks-and-considerations"></a>

While contributing to the Stability Pool offers potential rewards, it also comes with risks:

* **Sub-Optimal Liquidations**: Stability pool providers might incur losses if liquidations occur at unfavorable collateral ratios.
* **satUSD-to-Collateral Value Discrepancies**: The value of the collateral obtained through liquidations can fluctuate, impacting the overall returns.

[<br>](https://docs.satoshiprotocol.org/mechanism/minting)


# Redemption

The River employs several mechanisms to ensure that its native stablecoin, satUSD, maintains a value closely aligned with the US dollar. These mechanisms work together to stabilize prices and enable smooth redemptions.

### Mechanisms for Price Stability <a href="#mechanisms-for-price-stability" id="mechanisms-for-price-stability"></a>

satUSD maintains its peg to the USD through both "hard" and "soft" mechanisms:

* **Hard Peg**: The hard peg of satUSD is maintained through its redeemability for collateral. Holders can always exchange their satUSD for a specific amount of collateral, providing a solid price floor. This mechanism prevents satUSD from dropping significantly below its intended value, ensuring stability and reliability.
* Soft Peg: The price stability of satUSD is supported by its Minimum Collateralization Ratio (MCR) of 110%. When the market price of satUSD rises above $1.10, it creates an incentive for users to deposit collateral and mint more satUSD at the 110% collateral ratio, and sell the minted satUSD in the market. This action increases the supply of satUSD in the market, which helps bring the price back down toward the target of $1.00.

### satUSD Token Redemption <a href="#satusd-token-redemption" id="satusd-token-redemption"></a>

Holders of satUSD have the ability to redeem their tokens for collateral, which plays a crucial role in managing the supply of satUSD and supporting its price stability:

* **Redemption Process**: Holders can exchange satUSD for collateral. When users initiate a redemption, the system selects positions based on their collateralization ratios, starting with those that are least collateralized.
* **Conditions for Redemption**: Redemptions are allowed only when the Total Collateral Ratio (TCR) is above 110% and not within the first 14 days post-protocol launch. This restriction ensures system stability during its initial stages.

### Types of Redemption <a href="#types-of-redemption" id="types-of-redemption"></a>

* **Partial Redemption**: This is the standard form of redemption, where the amount of satUSD redeemed does not fully cover the total debt of a position. This process adjusts the system's leverage without completely closing any positions.
* **Full Redemption**: This occurs when a Position's entire debt is settled through redemption, thereby eliminating its debt and reallocating any surplus collateral to a general pool.

### Redemption vs. Debt Repayment <a href="#redemption-vs.-debt-repayment" id="redemption-vs.-debt-repayment"></a>

While both mechanisms reduce the system's overall debt, they operate differently:

* Redemptions can be initiated by any party and directly affect the circulating supply of satUSD.
* Debt repayments, on the other hand, are specific actions taken by users to manage their individual positions.

### Redemption Fees and Base Rate <a href="#redemption-fees-and-base-rate" id="redemption-fees-and-base-rate"></a>

* **Fee Calculation**: Redemption fees are determined by the formula `(baseRate + 0.5%)`. This fee structure ensures that users are charged based on current market conditions.
* **Base Rate Dynamics**: Base Rate Dynamics: The base rate is a dynamic figure calculated based on the previous base rate and the amount of satUSD redeemed relative to the total supply. This approach helps adjust redemption costs in line with the liquidity needs of the system.

The detailed calculation of the redemption fee follows the same method as the minting fee, so please refer to [Minting](https://docs.satoshiprotocol.org/mechanism/minting).

### In Summary <a href="#in-summary" id="in-summary"></a>

Through these well-designed mechanisms, the River aims to maintain the price stability of satUSD, ensuring that it remains a reliable and functional token.

[<br>](https://docs.satoshiprotocol.org/mechanism/stability-pool-and-liquidations)


# Recovery Mode

Recovery Mode is a critical safety mechanism within the River, designed to protect the overall health and stability of the system. This mode is activated when the Total Collateral Ratio (TCR) falls below a specific threshold, initiating a set of rules aimed at restoring balance and safeguarding user interests.

## Total Collateral Ratio (TCR)

The Total Collateral Ratio (TCR) measures the system's overall leverage, calculated by dividing the dollar value of all collateral by the total debt in satUSD. A healthy TCR indicates a well-collateralized system, while a low TCR signals potential liquidity issues and system instability.

### What Triggers Recovery Mode?

Recovery Mode is triggered when the TCR drops below 150%. The TCR is a key metric that measures the overall health of the system by comparing the total dollar value of all collateral to the total system debt. A TCR below 150% indicates potential risks to the system's stability, prompting the activation of Recovery Mode.

### Implications of Recovery Mode

During Recovery Mode, specific actions are implemented to prevent further decreases in the TCR and encourage measures that will raise it back above the 150% threshold:

* **Liquidations**: Positions with a collateral ratio below 150% become eligible for liquidation. This process helps eliminate riskier positions from the system, contributing to the restoration of a healthy TCR.
* **Minting Restrictions**: The system temporarily restricts minting activities that could further compromise the TCR. While new satUSD can still be issued, it is limited to adjustments that improve existing positions' collateral ratios or the creation of new positions with a collateral ratio of 150% or higher.
* **Incentives for Recovery**: To encourage positive actions during Recovery Mode, the minting fee is set to 0%. This incentive stimulates the system's recovery by facilitating minting under strict conditions that enhance the TCR.

## Managing Your Position in Recovery Mode

To protect your position from liquidation during Recovery Mode:

* **Increase Collateral Ratio**: Boost your position's collateral ratio to 150% or above by adding more collateral or repaying part of the debt.
* **Understand Liquidation Risks**: Positions with collateral ratios below 150% are vulnerable to liquidation during Recovery Mode. It is highly recommended to maintain a collateral ratio above this threshold in both normal and Recovery Modes to avoid potential liquidation.

### Liquidations in Recovery Mode

The behavior of liquidations during Recovery Mode is structured as follows:

<table><thead><tr><th width="284">Condition                                              </th><th>Liquidation Behavior</th></tr></thead><tbody><tr><td>ICR &#x3C;=100%</td><td>Redistribute all debt and collateral to Position.</td></tr><tr><td>100% &#x3C; ICR &#x3C; MCR &#x26; SP's satUSD > Position debt</td><td>satUSD in the SP equal to the Position's debt is offset with the Position's debt. The Position's collateral is shared between depositors.</td></tr><tr><td>100% &#x3C; ICR &#x3C; MCR &#x26; SP's satUSD &#x3C; Position debt</td><td>The total SP's satUSD is offset with an equal amount of debt from the Position. A fraction of the Position's collateral (equal to the ratio of its offset debt to its entire debt) is shared between depositors. The remaining debt and collateral are redistributed to all Positions.</td></tr><tr><td>MCR &#x3C;= ICR &#x3C; TCR &#x26; SP's satUSD >= Position debt</td><td>The SP's satUSD is offset with an equal amount of debt from the Position. A fraction of collateral with a dollar value equal to <code>1.1 * debt</code> is shared between depositors. Nothing is redistributed to other Positions.</td></tr><tr><td>MCR &#x3C;= ICR &#x3C; TCR &#x26; SP's satUSD &#x3C; Position debt</td><td>No action is taken.</td></tr><tr><td>ICR >= TCR</td><td>No action is taken.</td></tr></tbody></table>

Recovery Mode is a essential component of the River's risk management framework, meticulously designed to uphold system stability and protect users' interests. By understanding and adhering to the principles and requirements of Recovery Mode, participants can help ensure the long-term health and success of the platform.

<br>


# Bridge

River introduces Omnichain Bridging, enabling users to transfer satUSD seamlessly across multiple blockchains without relying on wrapped assets or liquidity fragmentation.&#x20;

Powered by LayerZero’s OFT (Omnichain Fungible Token) standard, this bridge ensures low fees, instant transfers, and unified liquidity across EVM chains, Solana, and Bitcoin Layer 2 networks.

## Supported satUSD Bridge Routes

Here’s a table showing which source chains can bridge satUSD to different destination chains.

| source / destination chain | BOB | BEVM | Bitlayer | BSquared |
| -------------------------- | --- | ---- | -------- | -------- |
| BOB                        | ✅   | ✅    | ❌        | ✅        |
| BEVM                       | ❌   | ✅    | ❌        | ❌        |
| Bitlayer                   | ❌   | ❌    | ✅        | ❌        |
| BSquared                   | ✅   | ❌    | ❌        | ✅        |

## **How the satUSD Bridge Works**

1. **Initiate a Cross-Chain Transfer**
   * Users send satUSD from Chain A (source chain) to Chain B (destination chain).
2. **Burn & Lock Mechanism**
   * On the source chain, satUSD is burned or locked to maintain total supply consistency.
3. **LayerZero Messaging System**
   * A LayerZero cross-chain message is sent, verifying the transaction and triggering the minting process on the destination chain.
4. **Mint & Unlock on the Destination Chain**
   * The same amount of satUSD is minted or unlocked on the destination chain, ensuring a consistent total supply across all chains.

This trustless and decentralized process allows satUSD to move freely across chains without third-party bridges, wrapped tokens, or liquidity pools.

## **Key Features of the satUSD Bridge**

* **Omnichain Transfers**: Move satUSD natively across supported blockchains.
* **No Wrapped Assets**: Eliminates the risks of wrapped token depegging.
* **Unified Liquidity**: satUSD maintains a single, consistent total supply across chains.
* **Low Fees & Fast Settlement**: Transactions are efficient and cost-effective, with minimal slippage.
* **Decentralized & Secure**: Powered by LayerZero’s infrastructure, ensuring trustless execution.

## **LayerZero: The Backbone of satUSD Bridging**

River leverages **LayerZero’s cross-chain interoperability technology** to enable secure and instant bridging:

* **OFT Standard**: Facilitates **seamless satUSD transfers** without requiring external liquidity providers.
* **Cross-Chain Messaging**: LayerZero’s **\_lzSend and \_lzReceive functions** handle omnichain transactions **securely and efficiently.**
* **Burn & Mint Mechanism**: Ensures that satUSD’s total supply remains **synchronized across all integrated chains.**

## **Why This Changes the Game**

* **Solving Fragmented Liquidity** → Unified satUSD supply across all chains, eliminating isolated liquidity pools.
* **Maximizing BTC Utility** → Use satUSD for DeFi, payments, and staking across different ecosystems without friction.
* **Future-Proof Interoperability** → Built for a multi-chain world, supporting EVM, Solana, and Bitcoin Layer 2 ecosystems.


# Risk Management

The River employs a comprehensive risk management framework to ensure system stability and security. This framework includes a Two-tier Liquidation system that provides users an opportunity to rectify their positions before full liquidation, inspired by Aave’s approach.&#x20;

Instant & Permissionless Liquidation allows any user to initiate liquidations without prior approval, ensuring prompt handling of undercollateralized positions. Overcollateralization requires users to deposit more collateral than the value of their debt, tailored to different asset risk profiles, such as varying interest rates and LTV ratios.&#x20;

The Stability Pool Mechanism offers liquidity for settling debts from liquidated positions, using satUSD and flash loans to maintain stability. Recovery Mode is activated when the Total Collateral Ratio (TCR) falls below 150%, enforcing stricter rules to restore system health.&#x20;

Flash Loan Liquidation provides immediate liquidity for liquidations, enhancing efficiency. Isolated Risk Control to customize parameters of risk management for each asset type, like LST/LRT, to address specific risks and ensure protocol resilience.

### Isolated Risk Control <a href="#isolated-risk-control" id="isolated-risk-control"></a>

Isolated Risk Control in the River involves a tailored risk management approach, where parameters such as Loan-to-Value (LTV) ratio, interest rates, and other risk factors are customized for each collateral type.&#x20;

This ensures the protocol can adapt to different market conditions while maintaining stability. By differentiating these parameters, the protocol can manage volatile assets more effectively, ensuring a secure and stable environment for users.

Additionally, we implement different safety coefficients for each collateral, such as more conservative LTV ratios for higher-risk assets, ensuring the security of the protocol. Beyond LTV, the protocol also imposes Minting Caps on individual collateral types, limiting the amount of stablecoin that can be minted against each type of asset.&#x20;

This prevents overexposure to any single collateral type and keeps risks within manageable levels, providing another layer of protection for the protocol and its users.

**Example**

Consider the River supporting two asset types: native BTC and an LST token from another protocol. For BTC, due to its stability and lower volatility, the protocol generally applies a higher Loan-to-Value (LTV) ratio, potentially allowing users to borrow up to 90.91% of its value with a Minimum Collateral Ratio (MCR) around 110%.&#x20;

This structure enables efficient collateral use with relatively low risk for BTC. Conversely, for an LST token—which may carry higher volatility or additional risk factors due to its connection to an external protocol—the protocol typically adopts a more conservative approach, such as setting an LTV around 65% and an MCR near 160%.&#x20;

This conservative adjustment helps safeguard against potential risks tied to the token’s stability, supporting the protocol’s overall security.

Additionally, the protocol employs a minting cap on each asset type, limiting the maximum amount of stablecoins that can be minted against any specific collateral. This prevents overexposure to riskier assets and enhances overall stability. As market conditions evolve, for example with increased volatility in the LST token, the protocol has the flexibility to further adjust parameters like the LTV ratio or MCR to preserve system safety. Through this approach, the protocol customizes risk management for each asset type, balancing risk control with user flexibility and security.

### Instant & Permissionless Liquidation <a href="#instant-and-permissionless-liquidation" id="instant-and-permissionless-liquidation"></a>

Instant and permissionless liquidation is a key feature of the River, designed to address under-collateralized positions swiftly and efficiently. Instead of using auction models, the River allows any user to initiate the liquidation process without prior approval. This immediacy is crucial as it ensures that risky positions are dealt with promptly, preventing potential bad debt and protecting the protocol from market volatility.

When a user’s collateral falls below the 110% threshold, any participant can trigger the liquidation process. This open access system encourages active participation and provides incentives for liquidators, such as a reward percentage of the liquidated collateral and gas fee compensation. By enabling instant liquidation, the River avoids the delays associated with auction models, which can exacerbate losses during rapid market declines. The protocol’s approach ensures that liquidations are executed quickly, maintaining the integrity and stability of the overall system and mitigating the risk of further price drops impacting the collateral value.

**Example**

Imagine a user’s collateral in the River falls below the 110% threshold, making the position under-collateralized. Since the protocol does not rely on slow auction models, liquidations can be triggered immediately. A liquidation bot, continuously monitoring the system, detects this risky position. Without any need for permission, it initiates the liquidation process, selling the collateral to cover the user’s debt. This ensures that the protocol remains stable and avoids accumulating bad debt during volatile market conditions. In addition, the protocol is permissionless, meaning any user, not just the bots, can perform the liquidation. For their action, the liquidator receives 0.25% of the liquidated collateral as a reward, along with gas fee compensation. This mechanism encourages active participation from users to keep the protocol secure while allowing them to profit from liquidations.

### Over-collateralization <a href="#over-collateralization" id="over-collateralization"></a>

Over-collateralization is a core principle in the River, requiring users to deposit more collateral than the value of the debt they wish to incur. This practice ensures the stability and security of the protocol, protecting against market volatility and sudden price drops. Users must maintain a Minimum Collateral Ratio (MCR) of at least 110%, with higher ratios recommended for added safety. The protocol allows different collateral types to have varied borrow rates, Loan-to-Value (LTV) ratios, and other parameters to cater to the specific risk profiles of each asset. This tailored approach ensures that the protocol remains secure and adaptable to different market conditions.

**Example**

* **Scenario** User B deposits $2,000 worth of BTC to borrow $1,818.18 in satUSD (Collateral Ratio of 110%).
* **Collateral Maintenance** To avoid liquidation, User B maintains a buffer, keeping the collateral ratio above 150%.
* **Collateral Drop** If the BTC value drops, reducing the collateral value to $1,980, the system still ensures the position remains overcollateralized.
* **Security** This overcollateralization protects the protocol from volatile market conditions, ensuring the stability and reliability of satUSD.

### Stability Pool Mechanism <a href="#stability-pool-mechanism" id="stability-pool-mechanism"></a>

The Stability Pool (SP) serves as a crucial mechanism within the River, designed to preserve the system’s stability by providing liquidity for settling debts from liquidated positions. When a position undergoes liquidation, the SP uses satUSD to clear the debt and, in return, acquires the collateral from the liquidated position. Contributors to the SP are incentivized through several mechanisms, including collateral gains from liquidations, trigger rewards for initiating liquidations, and token rewards in the form of RIVER tokens. Additionally, the SP ensures that even in scenarios where it lacks sufficient funds, flash loans can be utilized to facilitate liquidations, maintaining the protocol’s stability.

**Example**

* **Scenario** User C contributes satUSD to the Stability Pool.
* **Liquidation Event** A position with a collateral ratio below 110% is liquidated. The SP uses satUSD to settle the debt.
* **Collateral Acquisition** The SP acquires the liquidated collateral, providing User C with a share of the discounted collateral.
* **Rewards** User C receives RIVER tokens and a portion of the collateral as incentives for their contribution.
* **Flash Loan Utilization** In cases where the SP lacks sufficient funds, a flash loan is used to facilitate the liquidation, ensuring the debt is cleared and stability is maintained.

### Recovery Mode <a href="#recovery-mode" id="recovery-mode"></a>

Recovery Mode is a critical safety mechanism within the River, designed to safeguard the system’s overall health and stability. It is triggered when the Total Collateral Ratio (TCR) falls below 150%, indicating a potential risk to the system’s stability. During Recovery Mode, specific actions are taken to prevent further decreases in the TCR and to encourage measures that would raise it back above the 150% threshold. These actions include liquidating positions with collateral ratios below 150%, restricting borrowing activities that could further compromise the TCR, and incentivizing borrowing that improves the TCR with a 0% borrowing fee. This mode ensures the protocol remains robust and can recover quickly from potential destabilizing events.

**Example**

Imagine the Total Collateral Ratio (TCR) of the River drops below 150%, signaling potential instability. To restore balance, Recovery Mode is triggered. During Recovery Mode, positions with a collateral ratio below 150% become eligible for liquidation. For example, if a user's position has a collateral ratio of 130%, it will be liquidated to help remove risky positions and improve the overall TCR. Additionally, borrowing restrictions are applied. New borrowing can only occur if it helps raise the collateral ratio above 150%, or if it strengthens existing positions. This ensures that no further strain is placed on the system. To incentivize positive action, the protocol waives all borrowing fees, allowing participants to restructure their positions at a 0% borrowing fee. This encourages users to take actions that will quickly stabilize the protocol, ensuring that the system can swiftly recover and resume normal operations.

### Flash Loan Liquidation <a href="#flash-loan-liquidation" id="flash-loan-liquidation"></a>

Flash loan liquidation allows for instant liquidation of under-collateralized positions using flash loans. This method provides immediate liquidity without requiring upfront capital, ensuring that the protocol can swiftly handle liquidations even in scenarios where the Stability Pool lacks sufficient funds. By leveraging flash loans, the River can cover the debt of liquidated positions in a single transaction, which is then repaid within the same block. This approach enhances the efficiency and responsiveness of the liquidation process, maintaining the protocol’s stability and protecting against sudden market fluctuations.

**Example**

Imagine a scenario where User D spots an under-collateralized position with a collateral ratio falling below 110%. User D doesn't have the upfront capital to handle the liquidation, but initiates a flash loan, temporarily borrowing the necessary funds to cover the position’s debt. Using the flash loan, User D liquidates the position by covering its debt, selling off the collateral. The borrowed amount is then repaid instantly within the same transaction, all happening within a single block. As a result, User D earns the liquidation reward, which includes 0.25% of the liquidated collateral and compensation for gas fees. Even if the Stability Pool doesn't have enough funds, the use of flash loans ensures that liquidations can still happen smoothly and quickly, keeping the protocol stable and protecting against sudden market shifts.

### Redistribution <a href="#redistribution" id="redistribution"></a>

Redistribution is a key component of River’s risk management strategy, ensuring that the system remains stable during liquidations, particularly in Recovery Mode. When positions fall below the required collateral ratio, instead of liquidating the collateral on the open market, debt and collateral are redistributed to healthier positions within the system. This approach helps to prevent sharp sell-offs and protects the overall stability of the protocol. In Recovery Mode, when the Total Collateral Ratio (TCR) of the system drops below a critical threshold, liquidations are managed in a way that redistributes both debt and collateral across all remaining positions. This prevents further market impact by avoiding mass collateral sales that could lead to downward price pressure. Instead, healthy positions absorb the risk by taking on a proportion of the liquidated position's debt and collateral.

Redistribution also aids in maintaining liquidity, automatically rebalancing the system by spreading risk across multiple participants. It ensures that the protocol remains solvent without destabilizing the market, offering users a more stable experience even in times of volatility. This mechanism is essential for preserving user confidence and ensuring that the protocol can continue to operate effectively during periods of market stress.

**Example**

Imagine a situation where the Total Collateral Ratio (TCR) of the River falls below the critical threshold during a period of market volatility. Instead of liquidating collateral on the open market, which could lead to sharp sell-offs and further price drops, the protocol triggers redistribution. User A holds a healthy position with a collateral ratio well above the required threshold. Meanwhile, another position has become under-collateralized. Rather than selling off the collateral from this under-collateralized position, the protocol redistributes a portion of its debt and collateral to User A and others with strong positions. This process allows the system to balance risk without impacting the market. User A absorbs part of the debt and collateral, helping to maintain the protocol’s stability. By spreading the exposure across several healthy participants, the protocol ensures liquidity remains intact and market pressure is minimized, keeping the system solvent and secure during recovery.

[<br>](https://docs.satoshiprotocol.org/mechanism/revenue-structure)


# satUSD+

The Yield module in River allows users to stake **satUSD** and earn protocol revenue through a liquid, composable token called **satUSD+**.

This mechanism enables users to capture the value generated across River’s core modules while retaining full flexibility and liquidity.

### What Is satUSD Staking ?

satUSD staking is a core function of River's Yield layer.

Users can stake their **satUSD**, the over-collateralized stablecoin backed by **BTC, ETH, BNB, and liquid staking tokens (LSTs)**, to earn protocol fees generated through CDP operations.

Staked satUSD is converted into **satUSD+**, a yield-bearing token that accrues revenue over time and can be used across other protocols.

<figure><img src="/files/hFdfR3zE4Sb1V99Q9dbi" alt=""><figcaption><p>Stake satUSD</p></figcaption></figure>

### What Is satUSD+ ?

**satUSD+** is a liquid, ERC-20 token that represents a staked position in satUSD.

It is designed to:

* Accrue protocol revenue automatically
* Be composable with other DeFi protocols (e.g., lending, LP)
* Remain redeemable at any time for the underlying satUSD

Holding satUSD+ means you're passively earning yield from protocol fees — no manual claiming or restaking needed. The value of satUSD+ increases as fees are distributed across the system.

### Where Does the Yield Come From?

Yield for satUSD+ comes from protocol-level fees generated through River’s core modules:

* **Omni-CDP**: Minting, redemption, and liquidation fees
* **System-wide usage**: satUSD adoption across chains and applications
* **Future integrations**: Lending markets, partner incentives, and on-chain revenue share mechanisms

There is no inflationary reward model — all yield is backed by real activity within the protocol.


# River4FUN

Contributions layer of River

It rewards influence and participation — not just capital.

Users earn **River Points** by linking their X account and posting about River or supported partner projects. Rewards are based on measurable activity: impressions, engagement, and consistency.

River4FUN App : <https://app.river.inc/fun>

X : <https://x.com/River4fun>

### Why It Matters

Most protocols reward only capital.

River4FUN brings contribution into the loop — turning attention, content, and reach into real ownership.

This completes River’s system: **Mint → Stake → Post.**

### How It Works

* Connect your wallet and X (Twitter) account
* Post about River or selected projects (tweets, replies, quote tweets)
* Earn River Pts based on impressions, engagement quality, and posting consistency
* Points are tracked and updated regularly
* All River Pts convert into $RIVER at TGE

### Coming Soon: Staking & Dual Pools

River4FUN will support two participation tracks:

* **Social Engagement Pool**: Earn River Pts through content and your influnce
* **Staking Pool**: Stake supported tokens to boost rewards — no lockups

#### Staking Pools <a href="#staking-pools" id="staking-pools"></a>

Stake wBNB, USD1 and other supported tokens to unlock additional River Pts.

No lockups. Staking boosts your base multiplier in the engagement pool.

<figure><img src="/files/LOSw17fs5Gnv7jPUgJzj" alt=""><figcaption></figcaption></figure>

Engagement Pools

Post and earn based on reach and influence.

<figure><img src="/files/0KZg31Pv0G9U5YIviwJb" alt=""><figcaption><p>Engagement rewards</p></figcaption></figure>

### How River Pts Work

* You earn points passively as your posts perform
* The algorithm rewards originality, relevance, timing, and impact
* River Pts are non-transferable, linked to your wallet
* At TGE, your total River Pts convert into $RIVER

### Benefits

* **Open to everyone** — no capital required
* **Reward aligned** — content, impressions, engagement = contributions
* **Fast to start** — connect and post, no learning curve


# Smart Vault

One-Click Yield Module, Zero Liquidation Risk

Smart Vault delivers **zero liquidation risk + sustainable yield** for deposited assets. Users deposit assets and receive ongoing returns without facing liquidation under any market conditions.

When users deposit assets into Smart Vault, the protocol mints and stakes the satUSD directly in satUSD staking pools.

### **What Smart Vault Solves**

Traditional DeFi has required users to choose between earning yield and maintaining asset safety.&#x20;

Users had to actively manage collateral ratios, monitor liquidation thresholds, and risk losing their assets during market volatility.

**Smart Vault solves these challenges:**

* Eliminates liquidation risk - your assets are never at risk of forced liquidation
* Removes position management - no need to monitor collateral ratios or health factors
* Provides sustainable yield - continuous returns without active management
* Ensures asset safety - 1:1 deposit and withdrawal guaranteed

Smart Vault solves these through automated strategy deployment and internal satUSD circulation that never reaches user wallets.

### Key Features

#### **One-Click Deposit**

Single transaction deploys your assets to automatically mint stablecoins and stake for yield—without managing collateral ratios or position levels.

#### **No Liquidation Risk**

Smart Position Management automatically mints and stakes stablecoin during deposits and withdrawals, eliminating liquidation risks for all locked assets.

#### Sustainable Yield

Deposited assets stay active through strategy modules generating real returns via CeDeFi arbitrage, DeFi protocols, and RWA investments for consistent yield.

### **How Smart Vault Works**

1. **Deposit assets** (BTC, ETH, USDT/USDC) into Smart Vault
2. **Protocol mints satUSD** based on the value of the underlying assets
3. **satUSD stakes automatically** in staking pool
4. **Your assets work** - deployed to DeFi/CeDeFi yield strategies
5. **Earn rewards** from asset performance and staking pool

<figure><img src="/files/dHZIEXYeIHlFoD8Ndz73" alt="Smart Vault Architecture "><figcaption></figcaption></figure>

### **Mechanism**

**1. Internal satUSD System**

Smart Vault mints satUSD that users never receive. The system applies a staking factor (0-100% range) based on governance voting to determine satUSD amounts.

**2. Dual Revenue System**

* **Asset Strategies:** Deposited assets deploy to approved DeFi and CeDeFi strategies in institutional-grade custodian wallets
* **Protocol Revenue Distribution:** Internal satUSD earns staking rewards through protocol revenue sharing

**3. Oracle Integration**

Every contract interaction triggers real-time price updates to determine optimal satUSD amounts and maintain proper collateral ratios.

**4. Governance Parameters**

$RIVER token holders vote to adjust staking factors for different assets, optimizing risk-reward balance across the system.

**5. Rebalancing**

Automated rebalancing system protects user assets during market volatility while maintaining continuous yield generation.

**Example: 10 ETH Deposit ($45,000)Setup Process**

Deposit 10 ETH → 75% staking factor applied → $33,750 satUSD staked internally

#### **Dual Deployment**

* **Your 10 ETH:** Works across Morpho, Pendle, CeDeFi strategies
* **$33,750 satUSD:** Stays in staking pools earning staking rewards

#### **Market Crash Scenario (ETH to $22,500)**

**Traditional CDP:** Liquidates your ETH, user loses assets + penalties

**Smart Vault:** Keeps your 10 ETH safe, system rebalances satUSD minted and staked amount through oracle updates, yield continues

#### **Withdrawal Process**

Your deposit remains locked for the vault's earning period, during which funds and rewards cannot be moved.&#x20;

At maturity, you withdraw everything in one step—your original deposit, the satUSD yield earned, and the River Pts allocated. Each vault sets its own duration, so the lock time may vary.

<table><thead><tr><th width="207.73046875">Model</th><th>CDP</th><th>Smart Vault</th></tr></thead><tbody><tr><td>User holds debt?</td><td>Yes</td><td>✅ No</td></tr><tr><td>Liquidation risk?</td><td>Yes</td><td>✅ None</td></tr><tr><td>Yield source</td><td>External protocols</td><td>✅ Automated strategy deployment + protocol revenue</td></tr><tr><td>User experience</td><td>Manage debt, repay, face liquidation</td><td>one-click deposit, only yield</td></tr><tr><td>Asset safety</td><td>Can be liquidated</td><td>Always protected</td></tr><tr><td>User management</td><td>Active monitoring required</td><td>✅ Auto-managed vault</td></tr><tr><td>Market stress response</td><td>Liquidations</td><td><p>No Liquidation</p><p>Auto-rebalancing</p></td></tr></tbody></table>

#### **Risk Management**

**Oracle Integration:** Every contract interaction triggers price updates, automatically determining optimal satUSD amounts based on current asset values and maintaining proper collateral ratios.

**Governance Parameters:** $RIVER token voting adjusts staking factors for rewards optimization across different assets.

**Market Stress Response:** If BTC drops 50%, the system rebalances automatically—your assets stay safe while maintaining yield generation.

### **Why This Innovation Matters**

#### **For Users**

Transform passive holdings into yield generators without complexity or risk.&#x20;

Access institutional-grade strategies through simple interfaces while maintaining complete asset protection—your assets can never be liquidated.

#### **For DeFi Ecosystem**

Eliminates liquidation barriers that prevent mainstream adoption.&#x20;

Proves automation can outperform manual management while creating new standards for user-friendly DeFi products.

#### **For River**

Creates sustainable satUSD demand across all chains while demonstrating **minting/usage separation**. Strengthens River's chain-abstraction stablecoin leadership position.

#### **Industry Impact**

Establishes **"No-Liquidation Yield Systems"** as a new category—proving high yields don't require liquidation risks and setting new DeFi UX standards.


# Prime Vault

Institutional-grade security with sustainable yield

Prime Vault is built for institutions that require maximum security, predictable yield, and operational simplicity. By collaborating with leading custodians and listed companies, Prime Vault ensures assets remain under regulated custody while still accessing River’s stablecoin yield system.

### What Prime Vault Solves

* Eliminates forced liquidations from market volatility
* Ensures institutional security for asset management
* Reduces operational overhead for institutional workflows

### Key Features

#### Institutional-grade Security

Partnering with leading custodians to deliver maximum protection for institutions, while seamlessly integrating stablecoin products with predictable yield solutions.

#### No Liquidation Risk

Smart Position Management automatically mints and stakes stablecoin during deposits and withdrawals, eliminating liquidation risks for all locked assets.

#### No Smart Contract Risk

The underlying assets are ultimately secured in custodial wallets rather than complex smart contract protocols, eliminating risks of hacking or code errors

### How Prime Vault Works

1. Deposit BTC (or other supported assets) into Prime Vault
2. Custodian locks assets in secured institutional wallets
3. Protocol mints satUSD internally against collateral value
4. satUSD stakes into staking pools to earn rewards
5. At maturity, users withdraw principle plus accumulated yield

> **Note**: Users do not hold any debt; satUSD never enters user wallets.

<figure><img src="/files/ziDJ45IQPcux5XGIzrfN" alt=""><figcaption></figcaption></figure>

#### Architecture & Parameters

* **Custodian Integration:** assets remain with leading custodians and listed company partners.
* **Internal satUSD system**: used only for staking/revenue sharing; not released to users.
* **Smart Position Management**: auto-adjusts internal mint/stake during flows and volatility.
* **Governance parameters**: $RIVER holdes set asset-level staking factors (0–100%) for risk/return balance.
* **Periodic rebalancing**: price-oracle driven rebalancing keeps yield running without touching principal safety.

#### Example (Illustrative)

* **Deposit**: 10 BTC
* **Flow**: custody lock → internal satUSD mint → staking pool → yield accrual
* **Stress** (BTC -50%): CDP may liquidate; Prime Vault keeps principal in custody and auto-rebalances internal satUSD positions.

<table><thead><tr><th width="207.73046875">Model</th><th>CDP</th><th>Prime Vault</th></tr></thead><tbody><tr><td>User holds debt?</td><td>Yes</td><td>✅ No</td></tr><tr><td>Liquidation risk?</td><td>Yes</td><td>✅ None</td></tr><tr><td>Smart contract risk</td><td>Yes</td><td>✅ None</td></tr><tr><td>Yield source</td><td>External protocols</td><td>satUSD staking pool + custodian-side strategies</td></tr><tr><td>User experience</td><td>Manage debt, repay, face liquidation</td><td>one-click deposit, only yield</td></tr><tr><td>Asset safety</td><td>Can be liquidated</td><td>Principal in custody</td></tr><tr><td>User management</td><td>Active monitoring required</td><td>✅ Auto-managed vault</td></tr><tr><td>Market stress response</td><td>Liquidations</td><td><p>No Liquidation</p><p>Auto-rebalancing</p></td></tr></tbody></table>

#### Withdrawals

* Funds are locked for the Vault’s **earning period**
* at maturity, a **single settlement** returns principal and accrued yield.

### Risk Management

* **Custodian coverage:** Assets remain with leading custodians and listed company partners under full compliance and insurance
* **Automated rebalancing**: Adjusts exposure during volatility
* **Governance oversight**: $RIVER holders calibrate parameters for safe, scalable growth

### Why This Matters

**For Institutions**

Direct access to yield without smart contract or liquidation risks, while assets remain under custody.

**For River**

Increases demand for satUSD and deepens River’s position as the chain-abstraction stablecoin system for institutional users.


# Nexus Yield Module (NYM)

### What is Nexus Yield Module? <a href="#what-is-nexus-yield-module" id="what-is-nexus-yield-module"></a>

**The Nexus Yield Module (NYM)** serves as a powerful yield-aggregation hub within the River, specifically designed to enhance the earnings potential of the protocol’s ecosystem assets. NYM leverages a range of yield-generating mechanisms to optimize returns on all capital held within the protocol, including treasury funds and assets generated by protocol activities. By concentrating on yield maximization, NYM transforms the protocol’s resources into a continuous stream of value, delivering higher returns and reinforcing the protocol’s financial foundation.

### Goals of NYM in River Protocol <a href="#goals-of-nym-in-satoshi-protocol" id="goals-of-nym-in-satoshi-protocol"></a>

NYM aims to distinguish itself from traditional DeFi value acquisition models by integrating multiple yield channels, optimizing capital utilization, and enhancing financial flexibility. This approach reduces exposure to risks associated with relying on a single income stream, enabling NYM to pursue two key objectives: **maximizing yield** and **minimizing risk**.

1. **Maximizing Yield** NYM leverages a variety of yield-generating mechanisms, strategically distributing funds across diverse yield channels to capture the highest potential returns. This approach:
   * Increases the protocol’s overall revenue by diversifying into different yield sources.
   * Enhances users' potential earnings by systematically balancing resources across complementary yield modules.
   * Utilizes a professional risk-adjusted strategy to achieve consistent growth for both the protocol and its participants.
2. **Minimizing Risk** By integrating multiple yield channels, NYM reduces the protocol's dependence on any single source of income, thereby mitigating systemic risk. To ensure a secure and stable yield environment, NYM:
   * Distributes capital across various yield modules to avoid single-point failure risks.
   * Monitors risk levels in real-time for each module, dynamically rebalancing assets to maintain an optimal risk profile.
   * Ensures sustainable yields for users by aligning risk management with revenue optimization, providing a secure and diversified approach to yield generation.
3. **Maximizing Transparency** NYM operates with full on-chain transparency, ensuring that all yield farming activities and asset management decisions are openly accessible for user review. This transparency allows users to monitor every transaction involved in NYM’s fund allocation and balancing, promoting asset security and reinforcing trust. By minimizing trust assumptions, NYM empowers users with real-time insights into its operations, thereby enhancing both protocol integrity and overall security.

### Revenue Channels of NYM <a href="#revenue-channels-of-nym" id="revenue-channels-of-nym"></a>

NYM of the River employs a diversified yield generation strategy, tapping into both CeFi and DeFi channels to maximize returns while managing risk effectively. By balancing assets across trusted centralized and decentralized platforms, NYM ensures a steady and secure income stream that supports the protocol’s sustainability and growth.

* **CeFi Farming** In CeFi, NYM leverages well-established, secure custodial strategies that adhere to the highest standards of trust and reliability. By tapping into tried-and-true channels such as spot-futures arbitrage, funding rate arbitrage, and centralized lending, NYM captures returns from stable, market-neutral strategies that minimize directional risk. This approach not only maximizes income but also shields the protocol’s assets from volatility, maintaining stability even in fluctuating market conditions. Through these carefully selected CeFi strategies, NYM effectively converts idle assets into a steady source of returns, reinforcing the protocol’s income generation with low-risk, reliable methods.
* **DeFi Farming** On the DeFi side, NYM navigates a dynamic landscape of decentralized protocols, deploying strategies designed to capture yield while maintaining a high degree of security. Through governance voting, NYM manages yield farming allocations across activities such as neutral DEX liquidity provision, lending, and participation in incentivized ecosystems. Additionally, the protocol leverages opportunities within decentralized derivatives and on-chain arbitrage, ensuring an agile yet secure approach to yield generation. By employing diversified tactics across DeFi, NYM can capture protocol incentives and earn transaction fees, while simultaneously contributing to ecosystem stability and liquidity.

This combination of CeFi and DeFi channels enables NYM to cultivate a robust yield strategy, focused on stable, consistent growth. The broad, flexible approach safeguards against risks associated with reliance on any single market segment, enhancing resilience and ensuring that the River remains well-positioned for both current and future opportunities within the evolving financial landscape. By carefully balancing these distinct yet complementary strategies, NYM fulfills its mission to maximize returns while safeguarding users' assets in a dynamic, risk-managed environment.

### Distribution of Rewards <a href="#distribution-of-rewards" id="distribution-of-rewards"></a>

The yield generated from NYM’s activities is systematically allocated to ensure the efficient operation and sustainability of the River. The distribution is divided into three main parts:

* **Operational Costs**
  * Description: A portion of the generated yield is allocated to cover the operational expenses of the River. This includes costs related to maintenance, development, and other administrative functions necessary for the smooth functioning of the protocol.
  * Benefit: Ensuring that operational costs are covered helps maintain the protocol’s efficiency and reliability, supporting its long-term viability.
* **Insurance Fund**
  * Description: A designated portion of the yield is reserved for the insurance fund. This fund acts as a safeguard against extreme market conditions and potential unforeseen risks, providing an additional layer of security for the protocol.
  * Benefit: The insurance fund enhances the resilience of the River, protecting it from adverse events and ensuring stability for users’ assets.
* **User Rewards**
  * Description: The majority of the yield is distributed to sOSHI holders as rewards. This distribution incentivizes users to participate in the staking process, as they receive a portion of the generated yield based on their staked assets.
  * Benefit: Rewarding sOSHI holders fosters greater user engagement and participation in the protocol, aligning users’ interests with the protocol’s success and stability.

This systematic distribution of rewards ensures that the River remains operationally sound, secure, and attractive to users. By effectively managing and allocating the generated yield, NYM contributes to the protocol’s overall health and growth, benefiting all participants.

[<br>](https://docs.satoshiprotocol.org/satoshi-protocol-v1/mechanism/redemption-and-price-stability)

### &#x20; <a href="#what-is-nexus-yield-module" id="what-is-nexus-yield-module"></a>


# Swap

The Swap Module in the River allows users to easily exchange popular stablecoins, such as USDT and USDC, for the protocol’s native stablecoin, satUSD. This feature ensures stable and seamless liquidity, supporting satUSD’s utility and maintaining its peg to the US dollar.

### Purpose and Benefits of the Swap Module in River <a href="#purpose-and-benefits-of-the-swap-module-in-satoshi-protocol" id="purpose-and-benefits-of-the-swap-module-in-satoshi-protocol"></a>

1. **Maintaining Stability and Peg** The Swap Module helps maintain satUSD’s stable peg to USD by enabling users to swap USDT or USDC for satUSD at a fixed 1:1 ratio. This mechanism ensures that satUSD remains tightly aligned with the value of the US dollar, fostering user trust and enhancing stability within the protocol.
2. **User Incentives and Engagement** The module incentivizes user participation in the ecosystem by offering a simple, reliable way to acquire satUSD. Users can then access various DeFi opportunities within the River, enhancing liquidity and user engagement.
3. **Risk Management and Security** Stablecoins swapped for satUSD are held securely within the protocol’s vault, managed with a focus on security and liquidity. This structure helps safeguard the protocol from market volatility, ensuring satUSD remains reliable for all users.

### Asset Swapping Process <a href="#asset-swapping-process" id="asset-swapping-process"></a>

1. **User Initiates Swap** A user initiates a swap transaction within the Swap Module interface, selecting either USDT or USDC to exchange for satUSD.
2. **Stablecoins Sent to Swap Vault** The user’s USDT or USDC is transferred to the Swap Vault, a secure repository managed by the River.
3. **satUSD Issuance** Upon receiving the stablecoins, the protocol mints an equivalent amount of satUSD (1:1 ratio) and sends it to the user’s wallet. This issuance ensures that satUSD remains pegged to the US dollar.
4. **User Confirmation** The user receives satUSD in their wallet, ready for use within the River ecosystem or in any other compatible DeFi applications.

### Significance of Swap <a href="#significance-of-swap" id="significance-of-swap"></a>

#### **Maintaining the satUSD Peg to USD** <a href="#maintaining-the-satusd-peg-to-usd" id="maintaining-the-satusd-peg-to-usd"></a>

The Swap Module is central to maintaining satUSD’s peg to the US dollar within the River. By allowing users to exchange stablecoins like USDT and USDC for satUSD at a fixed 1:1 rate, the module ensures that satUSD holds a stable value tightly linked to USD. This peg is vital for satUSD’s stability, reliability, and usability across the River ecosystem.

#### **Arbitrage Opportunities to Maintain Stability** <a href="#arbitrage-opportunities-to-maintain-stability" id="arbitrage-opportunities-to-maintain-stability"></a>

The Swap Module also creates natural arbitrage opportunities to stabilize satUSD’s value whenever it deviates from 1 USD, reinforcing the peg. Here’s how this works:

* **Scenario 1: satUSD Trades Below 1 USD**
  * Situation: If satUSD trades at a discount, say 0.98 USD on the open market.
  * Arbitrage Action: Arbitrageurs purchase satUSD at the market rate of 0.98 USD.
  * Swap Mechanism: They then swap the acquired satUSD for USDT or USDC through the Swap Module at the fixed 1:1 rate.
  * Profit: For each satUSD bought at 0.98 USD, they receive 1 USD in stablecoins, profiting 0.02 USD per satUSD.
  * Result: This buying pressure on satUSD raises its market value back towards 1 USD, stabilizing the peg.
* **Scenario 2: satUSD Trades Above 1 USD**
  * Situation: If satUSD trades above 1 USD, for example, at 1.02 USD on the open market.
  * Arbitrage Action: Arbitrageurs swap USDT or USDC for satUSD through the Swap Module at the 1:1 rate.
  * Market Sale: They sell the acquired satUSD at the market rate of 1.02 USD.
  * Profit: They make 0.02 USD per satUSD by selling at the higher market price.
  * Result: This selling pressure on satUSD lowers its price, bringing it back to 1 USD, reinforcing the peg.

These arbitrage dynamics create a self-correcting mechanism that maintains satUSD’s value near 1 USD. Whenever the price deviates, the module incentivizes arbitrageurs to act, supporting satUSD’s stability and reliability as a stablecoin.

[<br>](https://docs.satoshiprotocol.org/satoshi-protocol-v1/mechanism/nexus-yield-module-nym)


# Official Links

<br>

| Website          | URL                                                                                 |
| ---------------- | ----------------------------------------------------------------------------------- |
| Official Website | [https://www.river.inc/](<https://www.river.inc/&#xA;>)​                            |
| Web App          | [https://app.river.inc/​](https://app.river.inc/%E2%80%8B)                          |
| X ( Twitter )    | [https://x.com/riverdotinc](<https://x.com/riverdotinc&#xA;>)                       |
| Blog             | [https://blog.river.inc/](<https://blog.river.inc/&#xA;>)​                          |
| Telegram         | [https://t.me/river\_inc](<https://t.me/river_inc&#xA;>)​                           |
| Discord          | [https://discord.com/invite/river-inc](<https://discord.com/invite/river-inc&#xA;>) |
| Documentation    | [https://docs.river.inc/](<https://docs.river.inc/&#xA;>)                           |
| GitHub           | <https://github.com/Satoshi-Protocol>                                               |


# Oracle

Our system has integrated different oracles to provide highly accurate price feeds for our users.&#x20;

River protects price accuracy by checking price staleness. The oracle updates its price when the value deviates beyond a specified threshold or when the heartbeat idle time has passed. Our protocol checks the timestamp and verifies that the latest answer is recent enough.

<table><thead><tr><th width="128">Chain</th><th width="138">Collateral</th><th width="185">Oracle</th><th>Parameter (deviation/heartbeat)</th></tr></thead><tbody><tr><td>Ethereum</td><td>WETH</td><td><a href="https://data.chain.link/">Chainlink</a></td><td>0.5%/3600s</td></tr><tr><td>Ethereum</td><td>WBTC</td><td><a href="https://data.chain.link/">Chainlink</a></td><td>0.5%/3600s</td></tr><tr><td>Ethereum</td><td>USDT</td><td><a href="https://data.chain.link/">Chainlink</a></td><td>0.25%/86400s</td></tr><tr><td>Ethereum</td><td>USDC</td><td><a href="https://data.chain.link/">Chainlink</a></td><td>0.25%/86400s</td></tr><tr><td>Ethereum</td><td>DAI</td><td><a href="https://data.chain.link/">Chainlink</a></td><td>0.25%/86400s</td></tr><tr><td>Ethereum</td><td>weETH</td><td><a href="https://data.chain.link/">Chainlink</a></td><td>0.5%/3600s</td></tr><tr><td>BNB Chain</td><td>BNB</td><td><a href="https://data.chain.link/">Chainlink</a></td><td>0%/27s</td></tr><tr><td>BNB Chain</td><td>WBTC</td><td><a href="https://data.chain.link/">Chainlink</a></td><td>0.5%/86400s</td></tr><tr><td>BNB Chain</td><td>BTCB</td><td><a href="https://data.chain.link/">Chainlink</a></td><td>0.5%/86400s</td></tr><tr><td>BNB Chain</td><td>BSC-USD</td><td><a href="https://data.chain.link/">Chainlink</a></td><td>0.1%/900s</td></tr><tr><td>BNB Chain</td><td>ETH</td><td><a href="https://data.chain.link/">Chainlink</a></td><td>0.1%/60s</td></tr><tr><td>BNB Chain</td><td>DAI</td><td><a href="https://data.chain.link/">Chainlink</a></td><td>0.1%/900s</td></tr><tr><td>BNB Chain</td><td>USDC</td><td><a href="https://data.chain.link/">Chainlink</a></td><td>0.1%/900s</td></tr><tr><td>BNB Chain</td><td>bfBTC</td><td><a href="https://www.redstone.finance/">Redstone</a></td><td>0.5%/21600s</td></tr><tr><td>BNB Chain</td><td>solvBTC</td><td><a href="https://data.chain.link/">Chainlink</a></td><td>0.1%/60s</td></tr><tr><td>BNB Chain</td><td>USD1</td><td><a href="https://data.chain.link/">Chainlink</a></td><td>0.1%/86400s</td></tr><tr><td>X Layer</td><td>WBTC</td><td><a href="https://data.chain.link/">Chainlink</a></td><td>0.5%/86400s</td></tr><tr><td>X Layer</td><td>WETH</td><td><a href="https://data.chain.link/">Chainlink</a></td><td>0.5%/86400s</td></tr><tr><td>X Layer</td><td>USDT</td><td><a href="https://data.chain.link/">Chainlink</a></td><td>0.5%/86400s</td></tr><tr><td>X Layer</td><td>USDC</td><td><a href="https://data.chain.link/">Chainlink</a></td><td>0.5%/86400s</td></tr><tr><td>X Layer</td><td>USDG</td><td><a href="https://data.chain.link/">Chainlink</a></td><td>0.5%/86400s</td></tr><tr><td>X Layer</td><td>USDT0</td><td><a href="https://data.chain.link/">Chainlink</a></td><td>0.5%/86400s</td></tr><tr><td>Arbitrum</td><td>ETH</td><td><a href="https://data.chain.link/">Chainlink</a></td><td>0.05%/86400s</td></tr><tr><td>Arbitrum</td><td>WBTC</td><td><a href="https://data.chain.link/">Chainlink</a></td><td>0.05%/86400s</td></tr><tr><td>Arbitrum</td><td>USDT</td><td><a href="https://data.chain.link/">Chainlink</a></td><td>0.1%/86400s</td></tr><tr><td>Arbitrum</td><td>USDC</td><td><a href="https://data.chain.link/">Chainlink</a></td><td>0.1%/86400s</td></tr><tr><td>Arbitrum</td><td>DAI</td><td><a href="https://data.chain.link/">Chainlink</a></td><td>0.1%/86400s</td></tr><tr><td>Arbitrum</td><td>USDS</td><td><a href="https://data.chain.link/">Chainlink</a></td><td>0.5%/86400s</td></tr><tr><td>Arbitrum</td><td>clBTC</td><td><a href="https://chainsight.network/">Chainsight</a></td><td>10%/3600s</td></tr><tr><td>Base</td><td>ETH</td><td><a href="https://data.chain.link/">Chainlink</a></td><td>0.15%/1200s</td></tr><tr><td>Base</td><td>WBTC</td><td><a href="https://data.chain.link/">Chainlink</a></td><td>0.1%/1200s</td></tr><tr><td>Base</td><td>cbBTC</td><td><a href="https://data.chain.link/">Chainlink</a></td><td>0.3%/1200s</td></tr><tr><td>Base</td><td>clBTC</td><td><a href="https://chainsight.network/">Chainsight</a></td><td>10%/3600s</td></tr><tr><td>Base</td><td>USDC</td><td><a href="https://data.chain.link/">Chainlink</a></td><td>0.3%/86400s</td></tr><tr><td>Base</td><td>USDT</td><td><a href="https://data.chain.link/">Chainlink</a></td><td>0.3%/86400s</td></tr><tr><td>Sonic</td><td>WETH</td><td><a href="https://data.chain.link/">Chainlink</a></td><td>0.5%/86400s</td></tr><tr><td>Sonic</td><td>WBTC</td><td><a href="https://data.chain.link/">Chainlink</a></td><td>0.5%/86400s</td></tr><tr><td>Sonic</td><td>USDC</td><td><a href="https://data.chain.link/">Chainlink</a></td><td>0.5%/86400s</td></tr><tr><td>Sonic</td><td>USDT</td><td><a href="https://data.chain.link/">Chainlink</a></td><td>0.5%/86400s</td></tr><tr><td>BOB</td><td>WETH</td><td><a href="https://data.chain.link/">Chainlink</a></td><td>0.5%/86400s</td></tr><tr><td>BOB</td><td>WBTC</td><td><a href="https://data.chain.link/">Chainlink</a></td><td>0.5%/86400s</td></tr><tr><td>BOB</td><td>tBTC</td><td><a href="https://data.chain.link/">Chainlink</a></td><td>0.5%/86400s</td></tr><tr><td>BOB</td><td>USDT</td><td><a href="https://data.chain.link/">Chainlink</a></td><td>0.5%/86400s</td></tr><tr><td>BOB</td><td>USDC</td><td><a href="https://data.chain.link/">Chainlink</a></td><td>0.5%/86400s</td></tr><tr><td>BOB</td><td>solvBTC</td><td><a href="https://data.chain.link/">Chainlink</a></td><td>0.5%/86400s</td></tr><tr><td>BOB</td><td>solvBTC.BBN</td><td><a href="https://data.chain.link/">Chainlink</a></td><td>0.5%/86400s</td></tr><tr><td>BOB</td><td>uniBTC</td><td><a href="https://data.chain.link/">Chainlink</a></td><td>0.5%/86400s</td></tr><tr><td>Hemi</td><td>WETH</td><td><a href="https://www.redstone.finance/">Redstone</a></td><td>0.5%/21600s</td></tr><tr><td>Hemi</td><td>HemiBTC</td><td><a href="https://www.redstone.finance/">Redstone</a></td><td>0.5%/21600s</td></tr><tr><td>Hemi</td><td>WBTC</td><td><a href="https://www.redstone.finance/">Redstone</a></td><td>0.5%/86400s</td></tr><tr><td>Hemi</td><td>USDC</td><td><a href="https://www.redstone.finance/">Redstone</a></td><td>0.5%/86400s</td></tr><tr><td>Hemi</td><td>USDT</td><td><a href="https://www.redstone.finance/">Redstone</a></td><td>0.5%/86400s</td></tr><tr><td>BSquared</td><td>WBTC</td><td><a href="https://www.apro.com/">APRO</a></td><td>0.5%/3600s</td></tr><tr><td>BSquared</td><td>uBTC</td><td><a href="https://www.apro.com/">APRO</a></td><td>0.5%/3600s</td></tr><tr><td>BSquared</td><td>uniBTC</td><td><a href="https://www.apro.com/">APRO</a></td><td>0.5%/3600s</td></tr><tr><td>BSquared</td><td>USDT</td><td><a href="https://www.apro.com/">APRO</a></td><td>0.1%/86400s</td></tr><tr><td>BEVM</td><td>BTC</td><td><a href="https://www.diadata.org/#disable">DIA</a></td><td>0.5%/86400s</td></tr><tr><td>BEVM</td><td>wstBTC</td><td><a href="https://www.diadata.org/#disable">DIA</a> (BTC price) &#x26; <a href="https://scan-mainnet.bevm.io/address/0x26bda683F874e7AE3e3A5d3fad44Bcb82a7c107C">Bido contract</a> (wstBTC/stBTC rate)</td><td>0.5%/86400s</td></tr><tr><td>Bitlayer</td><td>WBTC</td><td><a href="https://www.apro.com/">APRO</a></td><td>0.5%/3600s</td></tr><tr><td>Bitlayer</td><td>stBTC</td><td><a href="https://www.apro.com/">APRO</a></td><td>0.5%/3600s</td></tr><tr><td>Bitlayer</td><td>USDT</td><td><a href="https://www.apro.com/">APRO</a></td><td>0.1%/86400s</td></tr><tr><td>Bitlayer</td><td>USDC</td><td><a href="https://www.apro.com/">APRO</a></td><td>0.1%/86400s</td></tr></tbody></table>


# satUSD Oracle


# Weighted Asset Rate

Weighted asset rate represents the **average price of the assets backing satUSD**.

It calculates a **debtTokenMinted-weighted average rate** across all supported backing assets. In other words, it shows the overall price level of the asset pool supporting satUSD.

### How It Works

The function iterates through all supported assets and applies the following rules:

* Only supported assets are included
* Only assets with `debtTokenMinted > 0` are counted
* Each asset is weighted by its `debtTokenMinted`
* If an asset does not use an oracle, its price is treated as $1
* If an asset uses an oracle, the on-chain price is fetched and validated against `minPrice` and `maxPrice`

Formula:

```
Weighted Asset Rate = Σ(asset price × debtTokenMinted) / Σ(debtTokenMinted)
```

### Contract Integration

Protocols, vaults, or monitoring contracts can call `getWeightedAssetRate()` to read the **debtTokenMinted-weighted average price of the assets backing satUSD**.

#### Contract Addresses

Contracts can integrate with the `NexusYieldManagerFacet` through the **SatoshiXApp contract address on each chain**.

For deployed addresses, please refer to the **Deployed Contract** page and use the corresponding **SatoshiXApp** address for that chain.

For example, to read the value on Ethereum, use the **Ethereum SatoshiXApp** address shown on that page:

{% content-ref url="/pages/eh3QMxzrEjaJMwbyMkqZ" %}
[Ethereum](/outro/deployed-contracts/ethereum)
{% endcontent-ref %}

#### Interface

```solidity
interface INexusYieldManagerFacet {
    function getWeightedAssetRate() external returns (uint256);
}
```

#### Return Value

`getWeightedAssetRate()` returns a `uint256` scaled by `1e18`.

This means:

* `1e18` = $1.00
* `1.02e18` = $1.02
* `0.98e18` = $0.98

#### Failure Cases

The call may revert in the following cases:

* `NoActiveAssets()` if no asset currently contributes weight
* `InvalidPrice(uint256 price)` if an oracle price is outside the allowed range


# DIA Oracle

DIA is a decentralized oracle platform supporting thousands of assets across 50+ blockchains. For satUSD, DIA delivers high-frequency, deviation-based price updates using their battle-tested DIAOracleV2 and AggregatorV3Interface-compatible adapters, ensuring compatibility with most DeFi protocols and aggregators.

## Oracle Configuration

The satUSD price feed uses the following configuration across all chains:

<table><thead><tr><th width="272.80078125">Parameter</th><th>Value</th><th data-hidden></th></tr></thead><tbody><tr><td>Pricing Method</td><td>MAIR (Moving Average with Interquartile Range)</td><td></td></tr><tr><td>Deviation Trigger</td><td>0.5%</td><td></td></tr><tr><td>Refresh Frequency</td><td>120 seconds</td><td></td></tr><tr><td>Heartbeat</td><td>24 hours</td><td></td></tr></tbody></table>

## How to Access On-Chain

### 1. DIAOracleV2

#### Contract Addresses

These are the main contracts to call for direct access to price data.

<table><thead><tr><th width="200.45703125">Chain</th><th>Contract Address</th><th data-hidden></th></tr></thead><tbody><tr><td>Ethereum</td><td><a href="https://etherscan.io/address/0xaca485dd4299090251422617f5938d324c85191b"><code>0xACa485Dd4299090251422617f5938d324C85191B</code></a></td><td></td></tr><tr><td>BNB Chain</td><td><a href="https://bscscan.com/address/0xbea082c15417716541d3169e7a48e4a53a19b5d1"><code>0xbea082c15417716541D3169e7a48e4A53A19B5D1</code></a></td><td></td></tr><tr><td>Base</td><td><a href="https://basescan.org/address/0x12B0B8bCd48ee30905DB5B0e181368Dda90eaF0B"><code>0x12B0B8bCd48ee30905DB5B0e181368Dda90eaF0B</code></a></td><td></td></tr><tr><td>Arbitrum</td><td><a href="https://arbiscan.io/address/0x009e01c47609dbff978cc76f40aebe8724492fe9"><code>0x009E01c47609dbFF978cc76F40aEBE8724492Fe9</code></a></td><td></td></tr><tr><td>BOB</td><td><a href="https://explorer.gobob.xyz/address/0xD8ba4Bf8d2b8Aa639fD0affd6fDF180D503ed458"><code>0xD8ba4Bf8d2b8Aa639fD0affd6fDF180D503ed458</code></a></td><td></td></tr></tbody></table>

#### Solidity: Using `getValue` from DIAOracleV2

```solidity
pragma solidity 0.8.29;

interface IDIAOracleV2 {
    function getValue(string memory key) external view returns (uint128, uint128);
}

contract OracleConsumer {

    address immutable ORACLE = 0xbea082c15417716541D3169e7a48e4A53A19B5D1; // BNB Chain

    function getSatUSDPrice() external view returns (uint128 price, uint128 timestamp) {
        (price, timestamp) = IDIAOracleV2(ORACLE).getValue("satUSD/USD");
        // Note: `price` has 8 decimals (e.g., 99882732 = $0.99882732)
    }
}
```

### 2. Adapter Contracts (Chainlink-Compatible)

For protocols expecting a Chainlink-style interface via AggregatorV3Interface.

#### Contract Addresses

<table><thead><tr><th width="200.45703125">Chain</th><th>Contract Address</th><th data-hidden></th></tr></thead><tbody><tr><td>Ethereum</td><td><a href="https://etherscan.io/address/0x02eabd9c59fca5b38e5a415e6172f93bf30fb2af"><code>0x02eaBD9c59fCa5B38E5A415e6172F93BF30fB2af</code></a></td><td></td></tr><tr><td>BNB Chain</td><td><a href="https://bscscan.com/address/0x1082679a55fB34B967a006080204b597CfA0605C"><code>0x1082679a55fB34B967a006080204b597CfA0605C</code></a></td><td></td></tr><tr><td>Base</td><td><a href="https://basescan.org/address/0x4ae9a0a4c02ec4ffb7f231717df85d755192884a"><code>0x4aE9A0a4c02Ec4ffb7F231717DF85D755192884A</code></a></td><td></td></tr><tr><td>Arbitrum</td><td><a href="https://arbiscan.io/address/0x6f076AddEf5e393F23988B0f61b02d0297022fa4"><code>0x6f076AddEf5e393F23988B0f61b02d0297022fa4</code></a></td><td></td></tr><tr><td>BOB</td><td><a href="https://explorer.gobob.xyz/address/0x230057c84fACFC5358C500E5348E16D4D7Dc60f8"><code>0x230057c84fACFC5358C500E5348E16D4D7Dc60f8</code></a></td><td></td></tr></tbody></table>

#### Solidity: Use DIA’s adapter contracts via the `AggregatorV3Interface` interface:

```solidity
interface AggregatorV3Interface {
    function latestRoundData() external view returns (
        uint80 roundID,
        int256 answer,
        uint256 startedAt,
        uint256 updatedAt,
        uint80 answeredInRound
    );
}
```


# Deployed Contracts

## satUSD Contract Addresses

<table><thead><tr><th>Chain</th><th>Contract Address</th><th data-type="content-ref">Explorer Link</th><th data-hidden></th></tr></thead><tbody><tr><td><strong>Ethereum</strong></td><td><code>0x1958853A8BE062dc4f401750Eb233f5850F0D0d2</code></td><td><a href="https://etherscan.io/address/0x1958853A8BE062dc4f401750Eb233f5850F0D0d2">https://etherscan.io/address/0x1958853A8BE062dc4f401750Eb233f5850F0D0d2</a></td><td></td></tr><tr><td><strong>BNB Chain</strong></td><td><code>0xb4818BB69478730EF4e33Cc068dD94278e2766cB</code></td><td><a href="https://bscscan.com/token/0xb4818BB69478730EF4e33Cc068dD94278e2766cB">https://bscscan.com/token/0xb4818BB69478730EF4e33Cc068dD94278e2766cB</a></td><td></td></tr><tr><td><strong>X Layer</strong></td><td><code>0xceF6c74Ce218c0E1F48cA2430635D0a65Cd3737A</code></td><td><a href="https://web3.okx.com/explorer/x-layer/token/0xcef6c74ce218c0e1f48ca2430635d0a65cd3737a">https://web3.okx.com/explorer/x-layer/token/0xcef6c74ce218c0e1f48ca2430635d0a65cd3737a</a></td><td></td></tr><tr><td><strong>Base</strong></td><td><code>0x70654AaD8B7734dc319d0C3608ec7B32e03FA162</code></td><td><a href="https://basescan.org/token/0x70654AaD8B7734dc319d0C3608ec7B32e03FA162">https://basescan.org/token/0x70654AaD8B7734dc319d0C3608ec7B32e03FA162</a></td><td></td></tr><tr><td><strong>Arbitrum</strong></td><td><code>0xb4818BB69478730EF4e33Cc068dD94278e2766cB</code></td><td><a href="https://www.arbiscan.io/token/0xb4818BB69478730EF4e33Cc068dD94278e2766cB">https://www.arbiscan.io/token/0xb4818BB69478730EF4e33Cc068dD94278e2766cB</a></td><td></td></tr><tr><td><strong>Sonic</strong></td><td><code>0xb4818BB69478730EF4e33Cc068dD94278e2766cB</code></td><td><a href="https://sonicscan.org/token/0xb4818BB69478730EF4e33Cc068dD94278e2766cB">https://sonicscan.org/token/0xb4818BB69478730EF4e33Cc068dD94278e2766cB</a></td><td></td></tr><tr><td><strong>BOB</strong></td><td><code>0xecf21b335B41f9d5A89f6186A99c19a3c467871f</code></td><td><a href="https://explorer.gobob.xyz/token/0xecf21b335B41f9d5A89f6186A99c19a3c467871f">https://explorer.gobob.xyz/token/0xecf21b335B41f9d5A89f6186A99c19a3c467871f</a></td><td></td></tr><tr><td><strong>BSquared</strong></td><td><code>0x8dD8b12d55C73c08294664a5915475eD1c8b1F6f</code></td><td><a href="https://explorer.bsquared.network/token/0x8dD8b12d55C73c08294664a5915475eD1c8b1F6f">https://explorer.bsquared.network/token/0x8dD8b12d55C73c08294664a5915475eD1c8b1F6f</a></td><td></td></tr><tr><td><strong>Hemi</strong></td><td><code>0xb4818BB69478730EF4e33Cc068dD94278e2766cB</code></td><td><a href="https://explorer.hemi.xyz/token/0xb4818BB69478730EF4e33Cc068dD94278e2766cB">https://explorer.hemi.xyz/token/0xb4818BB69478730EF4e33Cc068dD94278e2766cB</a></td><td></td></tr><tr><td><strong>BEVM</strong></td><td><code>0x2031c8848775a5EFB7cfF2A4EdBE3F04c50A1478</code></td><td><a href="https://scan-mainnet.bevm.io/token/0x2031c8848775a5EFB7cfF2A4EdBE3F04c50A1478">https://scan-mainnet.bevm.io/token/0x2031c8848775a5EFB7cfF2A4EdBE3F04c50A1478</a></td><td></td></tr><tr><td><strong>Bitlayer</strong></td><td><code>0xba50dDac6B2F5482cA064EFAc621E0C7c0f6A783</code></td><td><a href="https://www.okx.com/web3/explorer/bitlayer/token/0xba50ddac6b2f5482ca064efac621e0c7c0f6a783">https://www.okx.com/web3/explorer/bitlayer/token/0xba50ddac6b2f5482ca064efac621e0c7c0f6a783</a></td><td></td></tr></tbody></table>


# Ethereum

### Token Contracts

**satUSD**: `0x1958853A8BE062dc4f401750Eb233f5850F0D0d2`

### System Contracts

<table><thead><tr><th>Contract Name</th><th>Contract Address</th><th data-hidden></th></tr></thead><tbody><tr><td><code>SatoshiXApp</code></td><td><code>0xb8374e4DfF99202292da2FE34425e1dE665b67E6</code></td><td></td></tr><tr><td><code>CoreFacet</code></td><td><code>0x90B9e5De5DBE8d5C882Aac8c097fd5A235a0014f</code></td><td></td></tr><tr><td><code>BorrowerOperationsFacet</code></td><td><code>0x32db5c3D64aa7e100B73786000704aee61072981</code></td><td></td></tr><tr><td><code>FactoryFacet</code></td><td><code>0xB8405B3AF92e5Ed5842bE38B02C3d85b06176922</code></td><td></td></tr><tr><td><code>LiquidationFacet</code></td><td><code>0xde87146b00817fC265978424880646Fb7b4Fe7b8</code></td><td></td></tr><tr><td><code>PriceFeedAggregatorFacet</code></td><td><code>0xeF5e87476C4Ac90a0973A2bf114aC770C4E05C1e</code></td><td></td></tr><tr><td><code>StabilityPoolFacet</code></td><td><code>0x23e727E4919eB9f11200197014ab96d03008Ccff</code></td><td></td></tr><tr><td><code>NexusYieldManagerFacet</code></td><td><code>0x6b3ae150d151A2164Ecb90b34566bB6318605d3e</code></td><td></td></tr><tr><td><code>SatoshiPeriphery</code></td><td><code>0xDC23b633c23a9d6E55Cb454c673F767bf65f920C</code></td><td></td></tr><tr><td><code>GasPool</code></td><td><code>0xfE851A8614a97458bbb9DCdbFB28DE9a7F1BE184</code></td><td></td></tr><tr><td><code>SortedTrovesBeacon</code></td><td><code>0x094b60F2295c68A898F3F1d04348b84DEB11D3f7</code></td><td></td></tr><tr><td><code>TroveManagerBeacon</code></td><td><code>0xC594722deaa3A4cADbad9791547e714c5D8B1540</code></td><td></td></tr></tbody></table>

### Collateral Contracts

* WETH: `0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2`

<table><thead><tr><th width="294">Contract Name</th><th>Contract Address</th><th data-hidden></th></tr></thead><tbody><tr><td><code>PriceFeed</code></td><td><code>0x44AfcF491d9BcA179F9F99d7b11EC5519895f317</code></td><td></td></tr><tr><td><code>SortedTrovesProxy</code></td><td><code>0x3405a8737d10187eba1fEB82c743A49f133FD0EB</code></td><td></td></tr><tr><td><code>TroveManagerProxy</code></td><td><code>0xb97E6219B0836E21ae671358e746f03dcdbCb6D8</code></td><td></td></tr></tbody></table>

* WBTC: `0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599`

<table><thead><tr><th width="294">Contract Name</th><th>Contract Address</th><th data-hidden></th></tr></thead><tbody><tr><td><code>PriceFeed</code></td><td><code>0x1Af6626290b03803Cedf7eF32e7ADB7DaE844663</code></td><td></td></tr><tr><td><code>SortedTrovesProxy</code></td><td><code>0x026F086b76B63210602C5Ce3665c4D378595B7F8</code></td><td></td></tr><tr><td><code>TroveManagerProxy</code></td><td><code>0xc03403DD8f27CEFA314Fc109D26777c81b0De895</code></td><td></td></tr></tbody></table>

* weETH: `0xCd5fE23C85820F7B72D0926FC9b05b43E359b7ee`

<table><thead><tr><th width="294">Contract Name</th><th>Contract Address</th><th data-hidden></th></tr></thead><tbody><tr><td><code>PriceFeed</code></td><td><code>0x93736af88195abbe9c8E0abeb53Cf6550F0747F6</code></td><td></td></tr><tr><td><code>SortedTrovesProxy</code></td><td><code>0x1F8D35AA0C3E5ec29ca9B2a7bc336e1321597060</code></td><td></td></tr><tr><td><code>TroveManagerProxy</code></td><td><code>0x2135EfEF5aC35ba549Cc791cEc4D15E8C8115611</code></td><td></td></tr></tbody></table>


# BNB Chain

### Token Contracts

**satUSD**: `0xb4818BB69478730EF4e33Cc068dD94278e2766cB`

### System Contracts

<table><thead><tr><th>Contract Name</th><th>Contract Address</th><th data-hidden></th></tr></thead><tbody><tr><td><code>SatoshiXApp</code></td><td><code>0x07BbC5A83B83a5C440D1CAedBF1081426d0AA4Ec</code></td><td></td></tr><tr><td><code>CoreFacet</code></td><td><code>0xe16e1DF1C023FC01795aCAdE989F1d0E84D52301</code></td><td></td></tr><tr><td><code>BorrowerOperationsFacet</code></td><td><code>0xb0fE760f651E4098cc0B11572A44E1D15cb3B5F5</code></td><td></td></tr><tr><td><code>FactoryFacet</code></td><td><code>0x89A7e370514328f5c8204d68c75Eb5E194B8F77E</code></td><td></td></tr><tr><td><code>LiquidationFacet</code></td><td><code>0x38E2a41ab14B382E0188c8368937eE392e852695</code></td><td></td></tr><tr><td><code>PriceFeedAggregatorFacet</code></td><td><code>0xefAa8B485355066fA0993A605466eEf0ec026860</code></td><td></td></tr><tr><td><code>StabilityPoolFacet</code></td><td><code>0x9a3c724ee9603A7550499bE73DC743B371811dd3</code></td><td></td></tr><tr><td><code>NexusYieldManagerFacet</code></td><td><code>0xc02d47F45bBc45385Bc4d9A73a0204100AB153F2</code></td><td></td></tr><tr><td><code>SatoshiPeriphery</code></td><td><code>0x0a1cA3190579504761A0EFd0c94dfA2DeDe55bE2</code></td><td></td></tr><tr><td><code>GasPool</code></td><td><code>0x627524AEC280300Dfa58DDB30709a0F3810400c9</code></td><td></td></tr><tr><td><code>SortedTrovesBeacon</code></td><td><code>0x6220c919c8D9f6F6350e5C1b9d402fDfA2293512</code></td><td></td></tr><tr><td><code>TroveManagerBeacon</code></td><td><code>0x0C309bDCaFf14ac240f6021FceaE11f40Bd0e939</code></td><td></td></tr></tbody></table>

### Collateral Contracts

* WBTC: `0x0555E30da8f98308EdB960aa94C0Db47230d2B9c`

<table><thead><tr><th width="294">Contract Name</th><th>Contract Address</th><th data-hidden></th></tr></thead><tbody><tr><td><code>PriceFeed</code></td><td><code>0x7ddCA7C659BF897dfaA65f830Eaf3343E026Fe8D</code></td><td></td></tr><tr><td><code>SortedTrovesProxy</code></td><td><code>0xd50818775FC0B013e59C20C8B6D4d6c703D628D2</code></td><td></td></tr><tr><td><code>TroveManagerProxy</code></td><td><code>0xb655775C4C7C6e0C2002935133c950FB89974928</code></td><td></td></tr></tbody></table>

* BTCB: `0x7130d2A12B9BCbFAe4f2634d864A1Ee1Ce3Ead9c`

<table><thead><tr><th width="294">Contract Name</th><th>Contract Address</th><th data-hidden></th></tr></thead><tbody><tr><td><code>PriceFeed</code></td><td><code>0x9d9f0D9a13d3bA201003DD2e8950059d2c08D782</code></td><td></td></tr><tr><td><code>SortedTrovesProxy</code></td><td><code>0x29c1d46447b5EeF770898FB7155298E7962539c3</code></td><td></td></tr><tr><td><code>TroveManagerProxy</code></td><td><code>0x5EA26D0A1a9aa6731F9BFB93fCd654cd1C3079Ec</code></td><td></td></tr></tbody></table>


# X Layer

### Token Contracts

**satUSD**: `0xceF6c74Ce218c0E1F48cA2430635D0a65Cd3737A`

### System Contracts

<table><thead><tr><th>Contract Name</th><th>Contract Address</th><th data-hidden></th></tr></thead><tbody><tr><td><code>SatoshiXApp</code></td><td><code>0xB4d4793a1CD57b6EceBADf6FcbE5aEd03e8e93eC</code></td><td></td></tr><tr><td><code>CoreFacet</code></td><td><code>0x739b3910f0208f53ecc0B96113FFF843610F52Ad</code></td><td></td></tr><tr><td><code>BorrowerOperationsFacet</code></td><td><code>0x583f89425edf276A178952ba413fF36baC18905D</code></td><td></td></tr><tr><td><code>FactoryFacet</code></td><td><code>0x9760180786bDbc377B61DAcd752f31f0d6377b61</code></td><td></td></tr><tr><td><code>LiquidationFacet</code></td><td><code>0x2863E3D0f29E2EEC6adEFC0dF0d3171DaD542c02</code></td><td></td></tr><tr><td><code>PriceFeedAggregatorFacet</code></td><td><code>0x7fe7de5d72633b981191EAEe2ccAEd95C77e79A9</code></td><td></td></tr><tr><td><code>StabilityPoolFacet</code></td><td><code>0x95E5b977c8c33DE5b3B5D2216F1097C2017Bdf71</code></td><td></td></tr><tr><td><code>NexusYieldManagerFacet</code></td><td><code>0x93736af88195abbe9c8E0abeb53Cf6550F0747F6</code></td><td></td></tr><tr><td><code>SatoshiPeriphery</code></td><td><code>0x2EC79d1ACE7CDe8a9dC2326F9A79B8f3a3f17EA5</code></td><td></td></tr><tr><td><code>GasPool</code></td><td><code>0xF1514E6bE5d611a179Ec5Ebe1377B9860C00208C</code></td><td></td></tr><tr><td><code>SortedTrovesBeacon</code></td><td><code>0x2031c8848775a5EFB7cfF2A4EdBE3F04c50A1478</code></td><td></td></tr><tr><td><code>TroveManagerBeacon</code></td><td><code>0x0F1331014273fD693e30692B2fB451D53deC7f7C</code></td><td></td></tr></tbody></table>

### Collateral Contracts

* WETH: `0x5A77f1443D16ee5761d310e38b62f77f726bC71c`

<table><thead><tr><th width="294">Contract Name</th><th>Contract Address</th><th data-hidden></th></tr></thead><tbody><tr><td><code>PriceFeed</code></td><td><code>0xde87146b00817fC265978424880646Fb7b4Fe7b8</code></td><td></td></tr><tr><td><code>SortedTrovesProxy</code></td><td><code>0xf956e9A00a6e608E2828bcbFAa2E78b1000d8a4C</code></td><td></td></tr><tr><td><code>TroveManagerProxy</code></td><td><code>0xbe223F331f05a8cf18F98675033FEFD6b23c7176</code></td><td></td></tr></tbody></table>

* WBTC: `0xEA034fb02eB1808C2cc3adbC15f447B93CbE08e1`

<table><thead><tr><th width="294">Contract Name</th><th>Contract Address</th><th data-hidden></th></tr></thead><tbody><tr><td><code>PriceFeed</code></td><td><code>0xcA14eAd06B3fa58460d7f9e46a2DE4E1e5090b75</code></td><td></td></tr><tr><td><code>SortedTrovesProxy</code></td><td><code>0xC16EB624A23eF99518E4c09C5f20cFb360ec3957</code></td><td></td></tr><tr><td><code>TroveManagerProxy</code></td><td><code>0xd19BC6B110896d136D9456E8fD45C71C8d8C5abB</code></td><td></td></tr></tbody></table>

* cbBTC: `0xb7C00000bcDEeF966b20B3D884B98E64d2b06b4f`

<table><thead><tr><th width="294">Contract Name</th><th>Contract Address</th><th data-hidden></th></tr></thead><tbody><tr><td><code>PriceFeed</code></td><td><code>0x0341E348DB0F81fD6E425703D05B1FFb9a0835FC</code></td><td></td></tr><tr><td><code>SortedTrovesProxy</code></td><td><code>0x92a36b4253D96b985d35fc4Bf16050f9F8f3a29B</code></td><td></td></tr><tr><td><code>TroveManagerProxy</code></td><td><code>0xE92d7002E3172dD1Ee4ABeAfcfD4fDB0D8F042D5</code></td><td></td></tr></tbody></table>


# Base

### Token Contracts

**satUSD**: `0x70654AaD8B7734dc319d0C3608ec7B32e03FA162`

### System Contracts

<table><thead><tr><th>Contract Name</th><th>Contract Address</th><th data-hidden></th></tr></thead><tbody><tr><td><code>SatoshiXApp</code></td><td><code>0x9a3c724ee9603A7550499bE73DC743B371811dd3</code></td><td></td></tr><tr><td><code>CoreFacet</code></td><td><code>0x4689d71CB44f799BE9bF50b8630d37CddB69Fe6C</code></td><td></td></tr><tr><td><code>BorrowerOperationsFacet</code></td><td><code>0x32CC6E06D9212ABe6aBa8B2720ce1e601E0653e7</code></td><td></td></tr><tr><td><code>FactoryFacet</code></td><td><code>0x0920006d239e8612306435c4044a1Be37349eB1b</code></td><td></td></tr><tr><td><code>LiquidationFacet</code></td><td><code>0xb247bce6F7ca0345174ee0D3860A36e7d72b5a9d</code></td><td></td></tr><tr><td><code>PriceFeedAggregatorFacet</code></td><td><code>0x2704b32Aa7F8024f0dDb077dEB5816002aE79037</code></td><td></td></tr><tr><td><code>StabilityPoolFacet</code></td><td><code>0x613c82a30B25A5751BFE31896354637B4e47503F</code></td><td></td></tr><tr><td><code>NexusYieldManagerFacet</code></td><td><code>0x2f7dd00fFeEE5057e125bc1328e2eE18A6eBc3DC</code></td><td></td></tr><tr><td><code>SatoshiPeriphery</code></td><td><code>0x9d9f0D9a13d3bA201003DD2e8950059d2c08D782</code></td><td></td></tr><tr><td><code>GasPool</code></td><td><code>0x4d4737312B7A33C7aDC93f06CDd3Ea3B29b0075f</code></td><td></td></tr><tr><td><code>SortedTrovesBeacon</code></td><td><code>0x38E2a41ab14B382E0188c8368937eE392e852695</code></td><td></td></tr><tr><td><code>TroveManagerBeacon</code></td><td><code>0xefAa8B485355066fA0993A605466eEf0ec026860</code></td><td></td></tr></tbody></table>

### Collateral Contracts

* WETH: `0x4200000000000000000000000000000000000006`

<table><thead><tr><th width="294">Contract Name</th><th>Contract Address</th><th data-hidden></th></tr></thead><tbody><tr><td><code>PriceFeed</code></td><td><code>0x82bea9fC5Aa6101AAB55933eA76F2f71cE3ae4e2</code></td><td></td></tr><tr><td><code>SortedTrovesProxy</code></td><td><code>0xa45DF2A89cf06b8219aAA6Aa19b0947e8b689C6E</code></td><td></td></tr><tr><td><code>TroveManagerProxy</code></td><td><code>0xddac7d4e228c205197FE9961865FFE20173dE56B</code></td><td></td></tr></tbody></table>

* WBTC: `0x0555E30da8f98308EdB960aa94C0Db47230d2B9c`

<table><thead><tr><th width="294">Contract Name</th><th>Contract Address</th><th data-hidden></th></tr></thead><tbody><tr><td><code>PriceFeed</code></td><td><code>0xc601034d15e2b739E73D2E1E8Ef9A5C452fB9C0d</code></td><td></td></tr><tr><td><code>SortedTrovesProxy</code></td><td><code>0x86cC3FeB5c24DA0daa63648A6Ba5B46f4162bD60</code></td><td></td></tr><tr><td><code>TroveManagerProxy</code></td><td><code>0x4B37F38DF39C9E6D876b830ED3FF444533Aa2E45</code></td><td></td></tr></tbody></table>

* cbBTC: `0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf`

<table><thead><tr><th width="294">Contract Name</th><th>Contract Address</th><th data-hidden></th></tr></thead><tbody><tr><td><code>PriceFeed</code></td><td><code>0xB06Ee04eE3FBAD0394259497b15f590DacbCCa83</code></td><td></td></tr><tr><td><code>SortedTrovesProxy</code></td><td><code>0x4B699b0c652eFF1E434Da737da93D11f2de021f8</code></td><td></td></tr><tr><td><code>TroveManagerProxy</code></td><td><code>0x50B02283f3c39A463DF3d84d44d46b5432D7D193</code></td><td></td></tr></tbody></table>

* clBTC: `0x8d2757EA27AaBf172DA4CCa4e5474c76016e3dC5`

<table><thead><tr><th width="294">Contract Name</th><th>Contract Address</th><th data-hidden></th></tr></thead><tbody><tr><td><code>PriceFeed</code></td><td><code>0xA9ECf240B4621cf703aDc3985a084770D8Df1F3A</code></td><td></td></tr><tr><td><code>SortedTrovesProxy</code></td><td><code>0x478b7e362e6AfE16e0f3dEf93169A6D44D8405e2</code></td><td></td></tr><tr><td><code>TroveManagerProxy</code></td><td><code>0x01DF7D28c51639F2f2F95dcF2FdFF374269327B0</code></td><td></td></tr></tbody></table>


# Arbitrum

### Token Contracts

**satUSD**: `0xb4818BB69478730EF4e33Cc068dD94278e2766cB`

### System Contracts

<table><thead><tr><th>Contract Name</th><th>Contract Address</th><th data-hidden></th></tr></thead><tbody><tr><td><code>SatoshiXApp</code></td><td><code>0x07BbC5A83B83a5C440D1CAedBF1081426d0AA4Ec</code></td><td></td></tr><tr><td><code>CoreFacet</code></td><td><code>0xe16e1DF1C023FC01795aCAdE989F1d0E84D52301</code></td><td></td></tr><tr><td><code>BorrowerOperationsFacet</code></td><td><code>0xb0fE760f651E4098cc0B11572A44E1D15cb3B5F5</code></td><td></td></tr><tr><td><code>FactoryFacet</code></td><td><code>0x89A7e370514328f5c8204d68c75Eb5E194B8F77E</code></td><td></td></tr><tr><td><code>LiquidationFacet</code></td><td><code>0x38E2a41ab14B382E0188c8368937eE392e852695</code></td><td></td></tr><tr><td><code>PriceFeedAggregatorFacet</code></td><td><code>0xefAa8B485355066fA0993A605466eEf0ec026860</code></td><td></td></tr><tr><td><code>StabilityPoolFacet</code></td><td><code>0x9a3c724ee9603A7550499bE73DC743B371811dd3</code></td><td></td></tr><tr><td><code>NexusYieldManagerFacet</code></td><td><code>0xc02d47F45bBc45385Bc4d9A73a0204100AB153F2</code></td><td></td></tr><tr><td><code>SatoshiPeriphery</code></td><td><code>0x0a1cA3190579504761A0EFd0c94dfA2DeDe55bE2</code></td><td></td></tr><tr><td><code>GasPool</code></td><td><code>0x627524AEC280300Dfa58DDB30709a0F3810400c9</code></td><td></td></tr><tr><td><code>SortedTrovesBeacon</code></td><td><code>0x6220c919c8D9f6F6350e5C1b9d402fDfA2293512</code></td><td></td></tr><tr><td><code>TroveManagerBeacon</code></td><td><code>0x0C309bDCaFf14ac240f6021FceaE11f40Bd0e939</code></td><td></td></tr></tbody></table>

### Collateral Contracts

* WETH: `0x82aF49447D8a07e3bd95BD0d56f35241523fBab1`

<table><thead><tr><th width="294">Contract Name</th><th>Contract Address</th><th data-hidden></th></tr></thead><tbody><tr><td><code>PriceFeed</code></td><td><code>0x9d9f0D9a13d3bA201003DD2e8950059d2c08D782</code></td><td></td></tr><tr><td><code>SortedTrovesProxy</code></td><td><code>0xd50818775FC0B013e59C20C8B6D4d6c703D628D2</code></td><td></td></tr><tr><td><code>TroveManagerProxy</code></td><td><code>0xb655775C4C7C6e0C2002935133c950FB89974928</code></td><td></td></tr></tbody></table>

* WBTC: `0x2f2a2543B76A4166549F7aaB2e75Bef0aefC5B0f`

<table><thead><tr><th width="294">Contract Name</th><th>Contract Address</th><th data-hidden></th></tr></thead><tbody><tr><td><code>PriceFeed</code></td><td><code>0x5348fFaB4F2dDc88400D7471230a17e18bF26087</code></td><td></td></tr><tr><td><code>SortedTrovesProxy</code></td><td><code>0x29c1d46447b5EeF770898FB7155298E7962539c3</code></td><td></td></tr><tr><td><code>TroveManagerProxy</code></td><td><code>0x5EA26D0A1a9aa6731F9BFB93fCd654cd1C3079Ec</code></td><td></td></tr></tbody></table>

* clBTC: `0x1792865D493FE4DFdD504010D3c0f6da11E8046D`

<table><thead><tr><th width="294">Contract Name</th><th>Contract Address</th><th data-hidden></th></tr></thead><tbody><tr><td><code>PriceFeed</code></td><td><code>0x7a38cB1aB2409873C86b73C71cdb33e916696956</code></td><td></td></tr><tr><td><code>SortedTrovesProxy</code></td><td><code>0x32670D09aFEB504870e5463F6C599772594B94eC</code></td><td></td></tr><tr><td><code>TroveManagerProxy</code></td><td><code>0xa7B54413129441e872F42C1c4fE7D1984332CA87</code></td><td></td></tr></tbody></table>


# Sonic

### Token Contracts

**satUSD**: `0xb4818BB69478730EF4e33Cc068dD94278e2766cB`

### System Contracts

<table><thead><tr><th>Contract Name</th><th>Contract Address</th><th data-hidden></th></tr></thead><tbody><tr><td><code>SatoshiXApp</code></td><td><code>0x07BbC5A83B83a5C440D1CAedBF1081426d0AA4Ec</code></td><td></td></tr><tr><td><code>CoreFacet</code></td><td><code>0xe16e1DF1C023FC01795aCAdE989F1d0E84D52301</code></td><td></td></tr><tr><td><code>BorrowerOperationsFacet</code></td><td><code>0xb0fE760f651E4098cc0B11572A44E1D15cb3B5F5</code></td><td></td></tr><tr><td><code>FactoryFacet</code></td><td><code>0x89A7e370514328f5c8204d68c75Eb5E194B8F77E</code></td><td></td></tr><tr><td><code>LiquidationFacet</code></td><td><code>0x38E2a41ab14B382E0188c8368937eE392e852695</code></td><td></td></tr><tr><td><code>PriceFeedAggregatorFacet</code></td><td><code>0xefAa8B485355066fA0993A605466eEf0ec026860</code></td><td></td></tr><tr><td><code>StabilityPoolFacet</code></td><td><code>0x9a3c724ee9603A7550499bE73DC743B371811dd3</code></td><td></td></tr><tr><td><code>NexusYieldManagerFacet</code></td><td><code>0xc02d47F45bBc45385Bc4d9A73a0204100AB153F2</code></td><td></td></tr><tr><td><code>SatoshiPeriphery</code></td><td><code>0x0a1cA3190579504761A0EFd0c94dfA2DeDe55bE2</code></td><td></td></tr><tr><td><code>GasPool</code></td><td><code>0x627524AEC280300Dfa58DDB30709a0F3810400c9</code></td><td></td></tr><tr><td><code>SortedTrovesBeacon</code></td><td><code>0x6220c919c8D9f6F6350e5C1b9d402fDfA2293512</code></td><td></td></tr><tr><td><code>TroveManagerBeacon</code></td><td><code>0x0C309bDCaFf14ac240f6021FceaE11f40Bd0e939</code></td><td></td></tr></tbody></table>

### Collateral Contracts

* WETH: `0x50c42dEAcD8Fc9773493ED674b675bE577f2634b`

<table><thead><tr><th width="294">Contract Name</th><th>Contract Address</th><th data-hidden></th></tr></thead><tbody><tr><td><code>PriceFeed</code></td><td><code>0x595aDC759518DD58fd644b8d5a166A00388c77C4</code></td><td></td></tr><tr><td><code>SortedTrovesProxy</code></td><td><code>0xd50818775FC0B013e59C20C8B6D4d6c703D628D2</code></td><td></td></tr><tr><td><code>TroveManagerProxy</code></td><td><code>0xb655775C4C7C6e0C2002935133c950FB89974928</code></td><td></td></tr></tbody></table>

* WBTC: 0x0555E30da8f98308EdB960aa94C0Db47230d2B9c

<table><thead><tr><th width="294">Contract Name</th><th>Contract Address</th><th data-hidden></th></tr></thead><tbody><tr><td><code>PriceFeed</code></td><td><code>0x9d9f0D9a13d3bA201003DD2e8950059d2c08D782</code></td><td></td></tr><tr><td><code>SortedTrovesProxy</code></td><td><code>0x29c1d46447b5EeF770898FB7155298E7962539c3</code></td><td></td></tr><tr><td><code>TroveManagerProxy</code></td><td><code>0x5EA26D0A1a9aa6731F9BFB93fCd654cd1C3079Ec</code></td><td></td></tr></tbody></table>


# BOB

### Token Contracts

**satUSD**: `0xecf21b335B41f9d5A89f6186A99c19a3c467871f`

### System Contracts

<table><thead><tr><th>Contract Name</th><th>Contract Address</th><th data-hidden></th></tr></thead><tbody><tr><td><code>SatoshiXApp</code></td><td><code>0xEC272aF6e65C4D7857091225fa8ED300Df787CCF</code></td><td></td></tr><tr><td><code>CoreFacet</code></td><td><code>0x4BC6D28CCF5a83deccbE2bB413AEace3cA13E4e0</code></td><td></td></tr><tr><td><code>BorrowerOperationsFacet</code></td><td><code>0x34Cc21217Fef353cF02A038a63DA4D9C07544f7A</code></td><td></td></tr><tr><td><code>FactoryFacet</code></td><td><code>0x487F8a69B3170aBd95eC42b67649fd85458DA4be</code></td><td></td></tr><tr><td><code>LiquidationFacet</code></td><td><code>0xD48DA0f6dd10361735D4c1038F5ddeE9bf1D89a2</code></td><td></td></tr><tr><td><code>PriceFeedAggregatorFacet</code></td><td><code>0x1C575DE031689FCB67533823C6B82B032B73d3F0</code></td><td></td></tr><tr><td><code>StabilityPoolFacet</code></td><td><code>0x0C81413EDfceD31166cce285de8564128380c473</code></td><td></td></tr><tr><td><code>NexusYieldManagerFacet</code></td><td><code>0xbEAdAc6Ef59a44D81741E01E2276Ff3175FF5ED5</code></td><td></td></tr><tr><td><code>SatoshiPeriphery</code></td><td><code>0x28da6da2362767eb8f5fa2Da562158C299Fa1bc5</code></td><td></td></tr><tr><td><code>GasPool</code></td><td><code>0xE4b49966F2B499E34031d2A08516e90e0b641c49</code></td><td></td></tr><tr><td><code>SortedTrovesBeacon</code></td><td><code>0xaA857954F02f4025426BFACFc81f52f8Fbd7B392</code></td><td></td></tr><tr><td><code>TroveManagerBeacon</code></td><td><code>0xe4d1F8aBD8cAe9431873B3B089F9002635D333Fb</code></td><td></td></tr></tbody></table>

### Collateral Contracts

* WBTC: `0x03C7054BCB39f7b2e5B2c7AcB37583e32D70Cfa3`

<table><thead><tr><th width="294">Contract Name</th><th>Contract Address</th><th data-hidden></th></tr></thead><tbody><tr><td><code>PriceFeed</code></td><td><code>0x4851b1F29E2A2802bb97136aEA4106992FC82f33</code></td><td></td></tr><tr><td><code>SortedTrovesProxy</code></td><td><code>0x6928cD11591658F8b3FeDf5D36a2564Fd7920E5d</code></td><td></td></tr><tr><td><code>TroveManagerProxy</code></td><td><code>0xB6C69F4EfC6ad9d12C5Fc3715722D5bbEa712a3f</code></td><td></td></tr></tbody></table>

* tBTC: `0xBBa2eF945D523C4e2608C9E1214C2Cc64D4fc2e2`

<table><thead><tr><th width="294">Contract Name</th><th>Contract Address</th><th data-hidden></th></tr></thead><tbody><tr><td><code>PriceFeed</code></td><td><code>0x18D2d92cecE0E983C77c1F705F7617b6826c33e8</code></td><td></td></tr><tr><td><code>SortedTrovesProxy</code></td><td><code>0x058ae0F55D4ad9b4fBF4c4CD0458FD7dC2fBA8cB</code></td><td></td></tr><tr><td><code>TroveManagerProxy</code></td><td><code>0xbf626Fc742bFfD6F17de9Cf2480Da25Dad4D5135</code></td><td></td></tr></tbody></table>

* solvBTC: `0x541FD749419CA806a8bc7da8ac23D346f2dF8B77`

<table><thead><tr><th width="294">Contract Name</th><th>Contract Address</th><th data-hidden></th></tr></thead><tbody><tr><td><code>PriceFeed</code></td><td><code>0x6A18A6b715bF690aC5e16b022AceF139b3355956</code></td><td></td></tr><tr><td><code>SortedTrovesProxy</code></td><td><code>0xf501ba045c42aDd4E3bd234F8B5777C5B730919E</code></td><td></td></tr><tr><td><code>TroveManagerProxy</code></td><td><code>0x39F36DA1f4028473d41e077E178c8551bE4bb231</code></td><td></td></tr></tbody></table>

* solvBTC.BBN: `0xCC0966D8418d412c599A6421b760a847eB169A8c`

<table><thead><tr><th width="294">Contract Name</th><th>Contract Address</th><th data-hidden></th></tr></thead><tbody><tr><td><code>PriceFeed</code></td><td><code>0xE3cD7A8AEb9c1305162b216aB93Ef98EfC0e451c</code></td><td></td></tr><tr><td><code>SortedTrovesProxy</code></td><td><code>0x7930E7A87eA75828A6eFF65911565C1DA27aD2F1</code></td><td></td></tr><tr><td><code>TroveManagerProxy</code></td><td><code>0x1F6eF853341037c5C057101F2E38C15c95130807</code></td><td></td></tr></tbody></table>

* FBTC: `0xC96dE26018A54D51c097160568752c4E3BD6C364`

<table><thead><tr><th width="294">Contract Name</th><th>Contract Address</th><th data-hidden></th></tr></thead><tbody><tr><td><code>PriceFeed</code></td><td><code>0x5c64d9aa1E7Bb51C50A940F2E46b2B65C99Fca81</code></td><td></td></tr><tr><td><code>SortedTrovesProxy</code></td><td><code>0x49a8D36B7F3eEfe793DF3A65fB1fe7Da7f46bb9B</code></td><td></td></tr><tr><td><code>TroveManagerProxy</code></td><td><code>0x4dEA4c11bDd3Ad05063405C7167Fa9B3f95Aea90</code></td><td></td></tr></tbody></table>


# BSquared

### Token Contracts

**satUSD**: `0x8dD8b12d55C73c08294664a5915475eD1c8b1F6f`

### System Contracts

<table><thead><tr><th>Contract Name</th><th>Contract Address</th><th data-hidden></th></tr></thead><tbody><tr><td><code>SatoshiXApp</code></td><td><code>0x2863E3D0f29E2EEC6adEFC0dF0d3171DaD542c02</code></td><td></td></tr><tr><td><code>CoreFacet</code></td><td><code>0x1324285Bb2dDaDFc9BEBC2f8fC5049d7985312C0</code></td><td></td></tr><tr><td><code>BorrowerOperationsFacet</code></td><td><code>0x85e5FDE7C8ed862dd29AAA02A02A8469AADdd911</code></td><td></td></tr><tr><td><code>FactoryFacet</code></td><td><code>0x01cC29E063cc5c28C4e7A84bF1F565C83ba300A5</code></td><td></td></tr><tr><td><code>LiquidationFacet</code></td><td><code>0x2eb5853B9097182192adAa2637935bb53d39B1B8</code></td><td></td></tr><tr><td><code>PriceFeedAggregatorFacet</code></td><td><code>0x93DE475cF9bbD4c6b06cE4e91ed6c49a2b5A669D</code></td><td></td></tr><tr><td><code>StabilityPoolFacet</code></td><td><code>0x013E761f65e054D80FCfe3eCEd6770666d44C40f</code></td><td></td></tr><tr><td><code>NexusYieldManagerFacet</code></td><td><code>0x66040E80499ec363A471794C5b409B511b7CCF15</code></td><td></td></tr><tr><td><code>SatoshiPeriphery</code></td><td><code>0x90B9e5De5DBE8d5C882Aac8c097fd5A235a0014f</code></td><td></td></tr><tr><td><code>GasPool</code></td><td><code>0x006f5881faD07606d5ec3868c10F0d273686e951</code></td><td></td></tr><tr><td><code>SortedTrovesBeacon</code></td><td><code>0x583f89425edf276A178952ba413fF36baC18905D</code></td><td></td></tr><tr><td><code>TroveManagerBeacon</code></td><td><code>0x9760180786bDbc377B61DAcd752f31f0d6377b61</code></td><td></td></tr></tbody></table>

### Collateral Contracts

* WBTC: `0x4200000000000000000000000000000000000006`

<table><thead><tr><th width="294">Contract Name</th><th>Contract Address</th><th data-hidden></th></tr></thead><tbody><tr><td><code>PriceFeed</code></td><td><code>0xdee136cd19cBfb6571c93E834071E00d721E5cF0</code></td><td></td></tr><tr><td><code>SortedTrovesProxy</code></td><td><code>0x41F0124a4D72f159Ee85C3D4380C61057D8A491d</code></td><td></td></tr><tr><td><code>TroveManagerProxy</code></td><td><code>0x8FBfe28D6E5424d7f8c8c29A4910ce8a618d2D54</code></td><td></td></tr></tbody></table>

* stBTC: `0x796e4D53067FF374B89b2Ac101ce0c1f72ccaAc2`

<table><thead><tr><th width="294">Contract Name</th><th>Contract Address</th><th data-hidden></th></tr></thead><tbody><tr><td><code>PriceFeed</code></td><td><code>0x6C481F0d17Cd6d1299D5f211217e86f25d829B00</code></td><td></td></tr><tr><td><code>SortedTrovesProxy</code></td><td><code>0x19FD5ef3aa8Fa477C7147348B23B21b6cbacEA04</code></td><td></td></tr><tr><td><code>TroveManagerProxy</code></td><td><code>0xa03B86E93c98FE95caC2A6645fF271Bb67040eab</code></td><td></td></tr></tbody></table>


# Hemi

### Token Contracts

**satUSD**: `0xb4818BB69478730EF4e33Cc068dD94278e2766cB`

### System Contracts

<table><thead><tr><th>Contract Name</th><th>Contract Address</th><th data-hidden></th></tr></thead><tbody><tr><td><code>SatoshiXApp</code></td><td><code>0x07BbC5A83B83a5C440D1CAedBF1081426d0AA4Ec</code></td><td></td></tr><tr><td><code>CoreFacet</code></td><td><code>0xe16e1DF1C023FC01795aCAdE989F1d0E84D52301</code></td><td></td></tr><tr><td><code>BorrowerOperationsFacet</code></td><td><code>0xb0fE760f651E4098cc0B11572A44E1D15cb3B5F5</code></td><td></td></tr><tr><td><code>FactoryFacet</code></td><td><code>0x89A7e370514328f5c8204d68c75Eb5E194B8F77E</code></td><td></td></tr><tr><td><code>LiquidationFacet</code></td><td><code>0x38E2a41ab14B382E0188c8368937eE392e852695</code></td><td></td></tr><tr><td><code>PriceFeedAggregatorFacet</code></td><td><code>0xefAa8B485355066fA0993A605466eEf0ec026860</code></td><td></td></tr><tr><td><code>StabilityPoolFacet</code></td><td><code>0x9a3c724ee9603A7550499bE73DC743B371811dd3</code></td><td></td></tr><tr><td><code>NexusYieldManagerFacet</code></td><td><code>0xc02d47F45bBc45385Bc4d9A73a0204100AB153F2</code></td><td></td></tr><tr><td><code>SatoshiPeriphery</code></td><td><code>0x0a1cA3190579504761A0EFd0c94dfA2DeDe55bE2</code></td><td></td></tr><tr><td><code>GasPool</code></td><td><code>0x627524AEC280300Dfa58DDB30709a0F3810400c9</code></td><td></td></tr><tr><td><code>SortedTrovesBeacon</code></td><td><code>0x6220c919c8D9f6F6350e5C1b9d402fDfA2293512</code></td><td></td></tr><tr><td><code>TroveManagerBeacon</code></td><td><code>0x0C309bDCaFf14ac240f6021FceaE11f40Bd0e939</code></td><td></td></tr></tbody></table>

### Collateral Contracts

* WETH: `0x4200000000000000000000000000000000000006`

<table><thead><tr><th width="294">Contract Name</th><th>Contract Address</th><th data-hidden></th></tr></thead><tbody><tr><td><code>PriceFeed</code></td><td><code>0x9d9f0D9a13d3bA201003DD2e8950059d2c08D782</code></td><td></td></tr><tr><td><code>SortedTrovesProxy</code></td><td><code>0xd50818775FC0B013e59C20C8B6D4d6c703D628D2</code></td><td></td></tr><tr><td><code>TroveManagerProxy</code></td><td><code>0xb655775C4C7C6e0C2002935133c950FB89974928</code></td><td></td></tr></tbody></table>

* HemiBTC: `0xAA40c0c7644e0b2B224509571e10ad20d9C4ef28`

<table><thead><tr><th width="294">Contract Name</th><th>Contract Address</th><th data-hidden></th></tr></thead><tbody><tr><td><code>PriceFeed</code></td><td><code>0x7ddCA7C659BF897dfaA65f830Eaf3343E026Fe8D</code></td><td></td></tr><tr><td><code>SortedTrovesProxy</code></td><td><code>0x29c1d46447b5EeF770898FB7155298E7962539c3</code></td><td></td></tr><tr><td><code>TroveManagerProxy</code></td><td><code>0x5EA26D0A1a9aa6731F9BFB93fCd654cd1C3079Ec</code></td><td></td></tr></tbody></table>

* WBTC: `0x03C7054BCB39f7b2e5B2c7AcB37583e32D70Cfa3`

<table><thead><tr><th width="294">Contract Name</th><th>Contract Address</th><th data-hidden></th></tr></thead><tbody><tr><td><code>PriceFeed</code></td><td><code>0x7cfe0DB80E7D197e61B9388F67008946C7AF1281</code></td><td></td></tr><tr><td><code>SortedTrovesProxy</code></td><td><code>0x32670D09aFEB504870e5463F6C599772594B94eC</code></td><td></td></tr><tr><td><code>TroveManagerProxy</code></td><td><code>0xa7B54413129441e872F42C1c4fE7D1984332CA87</code></td><td></td></tr></tbody></table>


# BEVM

### Token Contracts

**satUSD**: `0x2031c8848775a5EFB7cfF2A4EdBE3F04c50A1478`

### System Contracts

<table><thead><tr><th>Contract Name</th><th>Contract Address</th><th data-hidden></th></tr></thead><tbody><tr><td><code>SatoshiXApp</code></td><td><code>0xd4b0eEcF327c0F1B43d487FEcFD2eA56E746A72b</code></td><td></td></tr><tr><td><code>CoreFacet</code></td><td><code>0x578829F0f88Bcb1366a87a43E4e4f97603d553CB</code></td><td></td></tr><tr><td><code>BorrowerOperationsFacet</code></td><td><code>0x022fbB65181451B28b25717e155D329dbbE6E279</code></td><td></td></tr><tr><td><code>FactoryFacet</code></td><td><code>0xB127ae28b26C33332737B7496c930293Aa06239c</code></td><td></td></tr><tr><td><code>LiquidationFacet</code></td><td><code>0xC33f633893703A51231c7b2b72297eb43c3F93A4</code></td><td></td></tr><tr><td><code>PriceFeedAggregatorFacet</code></td><td><code>0x4EDcC7E55c141C1695711b0109BD2b3A68416605</code></td><td></td></tr><tr><td><code>StabilityPoolFacet</code></td><td><code>0x14f6D8f29E657f5140EFc2bEcbeD3394D38c1D30</code></td><td></td></tr><tr><td><code>NexusYieldManagerFacet</code></td><td><code>0xCEeeDDB57d3d1F64761E659F10D4EA7da33E1bF1</code></td><td></td></tr><tr><td><code>SatoshiPeriphery</code></td><td><code>0x8309fC65bb9fC1c3374B12038aB2b1B44b81EDa0</code></td><td></td></tr><tr><td><code>GasPool</code></td><td><code>0x8823bF9FA36CEdeAe4dEfceca4BdAB92af495364</code></td><td></td></tr><tr><td><code>SortedTrovesBeacon</code></td><td><code>0x659086f38CC60Fc252C7107d8cb33F805862A73f</code></td><td></td></tr><tr><td><code>TroveManagerBeacon</code></td><td><code>0xB83c10c869Dfc6C75e150eCeEE5A4F8f7B226026</code></td><td></td></tr></tbody></table>

### Collateral Contracts

* WBTC: `0xB5136FEba197f5fF4B765E5b50c74db717796dcD`

<table><thead><tr><th width="294">Contract Name</th><th>Contract Address</th><th data-hidden></th></tr></thead><tbody><tr><td><code>PriceFeed</code></td><td><code>0xDBd6d24dFbBe88B87Bf54961E791FAc7827426CF</code></td><td></td></tr><tr><td><code>SortedTrovesProxy</code></td><td><code>0x9cd5615fEa2f2DfAF9f6BDcdDf5E556D74B7a497</code></td><td></td></tr><tr><td><code>TroveManagerProxy</code></td><td><code>0xe7E23aD9c455c2Bcd3f7943437f4dFBe9149c0D2</code></td><td></td></tr></tbody></table>

* wstBTC: `0x2967E7Bb9DaA5711Ac332cAF874BD47ef99B3820`

<table><thead><tr><th width="294">Contract Name</th><th>Contract Address</th><th data-hidden></th></tr></thead><tbody><tr><td><code>PriceFeed</code></td><td><code>0xfC555dA7C383A583FBc040b9bDcd4cC7d892575D</code></td><td></td></tr><tr><td><code>SortedTrovesProxy</code></td><td><code>0xa77883e9e99a43eF407a47e6676788D580efd970</code></td><td></td></tr><tr><td><code>TroveManagerProxy</code></td><td><code>0xD63e204F0aB688403205cFC144CAdfc0D8C68458</code></td><td></td></tr></tbody></table>


# Bitlayer

### Token Contracts

**satUSD**: `0xba50dDac6B2F5482cA064EFAc621E0C7c0f6A783`

### System Contracts

<table><thead><tr><th>Contract Name</th><th>Contract Address</th><th data-hidden></th></tr></thead><tbody><tr><td><code>SatoshiXApp</code></td><td><code>0x95E5b977c8c33DE5b3B5D2216F1097C2017Bdf71</code></td><td></td></tr><tr><td><code>CoreFacet</code></td><td><code>0x01cC29E063cc5c28C4e7A84bF1F565C83ba300A5</code></td><td></td></tr><tr><td><code>BorrowerOperationsFacet</code></td><td><code>0x2eb5853B9097182192adAa2637935bb53d39B1B8</code></td><td></td></tr><tr><td><code>FactoryFacet</code></td><td><code>0x93DE475cF9bbD4c6b06cE4e91ed6c49a2b5A669D</code></td><td></td></tr><tr><td><code>LiquidationFacet</code></td><td><code>0x013E761f65e054D80FCfe3eCEd6770666d44C40f</code></td><td></td></tr><tr><td><code>PriceFeedAggregatorFacet</code></td><td><code>0x66040E80499ec363A471794C5b409B511b7CCF15</code></td><td></td></tr><tr><td><code>StabilityPoolFacet</code></td><td><code>0x0D5D788C2061EF0354a3262A2F4B0100928D3fe8</code></td><td></td></tr><tr><td><code>NexusYieldManagerFacet</code></td><td><code>0x006f5881faD07606d5ec3868c10F0d273686e951</code></td><td></td></tr><tr><td><code>SatoshiPeriphery</code></td><td><code>0xB8405B3AF92e5Ed5842bE38B02C3d85b06176922</code></td><td></td></tr><tr><td><code>GasPool</code></td><td><code>0x922b2618DBC660A7EDFa2880f650D2Ef5d2AFd45</code></td><td></td></tr><tr><td><code>SortedTrovesBeacon</code></td><td><code>0x2863E3D0f29E2EEC6adEFC0dF0d3171DaD542c02</code></td><td></td></tr><tr><td><code>TroveManagerBeacon</code></td><td><code>0x7fe7de5d72633b981191EAEe2ccAEd95C77e79A9</code></td><td></td></tr></tbody></table>

### Collateral Contracts

* WBTC: `0xfF204e2681A6fA0e2C3FaDe68a1B28fb90E4Fc5F`

<table><thead><tr><th width="294">Contract Name</th><th>Contract Address</th><th data-hidden></th></tr></thead><tbody><tr><td><code>PriceFeed</code></td><td><code>0x78C04c4A2A606077be0Aa04721d6b144Df44Df52</code></td><td></td></tr><tr><td><code>SortedTrovesProxy</code></td><td><code>0x70eA1C9d7c4bC1Bf29383EF169AA1ca68D4af0dc</code></td><td></td></tr><tr><td><code>TroveManagerProxy</code></td><td><code>0x3DC0565bcA627823828Aa3F2f8d805ec8a16005a</code></td><td></td></tr></tbody></table>

* stBTC: `0xf6718b2701D4a6498eF77D7c152b2137Ab28b8A3`

<table><thead><tr><th width="294">Contract Name</th><th>Contract Address</th><th data-hidden></th></tr></thead><tbody><tr><td><code>PriceFeed</code></td><td><code>0x40918B4649a618eEE47f62Be7Fb6ce5b9906da9A</code></td><td></td></tr><tr><td><code>SortedTrovesProxy</code></td><td><code>0x3b8581Bcc9681a39Dc668A7A01498F75182F71F5</code></td><td></td></tr><tr><td><code>TroveManagerProxy</code></td><td><code>0x404dCd7E15947D04063B436f71d93E2d79023aa9</code></td><td></td></tr></tbody></table>


# Audit Reports

River ( formerly Satoshi Protocol ) prioritizes security in its implementation.. The system has been designed to be safe and secure, and we have spent all the necessary resources in order to ensure that the protocol matches the highest security standards.

<https://github.com/Satoshi-Protocol/satoshi-audit-report>


# Tokenomics

$RIVER allocation and vesting schedule

RIVER is the governance and incentive token of the River chain-abstraction stablecoin system.

Its distribution is designed to balance immediate liquidity needs, broad community participation, and long-term alignment across community, investors, team, and ecosystem partners.

As satUSD adoption scales, RIVER ensures that value creation flows back to the stakeholders building and supporting the system.

**Total Supply: 100,000,000 RIVER**

### Allocation <a href="#allocation" id="allocation"></a>

<figure><img src="/files/VQ8kX41rE9cGJijBds5p" alt=""><figcaption></figcaption></figure>

| Category  | Allocation | Tokens     |
| --------- | ---------- | ---------- |
| Liquidity | 11%        | 11,000,000 |
| Community | 32%        | 32,000,000 |
| Investors | 15%        | 15,000,000 |
| Team      | 18%        | 18,000,000 |
| Ecosystem | 24%        | 24,000,000 |

### Vesting Schedule <a href="#vesting-schedule" id="vesting-schedule"></a>

<figure><img src="/files/bcBbc3LshPpWcHhxh0TR" alt=""><figcaption></figcaption></figure>

***

<mark style="color:$primary;">**Dynamic Airdrop Conversion Mechanism (30%)**</mark>

**Structure:** Community Airdrop + Community Reserve

**Mechanism:**

* River Pts convert into Staked $RIVER under [Conversion 3.0](https://blog.river.inc/dynamic-airdrop-conversion-3-0/), the first seasonal incentives model.
* Distribution runs across recurring quarterly Seasons rather than a single closing window.
* Each Season sets a constant ideal rate.&#x20;
* The actual rate at execution updates every block based on conversion activity, following the integral pricing model from [2.0](https://blog.river.inc/conversion-2-0/).
* [Eight staking epochs](https://docs.river.inc/tokenomics/usdriver) are available, from 3 to 24 months. Each epoch anchors the unlock date to a Season boundary and applies a voting power multiplier (1x to 24x).

**Dynamic Airdrop Conversion (S5, ideal rate 0.01):**

* 10,000 River Pts → 100 Staked $RIVER at the ideal rate (24-month epoch, 0% reshare)
* 10,000 River Pts → 30 Staked $RIVER at the ideal rate (3-month epoch, 70% reshare)

Actual output varies block by block based on conversion density.

**Community Reserve Dynamics:**

* The Community Reserve adjusts according to actual conversion timing.
* Supply not converted in a given Season carries forward, sustaining distribution across future Seasons.
* The 30% allocation acts as a long-term ceiling, released Season by Season as the network grows.

**Purpose:**

* Sustain distribution across multiple Seasons instead of one-time release.
* Anchor incentives to ongoing contribution rather than one-shot participation.
* Establish the community as River's largest and most empowered holders.

The real-time conversion rate is available on the [official airdrop page](https://app.river.inc/airdrop).&#x20;

Full mechanism details are in the [dynamic airdrop conversion document](https://blog.river.inc/dynamic-airdrop-conversion-3-0/).

***

**Community Builders – 2% (2,000,000)**

* **Vesting:** 20% at TGE, 80% linear vesting (M3–M12)
* **Purpose:** Incentivizes educators, content producers, and ecosystem builders who amplify River’s growth. Rewards are staged over 12 months to encourage sustained contributions.

**Liquidity – 11% (11,000,000)**

* **Vesting:** 100% at TGE
* **Purpose:** Ensures deep market liquidity across CEXs and DEXs from day one.

**Investors – 15% (15,000,000)**

* **Vesting:** 3M cliff, 10% unlock at M4, 6M cliff, then 24-month linear vesting
* **Purpose:** Aligns early capital providers with River’s growth trajectory. Structure allows partial liquidity while maintaining majority lockup to prevent short-term speculation and ensure investor commitment.

**Core Contributors – 15% (15,000,000)**

* **Vesting:** 12M cliff, then 30-month linear vesting
* **Purpose:** Incentivizes core contributors over multiple years. The one-year cliff ensures stability during launch phases, while long-term vesting ties compensation directly to protocol success.

**Advisors – 3% (3,000,000)**

* **Vesting:** 12M cliff, then 30-month linear vesting
* **Purpose:** Rewards advisors providing strategic support in regulation, technology, and ecosystem partnerships. Long vesting discourages opportunistic involvement and promotes sustained guidance.

**Ecosystem Foundation – 10% (10,000,000)**

* **Vesting:** 60-month linear vesting, with unlocks every 6 months
* **Purpose:** Reserve for critical infrastructure, audits, and developer support. Acts as a strategic buffer to ensure River can adapt and scale responsibly over five years.

**Ecosystem Partnership – 2% (2,000,000)**

* **Vesting:** 100% at TGE
* **Purpose:** Supports strategic partners such as Chains, DEXs, custodians, and wallets. Provides immediate resources for liquidity campaigns and integrations to accelerate satUSD adoption.

**Ecosystem Incentives – 12% (12,000,000)**

* **Vesting:** 60-month linear vesting
* **Purpose:** Fuels adoption through liquidity mining, referral programs, and yield-boosting campaigns. Structured release ensures sustainable incentives instead of short-term yield spikes.

[<br>](https://open-2v.gitbook.com/url/preview/site_rHnhd/~/revisions/w3BtpaZFDSzimL0NYkQD/outro/audit-reports)

<br>


# Airdrop

Dynamic Airdrop Conversion 3.0 : First seasonal incentive model

Dynamic Airdrop Conversion is the conversion mechanism between River Pts and $RIVER.

[Conversion 3.0](https://blog.river.inc/dynamic-airdrop-conversion-3-0/) is the first seasonal incentives model from River that balances contributions and sustains token distribution through recurring Seasons. It changes airdrops from a single distribution to a structure that runs every Season.

Conversion 1.0 introduced the first time-encoded tokenomics, aligning rewards with long-term contributors. [Conversion 2.0](https://gov.river.inc/t/conversion-2-0-activation/) added the integral curve, daily cap, and half-life recovery.&#x20;

The 180-day curve closed on April 22, 2026, with 650M River Pts converted across 2 Seasons. Conversion 3.0 is now live.

The conversion rate moves with real-time activity within each Season, and users can convert in one or multiple transactions across an open Season. River Pts themselves are standard ERC-20 tokens, they can be traded, transferred, or staked across the River ecosystem.

River Pts : `0xfc6be825925b7a83d131e33b46efef9084f0e014`

Full mechanism details &#x20;

* [Conversion 3.0 is live ( Blog post )](https://blog.river.inc/dynamic-airdrop-conversion-3-0/)
* [Conversion 3.0 Activation ( Governance Forum )](https://gov.river.inc/t/conversion-3-0-activation)&#x20;

#### Mechanism&#x20;

A total of **1 billion River Pts** correspond to **up to 30 million $RIVER**, covering the **Community Airdrop + Community Reserve** allocation (≈ 30 % of total supply).

| Item                       | Description                                                       |
| -------------------------- | ----------------------------------------------------------------- |
| Total River Points         | 1,000,000,000                                                     |
| Maximum Convertible $RIVER | 30,000,000 (≈ 30 % of total supply)                               |
| Conversion Cycle           | Recurring quarterly Seasons                                       |
| Conversion Chain           | BNB Chain                                                         |
| Mechanism Type             | Seasonal, dynamic conversion with integral pricing                |
| Staking Epochs             | 8 options, from 3 to 24 months                                    |
| Mode                       | Convert anytime within an open Season, in one or multiple batches |

Distribution runs across recurring Seasons rather than a single window. Each Season's actual conversion outcomes determine how much $RIVER is released in that cycle.&#x20;

Supply not converted in a given Season carries forward, sustaining distribution across future Seasons.&#x20;

The 30 % allocation acts as a long-term ceiling, released Season by Season as the network grows.

Real-time conversion data is shown at [**app.river.inc/airdrop**](https://app.river.inc/airdrop)

#### How does it work

Suppose you hold 10,000 River Pts.

Each Season is set with a constant ideal rate. The [S5 ideal rate is 0.01](https://blog.river.inc/s5-live/), meaning 10,000 River Pts produce a base output of 100 Staked RIVER at the ideal rate.

The actual rate at execution depends on the conversion activity at that moment and the staking epoch (3 to 24 months) you select. Conversion activity follows the integral pricing model from 2.0. Denser participation compresses the rate, quieter periods recover it.

<figure><img src="/files/zlxJyzvQSmXzSPuM3wec" alt="Dynamic Airdrop Conversion 3.0"><figcaption></figcaption></figure>

**Example : 10k River Pts / 3 months**

Three participants each convert 10,000 River Pts during the same Season on the same staking epoch. They convert on Day 10, Day 60, and Day 90.

The actual rate at execution moves with conversion density. Participant A converts on Day 10 at 0.007. By Day 60, activity thins out and the rate recovers, so Participant B converts at 0.009.&#x20;

By Day 90, conversion density compresses it back down, so Participant C converts at 0.005.

Same input, three different rates, three different amounts of Staked RIVER. The Staked Until date stays the same for all three, anchored to the Season boundary.

**3-Month Staking Epoch (70% reshare)**

|                | Participant A    | Participant B    | Participant C    |
| -------------- | ---------------- | ---------------- | ---------------- |
| Input          | 10,000 River Pts | 10,000 River Pts | 10,000 River Pts |
| Convert Date   | Day 10           | Day 60           | Day 90           |
| Actual Rate    | 0.007            | 0.009            | 0.005            |
| Staking Period | 3 months         | 3 months         | 3 months         |
| est. Receive   | 21 Staked RIVER  | 27 Staked RIVER  | 15 Staked RIVER  |
| Multiplier     | 1x               | 1x               | 1x               |
| Voting Power   | 21               | 27               | 15               |
| Staked Until   | October 1, 2026  | October 1, 2026  | October 1, 2026  |

**24-Month Staking Epoch (0% reshare)**

|                | Participant A    | Participant B    | Participant C    |
| -------------- | ---------------- | ---------------- | ---------------- |
| Input          | 10,000 River Pts | 10,000 River Pts | 10,000 River Pts |
| Convert Date   | Day 10           | Day 60           | Day 90           |
| Actual Rate    | 0.007            | 0.009            | 0.005            |
| Staking Period | 24 months        | 24 months        | 24 months        |
| est. Receive   | 70 Staked RIVER  | 90 Staked RIVER  | 50 Staked RIVER  |
| Multiplier     | 24x              | 24x              | 24x              |
| Voting Power   | 1,680            | 2,160            | 1,200            |
| Staked Until   | July 1, 2028     | July 1, 2028     | July 1, 2028     |

The pattern across both tables shows the central trade-off in Conversion 3.0. Rate at execution is shaped by collective activity, and that variation flows through to Receive at every staking epoch.&#x20;

Output scales by staking epoch, with longer epochs retaining a larger share and applying a higher voting power multiplier. Unlock timing is Season-anchored, determined by Season boundary and staking epoch, not by individual conversion timing.

#### Reshare Across Staking Epochs

Using a base output of 100 Staked RIVER (10,000 River Pts × ideal rate 0.01)&#x20;

| Staking Epoch | Reshare | est. Receive     | Voting Power Multiplier | Staked Until (convert in S5) |
| ------------- | ------- | ---------------- | ----------------------- | ---------------------------- |
| 3 months      | 70%     | 30 Staked RIVER  | 1x                      | October 1, 2026              |
| 6 months      | 60%     | 40 Staked RIVER  | 2x                      | January 1, 2027              |
| 9 months      | 50%     | 50 Staked RIVER  | 4x                      | April 1, 2027                |
| 12 months     | 40%     | 60 Staked RIVER  | 8x                      | July 1, 2027                 |
| 15 months     | 30%     | 70 Staked RIVER  | 12x                     | October 1, 2027              |
| 18 months     | 20%     | 80 Staked RIVER  | 16x                     | January 1, 2028              |
| 21 months     | 10%     | 90 Staked RIVER  | 20x                     | April 1, 2028                |
| 24 months     | 0%      | 100 Staked RIVER | 24x                     | July 1, 2028                 |

Every Staked Until date anchors to a Season boundary. Voting power stays active across the entire Staked Until period. A 24-month staking epoch produces both the largest received amount and the longest active governance participation.

### How to Earn River Pts

River Pts are awarded based on real activity across the River ecosystem. They reflect contributions in DeFi, social engagement, and staking, and accrue across Seasons.

They reflect contributions in DeFi, social engagement, and staking. ([S5 Airdrop](https://blog.river.inc/s5-live/))

* [**Omni-CDP**](https://app.river.inc/staking) **/ satUSD / Vaults**: add liquidity (e.g. satUSD/USDT), stake in Smart Vault or Prime Vault, hold YT. Actions include multipliers (2× to 25×).
* [**River4FUN**](https://app.river.inc/fun) **/ Social Engagement**: connect your X account, post content, participate in campaigns — your engagement is converted into Pts.&#x20;
* [**Staked RIVER**](https://app.river.inc/river) : Staking $RIVER is how you accumulate River Pts, gain voting power, and participate in River governance.

### How to Claim River Pts

Claim is receiving the eligible River Pts allocation through the airdrop page. River Pts earned in any Season remain claimable within a specific window (S4 — 60 days, see [S4 Airdrop is Live](https://blog.river.inc/)).&#x20;

Once claimed, Pts remain convertible across all subsequent Seasons.

1. Visit the [**Airdrop page**](https://blog.river.inc/river-dynamic-airdrop-conversion/)&#x20;
2. Connect your wallet or X account
3. Click "Claim River Pts" to receive your allocation
4. Confirm the live conversion rate and remaining daily cap.&#x20;
5. Select a staking epoch (3 to 24 months)
6. Confirm to receive Staked RIVER

<div><figure><img src="/files/1fRvJ7Fw6wglSvLoilHv" alt=""><figcaption></figcaption></figure> <figure><img src="/files/KWUxjBYW82lPozG95xMJ" alt=""><figcaption></figcaption></figure></div>

View your final Staked RIVER amount, actual conversion result, and full history at [app.river.inc/river](https://app.river.inc/river).

#### New to River?

[**Season 5**](https://blog.river.inc/s5-live/) is open to everyone.

Most actions to earn River Pts are the same as in Season 4, including minting, staking, swapping, and joining campaigns.

The only difference is the claiming time.

This is a new opportunity to start earning River Pts and participate in the ecosystem.

Learn more : <https://blog.river.inc/s5-live/>


# $RIVER

The Essence of $RIVER

RIVER Token Address:&#x20;

* Ethereum: 0xdA7AD9dea9397cffdDAE2F8a052B82f1484252B3
* BNB Chain: 0xdA7AD9dea9397cffdDAE2F8a052B82f1484252B3
* Base: 0xdA7AD9dea9397cffdDAE2F8a052B82f1484252B3

Every financial era is defined by what flows freely.

The age of trade was born when goods could cross borders. The internet age began when information moved without barriers. Today, as assets come on-chain, the question is whether value itself can flow freely.

$RIVER exists to make that possible. It is not just a token; it is alignment — between governance, yield, and growth.&#x20;

It connects liquidity providers, partners and ecosystems under one system where those who commit are those who shape the future.&#x20;

By staking $RIVER, you are not only claiming rewards, you are choosing to become part of the force that defines how value flows in the on-chain era.

### Staking

Staking $RIVER is the entry point to governance and long-term contribution.

| Staking Epoch | Voting Power Multiplier |
| ------------- | ----------------------- |
| 3 months      | 1x                      |
| 6 months      | 2x                      |
| 9 months      | 4x                      |
| 12 months     | 8x                      |
| 15 months     | 12x                     |
| 18 months     | 16x                     |
| 21 months     | 20x                     |
| 24 months     | 24x                     |

* Example: **1000 $RIVER staked for 12 months = 8000 voting power**.
* Staking options: 3, 6, 9, 12, 15, 18, 21, or 24 months.&#x20;
* Longer staking epochs amplify governance weight and protocol benefits.

***

#### Protocol Governance

$RIVER token stakers will be able to vote on key protocol parameters, including:

* Collateral types & risk settings in the Omni-CDP
* Smart Vault & Prime Vault parameters : Staking Factor
* Chain expansion & deployment
* satUSD incentive emissions
* Treasury usage & ecosystem grants

#### Yield Boosting&#x20;

Staked $RIVER boosts protocol-level returns:

* Higher yield on satUSD+ via veRIVER
* Enhanced rewards for LPs and long-term stakers
* Contribution multipliers (1.2×–2×) in River4FUN

#### Reward distributions&#x20;

* Staking utility → reward distributions...&#x20;
* RIVER token distributions&#x20;
* satUSD staking reward distributions&#x20;

#### **Fee Utility**

Staking $RIVER will provide protocol benefits including:

* Reduced minting, redemption, and swap fees
* Priority access to limited campaigns and high-tier rewards
* Potential participation in governance-related airdrops or distributions

**RIVER stakers** gain governance rights, yield boosts, fee reductions, and priority access — with greater benefits unlocked through longer staking commitments.

#### Alignment

$RIVER ensures incentives move in the same direction:

* Governance → holders set direction
* Value accrual → stakers capture protocol revenue
* Incentives → creators, LPs, partners grow with the system

This alignment is what makes River sustainable: value flows to where it creates the most impact.

<br>


# Omni CDP

Mint / Swap for satUSD to access liquidity across ecosystem.

**Omni-CDP** is an omni-chain liquidity management system that lets you deposit BTC, ETH, or LSTs on one chain and mint satUSD directly on another, enabling seamless capital deployment across ecosystems.

* [Mint satUSD](/how-to-use/omni-cdp/mint-satusd) — Deposit BTC, ETH, BNB, or LSTs as collateral, mint satUSD instantly on your destination chain.
* [Swap satUSD](/how-to-use/omni-cdp/swap-satusd) — Swap satUSD with USDT, USDC, and other stablecoins at a 1:1 ratio via built-in stable pools.
* [Stake satUSD](/how-to-use/omni-cdp/stake-satusd)— Stake satUSD and receive satUSD+ to earn protocol revenue.&#x20;
* [Bridge satUSD](/how-to-use/omni-cdp/bridge-satusd) — Powered by LayerZero, move satUSD across chains natively with no third-party bridges, no slippage, and no wait.


# Mint satUSD

Mint satUSD by deposit supported collateral (BTC, ETH, BNB, or LSTs) on any source chain and receiving satUSD on your chosen destination chain.&#x20;

Check asset-specific minimum collateral ratios on the [homepage](https://app.river.inc/), maintain a 200–250 % collateral ratio to stay safe, and instantly access cross-chain liquidity with zero interest.

### Open a New Position (Mint satUSD)

{% stepper %}
{% step %}

#### Go to [River](https://app.river.inc/) & head to the Mint Page

<figure><img src="/files/LCsVWnNgACxTT15ETohz" alt=""><figcaption><p>River App</p></figcaption></figure>

<figure><img src="/files/Ax8fpWE17BI423cLdKjc" alt=""><figcaption><p>Mint satUSD</p></figcaption></figure>
{% endstep %}

{% step %}

#### Select collateral & network

<figure><img src="/files/2HFi5WWixl22HUlSCHXF" alt=""><figcaption><p>Select Chains</p></figcaption></figure>

<figure><img src="/files/E3sya8taN7BjSQjixK9u" alt=""><figcaption><p>Select Collateral</p></figcaption></figure>
{% endstep %}

{% step %}

#### Input collateral amount & satUSD amount

<figure><img src="/files/pKR2vSNIfaeU97LkmC2G" alt=""><figcaption><p>input Amount, Mint satUSD</p></figcaption></figure>
{% endstep %}

{% step %}

#### Select satUSD destination network ( Optional )

<figure><img src="/files/Hq0QPwS5yQ3YJ465OkPv" alt=""><figcaption><p>Select Destiantion chians ( Optional )</p></figcaption></figure>
{% endstep %}

{% step %}

#### Mint satUSD (with 0% interest & 120% MCR)

{% endstep %}

{% step %}

#### Manage your positions

<figure><img src="/files/S7UwaQ6H7w8FteT8OUfT" alt=""><figcaption><p>Manage Positions</p></figcaption></figure>
{% endstep %}
{% endstepper %}

### **Video tutorial**

{% embed url="<https://youtu.be/9suasmoREcE?si=Ir3craNCUBs3ook5>" %}

<br>


# Swap satUSD

Exchange satUSD at a fixed 1:1 ratio for USDT, USDC, or USD1 using River’s swap interface.

Tap into deep USDT pools on PancakeSwap or any integrated DEX, then redeploy your assets into lending, farming, or cross-chain yield strategies—all in a few clicks.

### Swap USDT & USDC to satUSD

{% stepper %}
{% step %}

#### Go to [River](https://app.river.inc/swap) & head to the Swap Page

<figure><img src="/files/aEdeQWjocBUvO67hFarE" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}

#### Select Stablecoin ( USDT, USDC )

<figure><img src="/files/Fx5c3S15SC3gZqQ9Zpm8" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}

#### Enter amount

<figure><img src="/files/Erx0xGkMUB0H9hVIkAn0" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}

#### Click 'Swap' and approve transaction

Receive satUSD in your Wallet&#x20;
{% endstep %}
{% endstepper %}

### Video Tutorial

* You can Swap USDT/USDC/USD1 for satUSD at 1:1 ratio
* Swap satUSD for USDT on DEX ( [Pancakeswap](https://pancakeswap.finance/swap?inputCurrency=0xb4818BB69478730EF4e33Cc068dD94278e2766cB\&outputCurrency=0x55d398326f99059fF775485246999027B3197955) )&#x20;

{% embed url="<https://youtu.be/9suasmoREcE?t=39>" %}


# Stake satUSD

Stake your satUSD to mint satUSD+, a yield-bearing token that captures protocol fees and real DeFi yield, then supply satUSD+ on Pendle to unlock bonus rewards and maximize your returns.&#x20;

#### Stake satUSD

{% embed url="<https://youtu.be/9suasmoREcE?t=50>" %}


# Bridge satUSD

You can bridge satUSD across supported chains using LayerZero’s messaging protocol for instant, slippage-free transfers—no bridges or wrappers needed.

{% stepper %}
{% step %}

#### Go to [River v2](https://app.river.inc/bridge) & head to the Bridge page

<figure><img src="/files/BqplFuQE4ED870zU63Jn" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}

#### Select the origin & destination network

<figure><img src="/files/5SxmYjQTHhO67Q8NbIKf" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}

#### Enter satUSD amount

<figure><img src="/files/iU3Cf1B9XuHMN3a66dmW" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}

### Click 'Bridge' and approve transaction

<figure><img src="/files/GGnn5NrDorTyqqjEeDSZ" alt=""><figcaption></figcaption></figure>
{% endstep %}
{% endstepper %}

### **Video tutorial**

* Navigate to "Bridges"&#x20;
* Select source chain and destination chain&#x20;
* Input birdge satUSD amount

{% embed url="<https://youtu.be/80RNFwlitbI?feature=shared&t=55>" %}


# Stability Pool

## Bridge satUSD to Other Networks

{% stepper %}
{% step %}

### Go to [Satoshi App v2](https://app.satoshiprotocol.org/) & head to the [Earn page](https://app.satoshiprotocol.org/earn)

<figure><img src="/files/JYMkl2Y8ZMfEzIAr2jdB" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}

### Select Stability Pool

<figure><img src="/files/hyYLWChWYM0mrgOSSo77" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}

### Click 'Deposit' to deposit satUSD into Satbility Pool

<div><figure><img src="/files/BrCZK4gaITV3C89QgKN9" alt=""><figcaption></figcaption></figure> <figure><img src="/files/cDCf7cn1OWNCYj7W3NGo" alt=""><figcaption></figcaption></figure></div>
{% endstep %}

{% step %}

### Click 'Claim' to withdraw collateral rewards

<figure><img src="/files/5NCnesQzKvtkCCPzdE1e" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}

### Click 'Withdraw' to withdraw satUSD from Stability Pool anytime

<figure><img src="/files/yBfty8md81ZAuemnqSLp" alt=""><figcaption></figcaption></figure>
{% endstep %}
{% endstepper %}


# River4FUN

Connect your X, stake tokens to earn extra reward with zero cost.

River4FUN turns your contributions ( tweets, stakes and votes ) into River Pts you can use for project airdrops and governance rewards.&#x20;

By linking social engagement with on-chain incentives, River4FUN drives real value for both users and projects.

#### Connect your X account

Linking your X handle unlocks your initial River Pts airdrop

* Navigate to 4FUN in the River app&#x20;
* Connect your X account&#x20;
* Tweet & Tag @River4FUN&#x20;

**Benefit for you:** claim free River Pts and enable all features

**Benefit for projects:** gain verified support and amplify reach

Watch the 60-second guide: <https://youtu.be/BObfgmKpEF8?si=L-_-EWm2N_oZKQ9c>

<figure><img src="/files/zqpDRhipwXEKzOdSw4RE" alt="Connect X account"><figcaption></figcaption></figure>

#### Stake any token

Staking earns River Pts daily with zero lock-up

* Navigate to 4FUN&#x20;
* **Stake** in any token supported ( USD1, wBNB and 20+ tokens on bnb chain )&#x20;
* Enter an amount, approve the transaction

Benefit for you: earn extra rewards every day without locking your assets

Benefit for project&#x73;**:** secure committed liquidity and signal strong holder confidence

See staking in action: <https://youtu.be/jNgoKh39cag?si=iJ30QcV_cZ6Lo8dC>

<figure><img src="/files/LOSw17fs5Gnv7jPUgJzj" alt="Stake tokens on River4FUN"><figcaption></figcaption></figure>

#### Vote and support projects

Claim & Stkaed River Pts to boost your reward.&#x20;

Staked River Pts count as votes (1 Pt = 1 vote). You can cast votes every 24 hours to list or boost projects and earn campaign rewards.

* Navigate to 4FUN&#x20;
* Scroll down and switch to "Vote" tab
* select a project, click vote&#x20;

**Benefit for you:** earn campaign rewards and influence protocol decisions

**Benefit for projects:** obtain fair, data-driven community endorsements

how to vote: <https://youtu.be/E-a8jp_adfw?si=AJNueqeVZ-TGFcS8>

<figure><img src="/files/1pl4atTm5fNF6NUwRk00" alt=""><figcaption></figcaption></figure>


# Introduction

Satoshi Protocol is the first Bitcoin Finance Network powered by satUSD, a Bitcoin-backed stablecoin. Mint satUSD with BTC as collateral across the Bitcoin Mainnet and L1s/L2s. To ensure stability, users need to maintain a minimum collateral ratio (MCR) of 110%.

Besides over-collateralization, the protocol is secured by a Stability Pool where users deposit satUSD, which helps cover liquidations when collateral is too low. Other borrowers in the system also act as backstops to ensure the protocol remains stable. Explore further details on these mechanisms in the documentation.


# Mission

The Satoshi Protocol aims to provide a universal, stable medium of exchange within the blockchain ecosystem. While fiat-backed stablecoins dominate the market, their centralized nature may present  considerations for users. In contrast, satUSD, an over-collateralized Bitcoin-backed stablecoin, offers a resilient and decentralized alternative.

By leveraging Bitcoin’s design, the Satoshi Protocol minimizes volatility and enhances Bitcoin's utility as both digital gold and a payment mechanism. This approach unlocks Bitcoin’s liquidity, reinforcing its role in the digital economy and increasing accessibility for users.

## Unique Advantages

* **Bitcoin Integration**: satUSD uses Bitcoin as collateral, strengthening its presence in the DeFi ecosystem.
* **Decentralization**: satUSD offers a decentralized alternative to fiat-backed stablecoins, reducing reliance on centralized entities.
* **Greater Adoption Potential**: With Bitcoin's larger market cap, satUSD has broader adoption prospects compared to alternatives like DAI and LUSD.
* **Zero Interest Rate**: Users can mint satUSD without accruing interest, eliminating concerns about growing debt. ( [why 0% interest](https://blog.satoshiprotocol.org/satoshi-protocol-slashes-borrowing-fees-to-0-unlock-bitcoin-liquidity-with-unprecedented-efficiency/) )
* **Direct Redemption**: satUSD can be redeemed at face value for the underlying collateral, ensuring security for users.
* **Governance-Free**: The protocol operates automatically, ensuring decentralization and resistance to manipulation.

The Satoshi Protocol marks a significant step forward in decentralized finance by leveraging Bitcoin’s strengths to create a stable and decentralized medium of exchange and store of value. This approach enhances Bitcoin's utility while upholding the principles of decentralization, promoting a resilient and inclusive financial ecosystem.


# FAQs

Explore our comprehensive list of frequently asked questions below to find the information you need.

### General FAQs

<details>

<summary>What is Satoshi Protocol?</summary>

Satoshi Protocol is the first Bitcoin Finance Network powered by satUSD, a Bitcoin-backed stablecoin. Mint satUSD with BTC as collateral across the Bitcoin Mainnet and L1s/L2s.

</details>

<details>

<summary>What is satUSD?</summary>

satUSD is a Bitcoin-backed, over-collateralized stablecoin pegged to $1 USD. \
Satoshi Protocol allows users to deposit collateral at a 110% collateralization ratio to mint satUSD or perform 1:1 exchanges with USDC/USDT.

</details>

<details>

<summary>What is CDP?</summary>

CDP, or Collateralized Debt Position, allows users to deposit BTC as collateral to borrow the stablecoin satUSD. It requires a minimum collateral ratio (MCR) of 110%, enabling users to hold BTC while accessing liquidity.

</details>

<details>

<summary>What makes satUSD different from other stablecoins?</summary>

satUSD is a universal stablecoin backed by Bitcoin. It offers greater transparency and user control compared to fiat-backed centralized stablecoins.

</details>

<details>

<summary>How can I mint satUSD?</summary>

You can mint satUSD by depositing BTC as collateral. This process requires maintaining a minimum collateral ratio (MCR) of 110% to ensure the stability of your position.

</details>

<details>

<summary>What are the fees for minting satUSD?</summary>

There is a one-time minting fee that ranges from 0.5% to 5%, and a 0% interest fee. \
\
*Learn more about minting fees*[ *here.*](https://docs.satoshiprotocol.org/mechanism/minting#minting-costs)\
*Why 0% interest fee? Learn more* [*here*](https://blog.satoshiprotocol.org/satoshi-protocol-slashes-borrowing-fees-to-0-unlock-bitcoin-liquidity-with-unprecedented-efficiency/)

</details>

<details>

<summary>What is gas compensation?</summary>

Gas compensation refers to a small reserve of satUSD set aside to cover transaction fees associated with the liquidation of your position.

</details>

<details>

<summary>How does satUSD maintain its peg to the US dollar?</summary>

satUSD maintains its peg through over-collateralization, an instant liquidation module, and a peg mechanism.

1. If satUSD drops below $1, arbitragers can purchase discounted satUSD and redeem it for $1 worth of BTC from the protocol.
2. If satUSD exceeds $1.10, users can mint satUSD at 110% MCR and sell it immediately on the market.

</details>

<details>

<summary>Why is my position liquidated?</summary>

If your position’s collateral ratio fall below 110%, it will be allowed to trigger liquidation, which mean your collateral will be sold to stability pool providers for satUSD to repay your debt.

</details>

<details>

<summary>How can I avoid liquidations?</summary>

To avoid liquidations, maintain a healthy collateralization ratio, typically above 150%. \
You can add collateral to your position or repay part of your debt to improve the ratio and prevent liquidation.

</details>

<details>

<summary>How can I close position and claim my collateral?</summary>

You can close your position by repaying your satUSD debt in full. Once the debt is repaid, you can claim your collateral.

</details>

<details>

<summary>How does Recovery Mode work?</summary>

During Recovery Mode, actions are taken to improve the Total Collateral Ratio (TCR) to 150%:

1. Positions with a collateral ratio below 150% are liquidated.
2. Minting is restricted to maintaining a 150% Minimum Collateral Ratio (MCR).
3. To incentivize recovery, the minting fee is set to 0%.

</details>

<details>

<summary>Can I use satUSD across other chains?</summary>

Yes, satUSD is designed to operate on multiple chains, currently it works on BEVM, BOB, & Bitlayer. We are working on to add more chains.

</details>

<details>

<summary>Has Satoshi Protocol been audited?</summary>

Yes, Satoshi Protocol has undergone audits to ensure security and safety. The audits were conducted by Scalebit, Supremacy, and Billh.

For more details, you can view the [*audit reports*](/satoshi-protocol-v1/outro/audit-reports)

</details>

### Stability Pool Related FAQs

<details>

<summary>What is Stability Pool?</summary>

The Stability Pool (SP) is a key part of the Satoshi Protocol that maintains system stability by providing liquidity for settling debts from liquidated positions. Users can deposit satUSD into the pool and benefit from discounted liquidated collateral.

</details>

<details>

<summary>Can I earn rewards from the Stability Pool?</summary>

Yes, users can deposit satUSD into the pool and benefit from discounted liquidated collateral.

</details>

<details>

<summary>How is the APR on the Stability Pool calculated?</summary>

The APR displayed on the protocol is calculated based on the average amount of collateral liquidated over the past 7 days, along with the current BTC price.

</details>

<details>

<summary>Why is my satUSD in the Stability Pool decreasing?</summary>

If you find your deposited satUSD decreasing, it means a liquidation has occurred. satUSD depositors gain liquidated collateral, such as wBTC, tBTC, etc., at a discounted price.

</details>

<details>

<summary>Why my BTC balance didn’t increase after claiming liquidation from the stability pool?</summary>

The reward you claim from the Stability Pool liquidation is wBTC, please add the wBTC contract address to your wallet. \
Keep in mind that the contract addresses for wBTC can differ based on the chain you are using, so make sure to verify and use the correct address for the specific chain you are operating on.

</details>

### Swap Related FAQs

<details>

<summary>Can I swap satUSD to USDT/USDC?</summary>

Yes, you can swap satUSD for USDT/USDC at a 1:1 ratio. Please note that there is a 3-day lock-up period for withdrawals.

</details>

<details>

<summary>Why is there a 3-day lock-up period for satUSD to USDT swaps?</summary>

The 3-day lock-up period is implemented to ensure sufficient liquidity is available for transactions. This measure helps maintain the stability of the market and protects users' funds.

</details>

### Redemption Related FAQs

<details>

<summary><strong>What is Redemption?</strong></summary>

Redemption allows users to exchange 1 satUSD for $1 USD worth of collateral. This feature ensures that satUSD maintains its value and provides users with a mechanism to utilize their satUSD effectively.

</details>

<details>

<summary>Can I exchange satUSD for BTC or other assets?</summary>

Yes, you can exchange satUSD for BTC or other assets. Simply go to the Satoshi Protocol app and navigate to the Redemption section.

</details>

<details>

<summary>How does Redemption work?</summary>

Redemption begins with liquidating positions having the lowest Collateralization Ratio (CR). To avoid your position being redeemed by others, it’s important to maintain a higher CR than the average.

</details>

<details>

<summary>How does the Redemption fee work?</summary>

The Redemption fee is a dynamic fee that ranges from 0.5% to 5%, calculated based on market volatility.

</details>

For more FAQs and explanatory videos, please visit [Discord FAQ channel](https://discord.com/channels/1212686319596216350/1212770924965928980).<br>


# Overview

### Core Features

* **Mint**: Generate satUSD by depositing collateral and establishing a ‘Position.’
* **Earn**: Provide satUSD to the Stability Pool to earn discounted collateral and rewards from liquidation events.
* **Stake**: Stake OSHI tokens to share in the protocol's revenue.
* **Redeem**: Exchange 1 satUSD for 1 USD worth of collateral at any time.
* **Nexus Yield Module (NYM):** Utilizes a range of yield-generating mechanisms to optimize returns on all capital held within the protocol.
* **Swap:** Convert USDT or USDC to the protocol's native stablecoin, satUSD, and vice versa.
* **Cross-Chain Functionality**: Use satUSD across all supported chains.

Explore further details on these mechanisms in the following documentation.


# Minting

The Satoshi Protocol allows users to access liquidity by depositing collateral, enabling them to borrow up to 90.91% of the collateral's value in satUSD. This ensures a Minimum Collateral Ratio (MCR) of 110% is maintained. Users can repay their debt, mint additional satUSD, or withdraw some collateral, as long as they uphold the MCR. A minimum debt requirement of 12 satUSD is enforced to ensure system stability.

## Minting Costs

When minting satUSD, the protocol imposes:

* **Minting Fee**: Calculated as the **Base Rate + 0.5%** (minimum of **0.5%**, maximum of **5%**).
* **Annual Interest Fee**: Fixed rate applied to the outstanding debt. Currently 0% interest fee. ( [why 0% interest](https://blog.satoshiprotocol.org/satoshi-protocol-slashes-borrowing-fees-to-0-unlock-bitcoin-liquidity-with-unprecedented-efficiency/) )
* **Gas Compensation**: A reserve of **2 satUSD** set aside for gas fees. This reserve is intended to cover potential costs associated with the liquidation process. If the position is closed without liquidation, the 2 satUSD will not be charged.

#### **Total Minting Fee Calculation**:

$$
TotalMinting Fee=MintingFee + InterestFee + Gas Compensation
$$

While the annual interest fee is fixed, the one-time minting fee is calculated as "base rate + 0.5%" and is applied to the total amount of satUSD minted.

$$
Minting Fee\_t = BaseRate\_t + 0.5 %
$$

The current base rate is determined by previous base rate and the quantity of satUSD redeemed as a proportion of the total stablecoin supply. This dynamic fee structure has a minimum of 0.5% and a maximum cap of 5%, ensuring flexibility based on market conditions.

$$
BaseRate\_t = BaseRate\_{t−1} + 0.5 × \frac{m}{n}
$$

where $$m$$ denotes the amount of redeemed satUSD, $$n$$ signifies the current supply of satUSD.

Over time, the base rate experiences decay due to a decay factor applied with every satUSD redemption and issuance before calculating the resulting fee. The decay follows the form:

$$
BaseRate\_t = BaseRate\_{t−1} × δ^{∆t}
$$

Where `δ` represents an hourly decay factor (0.944 in our case), and `∆t` denotes the time elapsed in hours since the last redemption or loan issuance. The decay factor `δ` is selected to ensure a 12-hour half-life for the base rate.

**Example**: If the base rate is set at 0.5% and a user deposits BTC worth $2,000 to mint 2,000 satUSD, they will incur a 0.5% one-time minting fee, amounting to 10 satUSD, and an additional 2 satUSD for gas compensation. Consequently, while the user receives 2,000 satUSD, their total debt is 2,012 satUSD. To fully close the Position and retrieve their BTC collateral, the users must settle this 2,012 satUSD debt.

## Restrictions During Recovery Mode

In Recovery Mode, minting is restricted to protect against liquidation risks. Users should keep their collateral ratio well above the MCR (ideally over 150%) to minimize liquidation risk.

This strategy decreases the likelihood of liquidation and reduces the potential impact of large redemptions on their positions.

***

## Borrow Interest Rate

Currently, the Borrow Interest Rate is 0% when using BTC as collateral. This interest accumulates over time, serving as a revenue stream for the protocol.

## Detailed Interest Amount Calculation

Interest accrues on the minted satUSD for all users within the protocol. The accumulation of interest is triggered by any interaction with the smart contracts, ensuring that the debt value remains up-to-date with the accrued interest over time.&#x20;

**Example of Interest Accrual**

* Alice mints 10,000 satUSD against her BTC collateral.
* The annual interest rate is fixed, which translates to about debt amount times $$1.427 × 10^{-9}$$ per second.
* If there is no interaction with the smart contract for 100 seconds, interest continues to accrue on Alice's minted amount during this period.
* Upon a subsequent interaction with the protocol (e.g., Bob mints some satUSD), Alice's debt would reflect the accrued interest over those 100 seconds.

**Using the specific per second interest rate**

* The additional interest accrued over 100 seconds on Alice's initial minting of 10,000 satUSD would be $$10,000×1.427×10^{-9}=0.0001427$$ satUSD.
* Alice’s updated debt would be $$10,000+0.0001427=10,000.0001427$$ satUSD after 100 seconds of accrued interest. For the next updated debt calculation, it would based on this amount of 10,000.0001427 satUSD.

The minting process in the Satoshi Protocol facilitates liquidity while ensuring stability. By maintaining over-collateralization, users can safely manage their debt while contributing to the overall health of the ecosystem.


# Stability Pool and Liquidations

## What is the Stability Pool (SP)?

The Stability Pool (SP) serves as a crucial mechanism within the Satoshi Protocol, designed to preserve the system's stability by providing liquidity for settling debts from liquidated Positions. When a Position undergoes liquidation, the SP uses satUSD to clear the debt and, in return, acquires the collateral from the liquidated Position. This process maintains the integrity of the protocol by ensuring that under-collateralized positions do not threaten the system’s stability.

## Why Contribute satUSD to the Stability Pool?

Stability Pool providers are incentivized through several mechanisms:

* **Collateral Gains**: When liquidations occur, SP providers receive discounted collateral in proportion to their satUSD holdings in the pool.
* **Liquidation Trigger Rewards**: Users who initiate liquidations earn 0.25% of the collateral and 2 satUSD as gas compensation.
* **Revenue Sharing**: Revenue earned by the protocol will be shared with staked OSHI holders.

## Liquidation Mechanics

Liquidations ensure that satUSD is always fully backed by collateral. Positions with a collateral ratio below 110% are eligible for liquidation. Any user can trigger a liquidation, which helps maintain the stability of the protocol by removing riskier positions.

## Liquidation Process and Incentives

* Once a position’s collateral ratio drops below 110%, it becomes eligible for liquidation.
* The liquidation is initiated by any user, who is rewarded with 0.25% of the collateral and 2 satUSD for gas fees.
* The Stability Pool absorbs the position’s debt and acquires its collateral.

## Benefits for Stability Pool Providers

* Stability Pool Providers gain a share of liquidated collateral, typically at a discounted rate.
* These gains are in proportion to their satUSD contributions to the pool.

## Withdrawal Policies

Stability Pool providers can generally withdraw their satUSD from the Stability Pool without restrictions. However, withdrawals may be temporarily paused during pending liquidations to ensure sufficient liquidity is available for settling debts.

## Risks and Considerations

While contributing to the Stability Pool offers potential rewards, it also comes with risks:

* **Sub-Optimal Liquidations**: Stability pool providers might incur losses if liquidations occur at unfavorable collateral ratios.
* **satUSD-to-Collateral Value Discrepancies**: The value of the collateral obtained through liquidations can fluctuate, impacting the overall returns.


# Redemption & Price Stability

The Satoshi Protocol employs several mechanisms to ensure that its native stablecoin, satUSD, maintains a value closely aligned with the US dollar. These mechanisms work together to stabilize prices and enable smooth redemptions.

## Mechanisms for Price Stability

satUSD maintains its peg to the USD through both "hard" and "soft" mechanisms:

* **Hard Peg**: The hard peg of satUSD is maintained through its redeemability for collateral. Holders can always exchange their satUSD for a specific amount of collateral, providing a solid price floor. This mechanism prevents satUSD from dropping significantly below its intended value, ensuring stability and reliability.
* Soft Peg: The price stability of satUSD is supported by its Minimum Collateralization Ratio (MCR) of 110%. When the market price of satUSD rises above $1.10, it creates an incentive for users to deposit collateral and mint more satUSD at the 110% collateral ratio, and sell the minted satUSD in the market. This action increases the supply of satUSD in the market, which helps bring the price back down toward the target of $1.00.

## satUSD Token Redemption

Holders of satUSD have the ability to redeem their tokens for collateral, which plays a crucial role in managing the supply of satUSD and supporting its price stability:

* **Redemption Process**: Holders can exchange satUSD for collateral. When users initiate a redemption, the system selects positions based on their collateralization ratios, starting with those that are least collateralized.
* **Conditions for Redemption**: Redemptions are allowed only when the Total Collateral Ratio (TCR) is above 110% and not within the first 14 days post-protocol launch. This restriction ensures system stability during its initial stages.

## Types of Redemption

* **Partial Redemption**: This is the standard form of redemption, where the amount of satUSD redeemed does not fully cover the total debt of a position. This process adjusts the system's leverage without completely closing any positions.
* **Full Redemption**: This occurs when a Position's entire debt is settled through redemption, thereby eliminating its debt and reallocating any surplus collateral to a general pool.

## Redemption vs. Debt Repayment

While both mechanisms reduce the system's overall debt, they operate differently:

* Redemptions can be initiated by any party and directly affect the circulating supply of satUSD.
* Debt repayments, on the other hand, are specific actions taken by users to manage their individual positions.

## Redemption Fees and Base Rate

* **Fee Calculation**: Redemption fees are determined by the formula `(baseRate + 0.5%)`. This fee structure ensures that users are charged based on current market conditions.
* **Base Rate Dynamics**: Base Rate Dynamics: The base rate is a dynamic figure calculated based on the previous base rate and the amount of satUSD redeemed relative to the total supply. This approach helps adjust redemption costs in line with the liquidity needs of the system.

The detailed calculation of the redemption fee follows the same method as the minting fee, so please refer to  [Minting](/satoshi-protocol-v1/mechanism/minting).

## In Summary

Through these well-designed mechanisms, the Satoshi Protocol aims to maintain the price stability of satUSD, ensuring that it remains a reliable and functional token.


# Nexus Yield Module (NYM)

## What is Nexus Yield Module?

**The Nexus Yield Module (NYM)** serves as a powerful yield-aggregation hub within the Satoshi Protocol, specifically designed to enhance the earnings potential of the protocol’s ecosystem assets. NYM leverages a range of yield-generating mechanisms to optimize returns on all capital held within the protocol, including treasury funds and assets generated by protocol activities. By concentrating on yield maximization, NYM transforms the protocol’s resources into a continuous stream of value, delivering higher returns and reinforcing the protocol’s financial foundation.

## Goals of NYM in Satoshi Protocol

NYM aims to distinguish itself from traditional DeFi value acquisition models by integrating multiple yield channels, optimizing capital utilization, and enhancing financial flexibility. This approach reduces exposure to risks associated with relying on a single income stream, enabling NYM to pursue two key objectives: **maximizing yield** and **minimizing risk**.

1. **Maximizing Yield**\
   NYM leverages a variety of yield-generating mechanisms, strategically distributing funds across diverse yield channels to capture the highest potential returns. This approach:
   * Increases the protocol’s overall revenue by diversifying into different yield sources.
   * Enhances users' potential earnings by systematically balancing resources across complementary yield modules.
   * Utilizes a professional risk-adjusted strategy to achieve consistent growth for both the protocol and its participants.
2. **Minimizing Risk**\
   By integrating multiple yield channels, NYM reduces the protocol's dependence on any single source of income, thereby mitigating systemic risk. To ensure a secure and stable yield environment, NYM:
   * Distributes capital across various yield modules to avoid single-point failure risks.
   * Monitors risk levels in real-time for each module, dynamically rebalancing assets to maintain an optimal risk profile.
   * Ensures sustainable yields for users by aligning risk management with revenue optimization, providing a secure and diversified approach to yield generation.
3. **Maximizing Transparency**\
   NYM operates with full on-chain transparency, ensuring that all yield farming activities and asset management decisions are openly accessible for user review. This transparency allows users to monitor every transaction involved in NYM’s fund allocation and balancing, promoting asset security and reinforcing trust. By minimizing trust assumptions, NYM empowers users with real-time insights into its operations, thereby enhancing both protocol integrity and overall security.

## Revenue Channels of NYM

NYM of the Satoshi Protocol employs a diversified yield generation strategy, tapping into both CeFi and DeFi channels to maximize returns while managing risk effectively. By balancing assets across trusted centralized and decentralized platforms, NYM ensures a steady and secure income stream that supports the protocol’s sustainability and growth.

* **CeFi Farming**\
  In CeFi, NYM leverages well-established, secure custodial strategies that adhere to the highest standards of trust and reliability. By tapping into tried-and-true channels such as spot-futures arbitrage, funding rate arbitrage, and centralized lending, NYM captures returns from stable, market-neutral strategies that minimize directional risk. This approach not only maximizes income but also shields the protocol’s assets from volatility, maintaining stability even in fluctuating market conditions. Through these carefully selected CeFi strategies, NYM effectively converts idle assets into a steady source of returns, reinforcing the protocol’s income generation with low-risk, reliable methods.
* **DeFi Farming**\
  On the DeFi side, NYM navigates a dynamic landscape of decentralized protocols, deploying strategies designed to capture yield while maintaining a high degree of security. Through governance voting, NYM manages yield farming allocations across activities such as neutral DEX liquidity provision, lending, and participation in incentivized ecosystems. Additionally, the protocol leverages opportunities within decentralized derivatives and on-chain arbitrage, ensuring an agile yet secure approach to yield generation. By employing diversified tactics across DeFi, NYM can capture protocol incentives and earn transaction fees, while simultaneously contributing to ecosystem stability and liquidity.

This combination of CeFi and DeFi channels enables NYM to cultivate a robust yield strategy, focused on stable, consistent growth. The broad, flexible approach safeguards against risks associated with reliance on any single market segment, enhancing resilience and ensuring that the Satoshi Protocol remains well-positioned for both current and future opportunities within the evolving financial landscape. By carefully balancing these distinct yet complementary strategies, NYM fulfills its mission to maximize returns while safeguarding users' assets in a dynamic, risk-managed environment.

## Distribution of Rewards

The yield generated from NYM’s activities is systematically allocated to ensure the efficient operation and sustainability of the Satoshi Protocol. The distribution is divided into three main parts:

* **Operational Costs**
  * Description: A portion of the generated yield is allocated to cover the operational expenses of the Satoshi Protocol. This includes costs related to maintenance, development, and other administrative functions necessary for the smooth functioning of the protocol.
  * Benefit: Ensuring that operational costs are covered helps maintain the protocol’s efficiency and reliability, supporting its long-term viability.
* **Insurance Fund**
  * Description: A designated portion of the yield is reserved for the insurance fund. This fund acts as a safeguard against extreme market conditions and potential unforeseen risks, providing an additional layer of security for the protocol.
  * Benefit: The insurance fund enhances the resilience of the Satoshi Protocol, protecting it from adverse events and ensuring stability for users’ assets.
* **User Rewards**
  * Description: The majority of the yield is distributed to sOSHI holders as rewards. This distribution incentivizes users to participate in the staking process, as they receive a portion of the generated yield based on their staked assets.
  * Benefit: Rewarding sOSHI holders fosters greater user engagement and participation in the protocol, aligning users’ interests with the protocol’s success and stability.

This systematic distribution of rewards ensures that the Satoshi Protocol remains operationally sound, secure, and attractive to users. By effectively managing and allocating the generated yield, NYM contributes to the protocol’s overall health and growth, benefiting all participants.


# Swap

The Swap Module in the Satoshi Protocol allows users to easily exchange popular stablecoins, such as USDT and USDC, for the protocol’s native stablecoin, satUSD. This feature ensures stable and seamless liquidity, supporting satUSD’s utility and maintaining its peg to the US dollar.

## Purpose and Benefits of the Swap Module in Satoshi Protocol

1. **Maintaining Stability and Peg**\
   The Swap Module helps maintain satUSD’s stable peg to USD by enabling users to swap USDT or USDC for satUSD at a fixed 1:1 ratio. This mechanism ensures that satUSD remains tightly aligned with the value of the US dollar, fostering user trust and enhancing stability within the protocol.
2. **User Incentives and Engagement**\
   The module incentivizes user participation in the ecosystem by offering a simple, reliable way to acquire satUSD. Users can then access various DeFi opportunities within the Satoshi Protocol, enhancing liquidity and user engagement.
3. **Risk Management and Security**\
   Stablecoins swapped for satUSD are held securely within the protocol’s vault, managed with a focus on security and liquidity. This structure helps safeguard the protocol from market volatility, ensuring satUSD remains reliable for all users.

## Asset Swapping Process

1. **User Initiates Swap**\
   A user initiates a swap transaction within the Swap Module interface, selecting either USDT or USDC to exchange for satUSD.
2. **Stablecoins Sent to Swap Vault**\
   The user’s USDT or USDC is transferred to the Swap Vault, a secure repository managed by the Satoshi Protocol.
3. **satUSD Issuance**\
   Upon receiving the stablecoins, the protocol mints an equivalent amount of satUSD (1:1 ratio) and sends it to the user’s wallet. This issuance ensures that satUSD remains pegged to the US dollar.
4. **User Confirmation**\
   The user receives satUSD in their wallet, ready for use within the Satoshi Protocol ecosystem or in any other compatible DeFi applications.

## Significance of Swap

### **Maintaining the satUSD Peg to USD**

The Swap Module is central to maintaining satUSD’s peg to the US dollar within the Satoshi Protocol. By allowing users to exchange stablecoins like USDT and USDC for satUSD at a fixed 1:1 rate, the module ensures that satUSD holds a stable value tightly linked to USD. This peg is vital for satUSD’s stability, reliability, and usability across the Satoshi Protocol ecosystem.

### **Arbitrage Opportunities to Maintain Stability**

The Swap Module also creates natural arbitrage opportunities to stabilize satUSD’s value whenever it deviates from 1 USD, reinforcing the peg. Here’s how this works:

* **Scenario 1: satUSD Trades Below 1 USD**
  * Situation: If satUSD trades at a discount, say 0.98 USD on the open market.
  * Arbitrage Action: Arbitrageurs purchase satUSD at the market rate of 0.98 USD.
  * Swap Mechanism: They then swap the acquired satUSD for USDT or USDC through the Swap Module at the fixed 1:1 rate.
  * Profit: For each satUSD bought at 0.98 USD, they receive 1 USD in stablecoins, profiting 0.02 USD per satUSD.
  * Result: This buying pressure on satUSD raises its market value back towards 1 USD, stabilizing the peg.
* **Scenario 2: satUSD Trades Above 1 USD**
  * Situation: If satUSD trades above 1 USD, for example, at 1.02 USD on the open market.
  * Arbitrage Action: Arbitrageurs swap USDT or USDC for satUSD through the Swap Module at the 1:1 rate.
  * Market Sale: They sell the acquired satUSD at the market rate of 1.02 USD.
  * Profit: They make 0.02 USD per satUSD by selling at the higher market price.
  * Result: This selling pressure on satUSD lowers its price, bringing it back to 1 USD, reinforcing the peg.

These arbitrage dynamics create a self-correcting mechanism that maintains satUSD’s value near 1 USD. Whenever the price deviates, the module incentivizes arbitrageurs to act, supporting satUSD’s stability and reliability as a stablecoin.


# MultiChain

The Satoshi Protocol will be deployed across the entire Bitcoin ecosystem, including both the Bitcoin mainnet and Bitcoin Layer 2 solutions. The stablecoin satUSD is designed as a multi-chain token, capable of circulating seamlessly across different chains. Notably, satUSD will also be supported on the Bitcoin network, making it one of the few CDP stablecoins that can operate on a non-programmable network. This cross-chain capability significantly enhances satUSD's versatility and utility within the decentralized finance landscape.

## Operational Mechanism - Bitcoin

Given that Bitcoin is a non-programmable network, the Satoshi Protocol will utilize Bitcoin Layer 2 as the execution layer. By leveraging Layer 2 smart contracts, we can implement the logic behind the CDP stablecoin, including issuance, redemption, liquidation, and position adjustments. Through the integration of cross-chain bridges, satUSD can circulate seamlessly within the entire Bitcoin ecosystem.

## Multi-Token Standard Compatibility

Different blockchain networks operate with various token standards. For instance, Bitcoin Layer 2 and EVM-compatible networks utilize the ERC-20 standard, while the Bitcoin mainnet supports standards like RUNES. To provide users with an optimal experience and enable the use of the same stablecoin across different ecosystems, satUSD will feature multi-token standard compatibility.

This functionality allows for seamless switching between different token formats, ensuring that satUSD can be efficiently and effectively used across multiple blockchain environments. By implementing this multi-token standard compatibility, we aim to enhance interoperability and user convenience, thereby expanding the utility and accessibility of satUSD within DeFi.

<br>


# Recovery Mode

Recovery Mode is a critical safety mechanism within the Satoshi Protocol, designed to protect the overall health and stability of the system. This mode is activated when the Total Collateral Ratio (TCR) falls below a specific threshold, initiating a set of rules aimed at restoring balance and safeguarding user interests.

## Total Collateral Ratio (TCR)

The Total Collateral Ratio (TCR) measures the system's overall leverage, calculated by dividing the dollar value of all collateral by the total debt in satUSD. A healthy TCR indicates a well-collateralized system, while a low TCR signals potential liquidity issues and system instability.

### What Triggers Recovery Mode?

Recovery Mode is triggered when the TCR drops below 150%. The TCR is a key metric that measures the overall health of the system by comparing the total dollar value of all collateral to the total system debt. A TCR below 150% indicates potential risks to the system's stability, prompting the activation of Recovery Mode.

### Implications of Recovery Mode

During Recovery Mode, specific actions are implemented to prevent further decreases in the TCR and encourage measures that will raise it back above the 150% threshold:

* **Liquidations**: Positions with a collateral ratio below 150% become eligible for liquidation. This process helps eliminate riskier positions from the system, contributing to the restoration of a healthy TCR.
* **Minting Restrictions**: The system temporarily restricts minting activities that could further compromise the TCR. While new satUSD can still be issued, it is limited to adjustments that improve existing positions' collateral ratios or the creation of new positions with a collateral ratio of 150% or higher.
* **Incentives for Recovery**: To encourage positive actions during Recovery Mode, the minting fee is set to 0%. This incentive stimulates the system's recovery by facilitating minting under strict conditions that enhance the TCR.

## Managing Your Position in Recovery Mode

To protect your position from liquidation during Recovery Mode:

* **Increase Collateral Ratio**: Boost your position's collateral ratio to 150% or above by adding more collateral or repaying part of the debt.
* **Understand Liquidation Risks**: Positions with collateral ratios below 150% are vulnerable to liquidation during Recovery Mode. It is highly recommended to maintain a collateral ratio above this threshold in both normal and Recovery Modes to avoid potential liquidation.

### Liquidations in Recovery Mode

The behavior of liquidations during Recovery Mode is structured as follows:

<table><thead><tr><th width="284">Condition                                              </th><th>Liquidation Behavior</th></tr></thead><tbody><tr><td>ICR &#x3C;=100%</td><td>Redistribute all debt and collateral to Position.</td></tr><tr><td>100% &#x3C; ICR &#x3C; MCR &#x26; SP's satUSD > Position debt</td><td>satUSD in the SP equal to the Position's debt is offset with the Position's debt. The Position's collateral is shared between depositors.</td></tr><tr><td>100% &#x3C; ICR &#x3C; MCR &#x26; SP's satUSD &#x3C; Position debt</td><td>The total SP's satUSD is offset with an equal amount of debt from the Position. A fraction of the Position's collateral (equal to the ratio of its offset debt to its entire debt) is shared between depositors. The remaining debt and collateral are redistributed to all Positions.</td></tr><tr><td>MCR &#x3C;= ICR &#x3C; TCR &#x26; SP's satUSD >= Position debt</td><td>The SP's satUSD is offset with an equal amount of debt from the Position. A fraction of collateral with a dollar value equal to <code>1.1 * debt</code> is shared between depositors. Nothing is redistributed to other Positions.</td></tr><tr><td>MCR &#x3C;= ICR &#x3C; TCR &#x26; SP's satUSD &#x3C; Position debt</td><td>No action is taken.</td></tr><tr><td>ICR >= TCR</td><td>No action is taken.</td></tr></tbody></table>

Recovery Mode is a essential component of the Satoshi Protocol's risk management framework, meticulously designed to uphold system stability and protect users' interests. By understanding and adhering to the principles and requirements of Recovery Mode, participants can help ensure the long-term health and success of the platform.

<br>


# Revenue Structure

The revenue structure of the Satoshi Protocol is designed to support its sustainability and growth while providing value to its users. The protocol generates revenue through various channels, which are distributed among stakeholders to incentivize participation and maintain system stability.

## Key Revenue Streams

1. **Minting Fees**:
   * A one-time minting fee that ranges between 0.5% to 5% is charged when users mint satUSD. This fee is applied to the total amount of satUSD minted. *Learn more about minting fees*[ *here.*](https://docs.satoshiprotocol.org/mechanism/minting#minting-costs)
2. **Interest Fees**:
   * A fixed annual interest fee is applied to outstanding debt. Currently, this interest rate is set at 0% for satUSD minted against Bitcoin collateral, making it an attractive option for users. \
     [*( why 0% interest )*](https://blog.satoshiprotocol.org/satoshi-protocol-slashes-borrowing-fees-to-0-unlock-bitcoin-liquidity-with-unprecedented-efficiency/)
3. **Redemption Fees**:
   * When users redeem satUSD for collateral, a dynamic redemption fee is applied, ranging from 0.5% to 5%. This fee is calculated based on market volatility and helps manage the supply of satUSD.
4. **Flash Loan Fees**:
   * The protocol offers flash loans, which are short-term loans without collateral, for a fee of 0.09%. This service facilitates quick trades and adds to the protocol's revenue.
5. **Liquidation Fees**:
   * During liquidations, a fee of 0.5% of the collateral is collected. This fee is split equally (50%/50%) between the protocol and the person who initiates the liquidation, incentivizing users to maintain healthy collateral levels.

## Revenue Distribution

All revenues generated by the Satoshi Protocol are pooled together and distributed entirely (100%) among OSHI stakers based on their sOSHI holdings. This approach aligns the interests of the protocol with those of its users, fostering a sustainable and mutually beneficial ecosystem.

By implementing this revenue structure, the Satoshi Protocol ensures its operational soundness while rewarding participants for their contributions to the ecosystem.


# Risk Management

The Satoshi Protocol employs a comprehensive risk management framework to ensure system stability and security. This framework includes a Two-tier Liquidation system that provides users an opportunity to rectify their positions before full liquidation, inspired by Aave’s approach. Instant & Permissionless Liquidation allows any user to initiate liquidations without prior approval, ensuring prompt handling of undercollateralized positions. Overcollateralization requires users to deposit more collateral than the value of their debt, tailored to different asset risk profiles, such as varying interest rates and LTV ratios. The Stability Pool Mechanism offers liquidity for settling debts from liquidated positions, using satUSD and flash loans to maintain stability. Recovery Mode is activated when the Total Collateral Ratio (TCR) falls below 150%, enforcing stricter rules to restore system health. Flash Loan Liquidation provides immediate liquidity for liquidations, enhancing efficiency. Isolated Risk Control to customize parameters of risk management for each asset type, like LST/LRT, to address specific risks and ensure protocol resilience.

## Isolated Risk Control

Isolated Risk Control in the Satoshi Protocol involves a tailored risk management approach, where parameters such as Loan-to-Value (LTV) ratio, interest rates, and other risk factors are customized for each collateral type. This ensures the protocol can adapt to different market conditions while maintaining stability. By differentiating these parameters, the protocol can manage volatile assets more effectively, ensuring a secure and stable environment for users.

Additionally, we implement different safety coefficients for each collateral, such as more conservative LTV ratios for higher-risk assets, ensuring the security of the protocol. Beyond LTV, the protocol also imposes Minting Caps on individual collateral types, limiting the amount of stablecoin that can be minted against each type of asset. This prevents overexposure to any single collateral type and keeps risks within manageable levels, providing another layer of protection for the protocol and its users.

#### Example

Consider the Satoshi Protocol supporting two asset types: native BTC and an LST token from another protocol. For BTC, due to its stability and lower volatility, the protocol generally applies a higher Loan-to-Value (LTV) ratio, potentially allowing users to borrow up to 90.91% of its value with a Minimum Collateral Ratio (MCR) around 110%. This structure enables efficient collateral use with relatively low risk for BTC. Conversely, for an LST token—which may carry higher volatility or additional risk factors due to its connection to an external protocol—the protocol typically adopts a more conservative approach, such as setting an LTV around 65% and an MCR near 160%. This conservative adjustment helps safeguard against potential risks tied to the token’s stability, supporting the protocol’s overall security.

Additionally, the protocol employs a minting cap on each asset type, limiting the maximum amount of stablecoins that can be minted against any specific collateral. This prevents overexposure to riskier assets and enhances overall stability. As market conditions evolve, for example with increased volatility in the LST token, the protocol has the flexibility to further adjust parameters like the LTV ratio or MCR to preserve system safety. Through this approach, the protocol customizes risk management for each asset type, balancing risk control with user flexibility and security.

## Instant & Permissionless Liquidation

Instant and permissionless liquidation is a key feature of the Satoshi Protocol, designed to address under-collateralized positions swiftly and efficiently. Instead of using auction models, the Satoshi Protocol allows any user to initiate the liquidation process without prior approval. This immediacy is crucial as it ensures that risky positions are dealt with promptly, preventing potential bad debt and protecting the protocol from market volatility.

When a user’s collateral falls below the 110% threshold, any participant can trigger the liquidation process. This open access system encourages active participation and provides incentives for liquidators, such as a reward percentage of the liquidated collateral and gas fee compensation. By enabling instant liquidation, the Satoshi Protocol avoids the delays associated with auction models, which can exacerbate losses during rapid market declines. The protocol’s approach ensures that liquidations are executed quickly, maintaining the integrity and stability of the overall system and mitigating the risk of further price drops impacting the collateral value.

#### Example

Imagine a user’s collateral in the Satoshi Protocol falls below the 110% threshold, making the position under-collateralized. Since the protocol does not rely on slow auction models, liquidations can be triggered immediately. A liquidation bot, continuously monitoring the system, detects this risky position. Without any need for permission, it initiates the liquidation process, selling the collateral to cover the user’s debt. This ensures that the protocol remains stable and avoids accumulating bad debt during volatile market conditions. In addition, the protocol is permissionless, meaning any user, not just the bots, can perform the liquidation. For their action, the liquidator receives 0.25% of the liquidated collateral as a reward, along with gas fee compensation. This mechanism encourages active participation from users to keep the protocol secure while allowing them to profit from liquidations.

## Over-collateralization

Over-collateralization is a core principle in the Satoshi Protocol, requiring users to deposit more collateral than the value of the debt they wish to incur. This practice ensures the stability and security of the protocol, protecting against market volatility and sudden price drops. Users must maintain a Minimum Collateral Ratio (MCR) of at least 110%, with higher ratios recommended for added safety. The protocol allows different collateral types to have varied borrow rates, Loan-to-Value (LTV) ratios, and other parameters to cater to the specific risk profiles of each asset. This tailored approach ensures that the protocol remains secure and adaptable to different market conditions.

#### Example

* **Scenario**\
  User B deposits $2,000 worth of BTC to borrow $1,818.18 in satUSD (Collateral Ratio of 110%).
* **Collateral Maintenance**\
  To avoid liquidation, User B maintains a buffer, keeping the collateral ratio above 150%.
* **Collateral Drop**\
  If the BTC value drops, reducing the collateral value to $1,980, the system still ensures the position remains overcollateralized.
* **Security**\
  This overcollateralization protects the protocol from volatile market conditions, ensuring the stability and reliability of satUSD.

## Stability Pool Mechanism

The Stability Pool (SP) serves as a crucial mechanism within the Satoshi Protocol, designed to preserve the system’s stability by providing liquidity for settling debts from liquidated positions. When a position undergoes liquidation, the SP uses satUSD to clear the debt and, in return, acquires the collateral from the liquidated position. Contributors to the SP are incentivized through several mechanisms, including collateral gains from liquidations, trigger rewards for initiating liquidations, and token rewards in the form of OSHI tokens. Additionally, the SP ensures that even in scenarios where it lacks sufficient funds, flash loans can be utilized to facilitate liquidations, maintaining the protocol’s stability.

#### Example

* **Scenario**\
  User C contributes satUSD to the Stability Pool.
* **Liquidation Event**\
  A position with a collateral ratio below 110% is liquidated. The SP uses satUSD to settle the debt.
* **Collateral Acquisition**\
  The SP acquires the liquidated collateral, providing User C with a share of the discounted collateral.
* **Rewards**\
  User C receives OSHI tokens and a portion of the collateral as incentives for their contribution.
* **Flash Loan Utilization**\
  In cases where the SP lacks sufficient funds, a flash loan is used to facilitate the liquidation, ensuring the debt is cleared and stability is maintained.

## Recovery Mode

Recovery Mode is a critical safety mechanism within the Satoshi Protocol, designed to safeguard the system’s overall health and stability. It is triggered when the Total Collateral Ratio (TCR) falls below 150%, indicating a potential risk to the system’s stability. During Recovery Mode, specific actions are taken to prevent further decreases in the TCR and to encourage measures that would raise it back above the 150% threshold. These actions include liquidating positions with collateral ratios below 150%, restricting borrowing activities that could further compromise the TCR, and incentivizing borrowing that improves the TCR with a 0% borrowing fee. This mode ensures the protocol remains robust and can recover quickly from potential destabilizing events.

#### Example

Imagine the Total Collateral Ratio (TCR) of the Satoshi Protocol drops below 150%, signaling potential instability. To restore balance, Recovery Mode is triggered. During Recovery Mode, positions with a collateral ratio below 150% become eligible for liquidation. For example, if a user's position has a collateral ratio of 130%, it will be liquidated to help remove risky positions and improve the overall TCR. Additionally, borrowing restrictions are applied. New borrowing can only occur if it helps raise the collateral ratio above 150%, or if it strengthens existing positions. This ensures that no further strain is placed on the system. To incentivize positive action, the protocol waives all borrowing fees, allowing participants to restructure their positions at a 0% borrowing fee. This encourages users to take actions that will quickly stabilize the protocol, ensuring that the system can swiftly recover and resume normal operations.<br>

## Flash Loan Liquidation

Flash loan liquidation allows for instant liquidation of under-collateralized positions using flash loans. This method provides immediate liquidity without requiring upfront capital, ensuring that the protocol can swiftly handle liquidations even in scenarios where the Stability Pool lacks sufficient funds. By leveraging flash loans, the Satoshi Protocol can cover the debt of liquidated positions in a single transaction, which is then repaid within the same block. This approach enhances the efficiency and responsiveness of the liquidation process, maintaining the protocol’s stability and protecting against sudden market fluctuations.

#### Example

Imagine a scenario where User D spots an under-collateralized position with a collateral ratio falling below 110%. User D doesn't have the upfront capital to handle the liquidation, but initiates a flash loan, temporarily borrowing the necessary funds to cover the position’s debt. Using the flash loan, User D liquidates the position by covering its debt, selling off the collateral. The borrowed amount is then repaid instantly within the same transaction, all happening within a single block. As a result, User D earns the liquidation reward, which includes 0.25% of the liquidated collateral and compensation for gas fees. Even if the Stability Pool doesn't have enough funds, the use of flash loans ensures that liquidations can still happen smoothly and quickly, keeping the protocol stable and protecting against sudden market shifts.

## Redistribution

Redistribution is a key component of Satoshi Protocol’s risk management strategy, ensuring that the system remains stable during liquidations, particularly in Recovery Mode. When positions fall below the required collateral ratio, instead of liquidating the collateral on the open market, debt and collateral are redistributed to healthier positions within the system. This approach helps to prevent sharp sell-offs and protects the overall stability of the protocol. In Recovery Mode, when the Total Collateral Ratio (TCR) of the system drops below a critical threshold, liquidations are managed in a way that redistributes both debt and collateral across all remaining positions. This prevents further market impact by avoiding mass collateral sales that could lead to downward price pressure. Instead, healthy positions absorb the risk by taking on a proportion of the liquidated position's debt and collateral.

Redistribution also aids in maintaining liquidity, automatically rebalancing the system by spreading risk across multiple participants. It ensures that the protocol remains solvent without destabilizing the market, offering users a more stable experience even in times of volatility. This mechanism is essential for preserving user confidence and ensuring that the protocol can continue to operate effectively during periods of market stress.

**Example**

Imagine a situation where the Total Collateral Ratio (TCR) of the Satoshi Protocol falls below the critical threshold during a period of market volatility. Instead of liquidating collateral on the open market, which could lead to sharp sell-offs and further price drops, the protocol triggers redistribution. User A holds a healthy position with a collateral ratio well above the required threshold. Meanwhile, another position has become under-collateralized. Rather than selling off the collateral from this under-collateralized position, the protocol redistributes a portion of its debt and collateral to User A and others with strong positions. This process allows the system to balance risk without impacting the market. User A absorbs part of the debt and collateral, helping to maintain the protocol’s stability. By spreading the exposure across several healthy participants, the protocol ensures liquidity remains intact and market pressure is minimized, keeping the system solvent and secure during recovery.


# Official Links

<table><thead><tr><th width="180.5">Website</th><th>URL</th></tr></thead><tbody><tr><td>Official Website</td><td><a href="https://satoshiprotocol.org/">https://satoshiprotocol.org/</a></td></tr><tr><td>Satoshi App</td><td><a href="https://app.satoshiprotocol.org/">https://app.satoshiprotocol.org/</a></td></tr><tr><td>Twitter</td><td><a href="https://x.com/Satoshi_BTCFi">https://twitter.com/Satoshi_BTCFi</a></td></tr><tr><td>Blog</td><td><a href="https://blog.satoshiprotocol.org/">https://blog.satoshiprotocol.org/</a></td></tr><tr><td>Telegram</td><td><a href="https://t.me/satoshi_sat">https://t.me/satoshi_sat</a></td></tr><tr><td>Discord</td><td><a href="https://discord.gg/satoshiprotocol">https://discord.gg/satoshiprotocol</a></td></tr><tr><td>Documentation</td><td><a href="https://docs.satoshiprotocol.org">https://docs.satoshiprotocol.org</a> </td></tr></tbody></table>


# Oracle

Our system has integrated different oracles to provide highly accurate price feeds for our users.&#x20;

Satoshi protects price accuracy by checking price staleness. The oracle updates its price when the value deviates beyond a specified threshold or when the heartbeat idle time has passed. Our protocol checks the timestamp and verifies that the latest answer is recent enough.

<table><thead><tr><th width="128">Chain</th><th width="138">Collateral</th><th width="185">Oracle</th><th>Parameter (deviation/heartbeat)</th></tr></thead><tbody><tr><td>BEVM</td><td>BTC</td><td><a href="https://www.diadata.org/#disable">DIA</a></td><td>0.5%/86400s</td></tr><tr><td>BEVM</td><td>wstBTC</td><td><a href="https://www.diadata.org/#disable">DIA</a> (BTC price) &#x26; <a href="https://scan-mainnet.bevm.io/address/0x26bda683F874e7AE3e3A5d3fad44Bcb82a7c107C">Bido contract</a> (wstBTC/stBTC rate)</td><td>0.5%/86400s</td></tr><tr><td>Bitlayer</td><td>WBTC</td><td><a href="https://www.apro.com/">APRO</a></td><td>0.5%/3600s</td></tr><tr><td>Bitlayer</td><td>stBTC</td><td><a href="https://www.apro.com/">APRO</a></td><td>0.5%/3600s</td></tr><tr><td>Bitlayer</td><td>USDT</td><td><a href="https://www.apro.com/">APRO</a></td><td>0.1%/86400s</td></tr><tr><td>Bitlayer</td><td>USDC</td><td><a href="https://www.apro.com/">APRO</a></td><td>0.1%/86400s</td></tr><tr><td>BOB</td><td>WETH</td><td><a href="https://api3.org/">API3</a></td><td>0.5%/86400s</td></tr><tr><td>BOB</td><td>WBTC</td><td><a href="https://api3.org/">API3</a></td><td>0.5%/86400s</td></tr><tr><td>BOB</td><td>tBTC</td><td><a href="https://www.diadata.org/#disable">DIA</a></td><td>0.5%/86400s</td></tr><tr><td>BOB</td><td>USDT</td><td><a href="https://www.diadata.org/#disable">DIA</a></td><td>0.5%/86400s</td></tr><tr><td>BOB</td><td>USDC</td><td><a href="/pages/5jvsDprvf65Sw7MYKJmU">DIA</a></td><td>0.5%/86400s</td></tr><tr><td>BOB</td><td>solvBTC</td><td><a href="https://www.apro.com/">APRO</a></td><td>0.5%/3600s</td></tr><tr><td>BOB</td><td>solvBTC.BBN</td><td><a href="https://www.apro.com/">APRO</a></td><td>0.5%/3600s</td></tr></tbody></table>


# Deployed Contracts

## BEVM Mainnet

### Token Contracts

**WBTC**: `0xB5136FEba197f5fF4B765E5b50c74db717796dcD`

**wstBTC**: `0x2967E7Bb9DaA5711Ac332cAF874BD47ef99B3820`

**satUSD**: `0xF2692468666E459D87052f68aE474E36C1a34fbB`

### System Contracts

<table><thead><tr><th>Contract Name</th><th>Contract Address</th><th data-hidden></th></tr></thead><tbody><tr><td><code>SatoshiCore</code></td><td><code>0x365b4915289f2b27dcA58BEBd2960ECDCC2AE3b6</code></td><td></td></tr><tr><td><code>PriceFeedAggregator</code></td><td><code>0x3dD4f09cef28842cE9958571F4Aab9dc605a2fF4</code></td><td></td></tr><tr><td><code>BorrowerOperations</code></td><td><code>0xaA1774e83127C741Fc7dA68550E6C17b3b2B5AcB</code></td><td></td></tr><tr><td><code>LiquidationManager</code></td><td><code>0x31bacB4288A242daC87042EF051F40dB6745921C</code></td><td></td></tr><tr><td><code>StabilityPool</code></td><td><code>0x5C85670c52AC0B135C84747B16B1d845007a2437</code></td><td></td></tr><tr><td><code>RewardManager</code></td><td><code>0x023739ff540052927Fde6A4b7154Ce3fFc9382B8</code></td><td></td></tr><tr><td><code>GasPool</code></td><td><code>0x9443e65c075353Bb264F2F32811aAce8cE34aDfa</code></td><td></td></tr><tr><td><code>DebtToken</code></td><td><code>0xF2692468666E459D87052f68aE474E36C1a34fbB</code></td><td></td></tr><tr><td><code>Factory</code></td><td><code>0xC3144471bD68ACC2ab108819CFDf8548543176A5</code></td><td></td></tr><tr><td><code>CommunityIssuance</code></td><td><code>0xD70Be421183df64B26e5f2A13937C3A0C04FC022</code></td><td></td></tr><tr><td><code>OSHIToken</code></td><td><code>0xf1067e81AdF2c2F9cAA8edbB75b6ccDfAD4dcBF1</code></td><td></td></tr><tr><td><code>VestingManager</code></td><td><code>0xBdbb1993e052c449bC5F9d277ab507268C664Ca9</code></td><td></td></tr><tr><td><code>SatoshiLPFactory</code></td><td><code>0xc41BC99759Eaf63467FDAe72c209C652647C6f95</code></td><td></td></tr></tbody></table>

### Helpers Contracts

<table><thead><tr><th>Contract Name</th><th>Contract Address</th><th data-hidden></th></tr></thead><tbody><tr><td><code>MultiCollateralHintHelpers</code></td><td><code>0x12b2Ce5ee42061c12fFaB288879CA68a3668Dc0d</code></td><td></td></tr><tr><td><code>MultiTroveGetter</code></td><td><code>0x4a5381D7D7b92eB6134713657f3FA2De51976F51</code></td><td></td></tr><tr><td><code>SatoshiBORouter</code></td><td><code>0xfB6323FB3db8FCEF053a3dbaeA651b5d9e49457f</code></td><td></td></tr><tr><td><code>ReferralManager</code></td><td><code>0xD8519c1243038e55aC42b0785396dd8Dd6699F01</code></td><td></td></tr></tbody></table>

### Collateral Contracts

* WBTC

<table><thead><tr><th width="294">Contract Name</th><th>Contract Address</th><th data-hidden></th></tr></thead><tbody><tr><td><code>PriceFeedDIAOracle</code></td><td><code>0x688a62Cb8CE36907B6f3B0C5FEa62fD41F1D501d</code></td><td></td></tr><tr><td><code>SortedTroves</code></td><td><code>0x563337073F6299e49b11A69d4Bd8d368c16D38F6</code></td><td></td></tr><tr><td><code>TroveManager</code></td><td><code>0x0598Ef47508Ec11a503670Ac3B642AAE8EAEdEFA</code></td><td></td></tr></tbody></table>

* wstBTC

<table><thead><tr><th width="294">Contract Name</th><th>Contract Address</th><th data-hidden></th></tr></thead><tbody><tr><td><code>PriceFeedWstBTCWithDIAOracle</code></td><td><code>0x86C11DBf9a8E4cAFa2D3dc3589d7792e6594D4C0</code></td><td></td></tr><tr><td><code>SortedTroves</code></td><td><code>0xE372f71b82b7BB43daad8E8aDb72Dfcf1CCbd268</code></td><td></td></tr><tr><td><code>TroveManager</code></td><td><code>0xa794a7Fd668FE378E095849caafA8C8dC7E84780</code></td><td></td></tr></tbody></table>

## Bitlayer Mainnet

### Token Contracts

**WBTC**: `0xfF204e2681A6fA0e2C3FaDe68a1B28fb90E4Fc5F`

**stBTC**: `0xf6718b2701d4a6498ef77d7c152b2137ab28b8a3`

**satUSD**: `0xa1e63CB2CE698CfD3c2Ac6704813e3b870FEDADf`

### System Contracts

<table><thead><tr><th>Contract Name</th><th>Contract Address</th><th data-hidden></th></tr></thead><tbody><tr><td><code>SatoshiCore</code></td><td><code>0x6401446A7f9989158F8BD65aeed43332eeFd5216</code></td><td></td></tr><tr><td><code>PriceFeedAggregator</code></td><td><code>0xB7DeeFa4e0f8bEa85421f0acee38a33E8C2E00d5</code></td><td></td></tr><tr><td><code>BorrowerOperations</code></td><td><code>0xF0BE7E8923deF6c224d350b5aE53CB98d8bF485a</code></td><td></td></tr><tr><td><code>LiquidationManager</code></td><td><code>0x802fC8764Ef4C700B9910993fc72624f7CAd2681</code></td><td></td></tr><tr><td><code>StabilityPool</code></td><td><code>0xd9a9b39e972aC67259e39b22E536fCdfd5b8451c</code></td><td></td></tr><tr><td><code>RewardManager</code></td><td><code>0xfc8ab0e486F17c78Eaf59A416168d0F89D9373eD</code></td><td></td></tr><tr><td><code>GasPool</code></td><td><code>0x3F0F49a9a9282D3E64396Caf5C512Daa1A92f9C0</code></td><td></td></tr><tr><td><code>DebtToken</code></td><td><code>0xa1e63CB2CE698CfD3c2Ac6704813e3b870FEDADf</code></td><td></td></tr><tr><td><code>Factory</code></td><td><code>0x28d2fAdEE77f3B89661a5fD30B4d820B3baf05b2</code></td><td></td></tr><tr><td><code>CommunityIssuance</code></td><td><code>0x52E78357D3f0d1232E37feA677D19D3b688e7B26</code></td><td></td></tr><tr><td><code>OSHIToken</code></td><td><code>0xF0225d5b6E5d3987499B52B3A95A3afB3D8D1263</code></td><td></td></tr><tr><td><code>SatoshiLPFactory</code></td><td><code>0x68FA6B7f054E8ca6a5a57d66f3c744bC29AC7a95</code></td><td></td></tr><tr><td><code>NexusYieldManager</code></td><td><code>0xC562321a494290bE5FeDF9092cee35DE6f884D50</code></td><td></td></tr></tbody></table>

### Helpers Contracts

<table><thead><tr><th>Contract Name</th><th>Contract Address</th><th data-hidden></th></tr></thead><tbody><tr><td><code>MultiCollateralHintHelpers</code></td><td><code>0x96173C9319A1A52C94bC99C6401bDDC28BAc132c</code></td><td></td></tr><tr><td><code>MultiTroveGetter</code></td><td><code>0x07f69b1Ed174AF500B23becdEDc6Cbe7d47c4E73</code></td><td></td></tr><tr><td><code>SatoshiPeriphery</code></td><td><code>0x95d4adBd1aD72B7c00565B241313c363EC68cA73</code></td><td></td></tr></tbody></table>

### Collateral Contracts

* WBTC

<table><thead><tr><th width="294">Contract Name</th><th>Contract Address</th><th data-hidden></th></tr></thead><tbody><tr><td><code>PriceFeedChainlink</code></td><td><code>0x78C04c4A2A606077be0Aa04721d6b144Df44Df52</code></td><td></td></tr><tr><td><code>SortedTroves</code></td><td><code>0x49B0050fFA9a3e1033c1c8d963665F3ad0716eE4</code></td><td></td></tr><tr><td><code>TroveManager</code></td><td><code>0xf1A7b474440702BC32F622291B3A01B80247835E</code></td><td></td></tr></tbody></table>

* stBTC

<table><thead><tr><th width="294">Contract Name</th><th>Contract Address</th><th data-hidden></th></tr></thead><tbody><tr><td><code>PriceFeedWstBTCWithDIAOracle</code></td><td><code>0x40918B4649a618eEE47f62Be7Fb6ce5b9906da9A</code></td><td></td></tr><tr><td><code>SortedTroves</code></td><td><code>0x709795675EF595a4C2C4586517b71211Ac780915</code></td><td></td></tr><tr><td><code>TroveManager</code></td><td><code>0xe9897fe6C8bf96D5ef8B0ECC7cBfEdef9818232c</code></td><td></td></tr></tbody></table>

## BOB Mainnet

### Token Contracts

**satUSD**: `0x78Fea795cBFcC5fFD6Fb5B845a4f53d25C283bDB`

**WETH:** `0x4200000000000000000000000000000000000006`

**WBTC**: `0x03C7054BCB39f7b2e5B2c7AcB37583e32D70Cfa3`

**tBTC**: `0xBBa2eF945D523C4e2608C9E1214C2Cc64D4fc2e2`

**USDT**:  `0x05D032ac25d322df992303dCa074EE7392C117b9`

**USDC**: `0xe75D0fB2C24A55cA1e3F96781a2bCC7bdba058F0`

### System Contracts

<table><thead><tr><th>Contract Name</th><th>Contract Address</th><th data-hidden></th></tr></thead><tbody><tr><td><code>SatoshiCore</code></td><td><code>0xd6dBF24f3516844b02Ad8d7DaC9656F2EC556639</code></td><td></td></tr><tr><td><code>PriceFeedAggregator</code></td><td><code>0x665126290A2FE0E77277E07eaC59fd760662a1d6</code></td><td></td></tr><tr><td><code>BorrowerOperations</code></td><td><code>0x5c1f44E8deD90B0efE155CbEe47f9D0Bcf0B17E8</code></td><td></td></tr><tr><td><code>LiquidationManager</code></td><td><code>0x59cda9eFfd5E873966d09f4aa20c459bD1283cEF</code></td><td></td></tr><tr><td><code>StabilityPool</code></td><td><code>0xCF444925ACE7653343cf3510fE99591395ae360B</code></td><td></td></tr><tr><td><code>RewardManager</code></td><td><code>0x1E4DC3B9963365760e2048AD05eE6f11Dc287c0B</code></td><td></td></tr><tr><td><code>GasPool</code></td><td><code>0xDB4E4D03E3d0D1C0997161E1e614d3805a32f86e</code></td><td></td></tr><tr><td><code>DebtToken</code></td><td><code>0x78Fea795cBFcC5fFD6Fb5B845a4f53d25C283bDB</code></td><td></td></tr><tr><td><code>Factory</code></td><td><code>0xfBD37E6bAcAb34AfD2eBb99D415bDd1eB66f3fD9</code></td><td></td></tr><tr><td><code>CommunityIssuance</code></td><td><code>0x026D234dfB4b274F2a8687fe4942d6cf9D239bD6</code></td><td></td></tr><tr><td><code>OSHIToken</code></td><td><code>0xB18f1D0202f38BD4aA3c1A5Aa2fC8823aE4786b4</code></td><td></td></tr><tr><td><code>SatoshiLPFactory</code></td><td><code>0x2C50B3F839fa2A263A57A7d38C4cD062D5F25D68</code></td><td></td></tr><tr><td><code>NexusYieldManager</code></td><td><code>0x7253493c3259137431a120752e410b38d0c715C2</code></td><td></td></tr></tbody></table>

### Helpers Contracts

<table><thead><tr><th>Contract Name</th><th>Contract Address</th><th data-hidden></th></tr></thead><tbody><tr><td><code>MultiCollateralHintHelpers</code></td><td><code>0xE651B5A79059571c4ef63768bDf8b612F03F8d20</code></td><td></td></tr><tr><td><code>MultiTroveGetter</code></td><td><code>0xf2E11B71c19B5CE97faa1646aE9058e513cfb50c</code></td><td></td></tr><tr><td><code>SatoshiPeriphery</code></td><td><code>0x4a54D62d212BA989Fff63641C055efD9e57fAfd2</code></td><td></td></tr></tbody></table>

### Collateral Contracts

* WETH

<table><thead><tr><th width="294">Contract Name</th><th>Contract Address</th><th data-hidden></th></tr></thead><tbody><tr><td><code>PriceFeedAPI3Oracle</code></td><td><code>0x4855C642C0339F702CBF127940fd9017F12A01ab</code></td><td></td></tr><tr><td><code>SortedTroves</code></td><td><code>0xa4FA738DEF9E3C5Ee3C90Ef39A405EDf682981E1</code></td><td></td></tr><tr><td><code>TroveManager</code></td><td><code>0xc50D117C21054455aE9602237d3d17ca5Fa91288</code></td><td></td></tr></tbody></table>

* WBTC

<table><thead><tr><th width="294">Contract Name</th><th>Contract Address</th><th data-hidden></th></tr></thead><tbody><tr><td><code>PriceFeedAPI3Oracle</code></td><td><code>0x4851b1F29E2A2802bb97136aEA4106992FC82f33</code></td><td></td></tr><tr><td><code>SortedTroves</code></td><td><code>0x1085C347F4E4ABd95C087cdB5b8ca5160f68C55c</code></td><td></td></tr><tr><td><code>TroveManager</code></td><td><code>0xBDFedF992128CbF10974DC935976116e10665Cc9</code></td><td></td></tr></tbody></table>

* tBTC

<table><thead><tr><th width="294">Contract Name</th><th>Contract Address</th><th data-hidden></th></tr></thead><tbody><tr><td><code>PriceFeedDIAOracle</code></td><td><code>0x18D2d92cecE0E983C77c1F705F7617b6826c33e8</code></td><td></td></tr><tr><td><code>SortedTroves</code></td><td><code>0x126F323Db675939BB114A53D8FFb454860D55fd6</code></td><td></td></tr><tr><td><code>TroveManager</code></td><td><code>0x8FAE9D3dBeE1c66b84E90df21A1DbdBab9262843</code></td><td></td></tr></tbody></table>

## BSquared Mainnet

### Token Contracts

**satUSD**: `0x62b4B8F5a03e40b9dAAf95c7A6214969406e28c3`

**WBTC**: `0x4200000000000000000000000000000000000006`

**uBTC**: `0x796e4D53067FF374B89b2Ac101ce0c1f72ccaAc2`

**USDT**:  `0x681202351a488040Fa4FdCc24188AfB582c9DD62`

### System Contracts

<table><thead><tr><th>Contract Name</th><th>Contract Address</th><th data-hidden></th></tr></thead><tbody><tr><td><code>SatoshiCore</code></td><td>0x2c929d8DFC5915Af4115f158CcaFf5dcA41F5feD</td><td></td></tr><tr><td><code>PriceFeedAggregator</code></td><td>0x9F5E013D49AFE38c17f971c29C484AD3782bc71F</td><td></td></tr><tr><td><code>BorrowerOperations</code></td><td>0xD749E400123E52139eDCFa5736dea6A1F9Fb7a7d</td><td></td></tr><tr><td><code>LiquidationManager</code></td><td>0xb6a6da71Ce7370Cf0883c1a38B7B4fE5902Ad783</td><td></td></tr><tr><td><code>StabilityPool</code></td><td>0x4437F8905611a336e5486EfF23F6aD1C0D76fEF1</td><td></td></tr><tr><td><code>RewardManager</code></td><td>0xc152ae5e039F278FF8844744AF6472d5ab8261e1</td><td></td></tr><tr><td><code>GasPool</code></td><td>0x5ef4F1F27B4B0aCbb19Be52A30caBDdAE8547A7c</td><td></td></tr><tr><td><code>DebtToken</code></td><td>0x62b4B8F5a03e40b9dAAf95c7A6214969406e28c3</td><td></td></tr><tr><td><code>Factory</code></td><td>0x38D15DeB9A3A9F875b7e656bE503cd2F3145202F</td><td></td></tr><tr><td><code>CommunityIssuance</code></td><td>0xF7C04192F44a057bB180C9bF5FA516FB6e500D1E</td><td></td></tr><tr><td><code>OSHIToken</code></td><td>0x3996dA0ff842e2245385Cd115e606ff17BB1a2DC</td><td></td></tr><tr><td><code>SatoshiLPFactory</code></td><td>0x013B6E8e29363B9Df0FD34E9811C8eDB50a80Feb</td><td></td></tr><tr><td><code>NexusYieldManager</code></td><td>0x7Dd5B009Eb739e0Ba53da6FAB62795144464f17D</td><td></td></tr></tbody></table>

### Helpers Contracts

<table><thead><tr><th>Contract Name</th><th>Contract Address</th><th data-hidden></th></tr></thead><tbody><tr><td><code>MultiCollateralHintHelpers</code></td><td>0xC388Ee9C9Cae2C961B502b27411283039Cf194c3</td><td></td></tr><tr><td><code>MultiTroveGetter</code></td><td>0x411B64B21683FF499Bf8b136b6D4E9E1FC63747c</td><td></td></tr><tr><td><code>SatoshiPeriphery</code></td><td>0x84001f56ef4d0F3881a5d551D3cE363464e8cAc1</td><td></td></tr></tbody></table>

### Collateral Contracts

* WBTC

<table><thead><tr><th width="294">Contract Name</th><th>Contract Address</th><th data-hidden></th></tr></thead><tbody><tr><td><code>priceFeedRedstone</code></td><td>0xdee136cd19cBfb6571c93E834071E00d721E5cF0</td><td></td></tr><tr><td><code>SortedTroves</code></td><td>0x0AD52d5daBB835aa4C2420550f3a59e9b424C32C</td><td></td></tr><tr><td><code>TroveManager</code></td><td>0xa79241206c3008bE4EB4B62A48A4F98303060D4f</td><td></td></tr></tbody></table>

* uBTC

<table><thead><tr><th width="332">Contract Name</th><th>Contract Address</th><th data-hidden></th></tr></thead><tbody><tr><td><code>PriceFeedChainlinkAggregator</code></td><td><code>0x6C481F0d17Cd6d1299D5f211217e86f25d829B00</code></td><td></td></tr><tr><td><code>SortedTroves</code></td><td><code>0x88f7E950f26c0FAf5D34535A34f9d503Dd82bEF8</code></td><td></td></tr><tr><td><code>TroveManager</code></td><td><code>0xc6F361db5eC432E95D0A08A9Fbe0d7412971cE6c</code></td><td></td></tr></tbody></table>


# Audit Reports

Satoshi Protocol prioritizes security in its implementation.. The system has been designed to be safe and secure, and we have spent all the necessary resources in order to ensure that the protocol matches the highest security standards.

Below are the links to all audit reports:

| Auditor                                                                                                                           | Audit Type     | Date        |
| --------------------------------------------------------------------------------------------------------------------------------- | -------------- | ----------- |
| [Scalebit](https://github.com/Satoshi-Protocol/satoshi-audit-report/blob/main/Scalebit%20Satoshi%20Protocol%20Audit%20Report.pdf) | Smart Contract | Mar 15 2024 |
| [Supremacy](https://github.com/Satoshi-Protocol/satoshi-audit-report/blob/main/Supremacy-Audit-Report-Satoshiprotocol-v1.0.pdf)   | Smart Contract | Mar 19 2024 |
| [billh](https://github.com/Satoshi-Protocol/satoshi-audit-report/blob/main/satoshi-audit-20240709-finalized.pdf)                  | Smart Contract | Jul 9, 2024 |


# Create Position

Users can deposit BTC and other assets as collateral to mint the stablecoin satUSD. To create a position, follow these steps:

1. Visit the Position page at [Satoshi Protocol Mint Page](https://app.satoshiprotocol.org/mint).
2. Click on "Create Position."
3. Deposit BTC and mint satUSD, making sure the collateral ratio remains above 110% and that you mint a minimum of 12 satUSD.
4. Click "Approve" and then confirm the transaction in your wallet.
5. Once approved, click "Create Position."

<figure><img src="/files/Kw45GP9Sr02y3PwKS62R" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/Aoo2zPeK730M4ya7TYpU" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/BvTuTeFzxpAQ3ggbQXEO" alt=""><figcaption></figcaption></figure>

**For a step-by-step guide, refer to this video tutorial:**

{% embed url="<https://youtu.be/jWG-4kpvS0U>" %}


# Deposit into Stability Pool

Users can deposit satUSD into the Stability Pool to potentially benefit from discounted collateral during liquidations. To do this, follow these steps:

1. Visit the Stability Pool page at [Satoshi Protocol Stability Pool](https://app.satoshiprotocol.org/earn/sp).
2. Input the amount of satUSD you wish to deposit.
3. Click "Deposit."

<figure><img src="/files/hujqHgeoct6L2JSFQ8bD" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/ZJIlkIYpecmcP2NKX0mH" alt=""><figcaption></figcaption></figure>


# Introduction

### Overview of the SDK

The Satoshi Protocol SDK is a comprehensive toolkit for developers to integrate and interact with the Satoshi Protocol, a DeFi platform on the blockchain. This SDK is structured to facilitate various operations such as minting, earning, staking, and cross-chain functionality. Here’s a brief overview of the main components and their functions:

* Package: <https://www.npmjs.com/package/satoshi-sdk>
* GitHub: <https://github.com/Satoshi-Protocol/satoshi-sdk>

#### Directory Structure:

* **`/src`**: Contains the source code for the SDK.
  * **`abi`**: Holds ABI files necessary for smart contract interactions.
  * **`api`**: Functions for direct API calls to the Satoshi Protocol.
  * **`config`**: Configuration files that specify chain parameters and protocol settings.
  * **`core`**: Core functionalities such as borrow, deposit, repay, and withdraw operations.
  * **`core/utils`**: Utility functions that support various features like calculations, hints, and total debt amounts.
  * **`types`**: TypeScript type definitions for assets and configurations.

### Key Features:

#### **Trove Operations**:

* **OpenTrove**
  * **Purpose**: Mint satUSD stable coins by depositing collateral into a new trove.
  * **Usage**: Used to initiate participation in the lending system, allowing users to lock in collateral in exchange for stable coins.
* **Deposit**
  * **Purpose**: Add additional collateral to an existing trove to increase the collateral ratio.
  * **Usage**: Helps maintain a safe buffer against price fluctuations, potentially allowing for further minting without reducing safety margins.
* **Withdraw**
  * **Purpose**: Remove collateral from a trove while maintaining the required minimum collateral ratio.
  * **Usage**: Permits users to retrieve excess collateral, useful when the collateral's value increases or the debt is partially repaid.
* **Borrow (Mint)**
  * **Purpose**: Mint more satUSD stable coins against the existing collateral in the trove.
  * **Usage**: Enables further leveraging of investments by increasing stable coins minting against secured collateral.
* **Repay**
  * **Purpose**: Pay back minted satUSD stable coins to reduce the trove’s debt.
  * **Usage**: Reduces interest liabilities and risk of liquidation by improving the collateral-to-debt ratio.
* **Close**
  * **Purpose**: Close the trove by repaying all debts and reclaiming all collateral.
  * **Usage**: Ends participation in the minting system and liquidates the position, returning all collateral to the user.
* **Redeem**
  * **Purpose**: Let users redeem satUSD for collateral, ensuring the stability of the peg to the USD.

#### **Stability Pool Operations**:

* **Deposit**
  * **Purpose**: Users deposit satUSD stable coins into the Stability Pool to participate in covering liquidations and earning returns from the pool's operations.
  * **Usage**:
    1. **Enhance Pool Stability**: By contributing to the pool, users help maintain overall system stability.
    2. **Earn Returns**: Participants can earn rewards based on the pool's performance and their contribution.
* **Withdraw**
  * **Purpose**: Allows users to withdraw their deposited satUSD stable coins from the Stability Pool, reducing their involvement but also their potential earnings.
  * **Usage:**
    1. **Retrieve Liquidity**: Users can withdraw their contributions for personal liquidity needs.
    2. **Adjust Investment**: Manage exposure to the Stability Pool based on market conditions or personal strategy changes.
* **Claim**
  * **Purpose**: Allows users to claim accumulated collateral gains from the Stability Pool.
  * **Usage:** This function is crucial for users who have contributed to the pool and have earned returns as the pool liquidates troves that fall below the required collateral-to-debt ratio.

#### Nexus Yield Module (NYM) Operations:

* **Swap In**
  * **Purpose**: Allows users to swap stablecoins or other supported assets into $satUSD, the protocol’s native stablecoin.
* **Swap Out**
  * **Purpose**: Allows users to schedule the conversion of satUSD back into other stablecoins or supported assets, such as USDT or USDC. The Swap-out process includes a pending period before the assets can be withdrawn.
* **Withdraw**
  * **Purpose**: Allows users to withdraw previously scheduled withdrawals of assets, such as USDT, USDC, or other supported tokens.

***

This SDK is built with flexibility in mind, supporting multiple blockchain networks and providing a rich set of features to engage with decentralized finance applications.

{% hint style="info" %}
If you have any problems while developing, please don't hesitate to let us know. Contact us on [Discord](https://discord.gg/CakRgSnPVS) or [Telegram](https://t.me/satoshi_sat).
{% endhint %}


# Get Started

### Prerequisites

Before you begin, ensure you have the following installed:

* Node.js (version 18 or higher)
* npm / yarn / pnpm
* Git (for cloning the repository)

1. **Install SDK**
   * install the required npm packages:
   * ```bash
     npm install satoshi-sdk
     ```
2. **import package**
   * In your TypeScript or JavaScript project, import the SDK:
   * ```javascript
     import { SatoshiClient } from 'satoshi-sdk';
     ```

### Example: Calculate Minting Fee

This example shows how to use the Satoshi Protocol SDK to calculate the minting fee for a given amount of satUSD using a specific collateral type on the `BEVM_MAINNET`. It utilizes several functions and configurations provided by the SDK to accomplish this.

#### Code

```typescript
import { getPublicClientByConfig, ProtocolConfigMap } from 'satoshi-sdk';

// Define the protocol configuration for the BEVM_MAINNET
const protocolConfig = ProtocolConfigMap.BEVM_MAINNET;

// Select the first collateral type available in the configuration
const collateral = protocolConfig.COLLATERALS[0];

// Get a public client configured for the selected protocol configuration
const publicClient = getPublicClientByConfig(protocolConfig);

// Define the amount for which the minting fee needs to be calculated
const amount = 123456789n;  // Using a BigInt for large numbers

// Async function to perform the minting fee calculation
async function calculateMintingFee() {
  const result = await getBorrowingFee(
    {
      publicClient,
      protocolConfig,
      troveManagerAddr: collateral.TROVE_MANAGER_BEACON_PROXY_ADDRESS,
    },
    amount
  );
  
  // Log the result to the console
  console.log('Minting Fee:', result);
}

// Call the function to execute the operation
calculateMintingFee();
```


# Position

#### Overview

The TroveManager is a central component of the Satoshi Protocol SDK, designed to oversee and manage user troves within the decentralized lending platform. A trove is essentially a personal vault where users deposit collateral to secure loans in the form of satUSD stablecoins. The TroveManager automates the management of these troves, ensuring that they maintain a healthy collateral-to-debt ratio and comply with the platform's stability requirements.


# Operation - OpenTrove

### Key Steps

1. **Chain and Account Validation**:
   * Ensures the operation is being performed on a supported chain and that a wallet account is connected.
2. **Set Referrer**:
   * Optionally sets a referrer if one is provided, validating the referrer details.
3. **Delegate Approval**:
   * Check if the delegate is approved, and if not, perform the approval.
4. **Collateral Checks**:
   * Verifies the user has enough ERC20 token balance and allowance to proceed with opening a trove.
5. **Open Trove**:
   * Executes the transaction to open a trove, calculating the total debt amount based on the minting amount.

### Usage

This function can be called with appropriate parameters to open a trove. It handles all necessary checks and operations to ensure the transaction is successfully executed.

### Example

```typescript
import { parseUnits, parseEther } from 'viem';
import { walletClient, publicClient, protocolConfig, collateral, wbtcABI, DEBT_TOKEN_DECIMALS } from 'satoshi-sdk';

// Step 1: Parse the minting amount and collateral amount
const mintingAmt = parseUnits('10', DEBT_TOKEN_DECIMALS); // Converts the string '10' into a BigNumber using the specified number of decimals
const totalCollAmt = parseEther('0.1'); // Converts the Ether string '0.1' to its Wei equivalent as a BigNumber

// Step 2: convert BEVM BTC to WBTC
const depositHash = await walletClient.writeContract({
  chain: protocolConfig.CHAIN,
  account: walletClient.account,
  address: collateral.ADDRESS,
  abi: wbtcABI,
  functionName: 'deposit',
  args: [],
  value: totalCollAmt,
});
await waitTxReceipt({ publicClient }, depositHash); // Wait for the transaction to be confirmed

// Step 3: Open a trove
const receipt = await satoshiClient.Postition.doOpenTrove({
  collateral,
  mintingAmt,
  totalCollAmt,
});
```


# Operation - Deposit

### Key Steps

1. **Convert Collateral Amount**:
   * Convert the desired amount of collateral into Wei using the `parseEther` function from the `viem` library. This ensures that the amount is in the smallest denomination of ether, which is necessary for precise blockchain transactions.
2. **Record the Deposit**:
   * Once the transaction is confirmed, record the deposit within the protocol by calling the `doDeposit` function. This step updates the user's trove to reflect the added collateral, which could affect their minting capacity and collateral-to-debt ratio.

### Usage

This function is typically used when a user wishes to:

* **Increase Minting Capacity**: By adding more collateral, a user can safely mint more satUSD stablecoins while maintaining a healthy collateral-to-debt ratio.
* **Enhance Financial Security**: More collateral in a trove provides a larger buffer against potential liquidation in case of market volatility.

### Example

```typescript
import { parseEther } from 'viem';
import { protocolConfig, wbtcABI } from 'satoshi-sdk';

async function addCollateral() {
  // Step 1: Convert the amount to add to Wei
  const addedCollAmt = parseEther('0.2');  // Let's add 0.2 BTC worth of WBTC
  const collateral = protocolConfig.COLLATERALS[0];  // WBTC Collateral

  // Step 2: Record the deposit in the protocol
  const receipt = await satoshiClient.Postition.doDeposit({
    collateral,
    addedCollAmt,
  });

  console.log('Deposit successful:', receipt);
}

addCollateral();
```


# Operation - Mint

### Key Steps

1. **Parse Minting Amount**:
   * Convert the desired minting amount into the correct unit using the `parseUnits` function. This function requires specifying the number of decimals to use, which aligns with the debt token's specifications (usually 18 decimals, like Ethereum).
2. **Execute Minting Transaction**:
   * Call the `doBorrow` function with the necessary parameters, including the public and wallet clients, protocol configuration, collateral information, and the parsed minting amount.

### Usage

This function is typically used when a user needs to:

* **Increase Leverage**: Mint additional stablecoins to leverage their investment position further without selling existing collateral.
* **Manage Financial Needs**: Access additional funds for other investment opportunities or personal expenditures without liquidating their assets.

### Example

```typescript
import { parseUnits } from 'viem';
import { publicClient, walletClient, protocolConfig, collateral } from 'satoshi-sdk';

const DEBT_TOKEN_DECIMALS = 18; // Standard decimals for Ethereum-based tokens

async function increaseMinting() {
  // Step 1: Define the amount to mint
  const addMintingAmt = parseUnits('5', DEBT_TOKEN_DECIMALS);  // Mint an additional 5 SAT stablecoins

  // Step 2: Execute the minting transaction
  const receipt = await satoshiClient.Postition.doBorrow({
    publicClient,
    walletClient,
    protocolConfig,
    collateral,
    addMintingAmt,
  });

  console.log('Minting additional stablecoins successful:', receipt);
}

increaseMinting();
```


# Operation - Withdraw

### Key Steps

1. **Parse Withdrawal Amount**:
   * Use the `parseEther` function to convert the desired amount of collateral to be withdrawn into Wei. This function ensures that the amount is accurately converted to the smallest unit of ether, allowing precise handling in blockchain transactions.
2. **Execute Withdrawal Transaction**:
   * Call the `doWithdraw` function, passing the necessary parameters such as the public and wallet clients, protocol configuration, collateral information, and the amount of collateral to withdraw. This function handles the transaction on the blockchain and adjusts the user's trove accordingly.

### Usage

This function is typically used when a user wants to:

* **Access Liquidity**: Withdraw a portion of their collateral for immediate liquidity needs, such as covering expenses or reinvesting in other opportunities.
* **Adjust Collateral Levels**: Decrease their collateral exposure due to changes in market conditions or personal risk preferences.

### Example

```typescript
import { parseEther } from 'viem';
import { publicClient, walletClient, protocolConfig, collateral } from 'satoshi-sdk';

async function withdrawCollateral() {
  // Step 1: Define the amount to withdraw
  const withdrawCollAmt = parseEther('0.01');  // Withdrawing 0.01 ETH worth of collateral

  // Step 2: Execute the withdrawal transaction
  const receipt = await satoshiClient.Postition.doWithdraw({
    publicClient,
    walletClient,
    protocolConfig,
    collateral,
    withdrawCollAmt,
  });

  console.log('Withdrawal successful:', receipt);
}

withdrawCollateral();
```

This example function, `withdrawCollateral`, demonstrates the step-by-step process to withdraw a small amount of collateral from a trove. It includes the precise conversion of the desired withdrawal amount and the execution of the withdrawal transaction, ensuring the trove remains compliant with the protocol's requirements.


# Operation - Repay

### Key Steps

1. **Parse Repayment Amount**:
   * Convert the repayment amount into the correct unit using the `parseUnits` function, specifying the number of decimals that match the debt token's specifications (usually 18, like Ethereum).
2. **Execute Repayment Transaction**:
   * Use the `doRepay` function to initiate the repayment. This function requires parameters such as the public and wallet clients, protocol configuration, collateral details, and the repayment amount. It processes the transaction on the blockchain and updates the user's debt status accordingly.

### Usage

This function is typically used by users who wish to:

* **Decrease Financial Liabilities**: Repaying part of the minted amount to reduce the accruing interest and improve financial standing.
* **Improve Trove Health**: Enhancing the collateral-to-debt ratio to secure the trove against potential liquidations in volatile market conditions.

### Example

```typescript
import { parseUnits } from 'viem';
import { publicClient, walletClient, protocolConfig, collateral } from 'satoshi-sdk';

async function repayDebt() {
  // Step 1: Define the amount to repay
  const repayAmt = parseUnits('5', DEBT_TOKEN_DECIMALS);  // Repaying 5 SAT stablecoins

  // Step 2: Execute the repayment transaction
  const receipt = await satoshiClient.Postition.doRepay({
    publicClient,
    walletClient,
    protocolConfig,
    collateral,
    repayAmt,
  });

  console.log('Repayment successful:', receipt);
}

repayDebt();
```

This example function, `repayDebt`, outlines the process of repaying a specified amount of satUSD stablecoins. It demonstrates how to correctly convert the repayment amount to the proper unit and execute the transaction, ensuring the debt is correctly reduced in the user's trove.


# Operation - Redemption

The Redeem operation within the TroveManager component of the Satoshi Protocol SDK allows users to exchange their satUSD stablecoins for an equivalent amount of collateral at the current redemption rate. This function is crucial for users who wish to exit their investment positions by converting their stablecoins back into the original collateral asset, typically during favorable market conditions.

### Key Steps

1. **Estimate Redeem Amount**:&#x20;
   * Determine the amount of satUSD stablecoins you wish to redeem. This should be specified using the `parseUnits` function, which converts the human-readable amount into the smallest unit of the debt token based on its decimals.
2. **Execute Redeem Transaction**:
   * Call the `doRedeem` method on the TroveManager with the specified collateral and the amount of satUSD stablecoins to be redeemed. This operation interacts with the blockchain to exchange the stablecoins for collateral.

### Example

```typescript
import { parseUnits } from '@ethersproject/units';
import { satoshiClient, collateral, DEBT_TOKEN_DECIMALS } from 'satoshi-sdk';

async function redeemCollateral() {
  // Step 1: Define the amount of SAT stablecoins you want to redeem
  const estimatedRedeemAmt = parseUnits('5', DEBT_TOKEN_DECIMALS);  // Redeeming 5 SAT

  // Step 2: Execute the redeem operation
  const receipt = await satoshiClient.Postition.doRedeem(collateral, estimatedRedeemAmt);

  // Output the transaction receipt
  console.log('Redeem Receipt:', receipt);
}

redeemCollateral();
```


# Stability Pool

#### Overview

The Stability Pool (SP) serves as a crucial mechanism within the Satoshi Protocol, designed to preserve the system's stability by providing liquidity for settling debts from liquidated Positions. When a Position undergoes liquidation, the SP uses satUSD to clear the debt and, in return, acquires the collateral from the liquidated Position.


# Operation - Deposit

The Stability Pool in the Satoshi Protocol SDK offers critical functions for managing liquidity and stability within the decentralized finance environment. It allows users to deposit and withdraw satUSD stablecoins, contributing to the pool's ability to offset bad debts and providing a mechanism for earning rewards.

### **Key Steps**:

1. **Convert Deposit Amount**:
   * Use `parseUnits` to convert the desired amount of satUSD stablecoins to the correct unit.
2. **Execute Deposit Transaction**:
   * Call the `doDeposit` method to process the deposit into the Stability Pool. This transaction updates the pool's balance and adjusts the user's position.

### **Example**

```typescript
import { parseUnits } from '@ethersproject/units';
import { satoshiClient, DEBT_TOKEN_DECIMALS } from 'satoshi-sdk';

async function depositToStabilityPool() {
  // Step 1: Define the deposit amount in SAT stablecoins
  const depositAmt = parseUnits('5', DEBT_TOKEN_DECIMALS);  // Depositing 5 SAT

  // Step 2: Execute the deposit transaction
  const receipt = await satoshiClient.StabilityPool.doDeposit(depositAmt);

  // Output the transaction receipt
  console.log('Deposit Receipt:', receipt);
}

depositToStabilityPool();
```


# Operation - Withdraw

The Stability Pool in the Satoshi Protocol SDK offers critical functions for managing liquidity and stability within the decentralized finance environment. It allows users to deposit and withdraw satUSD stablecoins, contributing to the pool's ability to offset bad debts and providing a mechanism for earning rewards.

### **Key Steps**:

1. **Convert Withdrawal Amount**:
   * Similar to deposit, use `parseUnits` to specify the amount to withdraw in the proper unit.
2. **Execute Withdrawal Transaction**:
   * Use the `doWithdraw` method to retrieve satUSD stablecoins from the Stability Pool. This updates the user's contribution and the overall balance of the pool.

### **Example**

```typescript
import { parseUnits } from '@ethersproject/units';
import { satoshiClient, DEBT_TOKEN_DECIMALS } from 'satoshi-sdk';

async function withdrawFromStabilityPool() {
  // Step 1: Define the withdrawal amount in SAT stablecoins
  const withdrawAmt = parseUnits('2', DEBT_TOKEN_DECIMALS);  // Withdrawing 2 SAT

  // Step 2: Execute the withdrawal transaction
  const receipt = await satoshiClient.StabilityPool.doWithdraw(withdrawAmt);

  // Output the transaction receipt
  console.log('Withdrawal Receipt:', receipt);
}

withdrawFromStabilityPool();
```


# Operation - Claim rewards

The `doClaim` operation allows users to claim accumulated collateral gains from the Stability Pool. This function is crucial for users who have contributed to the pool and have earned returns as the pool liquidates troves that fall below the required collateral-to-debt ratio.

### Key Steps

1. **Retrieve Collateral Configurations**:
   * Begin by fetching the current configurations of collaterals used in the Stability Pool. This includes details like collateral types and their respective settings.
2. **Get Collateral Gains**:
   * Check for any gains associated with each type of collateral the user might have accumulated through their participation in the pool.
3. **Check for Claimable Collateral**:
   * Iterate through the list of collaterals to determine if there are any gains that can be claimed. If any collateral has a gain greater than zero, it is flagged as claimable.
4. **Execute Claim Operation**:
   * If there is claimable collateral, execute the `doClaim` method to retrieve these gains. This operation finalizes the claim and transfers the earned collateral to the user's account.

### Example

```typescript
import { satoshiClient } from 'satoshi-sdk';

async function claimCollateralGains() {
  // Retrieve the current collateral configurations
  const collaterals = satoshiClient.getCollateralConfig();

  // Get the collateral gains from the Stability Pool
  const collateralGains = await satoshiClient.StabilityPool.getCollateralGains();
  
  // Initialize a flag to check if there is any claimable collateral
  let hasCollateralClaimable = false;

  // Check each type of collateral for any gains
  for (let i = 0; i < collaterals.length; i++) {
    const collateral = collaterals[i];
    const gain = collateralGains[i];
    console.log({
      name: collateral.NAME,  // Log the name and gain of the collateral
      gain: gain.toString(),  // Convert gain to a string for logging
    });

    // Check if there is a gain and set the flag if true
    if (gain > 0n) {
      hasCollateralClaimable = true;
    }
  }

  // If there is claimable collateral, proceed to claim it
  if (hasCollateralClaimable) {
    const receipt = await satoshiClient.StabilityPool.doClaim();
    console.log('Claim successful:', receipt);
  } else {
    console.log('No collateral gains to claim.');
  }
}

claimCollateralGains();
```


# Nexus Yield Module

#### Overview

The Nexus Yield Module (NYM) is an integral part of the Satoshi Protocol, designed to manage and optimize the use of stablecoin assets within the ecosystem. NYM allows users to swap stablecoins like USDT and USDC for satUSD, the stablecoin of the Satoshi Protocol, and participate in yield-generating activities by staking satUSD.


# Operation - Swap In

The **Swap-in Operation** within the Nexus Yield Module (NYM) of the Satoshi Protocol allows users to swap stablecoins or other supported assets into satUSD, the protocol’s native stablecoin. This process is crucial for maintaining liquidity and stability within the Satoshi Protocol ecosystem.

### Key Steps:

1. **Define Asset Amount**:
   * The amount of the asset to be swapped in is defined using the `parseUnits` function to convert it into the appropriate decimals format required by the protocol.
2. **Preview the Swap-in**:
   * The `getPreviewSwapIn` function is called to simulate the swap, returning important details such as the expected satUSD amount to be minted and the fee involved.
3. **Execute the Swap-in**:
   * The `doNymSwapIn` method is called to execute the actual swap operation. This will mint satUSD based on the asset amount provided.

### Example Code

Here's an example code snippet demonstrating the Swap-in operation using NYM:

```typescript
import { parseUnits } from 'viem';
import { walletClient, publicClient, protocolConfig, collateral, DEBT_TOKEN_DECIMALS } from 'satoshi-sdk';

// Example usage:
doSwapIn('USDT', 1)
  .then((receipt) => console.log('Swap-in completed:', receipt))
  .catch((error) => console.error('Error during swap-in:', error));

async function doSwapIn(assetSymbol: string, amount: number) {
  // Initialize the SatoshiClient with protocol and wallet configurations
  const satoshiClient = new SatoshiClient(protocolConfig, walletClient);
  const asset = (satoshiClient.NexusYieldModule.getAssetList()).find(t => t.symbol === assetSymbol)!;

  // Define the amount of the asset to swap in, converting to the appropriate units
  const assetAmount = parseUnits(amount.toString(), asset.decimals);

  // Fetch the current SAT balance before the swap
  const satBalanceBefore = await getBalanceOf(debtAddress);

  // Preview the swap to get information on the expected SAT amount and fees
  const satAmountInfo = await satoshiClient.NexusYieldModule.getPreviewSwapIn(asset.address, assetAmount);
  const expectedSatBalanceReceived = satAmountInfo!.debtTokenToMintAmt; // SAT amount to be received

  // Execute the swap-in operation
  const receipt = await satoshiClient.NexusYieldModule.doNymSwapIn(asset.address, assetAmount);

  // Confirm that the swap was successful
  if (receipt.status !== 'success') {
    throw new Error('Swap-in transaction failed.');
  }

  // Fetch the SAT balance after the swap to validate the amount received
  const satBalanceAfter = await getErc20Balance(
    {
      publicClient,
      tokenAddr: debtAddress,
    },
    walletClient.account.address
  );

  // Validate that the SAT balance increased by the expected amount received from the swap
  const receivedAmount = satBalanceAfter - satBalanceBefore;
  if (receivedAmount !== expectedSatBalanceReceived) {
    throw new Error(`Balance mismatch: expected ${expectedSatBalanceReceived}, got ${receivedAmount}`);
  }

  console.log('Swap-in was successful:', receipt);
  return receipt;
}


```


# Operation - Swap Out

The **Swap-out Operation** within the Nexus Yield Module (NYM) of the Satoshi Protocol allows users to convert satUSD back into other stablecoins or supported assets like USDT or USDC.

{% hint style="info" %}
Please note that the Swap-out process includes a pending period before the assets can be withdrawn.
{% endhint %}

### Key Steps:

1. **Define** satUSD **Amount**:
   * The amount of satUSD to be swapped out is defined and converted into the correct units using `parseUnits`.
2. **Preview the Swap-out**:
   * The `getPreviewSwapOut` function simulates the swap-out operation, providing details about the expected asset amount to be received and the associated fee.
3. **Execute the Swap-out**:
   * The `doNymSwapOut` method is called to execute the swap-out transaction, converting the specified amount of $satUSD back into the target asset.

### Example Code

```typescript
import { parseUnits } from 'viem';
import { walletClient, publicClient, protocolConfig, collateral, DEBT_TOKEN_DECIMALS } from 'satoshi-sdk';

// Example usage:
doSwapIn('USDT', 1)
  .then((receipt) => console.log('Swap-out completed:', receipt))
  .catch((error) => console.error('Error during swap-out:', error));

async function doSwapOut(assetSymbol: string, amount: number) {
  // Initialize the SatoshiClient with protocol and wallet configurations
  const satoshiClient = new SatoshiClient(protocolConfig, walletClient);
  const asset = (satoshiClient.NexusYieldModule.getAssetList()).find(t => t.symbol === assetSymbol)!;

  // Fetch the current SAT balance before the swap
  const satBalanceBefore = await getBalanceOf(debtAddress);

  // Define the amount of SAT to swap out, converting to the appropriate units
  const satAmount = parseUnits(amount.toString(), DEBT_TOKEN_DECIMALS);

  // Preview the swap-out to get information on the expected asset amount and fees
  const previewSwapOut = await satoshiClient.NexusYieldModule.getPreviewSwapOut(asset.address, satAmount);
  const expectedReceiveAssetAmt = Number(previewSwapOut?.assetAmount); // Asset amount expected to be received

  // Execute the swap-out operation
  const receipt = await satoshiClient.NexusYieldModule.doNymSwapOut(asset.address, satAmount);

  // Fetch the SAT balance after the swap to validate the amount swapped out
  const satBalanceAfter = await getBalanceOf(debtAddress);

  // Confirm that the swap was successful
  if (receipt.status !== 'success') {
    throw new Error('Swap-out transaction failed.');
  }

  // Validate that the SAT balance decreased by the amount swapped out
  const swappedAmount = satBalanceBefore - satBalanceAfter;
  if (swappedAmount !== satAmount) {
    throw new Error(`Balance mismatch: expected to swap out ${satAmount}, but got ${swappedAmount}`);
  }

  console.log('Swap-out was successful:', receipt);
  return receipt;
}


```


# Operation - Withdraw

The **Withdraw Operation** in the Nexus Yield Module (NYM) of the Satoshi Protocol allows users to withdraw previously scheduled withdrawals of assets, such as USDT, USDC, or other supported tokens.&#x20;

### Key Steps:

1. **Fetch Pending Withdrawals**:
   * Retrieve the list of pending withdrawals using the `getNymPendingWithdrawInfos` method, which returns information on assets that are scheduled for withdrawal.
2. **Check Conditions**:
   * Iterate through each pending withdrawal to check if the scheduled amount is greater than zero and if the withdrawal time is set.
3. **Execute Withdrawal**:
   * Call the `doNymWithdraw` method to execute the withdrawal for the specified asset.

### Example

```typescript
import { walletClient, publicClient, protocolConfig } from 'satoshi-sdk';


// Example usage:
doNymWithdraw('USDT')
  .then(() => console.log('Withdraw process completed successfully'))
  .catch((error) => console.error('Error during withdrawal:', error));
  
async function doNymWithdraw(assetSymbol) {
  // Initialize the SatoshiClient with protocol and wallet configurations
  const satoshiClient = new SatoshiClient(protocolConfig, walletClient);

  // Retrieve asset details based on the asset symbol
  const asset = (await satoshiClient.NexusYieldModule.getAssetList()).find((t) => t.symbol === assetSymbol);
  if (!asset) {
    throw new Error(`Asset ${assetSymbol} not found.`);
  }

  // Fetch the list of pending withdrawal information for the specified asset
  const pendingInfos = await satoshiClient.NexusYieldModule.getNymPendingWithdrawInfos([asset]);
  if (!pendingInfos || pendingInfos.length === 0) {
    console.log('No pending withdrawals found.');
    return;
  }

  // Iterate through each pending withdrawal info
  for (const pendingInfo of pendingInfos) {
    const { scheduledWithdrawalAmount, withdrawalTime, asset } = pendingInfo;

    // Skip if there's no scheduled amount or withdrawal time
    if (!(scheduledWithdrawalAmount > 0n) || !withdrawalTime) continue;

    // Get the current time in seconds
    const currentTime = Math.floor(Date.now() / 1000);

    // Check if the current time is greater than the withdrawal time
    if (currentTime < withdrawalTime) {
      console.log(
        `Withdrawal for ${asset.symbol} is scheduled for a future time. Current time: ${currentTime}, Withdrawal time: ${withdrawalTime}. Skipping...`
      );
      continue;
    }

    // Fetch the asset balance before withdrawal
    const assetBalanceBefore = await getBalanceOf(asset);

    // Execute the withdrawal
    const receipt = await satoshiClient.NexusYieldModule.doNymWithdraw(asset);

    // Confirm that the withdrawal was successful
    if (receipt.status !== 'success') {
      throw new Error('Withdrawal transaction failed.');
    }

    // Fetch the asset balance after withdrawal to validate the change
    const assetBalanceAfter = await getBalanceOf(asset);

    // Validate that the asset balance increased by the scheduled withdrawal amount
    if (assetBalanceAfter - assetBalanceBefore !== scheduledWithdrawalAmount) {
      throw new Error(
        `Balance mismatch: expected an increase of ${scheduledWithdrawalAmount}, but got ${
          assetBalanceAfter - assetBalanceBefore
        }`
      );
    }

    console.log('Withdrawal was successful:', receipt);
  }
}


```


