# Introduction to Scallop

## **Scallop**

<figure><picture><source srcset="/files/joWx5eZKL7uC7Ff3CJ97" media="(prefers-color-scheme: dark)"><img src="/files/aCFfWxmHyODq6eZqD5cN" alt=""></picture><figcaption><p>Scallop Logo</p></figcaption></figure>

Scallop is the pioneering Next Generation peer-to-peer Money Market for the Sui ecosystem and is also the first DeFi protocol to receive an official grant from the Sui Foundation. Emphasizes institutional-grade quality, enhanced composability, transparency, and robust security. Offers Lending/Borrowing, lending derivatives, Sui PTB building tools, flash loans, SDKs, and a UI for swaps and bridges.\
\
Scallop: [https://www.scallop.io](https://www.scallop.io/)

## **What is Sui?**

<figure><img src="/files/OUpKTVByXhrRzVK5sQt2" alt=""><figcaption><p>Sui Logo</p></figcaption></figure>

[Sui ](https://sui.io/)is a Layer 1 blockchain, aiming to provide creators and developers with an easier-to-build experience for the next billion Web3 users. Sui is a decentralized proof-of-stake blockchain with horizontally scalable throughput and storage, allowing high-speed and low-cost application development. Sui's growth company is Mysten Labs, which was co-founded by several employees from the Facebook (later renamed Meta) Novi research team. Sui is not a derivative of the Diem network, nor is it an incremental improvement, but a functional advancement based on blockchain technology to meet the needs of the next generation of cryptocurrency users and developers. Sui aims to become the first Internet-scale programmable blockchain platform by introducing innovative underlying technologies.

**The Sui protocol has the following main features:**

1. Scalability and instant settlement: Sui supports horizontally scalable processing and storage for high-throughput and low-latency transaction settlement.
2. Secure smart contract language: Sui provides a secure smart contract language for developers to define rich and composable on-chain assets for a better user experience.
3. Narwhal and Bullshark DAG memory pool and efficient Byzantine fault-tolerant consensus: Sui uses Narwhal and Bullshark DAG as a memory pool and efficient Byzantine fault-tolerant consensus mechanism to ensure the reliability and consistency of transactions.
4. Causal order and total order enable massively parallel execution: Sui's causal order and total order mechanism allow the execution of many transactions in massive parallel, reducing latency and increasing throughput.
5. Object-based data model and Move programming language: Sui's data model is object-centric and utilizes the object-based Move programming language, enabling composable objects and non-fungible tokens (NFTs). This simplifies the developer experience.


# Glosary

Some terms used throughout the documentation may be unfamiliar to developers. Below we list some common terms that will help with your understanding.

<table data-header-hidden><thead><tr><th width="255"></th><th></th></tr></thead><tbody><tr><td>Term</td><td>Description</td></tr><tr><td>Liquidation Reserve Factor</td><td>The Liquidation Reserve Factor is the percentage of the liquidation proceeds that is allocated to a specific reserve, such as the scallop treasury, in the context of a liquidation event.</td></tr><tr><td>Liquidation Factor</td><td>Risk parameter that determines when collateral assets need to be liquidated to maintain the financial health of the protocol. This parameter sets a minimum ratio between the value of the collateral and the value of the loan, where if the value of the collateral falls below this threshold, the collateral assets will be sold to repay the loan.</td></tr><tr><td>Obligation Account</td><td>Obligation is account will hold your information about your collateral asset and borrowing information.</td></tr><tr><td>Oracle</td><td>Third party on-chain service to get asset price</td></tr><tr><td>APR</td><td>Yearly cost of borrowing money, including interest and fees, but doesn't include how interest can build up over the year.</td></tr><tr><td>APY</td><td>Yield or Interest after a year includes the effect of compounding</td></tr><tr><td>Risk Level</td><td>Indicates the security status of your obligation account, calculated based on "borrowValueWithWeight" divided by "requireCollateralValue". A reading of 100% indicates that the liquidation threshold has been reached; it remains at 100% even if exceeded.</td></tr><tr><td>Liquidation Threshold</td><td>The liquidation threshold is when a loan gets liquidated if the debt reaches Liquidation Factor of the collateral's value. It varies by collateral and is shown in percentage.</td></tr><tr><td>Utilization Rate</td><td>The utilization rate in lending shows how much of the available money is being borrowed. If it's high, it means most of the money is lent out; if it's low, more money is available. This rate helps set how much interest borrowers pay and savers earn.</td></tr><tr><td>Liquidation Penalty</td><td>The liquidation penalty is a fee taken from the collateral value when it's sold to cover the borrower's debt. For example, if there's a 10% penalty, and $100 of collateral is sold, only $90 is used to pay off the debt, with the remaining $10 acting as the penalty.</td></tr><tr><td>Liquidation Discount</td><td>Liquidators receive collateral by paying off debt that has been reduced by a discount, meaning when they settle the debt, they acquire the collateral at a lower price as a reward for their service.</td></tr><tr><td>Collateral Factor</td><td>The collateral factor is the maximum percentage of an asset's value that can be borrowed against it. For instance, with a 70% collateral factor for BTC, a borrower with $100 worth of BTC can borrow up to $70.</td></tr></tbody></table>


# USDC Native

The arrival of native USDC on the SUI network is a highly anticipated milestone, marking a significant expansion of the SUI blockchain ecosystem. Scallop, as a strong supporter of this growth, has integrated native USDC from day one, allowing users to lend and borrow native USDC on Scallop right from the start.

<figure><img src="/files/F6Ua5HKEMDdOgN2ii0Db" alt=""><figcaption><p>Native USD Live on Scallop</p></figcaption></figure>

To celebrate and support the arrival of native USDC in the SUI ecosystem, Scallop is offering special incentives for users who engage in borrowing. Not only are we offering these incentives, but we are also waiving the borrowing fee—originally set at 0.3%—now reduced to 0% during a special event. This fee-free borrowing period runs for one week, from October 8, 2024, to October 15, 2024, providing equal opportunities for both veSCA holders and non-holders to maximize their rewards from the introduction of native USDC on SUI.

<figure><img src="/files/0SnjBEqcJOqniwzXw1rW" alt="" width="563"><figcaption><p>Native USDC Incentive</p></figcaption></figure>

Moreover, recognizing the significance of native USDC’s debut on SUI, Scallop has developed a seamless migration feature. This advanced tool, built by our expert developers, allows users with positions in the wUSDC lending pool to migrate effortlessly to the native USDC pool. This eliminates the need for a manual process of withdrawing, swapping wUSDC to USDC, and then resupplying to the lending pool, making the transition quick and hassle-free.

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

<figure><img src="/files/CWgtSbkMtszwbMWqYfzo" alt="" width="375"><figcaption></figcaption></figure>


# Start

## Sui Wallet

These are the Scallop recommended Sui wallets:

* [**Sui Wallet**](https://github.com/MystenLabs/mysten-app-docs/blob/main/mysten-sui-wallet.md)
* [**Martian**](https://martianwallet.xyz/)
* [**Elli**](https://elliwallet.com/)
* [**Suiet**](https://suiet.app/)
* [**OKX**](https://www.okx.com/web3)
* [**Bitget**](https://web3.bitget.com/)

1. Install a wallet you like.
2. Create a password. (This password is for this browser, in case bad guys steal your tokens by stealing your laptop or use it without asking, etc.)
3. Save your mnemonic. Do not let anybody know your mnemonic, save it safely. ([Best Ways to Store Your Mnemonic Passphrase and How](https://cryptoadventure.com/best-ways-to-store-your-mnemonic-passphrase-and-how/))
4. Now you can copy your Sui address and send your Sui to your wallet!

## Get SUI

These are some famous and trustable centralized exchanges in the world, you can use your credit card or some other ways to buy SUI.

* [**Binance**](https://www.binance.com/en)
* [**OKX**](https://www.okx.com/)
* [**Kucoin**](https://www.kucoin.com/)
* [**Bybit**](https://www.bybit.com/)
* [**Coinlist**](https://coinlist.co/)

After you send your SUI to your Sui wallet, you can start becoming a Scalloper.

## Bridge Assets to Sui

To acquire Tokens on the Sui Network via a cross-chain transfer, you can utilize the [Wormhole Connect](https://app.scallop.io/bridge). Wormhole is a multi-chain messaging protocol capable of connecting to several chains, such as Ethereum, Solana, Terra, Binance Smart Chain, Polygon, Sui, Avalanche, and Oasis.

Here's an easy-to-follow guide to get you started:

* Navigate to the Bridge section at Scallop or head to the Wormhole Connect page.
* Determine the blockchain from which you wish to transfer assets, then select SUI Network as the target. At this point, link your Metamask Wallet.
* Choose the token type to be transferred (WBTC, WETH, USDC or USDT) and indicate the quantity.
* Lastly, link your Sui wallet, cover the gas costs on Sui, and approve the transactions for both sending and claiming.


# Lending

In the world of decentralized finance (DeFi), there are numerous avenues to earn additional token rewards by participating in various third party protocols, and one such avenue involves participating as a lender in a lending-borrowing protocol. When you lend your coins to borrowers, they are obligated to pay interest on the borrowed amount. As a lender, you receive this interest as a reward for providing your funds to borrowers.

## Asset Pools

Asset Pools suppliers can earn interest through deposits and can withdraw assets at any time. Assets in Asset Pools will be borrowed by borrowers who already deposited enough collateral assets as collateral, and they will also count the interest with time going.

## sCoins (Scallop Market Coins)

Similarly to Compound collateral tokens, Scallop also tokenizes debts on the protocol known as sCoins (Scallop Market Coins). sCoins also have an ever-growing value, it's proof that you deposited some coins to the assets pools and allow claiming of deposited assets. The Market Coins allow the construction of positions without needing to interact with underlying assets and can be used to create derivative products that include debt obligations.

It is important to reiterate that "pools" and "sCoins" simply comprise autonomous blockchain-based smart contracts deployed on the relevant blockchain network, operated directly by users calling functions on it (which allows them to interact with other users and/or engage in trading or other activities in a multi-party peer-to-peer manner). There is no further control by or interaction with the original entity which had deployed the smart contract, which entity solely functions as a provider of technical tools for users, and is not offering any sort of securities product or regulated service nor does it hold any user assets on custody.


# sCoin

### **What is sCoin?**

Scallop is a decentralized financial money market that allows users to lend and borrow various cryptocurrencies. When users make a supply in Scallop lending pools, they receive sCoin that represents supplies (e.g. sSUI for SUI supplies, sUSDC for USDC supplies).

The main functions of these sCoin are:

* Interest-bearing: sCoin value will increase over time, reflecting the interest earned on deposits.
* Exchange Rate: The relationship between sCoin and its underlying assets is determined by the exchange rate. This is a value indicating how many underlying assets sCoin can be exchanged for. This exchange rate will grow over time as the interest earned on the deposit is added back to the underlying asset.

The price calculation of sCoin is based on the price of its underlying asset. The following are the basic concepts of sCoin price calculation:

When you deposit to Scallop for the first time, the amount of sCoin you will get depends on the current exchange rate. But over time, the exchange rate rises due to the accumulation of interest. For example, if the exchange rate of sSUI increases to 1.03, it means that each sSUI now represents more SUI.

For example, if the price of 1 SUI is $1 USD, and the exchange rate of sSUI is 1.03, then the price of sSUI will be: sSUI price = 1\*1.03 = $1.03

It is important to understand that the price of a sCoin is correlated to the price of the underlying asset and that the exchange rate will rise over time and accrue interest. Therefore, holding sCoin not only represents the ownership of the underlying assets but also represents the interest earned.

You will be able to view the types and amount of sCoin you have on Scallop’s dApp.

<figure><img src="/files/TbivQkvBIn05Qr239had" alt="" width="375"><figcaption><p>sCoins in Scallop mini wallet</p></figcaption></figure>


# Obligation

Before engaging in any borrowing-related activities, you must have an `Obligation` object. An `Obligation` is an object used to record your collateral and debt. Therefore, you need to create at least one `Obligation` to perform any actions related to borrowing.

{% hint style="info" %}
It’s possible to have multiple obligations.

Each obligation is independent of the others, meaning that depositing collateral in one obligation does not allow you to borrow an asset using another obligation—even if you are the owner of both obligations.
{% endhint %}

## Understanding Obligation in deep

An `Obligation` is a shared object. instead of holding the `Obligation` object in your wallet, you will possess an `ObligationKey`. This `ObligationKey` serves as proof that you own a specific `Obligation` linked to this **key**. Consequently, what you will find in your wallet is an NFT of the `ObligationKey`.

Essentially, your `Obligation` can be included in any transaction. However, for certain actions that *require proof of ownership*, others cannot use your `Obligation` because the function requires ownership proof. This is where your `ObligationKey` **plays a crucial role**.<br>

For instance, when you want to borrow, the borrowing function will require you to provide both the `Obligation` and `ObligationKey` objects. In this scenario, anyone could pass your `Obligation` in this function, BUT **only you** can use the **correct** `ObligationKey`. This mechanism secures your `Obligation` against unauthorized use.

\
This is what we leverage from Sui Object-centric Model <https://docs.sui.io/concepts/object-ownership/address-owned>


# Borrowing

## Set Account

Visit [Scallop Dapp](https://app.scallop.io/) and connect your Sui wallet.

### Transferable Sub-accounts

Scallop offers the flexibility for every user's Sui address to access up to 5 sub-accounts, including the primary account. This enables users to efficiently self-administer multiple positions concurrently. Once a user holds "Scallop Obligation Key", they can deposit into any sub-account without the need for repetitive approvals. Furthermore, no approvals are necessary to transfer assets and liabilities between sub-accounts, empowering users to easily isolate and segregate their collateral and debts according to their preferences.

We calculate your collateral and your debt inside an object called `Obligation`. To mutate this object you will need an object called `Obligation Key`, each `Obligation Key` belongs to an `Obligation` object. So when you create an `Obligation` object for the first time, you will get `Obligation Key` in return and it will be stored inside your address. This `Obligation Key` is just like an NFT, it represents ownership and it’s transferable. Transferring your `Obligation Key` to the other address means you hand over your ownership of the `Obligation` to someone else.

## Collateral Assets

The **Collateral Pools** allow borrowers to deposit collateral and obtain a percentage of borrowing capacity, but suppliers cannot earn any interest from the collateral pool. Borrowers who want to borrow from the asset pool must first deposit collateral into the collateral pools, your collateral will be stored safely inside your Obligation object.

## Collateral Weight

To control the ratio of coins that can be borrowed out using a collateral coin, we need a parameter called **Collateral Weight** in each of the **Collateral Pools.** For example, if you deposited **1 BTC** to a **Collateral Pool** and the **BTC** price at the moment is $10,000. And the **Collateral Weight** of **the BTC Collateral Pool** is **70%**. That means you can only borrow out **70%** of your BTC coins value or equal to `$10,000 x 70% = $7,000` .

Collateral Weight usually has a value below 1.

How much you can borrow from the **assets pools** depends on your collateral values. Your collateral value is determined using this formula:

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

Any changes regarding the **Collateral Weight** of a collateral pool that you deposited into will affect your **Collateral Value**.

## Borrow Weight

There are multiple coins that have a volatile price. One of the solutions to protecting users from volatile coins, we create a **borrow weight** feature so borrowing a volatile coin will be much “expensive”. The terms of expensive here mean you can only borrow less volatile coins with such collateral. Borrow weight will affect the amount of debt you have. This is how your debt is calculated:

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

For example, there are SUI and USDC assets pools.

USDC has a more stable price than SUI, hence we set the **Borrow Weight** to be **1** and **1.25** respectively. and then you deposited 1 BTC that is worth $10,000 to the **collateral pool** with a **Collateral Weight** equal to **70%** and your collateral value is **$7,000** (70% of $10,000).

Let’s say the price of USDC is $1 and the price of SUI is also $1. With $7,000 you can borrow out 7,000 USDC **but** for SUI you can only borrow out 5,600 SUI.

## Borrow/Outflow/Collateralization Rate Limits

Scallop implements a dynamic constraint on the total sum of loans and withdrawals permitted, which can be adjusted for each asset and pool. As an illustration, a limit of $1M may be set for borrowing or withdrawing from the primary pool within a single 24-hour timeframe.

## Fee Flash Loans

A flash loan is a type of loan where a user borrows assets with no upfront collateral and returns the borrowed assets within the same blockchain transaction. From the blockchain's perspective flash loans are held for a duration of 0 seconds, Scallop charges 0.1% of the flash loan amount is allocated to the protocol as income. (ignoring Sui gas fee costs).


# Interest Rates

## Dynamics Interest Rate

At Scallop, interest rates for borrowing are determined by static linear (or piecewise linear) models. In a general sense, as the demand for borrowing rises or the supply diminishes, interest rates experience an upward trend. Conversely, when the supply increases or the demand for borrowing declines, interest rates decrease accordingly.

## Upgradable Protocol Parameters

The smart contracts on Sui are upgradeable, and the Scallop Protocol encompasses interest rate models, liquidation parameters, oracle integrations, and asset pools. These components undergo periodic upgrades and adjustments based on market conditions, strategic considerations, and protocol optimizations. As the governance infrastructure on the Sui chain matures, the governance authority will be gradually transitioned to the community through decentralized governance using tokens.

## Trilinear Interest Rate Model

Unlike Compound's dual-line interest rate model, the Trilinear model for Scallop works in three distinct phases, each triggered by different levels of capital utilization. When capital utilization nears its upper limit, the system ensures liquidity providers are adequately compensated for the heightened risk, while borrowers are signaled to reduce their positions due to increased borrowing costs. The Trilinear Interest Rate Model for Scallop is specifically designed to cater to the dynamic needs of the decentralized finance space, optimizing the stability of interest rates and responsiveness to market conditions.

## Scallop Interest Rate Model

{% embed url="<https://docs.google.com/spreadsheets/d/1Z3uGcwG1eYm-ulVGgFpjA4USYjh8bBLxx98ZW24b3HM/edit?gid=1936821932#gid=1936821932>" %}


# Liquidation

### Overview

Unlike many lending protocols where liquidators can sell off all of a user's collateral at once, Scallop takes a more user-friendly approach. Scallop uses a **soft liquidation** mechanism where liquidators only repay up to **20% of a borrower's total debt** per liquidation call, and receive a portion of the borrower's collateral at a discount in return. This gradual process minimizes the impact on borrowers, preserving as much of their collateral as possible while keeping the protocol solvent.

If a position still remains unhealthy after a partial liquidation, the process can be repeated incrementally until the borrower's position is fully restored to a healthy status.

### When Does Liquidation Happen?

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

Scallop evaluates each borrower's position by comparing two values:

* **Weighted Debt Value**: the total USD value of everything you've borrowed, adjusted by each asset's `borrow_weight`. Assets with higher borrow weights count for more against your position.
* **Collateral Value for Liquidation**: the total USD value of your deposited collateral, adjusted by each asset's `liquidation_factor`. This determines how much borrowing your collateral can support before liquidation.

Your **Risk Level** reflects the ratio between these two values. A Risk Level below 100% means your position is safe. When your Risk Level reaches or exceeds 100%, your weighted debt value has surpassed your collateral value for liquidation, and your position becomes open to liquidation.

Each asset on Scallop has its own risk parameters, so the composition of your collateral and debt matters. For example, borrowing a high `borrow_weight` asset against a low `liquidation_factor` collateral puts you closer to the liquidation threshold than a more conservative pairing.

### Soft Liquidation

Scallop's soft liquidation mechanism is designed to protect borrowers from losing their entire collateral in a single event.

**How it works:**

* Each liquidation call can repay a maximum of **20% of the borrower's total debt value** (across all debt types). This cap prevents excessive collateral loss from a single liquidation.
* If the position is still unhealthy after one liquidation, additional liquidation calls can follow, each limited to 20% of the remaining total debt, until the position returns to health.
* For very small positions (total debt under **$10**), the full debt can be repaid in a single call. These "dust" positions are too small to liquidate incrementally in an economical way.

This step-by-step approach significantly reduces the risk of cascading bad debt, where one large liquidation could destabilize a position further.

### Liquidation Penalties and Rewards

When a liquidation occurs, the borrower's collateral is seized and distributed between the liquidator and the protocol:

**For the borrower:** You incur a **liquidation penalty** on the collateral that is seized. The penalty rate varies by collateral type and is set by governance, with a maximum of 20%. This means if you are liquidated, you lose slightly more collateral than the debt that was repaid on your behalf.

**For the liquidator:** Liquidators are rewarded with a **liquidation discount**, meaning they receive the borrower's collateral at a price below market value. For example, with a 5% liquidation discount, a liquidator effectively purchases $100 worth of collateral for $95 worth of debt repayment. The maximum discount is 15%.

**For the protocol:** The difference between the liquidation penalty and the liquidation discount flows to the protocol as revenue. For instance, if the penalty is 8% and the discount is 5%, the protocol captures 3% of the seized collateral value.

The key parameters per collateral type are:

<table><thead><tr><th>Parameter</th><th width="480.265625">What It Means</th><th>Maximum</th></tr></thead><tbody><tr><td>Liquidation Factor</td><td>How much of your collateral's value counts toward the liquidation threshold. Higher = more room before liquidation.</td><td>95%</td></tr><tr><td>Liquidation Discount</td><td><p>The discount liquidators receive on your collateral.</p><p>Higher = more incentive for liquidators.</p></td><td>15%</td></tr><tr><td>Liquidation Penalty</td><td><p>The total penalty applied to your seized collateral.</p><p>The penalty is always ≥ the discount.</p></td><td>20%</td></tr></tbody></table>

Note that the borrower's debt is reduced by the **full repayment amount**. The protocol's revenue share comes from the collateral side, not from the debt repayment. This means borrowers benefit from maximum debt reduction on every liquidation.

### Who Can Liquidate?

Liquidation on Scallop is **permissionless**. Anyone can liquidate an unhealthy position. There is no whitelist or special access required. This open design ensures that unhealthy positions are addressed promptly, keeping the protocol solvent.

Liquidators typically run automated bots that monitor positions and execute liquidations when profitable. If you're interested in running a liquidation bot, refer to the [Liquidation Function](https://docs.scallop.io/integrations/contract-integration/liquidation-function) integration guide for technical details.

### How to Avoid Liquidation

You can protect yourself from liquidation by actively managing your position:

* **Monitor your Risk Level** on the Scallop dashboard. When your weighted debt approaches your liquidation-weighted collateral value, you're at risk.
* **Add more collateral** to increase the buffer between your debt and the liquidation threshold.
* **Repay part of your debt** to reduce your weighted debt value.
* **Be mindful of asset selection.** Collateral assets with higher liquidation factors give you more breathing room, while borrowed assets with higher borrow weights push you closer to the threshold.
* **Watch for market movements.** A drop in collateral price or a rise in debt token price can push you toward liquidation even if you haven't changed your position.


# Risks

## Risks of using Scallop

All DeFi protocols, including Scallop, come with risks, which are important to understand before depositing significant amounts of crypto. The main risks involved in using Scallop are outlined here.

**Smart Contract Risk**

This is a risk that the Scallop smart contracts get exploited to steal or permanently freeze funds. This risk is inherent to all smart contracts and can never be fully eliminated, but can be mitigated in various ways.

**Oracle Risk**

Scallop relies on Pyth, Switchboard, and Supra Oracles for their price feeds. Although we have an [Aggregate Multi-Oracle Strategy](/protocol/oracles#aggregate-multi-oracle-strategy) to avoid one single oracle getting attacked and let us get the incorrect price feed. There is still a risk that these oracles report incorrect prices at the same time, causing wrongful liquidation.

#### Wallet Providers **Risk**

Scallop is compatible with a wide range of wallets, including Martian, Suiet, Elli, Ethos Waller, and an open-source Sui wallet called Sui Wallet, any Sui wallet exploit could affect some of the Scallop users.

#### Regulatory risk

The regulatory status of Scallop, $SCA, and distributed ledger technology is unclear or unsettled in many jurisdictions. The regulation of digital assets has become a primary target of regulation in all major countries in the world. It is impossible to predict how, when, or whether regulatory agencies may apply existing regulations or create new regulations with respect to such technology and its applications, including $SCA and/or Scallop. Regulatory actions could negatively impact $SCA and/or Scallop in various ways. The Company, the Distributor (or their respective affiliates) may cease operations in a jurisdiction in the event that regulatory actions, or changes to law or regulation, make it illegal to operate in such jurisdiction, or commercially undesirable to obtain the necessary regulatory approval(s) to operate in such jurisdiction. After consulting with a wide range of legal advisors to mitigate the legal risks as much as possible, the Company and Distributor have worked with the specialist blockchain department at Jacque Law LLC and obtained a legal opinion on the token distribution, and will be conducting business in accordance with the prevailing market practice.

#### Risk of insufficient information

As of the date hereof, Scallop is still under development and its design concepts, consensus mechanisms, algorithms, codes, and other technical details and parameters may be constantly and frequently updated and changed. Although this material contains the most current information relating to Scallop, it is not absolutely complete and may still be adjusted and updated by the Scallop Project Contributors from time to time. The Scallop Project Contributors have neither the ability nor obligation to keep holders of $SCA informed of every detail (including development progress and expected milestones) regarding the project to develop Scallop, hence insufficient information disclosure is inevitable and reasonable.

#### Competitive Risk

Various types of decentralized applications, games, and networks are emerging at a rapid rate, and the industry is increasingly competitive. It is possible that alternative networks could be established that utilize the same or similar code and protocol underlying $SCA and/or Scallop and attempt to re-create similar facilities. Scallop may be required to compete with these alternative networks, which could negatively impact $SCA and/or Scallop.

#### Risk of failure to develop

There is the risk that the development of Scallop will not be executed or implemented as planned, for a variety of reasons, including without limitation the event of a decline in the prices of any digital asset, virtual currency, or $SCA, unforeseen technical difficulties, and shortage of development funds for activities.


# Isolated Asset

We are thrilled to announce the launch of Isolated Asset Pools on Scallop, this new feature is Scallop’s next step towards providing more features for our users, making Scallop an All-In-One platform to onboard the next millions of users.

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

## What are Isolated Assets?

The isolated asset feature limits risks to a specific pool, ensuring bad debt doesn’t affect others.

This allows the protocol to support more diverse assets without cross-pool risk.

An obligation with isolated asset debt cannot coexist with other debts, allowing only one type of isolated asset to be borrowed at a time.

## Difference between non-Isolated Assets and Isolated Assets

Borrowing isolated assets requires a higher collateral ratio, typically **200%**. This means you must provide collateral worth at least twice the amount you wish to borrow. Additionally, isolated assets have a borrowing fee of **1%**, higher than that of non-isolated assets.

## The best way to Borrow Isolated Assets

In order to borrow isolated assets, users have to first deposit collateral assets. For a single obligation key, users will not be able to borrow any other assets if they have borrowed an isolated asset.

{% hint style="info" %}
For Example:

Alice has deposited multiple collateral (USDC, USDT)\
After Alice has borrowed isolated asset $mUSD, Alice cannot borrow any other asset like SUI, ETH or even $NS (which also isolated asset).

To be able to borrow other asset，Alice need to repay all of her $mUSD debt to be able to borrow other assets including $NS.
{% endhint %}

## The best way to borrow Isolated Assets

The best way to borrow Isolated asset is using **multiple obligations**, by simply creating new obligation you won't have to do anything with your existing positions.

<figure><img src="/files/6oZ9wtbFiv2vMoqpYAL1" alt=""><figcaption></figcaption></figure>

Once you created, you can see your new obligation and existing ones and switch between them. After depositing collateral asset in new obligation, you can borrow the Isolated Assets.

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

## Supply and Borrow Isolated Assets Today

Scallop is very excited to bring in more diverse assets onto our protocol for our users. Stay tuned for more isolated asset listings on Scallop!


# Emerging Asset

As the leading money market on Sui, Scallop is continuously striving to improve and expand our offerings for users.

With the launch of new tokens on the Sui Network, Scallop is excited to introduce a new feature — **Emerging Asset**!

Emerging Asset are a new addition to Scallop’s existing Main Asset and Isolated Asset structures. They provide a flexible and efficient pathway for newly launched or popular assets to be listed, while maintaining the overall stability and security of the protocol.

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

***

### Existing Scallop Assets

Scallop previously supported two asset types: **Main Assets** and **Isolated Assets**.

* **Scallop Main Assets**: Main Assets are tokens that are widely supported across protocols on Sui. They generally have larger market caps, higher token liquidity, and lower price volatility. Borrowing Main Assets incurs a low borrowing fee of **0.3%**.
* **Scallop Isolated Assets**: Isolated Assets are newer tokens that typically experience higher price volatility. These tokens are placed into individual, isolated pools to manage risk separately from other assets. Borrowing Isolated Assets incurs a borrowing fee of **1%**, and users cannot borrow multiple assets under the same obligation.

[Learn more about Scallop Isolated Assets.](https://docs.scallop.io/scallop-lend/isolated-asset)

***

### Introducing: Scallop Emerging Asset Pools

Scallop’s **Emerging Assets** introduce a new asset class that acts as an "intermediate" step between Main Assets and Isolated Assets.

**Key Features of Emerging Assets:**

* Can be **used as collateral**, similar to Main Assets, but with **lower collateral weight**.
* Borrowing Emerging Assets incurs a **1% borrowing fee**, the same as Isolated Assets.
* **Tighter risk parameters** compared to Main Assets to ensure stability.
* Designed to **bridge** newly launched tokens before they potentially graduate to Main Asset status.

***

### Launch Assets

Emerging Asset Pools include:

* **WAL**
* **SCA**
* **DEEP**
* **CETUS**
* **Hadeal**
* **wWAL**
* **haWAL**

More assets will be added to the Emerging Asset Pools in the coming weeks and months — stay tuned for updates!


# Data

## Asset Supported

<table><thead><tr><th width="157">Asset Name</th><th>Coin Type</th><th>Isolated Asset</th></tr></thead><tbody><tr><td>wUSDC</td><td>0x5d4b302506645c37ff133b98c4b50a5ae14841659738d6d733d59d0d217a93bf::coin::COIN</td><td>false</td></tr><tr><td>wUSDT</td><td>0xc060006111016b8a020ad5b33834984a437aaa7d3c74c18e09a95d48aceab08c::coin::COIN</td><td>false</td></tr><tr><td>wETH</td><td>0xaf8cd5edc19c4512f4259f0bee101a40d41ebed738ade5874359610ef8eeced5::coin::COIN</td><td>false</td></tr><tr><td>SUI</td><td>0x2::sui::SUI</td><td>false</td></tr><tr><td>CETUS</td><td>0x06864a6f921804860930db6ddbe2e16acdf8504495ea7481637a1c8b9a8fe54b::cetus::CETUS</td><td>false</td></tr><tr><td>afSUI</td><td>0xf325ce1300e8dac124071d3152c5c5ee6174914f8bc2161e88329cf579246efc::afsui::AFSUI</td><td>false</td></tr><tr><td>haSUI</td><td>0xbde4ba4c2e274a60ce15c1cfff9e5c42e41654ac8b6d906a57efa4bd3c29f47d::hasui::HASUI</td><td>false</td></tr><tr><td>vSUI</td><td>0x549e8b69270defbfafd4f94e17ec44cdbdd99820b33bda2278dea3b9a32d3f55::cert::CERT</td><td>false</td></tr><tr><td>SCA</td><td>0x7016aae72cfc67f2fadf55769c0a7dd54291a583b63051a5ed71081cce836ac6::sca::SCA</td><td>false</td></tr><tr><td>wBTC</td><td>0x027792d9fed7f9844eb4839566001bb6f6cb4804f66aa2da6fe1ee242d896881::coin::COIN</td><td>false</td></tr><tr><td>wSOL</td><td>0xb7844e289a8410e50fb3ca48d69eb9cf29e27d223ef90353fe1bd8e27ff8f3f8::coin::COIN</td><td>false</td></tr><tr><td>USDC</td><td>0xdba34672e30cb065b1f93e3ab55318768fd6fef66c15942c9f7cb846e2f900e7::usdc::USDC</td><td>false</td></tr><tr><td>sbETH</td><td>0xd0e89b2af5e4910726fbcd8b8dd37bb79b29e5f83f7491bca830e94f7f226d29::eth::ETH</td><td>false</td></tr><tr><td>sbUSDT</td><td>0x375f70cf2ae4c00bf37117d0c85a2c71545e6ee05c4a5c7d282cd66a4504b068::usdt::USDT</td><td>false</td></tr><tr><td>FDUSD</td><td>0xf16e6b723f242ec745dfd7634ad072c42d5c1d9ac9d62a39c381303eaa57693a::fdusd::FDUSD</td><td>false</td></tr><tr><td>DEEP</td><td>0xdeeb7a4662eec9f2f3def03fb937a663dddaa2e215b8078a284d026b7946c270::deep::DEEP</td><td>false</td></tr><tr><td>NS</td><td>0x5145494a5f5100e645e4b0aa950fa6b68f614e8c59e17bc5ded3495123a79178::ns::NS</td><td>true</td></tr><tr><td>USDY</td><td>0x960b531667636f39e85867775f52f6b1f220a058c4de786905bdf761e06a56bb::usdy::USDY</td><td>false</td></tr><tr><td>mUSD</td><td>0xe44df51c0b21a27ab915fa1fe2ca610cd3eaa6d9666fe5e62b988bf7f0bd8722::musd::MUSD</td><td>true</td></tr><tr><td>BLUB</td><td>0xfa7ac3951fdca92c5200d468d31a365eb03b2be9936fde615e69f0c1274ad3a0::BLUB::BLUB</td><td>false</td></tr><tr><td>sbwBTC</td><td>0xaafb102dd0902f5055cadecd687fb5b71ca82ef0e0285d90afde828ec58ca96b::btc::BTC</td><td>false</td></tr><tr><td>NS</td><td>0x5145494a5f5100e645e4b0aa950fa6b68f614e8c59e17bc5ded3495123a79178::ns::NS</td><td>true</td></tr><tr><td>WAL</td><td>0x356a26eb9e012a68958082340d4c4116e7f55615cf27affcff209cf0ae544f59::wal::WAL</td><td>false</td></tr><tr><td>HAEDAL</td><td>0x3a304c7feba2d819ea57c3542d68439ca2c386ba02159c740f7b406e592c62ea::haedal::HAEDAL</td><td>false</td></tr><tr><td>wWAL</td><td>0xb1b0650a8862e30e3f604fd6c5838bc25464b8d3d827fbd58af7cb9685b832bf::wwal::WWAL</td><td>false</td></tr><tr><td>haWAL</td><td>0x8b4d553839b219c3fd47608a0cc3d5fcc572cb25d41b7df3833208586a8d2470::hawal::HAWAL</td><td>false</td></tr></tbody></table>

### Interest Models

Scallop adopts a tri-linear interest rate model. The interest rate for borrow goes higher as the utilization rate increases.

| Asset  | 0% utilization | 80% utilization | 90% utilization | 100% utilization |
| ------ | -------------- | --------------- | --------------- | ---------------- |
| SUI    | 5%             | 10%             | 30%             | 150%             |
| afSUI  | 5%             | 10%             | 30%             | 150%             |
| haSUI  | 5%             | 10%             | 30%             | 150%             |
| USDC   | 3%             | 10%             | 25%             | 150%             |
| sbUSDT | 3%             | 10%             | 25%             | 150%             |
| USDY   | 3%             | 10%             | 25%             | 150%             |
| FDUSD  | 3%             | 10%             | 25%             | 150%             |
| mUSD   | 3%             | 10%             | 25%             | 150%             |
| SCA    | 20%            | 30%             | 50%             | 600%             |
| CETUS  | 20%            | 30%             | 50%             | 600%             |
| WAL    | 20%            | 30%             | 50%             | 600%             |
| wWAL   | 20%            | 30%             | 50%             | 600%             |
| haWAL  | 20%            | 30%             | 50%             | 600%             |
| NS     | 20%            | 30%             | 50%             | 600%             |
| DEEP   | 20%            | 30%             | 50%             | 600%             |
| BLUB   | 20%            | 30%             | 50%             | 600%             |
| wSOL   | 5%             | 10%             | 30%             | 150%             |
| sbwBTC | 5%             | 10%             | 30%             | 150%             |
| sbETH  | 5%             | 10%             | 30%             | 150%             |

### Risk Models

Scallop defines a risk model for each collateral asset. The risk model is used to calculate the collateral ratio for each collateral asset.

<table><thead><tr><th width="171">Asset</th><th width="102">Collateral Factor</th><th width="140">Liquidation Factor</th><th width="97">Liquidation Penalty</th><th width="98">Liquidation Discount</th><th>Max Collateral Amount</th></tr></thead><tbody><tr><td>wUSDC</td><td>85%</td><td>90%</td><td>5%</td><td>4%</td><td>0</td></tr><tr><td>wUSDT</td><td>85%</td><td>90%</td><td>5%</td><td>4%</td><td>0</td></tr><tr><td>wETH</td><td>75%</td><td>80%</td><td>5%</td><td>4%</td><td>0</td></tr><tr><td>SUI</td><td>75%</td><td>80%</td><td>5%</td><td>4%</td><td>100M</td></tr><tr><td>CETUS</td><td>45%</td><td>65%</td><td>5%</td><td>4%</td><td>1M</td></tr><tr><td>SCA</td><td>50%</td><td>70%</td><td>5%</td><td>4%</td><td>5M</td></tr><tr><td>afSUI</td><td>70%</td><td>75%</td><td>5%</td><td>4%</td><td>20M</td></tr><tr><td>haSUI</td><td>70%</td><td>75%</td><td>5%</td><td>4%</td><td>20M</td></tr><tr><td>vSUI</td><td>60%</td><td>70%</td><td>5%</td><td>4%</td><td>0</td></tr><tr><td>wBTC</td><td>75%</td><td>80%</td><td>5%</td><td>4%</td><td>0</td></tr><tr><td>wSOL</td><td>70%</td><td>80%</td><td>5%</td><td>4%</td><td>10K</td></tr><tr><td>USDC</td><td>85%</td><td>90%</td><td>5%</td><td>4%</td><td>30M</td></tr><tr><td>sbETH</td><td>75%</td><td>80%</td><td>5%</td><td>5%</td><td>5K</td></tr><tr><td>sbUSDT</td><td>85%</td><td>90%</td><td>5%</td><td>4%</td><td>20M</td></tr><tr><td>FDUSD</td><td>85%</td><td>90%</td><td>5%</td><td>4%</td><td>100K</td></tr><tr><td>USDY</td><td>85%</td><td>90%</td><td>5%</td><td>4%</td><td>10M</td></tr><tr><td>sbwBTC</td><td>75%</td><td>80%</td><td>5%</td><td>4%</td><td>50</td></tr><tr><td>WAL</td><td>70%</td><td>80%</td><td>5%</td><td>4%</td><td>10M</td></tr><tr><td>wWAL</td><td>70%</td><td>80%</td><td>5%</td><td>4%</td><td>2M</td></tr><tr><td>haWAL</td><td>70%</td><td>80%</td><td>5%</td><td>4%</td><td>2M</td></tr></tbody></table>


# Fee

To ensure the long-term operation of the protocol, Scallop charges a certain percentage of transaction fees for specific functionalities. Additionally, Scallop incurs some basic operational costs, which include blockchain Gas Fees and Oracle consensus fees.

## Borrowing Fee

When users take out a loan through Scallop, a small borrowing fee is applied based on the asset category. Scallop classifies assets into three types—main assets, emerging assets, and isolated assets—reflecting different levels of risk. Accordingly, the borrowing fee varies: 0.3% for main assets, and 1% for both emerging and isolated assets. This fee is not an additional charge paid by the borrower but is directly deducted from the loan amount at the time of borrowing.

## Borrowing Interest Fee

When borrowers pay interest on their loans, a portion of this interest is allocated to the protocol as income. Each pool has its own borrowing interest fee, and the interest paid by borrowers is redirected to protocol.

## Liquidation Fee

When a user's account becomes unhealthy and undergoes liquidation, a specific fee is applied to the transaction as part of the liquidation process. In this scenario, 1% of the total amount obtained from the liquidation is allocated to the protocol as a form of income.

## Flash Loan Fee

When users utilize flash loans—a financial instrument allowing for the borrowing of assets without collateral for a concise duration, typically within a single transaction block—there is a unique fee structure in place. Specifically, for these transactions, 0.1% of the flash loan amount is allocated to the protocol as income.

## Sui Network Fee

Sui Network Fees are necessary for processing your transactions on Scallop. These Sui transaction fees are deducted from your wallet when your transaction is executed. (Usually less than 0.0001 SUI)

## Oracle Fee

We have added an extra layer of security to the oracle (the entity responsible for providing price information). As a tradeoff, you will need to pay an additional fee to fetch data from the multi-oracle. (Usually less than 0.01 SUI)


# Outflow Limit

Scallop implemented withdrawal limits on borrowing pools to maintain economic stability and security, preventing large, sudden withdrawals that could destabilize the system. This ensures liquidity, supports borrower access, and minimizes volatility, crucial for user trust and the platform's financial integrity.

| Coin Name | Daily Outflow Limit |
| --------- | ------------------- |
| SUI       | 3M SUI              |
| wUSDC     | 0 wUSDC             |
| wUSDT     | 0 USDT              |
| CETUS     | 1M CETUS            |
| afSUI     | 100K afSUI          |
| haSUI     | 100K haSUI          |
| vSUI      | 10K vSUI            |
| wETH      | 0 wETH              |
| wBTC      | 0 BTC               |
| wSOL      | 1000 SOL            |
| USDC      | 10M USDC            |
| sbETH     | 250 sbETH           |
| sbUSDT    | 3M sbUSDT           |
| fdUSD     | 5M FDUSD            |
| DEEP      | 20M DEEP            |
| FUD       | 1T FUD              |
| BLUB      | 2T BLUB             |
| USDY      | 1M USDY             |
| mUSD      | 500K mUSD           |
| NS        | 500K NS             |
| sbwBTC    | 2 sbwBTC            |


# Audits

## Is Scallop Sui smart contract audited/open-source?

Scallop has completed Zellic, OtterSec, and MoveBit's smart contract auditing. Scallop Lend is an open-sourced protocol on the Sui blockchain so everyone can also be the Scallop Lend auditor.

### Core Smart Contract (Lending / Borrowing)

**Scallop Smart Contract Auditing Report by Zellic:**

{% file src="/files/h2WHIiEKpaePVgmWezP8" %}

**Scallop Smart Contract Auditing Report by OtterSec:**

{% file src="/files/S9qjY23WxFth6TiE6qGA" %}

{% file src="/files/RpouVLuzTUltOXCEhocG" %}

**Scallop Smart Contract Auditing Report by MoveBit:**

{% file src="/files/SwHoaWiI4ux3ZAWzvSen" %}

{% file src="/files/y7d49qUIhdrQBr2hbVhr" %}

**Scallop Smart Contract Auditing Report by Asymptotic:**

{% file src="/files/c4DaB94au2v6LbyVgMSK" %}

**Scallop sui-lending-protocol** ��**:**\
\
<https://github.com/scallop-io/sui-lending-protocol>

### sCoin Wrapper

{% file src="/files/fwqpLDcbFl11zDQ9lqhU" %}
audited by MoveBit
{% endfile %}

### veSCA

{% file src="/files/Rvzf74ShRyLCZcZ6PF1Z" %}
audited by MoveBit
{% endfile %}

{% file src="/files/AgWECzeJXk5POuDKvgtI" %}
audited by MoveBit
{% endfile %}

### SCA (Scallop Token)

{% file src="/files/10mSc6etifIFGCYtmSOg" %}
audited by MoveBit
{% endfile %}

### Borrow Incentive

{% file src="/files/UEHe9gcz5pQOcqStQeZA" %}
audited by MoveBit
{% endfile %}


# Oracles

## Multi-Oracle (Planning)

The components of the Scallop price modules planning include **Pyth, Switchboard**, and **Supra Oracles**. These price feeds are essential for assessing account health and determining liquidation. Each Oracle operates with a refresh rate based on their feeds, and we use their **TWAP Oracles** for a better security level, which can be further explored at the following links.

* **Pyth**: <https://pyth.network/price-feeds>
* **Switchboard**: <https://switchboard.xyz/explorer>
* **Supra Oracles**: <https://supraoracles.com/data>

🔔 Reminder: Currently, only Pyth provides comprehensive and stable price data on the Sui network. Therefore, Scallop currently relies solely on Pyth as the price feed provider. The multi-oracle approach is part of our future roadmap to further enhance resilience and security.

## Aggregate Multi-Oracle Strategy (Planning)

To reduce the risk of price manipulation in lending protocols, we have added an extra layer of security for the oracle (the oracle responsible for price provider), we use multiple oracles and evaluate their published prices. If any anomalies are detected, we abort the operation. A primary oracle is chosen as the main data source, while additional oracles serve as supplementary proof for the primary oracle's price.

## **\*TWAP Oracles (Building)**

Blockchain oracles supply real-world data to smart contracts in DeFi, such as asset prices or election outcomes. To protect DeFi smart contracts from price manipulation, Time Weighted Average Price (TWAP) oracles have been implemented to improve security.

A TWAP oracle provides the average price of an asset over a specific period, making price manipulation costly and difficult for attackers. TWAP oracles calculate asset prices using weighted averages, with time serving as the weight. This method is more accurate than a simple average, as it assigns significance to certain values in a distribution.

TWAP oracles, introduced in Uniswap v2 and improved in Uniswap v3, offer a more secure alternative to spot price or off-chain oracles. They are less susceptible to collusion and more resilient to short-term price fluctuations and flash loans. Thus, TWAP oracles are crucial for DeFi security.


# Bug Bounty

## Summary

The primary focus at Scallop is to provide a DeFi protocol that upholds the highest security standards. We are launching a bug bounty program, inviting the community to help identify potential vulnerabilities in our system. The emphasis is on smart contract security to protect user funds and maintain the platform's solvency. UI-related bugs are excluded. Submit any discovered bugs to `bug@scallop.io` for the opportunity to earn rewards up to $300,000.

Requirements To participate in the bug bounty program, please adhere to the following guidelines:

1. Report any discovered bugs or vulnerabilities exclusively to the Scallop Project Contributors at `bug@scallop.io`.
2. Ensure that the reported bug or vulnerability is previously undisclosed, falls within the scope of this program, and is not part of any publicly available audits.
3. If multiple reports of the same vulnerability are received, only the first submission will be considered for a reward.
4. Do not exploit the bug or vulnerability in any manner, including public disclosure or personal profit (aside from this program's rewards).
5. All rewards will be paid in SUI/USDC/SCA and sent to the wallet address provided by the reporter. Rewards cannot be converted to other cryptocurrencies or fiat.

#### Payouts

The Scallop Project Contributors will evaluate each submission individually, and rewards will be determined based on the severity of the issue:

* Critical: Up to $300,000
* High: Up to $30,000
* Medium: Up to $3,000
* Low: Up to $300

For detail about our Smart Contract bug bounty program you check on this:

<https://hackenproof.com/programs/scallop-protocol-smart-contract>


# White Paper

{% file src="/files/M7TokGzUy0L1qBuBgxRQ" %}


# SCA

**Name:** Scallop Token

**Ticker:** $SCA

**Chain:** Sui

**Total Supply (Max):** 250,000,000 SCA

The native cryptographically-secure fungible protocol token of Scallop (ticker symbol $SCA) is a transferable representation of attributed utility functions specified in the protocol/code of Scallop, designed to be used solely as an interoperable utility token.

##

## Token Allocation

| Emission Rate                 | Allocation |
| ----------------------------- | ---------- |
| Liquidity Mining              | 45%        |
| Scallop Project Contributors  | 15%        |
| Dev & Operation               | 4%         |
| Strategic Partners/Investor   | 15%        |
| Advisor                       | 1.5%       |
| Ecosystem/Community/Marketing | 7.5%       |
| Liquidity                     | 5%         |
| Treasury                      | 7%         |

#### Explanation:

* **Liquidity Mining,** is Distributed via a variety of liquidity incentivization schemes.
* **Scallop Project Contributors,** are Owned by the founding team contributors.
* **Dev & Operation,** Allocated for development and operational purposes.
* **Advisor,** Owned by key advisors.
* **Strategic partners,** Up to 15% reserved for private fundraising and strategic partnerships.
* **Ecosystem/Community/Marketing,** Allocated to fund marketing and platform growth initiatives.
* **Liquidity** 5% reserved for liquidity.
* **Treasury** 7% reserved for the Treasury.

## Vesting Schedule Explained

* **Liquidity Mining:** The emission will be released every month, with the current month's release being 1.5% lower than the previous month. Initially, it will be released in a quantity of 2,830,459 SCA.
* **Treasury**: 100% unlock at TGE (Token Generation Event) to maintain long-term liquidity on both centralized (CEX) and decentralized exchanges (DEX).
* **Ecosystem/Community/Marketing**: Linear unlock over 5 years.
* **Scallop Project Contributors**: Locked for 1 year, followed by a linear unlock over 3 years.
* **Advisor**: Locked for 1 year, followed by a linear unlock over 3 years.
* **Dev & Operation**: Linear unlock over 5 years.
* **Investors: U**nlock over 1-3yrs.

<figure><img src="https://lh7-rt.googleusercontent.com/slidesz/AGV_vUcHuEblIUL5jB5U6Uh5s406BdzHI630wqQS8JF-HP1h4hS7GTpVzOYBVSHIGM84npvp99nwEv7M27GN6Y4h2sOnWw2FaSa4B_zgMAM5HUNajxcp_hIB6VvVybToexqFNWomaK2r6YLCizzkgr4LJ5UGGlw_mRg=s2048?key=qv-6nSOS9_VQLQ22j4lLuw" alt=""><figcaption></figcaption></figure>


# veSCA

Scallop uses a special form of $SCA tokens, called veSCA to enhance decentralization. This means that by holding veSCA, owners can enjoy more benefits, making the tokens more useful.

veSCA helps decrease the number of $SCA tokens available, which helps make the token more stable and strengthens the entire Scallop Platform.This approach is key to ensuring Scallop's success and longevity.

### Benefit of veSCA

1. Governance & Voting power (coming soon)
2. Borrow Reward Boost
3. Loyalty Program
4. Referral Program / Tiered Fee Discount

***

### How to get veSCA

Simply lock your SCA and receive veSCA.

The amount of veSCA that you receive is proportional to the SCA and duration locked. Your veSCA amount will decay over time. It will reach zero once the lock duration is over. Your locked SCA will then be fully released.<br>

<figure><img src="/files/Q5kNR4b3JgKZ6GKqyDdd" alt=""><figcaption><p>veSCA decay chart</p></figcaption></figure>

You can increase your veSCA value by choosing to extend your staking duration and/or increase your staked amount.

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

The longer you lock the more veSCA you get in return.

#### veSCA Formula

$$
veSCA = SCA \times (RemainLockPeriod  \div4 Years)
$$

#### **Locking Principal**

* The unlock date only occurs everyday at 12 AM UTC. Therefore, users need to select this unlock date.
* One round lasts for one day (24 hours).
* Users need to lock **at least one full round**. So for example, if they start at 12 PM UTC, they can’t unlock it on the next 12 AM UTC (12 hours later) because it’s **not a full round yet**. In this case, users need to lock it for more than one day to achieve at least one full round.
* The minimum round is 1 and the maximum round is 1460. Maximum round is equal to 4 years.

#### **Lock more SCA**

* If users increase their SCA stake without changing the lock-up period, it will also refresh the amount of their veSCA.

**Extending Period**

* Users can opt for a longer lock-up period. The value of the users’ veSCA will be recalculated. It is not possible to shorten the lock-up period.

#### Redeem veSCA

* Users can take back 100% of SCA after the lock is over.

***

## veSCA utility

### Boost Earning by holding veSCA. <a href="#id-9857" id="id-9857"></a>

* Users can boost their earnings by holding veSCA. veSCA needs to be held when they deposit funds into a pool that offers incentives. For example, if a pool offers a 20% APR for depositing liquidity, holding a certain amount of veSCA can provide a boost, say up to 5x. Initially, the APR is 20%, which then becomes 100% after a 5x boost.
* The amount of boost a user receives depends on the percentage share of veSCA they hold. The more liquidity a user has, the more veSCA they need.

{% hint style="info" %}
If your **Boost Value** is incorrect, it means it hasn't been refreshed. It will update after you take actions like borrowing, supplying, repaying, staking SCA, or extending the lock period. Alternatively, you can manually refresh your boost by visiting the staking page and clicking the '**Refresh Boost**' button.
{% endhint %}

*Formula to calculate earning weight.*

<figure><img src="/files/BSGhOQ3IQkUNUKo9eogg" alt=""><figcaption><p>Formula to calculate earning weight</p></figcaption></figure>

\
\&#xNAN;*Formula to calculate earning boost. The percentage of earnings you receive. The minimum is 100%, representing the base earning.*

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

Now, calculating the APR you will receive is

<br>

$$
EarningAPR = PoolIncentiveAPR \times EarningBoost
$$

Let’s simulate different scenarios to prove that *veSCA amount* and *coinAmount* are correlated. Assuming veSCA total supply is **500,000**.

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

Table above illustrates that when *User Supply Amount* increases, *veSCA amount* needs to be increased — to maintain the *Earning APR*, otherwise the *APR* will decrease.

### Loyalty Program (Q2 2024) <a href="#id-3f52" id="id-3f52"></a>

The Loyalty Program is designed to reward users when we reach certain revenue milestones. At each milestone, we will conduct a buyback of our tokens, and these tokens will be distributed to users who hold veSCA.<br>

### Governance (Q3 2024) <a href="#id-4c10" id="id-4c10"></a>

Scallop’s Governance, also known as veSCA, will help enable a higher degree of decentralization.


# Referral

Scallopers will be able to generate their unique referral link and share it to invite new users. When a new user joins Scallop through the referral link and create an obligation key on Scallop, this obligation key will be associated to the referrer through the referrer’s wallet address.

Do note that once you have accepted a referral link, you will not be able to unbind the referral link!

## Benefit of Referral Program

Referrer will get a share of the borrow fee generated each time their Referee borrows from Scallop pools. The share of borrow fee is dependent on the amount of veSCA held by the Referrer.

Referees will be eligible for up to 20% discount on their Borrow Fees when they borrow from Scallop.

**Tier-Based Rates**

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

Do note that these rates may be adjusted in the future.

## A Simple Example

Scallop A has **1000,000 veSCA**, and generates a referral link for Scalloper B.

Scalloper A is entitled to **40% Borrow Fee Share**.

Scalloper B who uses Scalloper A’s referral link will enjoy **20% Borrow Fee Discount**.

Let’s say Scalloper B borrows **$1,000**:

**The Base Borrowing Fee**: $1,000 \* 0.3% = $3

**Scalloper B needs to pay**: $3 \* (100% — 20%) = $2.4

**Borrowing Fee share for Referrer**: $3 \* 40% = $1.2

## Getting Started with Scallop Referral Program <a href="#id-02bf" id="id-02bf"></a>

## How to Refer: <a href="#id-9209" id="id-9209"></a>

**Step 1:** Head to Scallop Referral page under “Refer & Earn”

<figure><img src="/files/MTI2h9IuIUtPHv0GG7e9" alt=""><figcaption><p>Referral Page: <a href="https://app.scallop.io/referral">https://app.scallop.io/referral</a></p></figcaption></figure>

**Step 2:** Click on “Start Earning” to generate your unique Referral Link.

You will be required to approve the transaction.

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

**Step 3:** Once the link is generated, you can now copy and share your link to start earning!

You will also be able to see your current eligible Borrow Fee Discount and Borrow Fee Share.

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

## How to Accept Referral: <a href="#bce2" id="bce2"></a>

Visit a Referral Link and you will be prompted to accept the invitation. Simply click “Accept Refer” to join Scallop.

<figure><img src="/files/6JGMcHLcrpVU3zSsGxyY" alt=""><figcaption></figcaption></figure>

Once accepted, you can now see that your account will be binded to your Referrer’s code! Do note that you will not be able to unbind once you have accepted a referral code.

## Join the Scallop Referral Program Today <a href="#id-2141" id="id-2141"></a>

By participating in the Scallop Referral Program, you’re not just earning rewards; you’re also helping grow our community. Stake your SCA and start sharing your referral link today!

<br>


# Team Control SCA Address

## Team Control SCA

<table data-full-width="false"><thead><tr><th>Type</th><th>Allocation</th><th>Type</th><th>Vesting Status</th><th>Wallet Address</th></tr></thead><tbody><tr><td>Dev &#x26; Operation</td><td>Operation &#x26; Dev</td><td>Manual Vesting<br>Multi-Signature</td><td>Vesting</td><td><a href="https://suivision.xyz/account/0xa7be72c38e7d868fecc4f0dea795bf1992ec63830434d2b9762a7b0a0ad0de0b">0xa7be72c38e7d868fecc4f0dea795bf1992ec63830434d2b9762a7b0a0ad0de0b</a></td></tr><tr><td>Ecosystem /<br>Community /<br>Marketing</td><td>Ecosystem / Community / Marketing</td><td>Manual Vesting<br>Multi-Signature</td><td>Vesting</td><td><a href="https://suivision.xyz/account/0x45582f247570ac5c65afaed413c3c34fe26e3f400a3a6df76598a115b23b2baa">0x45582f247570ac5c65afaed413c3c34fe26e3f400a3a6df76598a115b23b2baa</a></td></tr><tr><td>Ecosystem / Community / Marketing</td><td>Msafe Stream Vesting</td><td>Fully Vested</td><td>Vesting</td><td><a href="https://suivision.xyz/account/0x45582f247570ac5c65afaed413c3c34fe26e3f400a3a6df76598a115b23b2baa">0x45582f247570ac5c65afaed413c3c34fe26e3f400a3a6df76598a115b23b2baa</a></td></tr><tr><td>Ecosystem / Community / Marketing</td><td>TGE<br>Listing</td><td>Unlocked</td><td>Vesting</td><td><a href="https://suivision.xyz/account/0x45582f247570ac5c65afaed413c3c34fe26e3f400a3a6df76598a115b23b2baa">0x45582f247570ac5c65afaed413c3c34fe26e3f400a3a6df76598a115b23b2baa</a></td></tr><tr><td>Staking /<br>Pool Mining</td><td>Staking / Pool Mining</td><td>Manual Vesting<br>Multi-Signature</td><td>Vesting</td><td><a href="https://suivision.xyz/account/0x20d12c362caa4907c593c2a4981ddef70f56eeba5ea181ee5303d2164d97cddf">0x20d12c362caa4907c593c2a4981ddef70f56eeba5ea181ee5303d2164d97cddf</a></td></tr><tr><td>Treasury</td><td>Treasury</td><td>TGE<br>Listing</td><td>Unlocked</td><td><a href="https://suivision.xyz/account/0xfbc3117f547089a29e1cf197994d0ecf628e72babc6a3bf850f311533384cf99">0xfbc3117f547089a29e1cf197994d0ecf628e72babc6a3bf850f311533384cf99</a></td></tr><tr><td>Liquidity</td><td>Liquidity</td><td>TGE<br>Listing</td><td>Unlocked</td><td><a href="https://suivision.xyz/account/0x38afea660cbb76561cf622fb015644de4850242f3f1bdc71d00d4be2f058632f">0x38afea660cbb76561cf622fb015644de4850242f3f1bdc71d00d4be2f058632f</a></td></tr></tbody></table>

## Team Control Budget

<table data-full-width="false"><thead><tr><th>Wallet Type</th><th>Allocation</th><th>Type</th><th>Vesting Status</th><th>Wallet Address</th></tr></thead><tbody><tr><td>Hot wallet</td><td>Budget</td><td>Treasury / Revenue Earn<br>Multi-Signature</td><td>Unlocked</td><td><a href="https://suivision.xyz/account/0x473c5b346a779b7d6271a94fccc4c0d75c380a9f478cd7afaec79127a715c519">0x473c5b346a779b7d6271a94fccc4c0d75c380a9f478cd7afaec79127a715c519</a></td></tr><tr><td>Multi-sig wallet</td><td>Budget</td><td>Treasury / Revenue Earn<br>Multi-Signature</td><td>Unlocked</td><td><a href="https://suivision.xyz/account/0x1226a80ef40bd2e70c6a285b045b9b5d29915a2c5a2d57a2d3032cbdd89a8d5c">0x1226a80ef40bd2e70c6a285b045b9b5d29915a2c5a2d57a2d3032cbdd89a8d5c</a></td></tr><tr><td>Hot wallet</td><td>Budget</td><td>Incentives/ event rewards</td><td>Unlocked</td><td><a href="https://suivision.xyz/account/0xfc2a72936f6402faf482bd05cb56cd7b184739e7d541c3f35b79c100cd957f26">0xfc2a72936f6402faf482bd05cb56cd7b184739e7d541c3f35b79c100cd957f26</a></td></tr></tbody></table>


# Core Architecture

<figure><img src="/files/l0juHoQ7MIOkoaD8ZXVk" alt=""><figcaption><p>Scallop Lending Architecture</p></figcaption></figure>

## Lending Pool

***

Lending pool allow liquidity providers (LPs) to earn interest by depositing assets, with the flexibility to withdraw at any time. When users supply assets to Scallop’s lending pools, they receive **sCoins** in return. **But what exactly are sCoins, and why does Scallop issue them when users make deposits?**

sCoins are tokens that act as proof of a user’s supply at lending pool within the Scallop protocol. Beyond simply representing ownership, these sCoins serve also act as interest-bearing mean the value of sCoins grows overtime as they accrue interest from the deposited assets.

The value of sCoins is determined by both the price of the underlying asset and the current exchange rate. Key details to understand:

* The amount of sCoins you receive upon deposit depends on the current exchange rate.
* As interest builds, the exchange rate rises over time.
* **sCoin price formula**: sCoin price = Underlying asset price × Exchange rate.

{% hint style="info" %}
For example\
if 1 SUI is worth $1 USD and the sSUI exchange rate is 1.03, the value of each sSUI would be $1.03. Holding sCoins not only signifies ownership of the underlying assets but also the interest earned on them.
{% endhint %}

## X-Oracle

***

X-Oracle is a service developed by Scallop to **mitigate the risk of price manipulation in lending protocols**. We’ve added an extra layer of security by using multiple oracles to cross-verify prices. If any anomalies are detected in the price data, the operation is halted. A primary oracle provides the main data source, while additional oracles act as an additional data to verify the primary oracle’s accuracy.

{% hint style="info" %}
Currently, the primary oracle is Pyth, and the secondary oracle is Supra.
{% endhint %}

In Scallop the X-Oracle service is triggered during borrowing and collateral withdrawal transactions. Additionally, it is utilized when a user’s obligation becomes unhealthy and is eligible for liquidation by a liquidator.

## Obligation

***

An `Obligation` is an object used to record your collateral and debt. Therefore, you need to create at least one `Obligation` to perform any actions related to borrowing.

{% hint style="info" %}
It’s possible to have multiple obligations.

Each obligation is independent of the others, meaning that depositing collateral in one obligation does not allow you to borrow an asset using another obligation—even if you are the owner of both obligations.
{% endhint %}

### Undrestanding Obligation in Deep

An `Obligation` is a shared object. instead of holding the `Obligation` object in your wallet, you will possess an `ObligationKey`. This `ObligationKey` serves as proof that you own a specific `Obligation` linked to this **key**. Consequently, what you will find in your wallet is an NFT of the `ObligationKey`.

Essentially, your `Obligation` can be included in any transaction. However, for certain actions that *require proof of ownership*, others cannot use your `Obligation` because the function requires ownership proof. This is where your `ObligationKey` **plays a crucial role**.

For instance, when you want to borrow, the borrowing function will require you to provide both the `Obligation` and `ObligationKey` objects. In this scenario, anyone could pass your `Obligation` in this function, BUT **only you** can use the **correct** `ObligationKey`. This mechanism secures your `Obligation` against unauthorized use.

This is what we leverage from Sui Object-centric Model <https://docs.sui.io/concepts/object-ownership/address-owned>

## Collateral

***

Collateral is a valuable asset deposited by a borrower to secure a loan. It serves as security for the lender, ensuring that if the borrower fails to repay the loan, the collateral can be liquidated (sold) to recover the loaned amount.

In Scallop, users can deposit collateral, which is recorded in their obligations account. Each deposited asset increases the user’s borrowing capacity. However, before depositing their collateral, users must understand some key Scallop parameters related to collateral pools:

### Collateral Capacity

Collateral Capacity is the total deposit limit for each asset. As long as the collateral cap for an asset hasn’t been reached, users can continue depositing that asset as collateral.

### Collateral Weight

**Collateral weight** is a percentage that shows how much of your collateral’s value you can borrow. It helps manage risk in lending. If the collateral weight is less than 100%, it means you can’t borrow the full value of your collateral, only a portion of it.

{% hint style="info" %}
Example:

* You deposit 1 BTC, which is worth $10,000.
* If the collateral weight is 70%, you can borrow up to 70% of the BTC’s value, or $7,000.
  {% endhint %}

This limit helps protect the system in case the value of the collateral drops, reducing the risk of liquidation.

You maybe wondering about what kind of formula used by scallop to calculate the collateral values. Your collateral value is determined using this formula:

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

## Borrowing

***

**Borrowing** is an action where users can take a loan against their collateral assets. When performing this action, users must be aware of certain risks associated with borrowing against their collateral.

In Scallop, there are specific parameters that users need to understand before taking a loan on our protocol. We will dive deeper into these topics so that you can better manage your position risk on Scallop.

### Collateral Weight

You may have already read about this on the collateral side. As mentioned, the collateral weight is the percentage that determines how much a borrower can take as a loan. When borrowing against your collateral, it’s crucial to pay close attention to this parameter. Failing to do so could increase the risk of reaching your liquidation position.

### Borrow Weight

**Borrow weight** is a parameter that adjusts the borrowing capacity of users depending on the volatility of the asset they wish to borrow. Assets with higher volatility will have a higher borrow weight, making it more “expensive” to borrow them, meaning users can borrow a smaller amount compared to more stable assets. This is the formula of how your debt calculated on Scallop.

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

{% hint style="info" %}
Example:

if two assets (USDC and SUI) are both priced at $1:

* **USDC**, being a stable asset, might have a borrow weight of 1.
* **SUI**, a more volatile asset, might have a borrow weight of 1.25.

If you have $7,000 in collateral:

* You could borrow 7,000 USDC (7,000 ÷ 1 borrow weight = 7,000).
* But you could only borrow 5,600 SUI (7,000 ÷ 1.25 borrow weight = 5,600).
  {% endhint %}

This system ensures that borrowing volatile assets is more limited, reducing the risk of liquidation due to sudden price fluctuations.

### Borrow Outflow Limit

The **borrow outflow limit** refers to the maximum amount of an asset a user can borrow within a 24-hour period, with new amounts released every 30 minutes.

This is the short example how we calculate released amount:

<figure><img src="/files/QWL96BWnBhYgkrxbKCFf" alt=""><figcaption><p>Outflow Limit</p></figcaption></figure>

{% hint style="info" %}
Examples:

**Total Borrow Limit (24 hours):** 10 million USDC.

**Initial Condition:** No borrowing has happened yet, so the full 10 million USDC is available.

* A user borrows **100k USDC**.
* Now, the available outflow is **9.9 million USDC**.
* The **100k USDC** will be “released” and available again after **24 hours**.
* If no more borrowing happens, the pool remains at 9.9 million USDC.
* After 24 hours, the **100k USDC** is released and added back, making the total outflow available again **10 million USDC**.
* Then Another user borrows **200k USDC** after an hour. Now, **9.7 million USDC** is available.
* The borrowed **200k USDC** will be released in **24 hours** from when it was borrowed.
  {% endhint %}

> Notes:\
> Right Pointer: The current running time\
> Left Pointer: The latest 2 hours running time

### Borrow Fee

When users decide to take out a loan through the platform, a small fee is applied as part of the borrowing process. Specifically, this fee amounts to 0.3% of the total loan amount. This fee is not an additional charge to the borrower but rather is directly deducted from the loan amount at the time of borrowing.

### Liquidation Factor

The **liquidation factor** sets a threshold for how much debt a user can take against their collateral.

{% hint style="info" %}
Example:

Liquidation Factor SUI: 0.8 (80%) Liquidation Factor USDC: 0.9 (90%)

if a user has collateral consisting of **100 USDC** and **200$ value of SUI**, the liquidation thresholds are calculated as follows:

* **USDC**: $100 \* 0.9 (90% liquidation factor) = **$90**
* **SUI**: $200 \* 0.8 (80% liquidation factor) = **$160**

This gives a total collateral value of **$250**. If the user’s debt exceeds **$250**, they become eligible for liquidation.
{% endhint %}

## Soft Liquidation

***

Liquidation is a process where another user can repay the debt of a borrower who has exceeded the maximum allowable debt for their obligation. Liquidation models may vary across protocols, and Scallop’s model differs from others.

In many protocols, when a user’s position becomes unhealthy, they may lose all their collateral to repay the debt. However, in Scallop, this doesn’t happen. When a user’s position becomes unhealthy, only the portion of the debt that caused the user to become unhealthy is liquidated. Once the liquidation brings the user’s position back to a healthy state, no further liquidation can occur. As a result, the user only loses a portion of their collateral, rather than the entire amount, due to the liquidation process.


# Contract Integration

{% content-ref url="/pages/c1ZvKY5Rjkj269zNr391" %}
[Lending Function](/integrations/contract-integration/lending-function)
{% endcontent-ref %}

{% content-ref url="/pages/fEaEqqSS0cDdLkOHpjRY" %}
[Borrowing Function](/integrations/contract-integration/borrowing-function)
{% endcontent-ref %}

{% content-ref url="/pages/YuBEtwi9U8k0RDv2TvQz" %}
[Liquidation Function](/integrations/contract-integration/liquidation-function)
{% endcontent-ref %}


# Lending Function

## Mint

***

Supplying asset to lending pool and enable user to interest earning from supplied liquidity.

```jsx
public fun mint<T>(
    version: &Version,
    market: &mut Market,
    coin: Coin<T>,
    clock: &Clock,
    ctx: &mut TxContext,
  ): Coin<MarketCoin<T>> { }
```

**Parameters**

| **Name** | **Type** | **Description**                                                                  |
| -------- | -------- | -------------------------------------------------------------------------------- |
| version  | Version  | The version control object, contract version must match with this                |
| market   | Market   | The Scallop market object, it contains base assets, and related protocol configs |
| coin     | Coin     | The base asset to be supplied to the market                                      |
| clock    | Clock    | The SUI system Clock object                                                      |

**Return Values**

| Name       | Type | Description                                                                        |
| ---------- | ---- | ---------------------------------------------------------------------------------- |
| MarketCoin | Coin | The yield bearing coin also an coin that proof user has supplied asset on Scallop. |

{% hint style="info" %}
Note: If the yield-bearing coin is transferred to another address, it means that you have moved your supplied asset to that address, and the current address can no longer withdraw the assets. Only the receiving address can withdraw the assets.
{% endhint %}

**Events**

* **MintEvent** is emited when the supply tx success

**Errors**

* **73729:** Currently market not active.
* **81922**: Asset supply already reach limit cap.

**Example**:

{% tabs %}
{% tab title="Move" %}

```rust
module protocol::foo {

  use sui::clock::{Self, Clock};
  use sui::tx_context::{Self ,TxContext};
  use sui::coin::{Self, Coin};

  use scallop_protocol::mint::mint;
  use scallop_protocol::Market as ScallopMarket;
  use scallop_protocol::Version as ScallopVersion;

  public fun doFoo<T>(
    scallop_version: &ScallopVersion,
    scallop_market: &mut ScallopMarket,
    coin: Coin<T>,
    clock: &Clock,
    ctx: &mut TxContext
  ): Coin<MarketCoin<T>> {
     scallop_protocol::mint::mint<T>(
	scallop_version,
	scallop_market,
	coin,
	clock,
	ctx,
      )
  }
}
```

{% endtab %}

{% tab title="Typescript" %}

```tsx
import { getFullnodeUrl, SuiClient, } from '@mysten/sui.js/client';
import { SUI_CLOCK_OBJECT_ID } from '@mysten/sui.js/utils';
import { Ed25519Keypair } from '@mysten/sui/keypairs/ed25519';

const keypair = new Ed25519Keypair();
const address = keypair.getPublicKey().toSuiAddress();

const rpcUrl = getFullnodeUrl('mainnet');
const client = new SuiClient({ url: rpcUrl });
 
const SCALLOP_MARKET_OBJECT = "0xa757975255146dc9686aa823b7838b507f315d704f428cbadad2f4ea061939d9";
const SCALLOP_VERSION_OBJECT = "0x07871c4b3c847a0f674510d4978d5cf6f960452795e8ff6f189fd2088a3f6ac7";

const txb = new TransactionBlock();
txb.setSender();
const [sui] = txb.splitCoins(txb.gas, [1e9]);

const sCoin = txb.moveCall({
  target: "0xa45b8ffca59e5b44ec7c04481a04cb620b0e07b2b183527bca4e5f32372c5f1a::mint::mint",
  arguments: [
    txb.object(SCALLOP_VERSION_OBJECT),
    txb.object(SCALLOP_MARKET_OBJECT),
    sui,
    txb.object(SUI_CLOCK_OBJECT_ID),
  ],
  typeArguments: ["0x2::sui::SUI"],
});

txb.transferObjects([sCoin], txb.pure(address));

await client.signAndExecuteTransaction({
  signer: getKeyPair(keypair),
  transaction: txb,
  requestType: 'WaitForLocalExecution',
  options: {
    showEffects: true,
  },
});
```

{% endtab %}
{% endtabs %}

## **Redeem**

***

Withdraw assets from Scallop on Lending Pools, but there’s one thing to remember here is you need your sCoin object to withdraw assets from pool.

```rust
public fun redeem<T>(
  version: &Version,
  market: &mut Market,
  coin: Coin<MarketCoin<T>>,
  clock: &Clock,
  ctx: &mut TxContext,
): Coin<T> { }
```

**Paremeters**:

| **Name** | **Type**          | **Description**                                                                  |
| -------- | ----------------- | -------------------------------------------------------------------------------- |
| version  | Version           | The version control object, contract version must match with this                |
| market   | Market            | The Scallop market object, it contains base assets, and related protocol configs |
| coin     | Coin\<MarketCoin> | The sCoin object to exchange for underlying base asset                           |
| clock    | Clock             | The SUI system Clock object                                                      |

**Return Value**:

| Name | Type | Description                   |
| ---- | ---- | ----------------------------- |
| Coin | Coin | The redeemed underlying asset |

**Events**

* **RedeemEvent** is emited when the withdraw tx success

**Errors**

* **2050:** The marketcoin used to redeem the assets is to small.
* **81924**: Reserve not enough.
* **81921**: Pool liquidity not enough to redeemed underlying assets.

**Example**:

{% tabs %}
{% tab title="Move" %}

```rust
module protocol::foo {

  use sui::tx_context::{Self ,TxContext};
  use sui::coin::{Self, Coin};
  use sui::coin::{Self, Coin};

  use scallop_protocol::mint::mint;
  use scallop_protocol::Market as ScallopMarket;
  use scallop_protocol::Version as ScallopVersion;

  public fun doFoo<T>(
    scallop_version: &ScallopVersion,
    scallop_market: &mut ScallopMarket,
    s_coin: Coin<MarketCoin<T>>,
    clock: &Clock,
    ctx: &mut TxContext
  ): Coin<MarketCoin<T>> {
     scallop_protocol::redeem::redeem<T>(
	scallop_version,
	scallop_market,
	s_coin,
	clock,
	ctx,
     )
  }
}
```

{% endtab %}

{% tab title="Typescript" %}

<pre class="language-tsx"><code class="lang-tsx">import { getFullnodeUrl, SuiClient, } from '@mysten/sui.js/client';
import { SUI_CLOCK_OBJECT_ID } from '@mysten/sui.js/utils';
import { Ed25519Keypair } from '@mysten/sui/keypairs/ed25519';

const keypair = new Ed25519Keypair();
const address = keypair.getPublicKey().toSuiAddress();

const rpcUrl = getFullnodeUrl('mainnet');
const client = new SuiClient({ url: rpcUrl });
 
const SCALLOP_MARKET_OBJECT = "0xa757975255146dc9686aa823b7838b507f315d704f428cbadad2f4ea061939d9";
const SCALLOP_VERSION_OBJECT = "0x07871c4b3c847a0f674510d4978d5cf6f960452795e8ff6f189fd2088a3f6ac7";

const getSCoin = await client.getCoins({
  owner: address,
 coinType: "0xefe8b36d5b2e43728cc323298626b83177803521d195cfb11e15b910e892fddf::reserve::MarketCoin&#x3C;0x0000000000000000000000000000000000000000000000000000000000000002::sui::SUI>"
});

const sCoinObjects = getScoin.map((scoin) => scoin.coinObjectId);
if(sCoinObjects.length > 0) {
  const txb = new TransactionBlock();
  txb.setSender();

  if(sCoinObjects.length > 1) {
    txb.merge(sCoinObjects[0], sCoinObjects.slice(1, sCoinObjects.length);
  }

  const [sSUI] = txb.splitCoins(sCoinObjects[0], [1e9]);
  const sCoin = txb.moveCall({
   target: "0xa45b8ffca59e5b44ec7c04481a04cb620b0e07b2b183527bca4e5f32372c5f1a::redeem::redeem",
   arguments: [
     txb.object(SCALLOP_VERSION_OBJECT),
     txb.object(SCALLOP_MARKET_OBJECT),
     sSUI,
     txb.object(SUI_CLOCK_OBJECT_ID),
   ],
   typeArguments: ["0xefe8b36d5b2e43728cc323298626b83177803521d195cfb11e15b910e892fddf::reserve::MarketCoin&#x3C;0x0000000000000000000000000000000000000000000000000000000000000002::sui::SUI>"],
<strong>  });
</strong>
  txb.transferObjects([sCoin], txb.pure(address));

  await client.signAndExecuteTransaction({
    signer: getKeyPair(keypair),
    transaction: txb,
    requestType: 'WaitForLocalExecution',
    options: {
	showEffects: true,
    },
 });
}
</code></pre>

{% endtab %}
{% endtabs %}


# Borrowing Function

## Obligation

***

Before doing any borrowing related action, you need to have `Obligation` object. `Obligation` is an object to record your **collateral** and **debt.** So you need to create at least one to do any related borrowing action.

{% hint style="info" %}
It’s possible to have multiple obligation.
{% endhint %}

Each obligation isn’t related to another, so depositing collateral in one obligation doesn’t meant you can borrow an asset using another obligation - even you are the owner of both obligations.

{% hint style="info" %}
Understanding Obligation

`Obligation` is a shared object, instead of owning `Obligation` object in your wallet - you will hold an `ObligationKey` in your wallet. This `ObligationKey` is **a proof you own a particular** `Obligation` that connected to this `ObligationKey`. So what you will see in your wallet is an NFT of `ObligationKey`.
{% endhint %}

Let’s learn how to create `Obligation` object:

### Open Obligation

```tsx
public fun open_obligation(
  version: &Version,
  ctx: &mut TxContext,
): (Obligation, ObligationKey, ObligationHotPotato) { }
```

**Parameters:**

| **Name** | **Type** | **Description**                                                   |
| -------- | -------- | ----------------------------------------------------------------- |
| version  | Version  | The version control object, contract version must match with this |

**Return Values**

| Name                | Type                | Description                                                                                        |
| ------------------- | ------------------- | -------------------------------------------------------------------------------------------------- |
| Obligation          | Obligation          | The obligation object which will be shared                                                         |
| Obligation Key      | ObligationKey       | This is an owned object that serves as proof of ownership of the obligation object.                |
| ObligationHotPotato | ObligationHotPotato | Because open\_obligation function used HotPotato pattern which this pattern is make it composable. |

### Return Obligation

```tsx
public fun return_obligation(
	version: &Version,
	obligation: Obligation,
	obligation_hot_potato: ObligationHotPotato,
	ctx: &mut TxContext,
) { }
```

Parameters:

| **Name**                | **Type**            | **Description**                                                   |
| ----------------------- | ------------------- | ----------------------------------------------------------------- |
| version                 | Version             | The version control object, contract version must match with this |
| obligation              | Obligation          | The obligation object created by `open_obligation`.               |
| obligation\_hot\_potato | ObligationHotPotato | HotPotato object generated by `open_obligation` .                 |

{% hint style="info" %}
You might be wondering why we implement the `HotPotato` pattern in the `open_obligation` function. The reason is that the `Obligation` is a shared object. If we directly return the object, it will be shared, and we won’t be able to **combine** this transaction with another function for borrowing in a single PTB (Programmable Transaction Block).

By using this methodology, we can combine the open obligation transaction with a deposit collateral transaction in one PTB. Also to make the `Obligation` shared, we also need to include the `return_obligation` function to transaction to make the `Obligation` object become shared.
{% endhint %}

Example:

{% tabs %}
{% tab title="Move" %}

```rust
module protocol::foo {

  use sui::coin::{Self, Coin};
  use sui::clock::{Self, Clock};
  use sui::tx_context::{Self ,TxContext};
  use sui::transfer;

  use scallop_protocol::obligation::open_obligation;
  use scallop_protocol::obligation::return_obligation;
  use scallop_protocol::Market as ScallopMarket;
  use scallop_protocol::Version as ScallopVersion;

  ...

  public fun doFoo(
    scallop_version: &ScallopVersion,
    clock: &Clock,
    ctx: &mut TxContext
  ) {
    let (obligation_id, obligation_key, obligation_hot_potato) = scallop_protocol::obligation::open_obligation(
	scallop_version,
	scallop_market,
	coin,
	clock,
	ctx,
    );
    // ----------------
    // Do other tx here

    // ----------------
    scallop_protocol::obligation::return_obligation(
      scallop_version,
      obligation_id,
      obligation_hot_potato
     );
    transfer::transfer(obligation_key, ctx.sender());
  }
}
```

{% endtab %}

{% tab title="Typescript" %}

```typescript
import { getFullnodeUrl, SuiClient, } from '@mysten/sui.js/client';
import { SUI_CLOCK_OBJECT_ID } from '@mysten/sui.js/utils';
import { Ed25519Keypair } from '@mysten/sui/keypairs/ed25519';

const keypair = new Ed25519Keypair();
const address = keypair.getPublicKey().toSuiAddress();

const rpcUrl = getFullnodeUrl('mainnet');
const client = new SuiClient({ url: rpcUrl });
 
const SCALLOP_MARKET_OBJECT = "0xa757975255146dc9686aa823b7838b507f315d704f428cbadad2f4ea061939d9";
const SCALLOP_VERSION_OBJECT = "0x07871c4b3c847a0f674510d4978d5cf6f960452795e8ff6f189fd2088a3f6ac7";

const txb = new TransactionBlock();
txb.setSender();

const [obligationId, obligationKey, obligationHotPotato] = txb.moveCall({
  target: "0xa45b8ffca59e5b44ec7c04481a04cb620b0e07b2b183527bca4e5f32372c5f1a::obligation::open_obligation",
  arguments: [
     txb.object(SCALLOP_VERSION_OBJECT),
  ],
  typeArguments: [],
});

// You can do another stuff here before return the obligation
// Example like deposit collateral then borrow

txb.moveCall({
  target: "0xa45b8ffca59e5b44ec7c04481a04cb620b0e07b2b183527bca4e5f32372c5f1a::obligation::open_obligation",
  arguments: [
    txb.object(SCALLOP_VERSION_OBJECT),
    obligationId,
    obligationHotPotato
  ],
  typeArguments: []
});

txb.transferObjects([obligationKey], txb.pure(address));

await client.signAndExecuteTransaction({
   signer: getKeyPair(keypair),
   transaction: txb,
   requestType: 'WaitForLocalExecution',
   options: {
     showEffects: true,
   },
});
```

{% endtab %}
{% endtabs %}

Now, you are ready to do any borrowing related actions with your Obligation.

To be able to borrow, you need to have collateral. Let’s learn how to deposit collateral.

## Collateral

***

### Deposit Collateral

Allows deposit collateral to your obligation account. This function allow anyone to deposit collateral into other user obligation account. Why everyone can do it? Because this is fine if someone doing it for you. You will not loss anything if someone does it for you. So we open it for everyone.

```tsx
public fun deposit_collateral<T>(
  version: &Version,
  obligation: &mut Obligation,
  coin: Coin<T>,
  ctx: &mut TxContext,
) { }
```

**Parameters:**

| **Name**   | **Type**   | **Description**                                                   |
| ---------- | ---------- | ----------------------------------------------------------------- |
| version    | Version    | The version control object, contract version must match with this |
| obligation | Obligation | The id of obligation, it should be shared object.                 |
| coin       | Coin       | The base asset to be deposit to the collateral pool               |

Events:

* CollateralDepositEvent is emmited when the collateral deposit tx success

Errors:

* **770:** Means your current obligation is locked and need to unstake first from borrow incentive
* **73730:** Means current collateral is not active yet.
* **1794**: Invalid collateral type.
* **1796**: Unable to deposited borrowed coin because the depositor try to deposit same asset as depositor borrowed.

Example:

{% tabs %}
{% tab title="Move" %}

```rust
module protocol::foo {

  use sui::coin::{Self, Coin};
  use sui::clock::{Self, Clock};
  use sui::tx_context::{Self ,TxContext};
  use sui::transfer;

  use scallop_protocol::obligation::open_obligation;
  use scallop_protocol::obligation::return_obligation;
  use scallop_protocol::deposit_collateral::deposit_collateral;
  use scallop_protocol::Market as ScallopMarket;
  use scallop_protocol::Version as ScallopVersion;
  use scallop_protocol::obligation::{Self, Obligation};


  public fun doFoo<T>(
    scallop_version: &ScallopVersion,
    obligation: &mut Obligation,
    coin: Coin<T>,
    ctx: &mut TxContext
   ) {
     let deposit_amount = coin::value(&coin);
	
     let (obligation_id, obligation_key, obligation_hot_potato) = scallop_protocol::obligation::open_obligation(
	scallop_version,
	scallop_market,
	coin,
	clock,
	ctx,
     );
    // ----------------
    // Do other tx here
	
    scallop_protocol::deposit_collateral::deposit_collateral(
      scallop_version,
      obligation_id,
      deposit_amount,
      ctx,
    );
   // ----------------
	
    scallop_protocol::obligation::return_obligation(
      scallop_version,
      obligation_id,
      obligation_hot_potato
    );
    transfer::transfer(obligation_key, ctx.sender());
  }
}
```

{% endtab %}

{% tab title="Typescript" %}

```tsx
import { getFullnodeUrl, SuiClient, } from '@mysten/sui.js/client';
import { SUI_CLOCK_OBJECT_ID } from '@mysten/sui.js/utils';
import { Ed25519Keypair } from '@mysten/sui/keypairs/ed25519';

const keypair = new Ed25519Keypair();
const address = keypair.getPublicKey().toSuiAddress();

const rpcUrl = getFullnodeUrl('mainnet');
const client = new SuiClient({ url: rpcUrl });
 
const SCALLOP_MARKET_OBJECT = "0xa757975255146dc9686aa823b7838b507f315d704f428cbadad2f4ea061939d9";
const SCALLOP_VERSION_OBJECT = "0x07871c4b3c847a0f674510d4978d5cf6f960452795e8ff6f189fd2088a3f6ac7";

const txb = new TransactionBlock();
txb.setSender();
const [sui] = txb.splitCoins(txb.gas, [1e9]);

const [obligationId, obligationKey, obligationHotPotato] = txb.moveCall({
  target: "0xa45b8ffca59e5b44ec7c04481a04cb620b0e07b2b183527bca4e5f32372c5f1a::obligation::open_obligation",
  arguments: [
    txb.object(SCALLOP_VERSION_OBJECT),
  ],
  typeArguments: [],
});

// Deposit Collateral Transaction
txb.moveCall({
  target: "0xa45b8ffca59e5b44ec7c04481a04cb620b0e07b2b183527bca4e5f32372c5f1a::deposit_obligation::deposit_obligation",
  arguments: [
    txb.object(SCALLOP_VERSION_OBJECT),
    obligationId,
    sui
   ],
   typeArguments: ["0x2::sui::SUI"]
});

txb.moveCall({
   target: "0xa45b8ffca59e5b44ec7c04481a04cb620b0e07b2b183527bca4e5f32372c5f1a::obligation::open_obligation",
   arguments: [
      txb.object(SCALLOP_VERSION_OBJECT),
      obligationId,
      obligationHotPotato
    ],
    typeArguments: []
});

txb.transferObjects([obligationKey], txb.pure(address));

await client.signAndExecuteTransaction({
  signer: getKeyPair(keypair),
  transaction: txb,
  requestType: 'WaitForLocalExecution',
  options: {
    showEffects: true,
  },
});
```

See how composable Sui is—you can execute two transactions with just one approval. We'll explore more examples of Sui's composability in programmable transaction blocks (PTBs) within the Scallop protocol.
{% endtab %}
{% endtabs %}

### Withdraw Collateral

Unlike depositing collateral, withdrawing collateral requires the `ObligationKey` object, which is an owned object. This means that only the owner of the obligation account can withdraw collateral; another address cannot withdraw collateral from an obligation account it does not own.

```tsx
public fun withdraw_collateral<T>(
    version: &Version,
    obligation: &mut Obligation,
    obligation_key: &ObligationKey,
    market: &mut Market,
    coin_decimals_registry: &CoinDecimalsRegistry,
    withdraw_amount: u64,
    x_oracle: &XOracle,
    clock: &Clock,
    ctx: &mut TxContext,
  ): Coin<T> { }
```

Parameters:

| **Name**                | **Type**             | **Description**                                                                  |
| ----------------------- | -------------------- | -------------------------------------------------------------------------------- |
| version                 | Version              | The version control object, contract version must match with this                |
| obligation              | Obligation           | The id of obligation, it should be shared object.                                |
| obligation\_key         | ObligationKey        | The key to prove the ownership of the obligation                                 |
| market                  | Market               | The Scallop market object, it contains base assets, and related protocol configs |
| coin\_decimal\_registry | CoinDecimalsRegistry | The package that has decimal coin of base assets.                                |
| withdraw\_amount        | u64                  | The amount assets will withdraw from pool                                        |
| x\_orcale               | XOracle              | The x-oracle object which provides the price of assets                           |
| clock                   | Clock                | The SUI system clock object                                                      |

**Return Value**:

| Name | Type | Description                     |
| ---- | ---- | ------------------------------- |
| Coin | Coin | The withdrawed underlying asset |

**Events**

* CollateralWithdrawEvent is emmited when transaction success

**Errors**

* **770:** Means your current obligation is locked and need to unstake first from borrow incentive
* **0:** Not owner of obligation
* **1795**: Withdraw collateral to much

**Example**

{% tabs %}
{% tab title="Move" %}

```rust
module protocol::foo {

  use sui::coin::{Self, Coin};
  use sui::clock::{Self, Clock};
  use sui::tx_context::{Self ,TxContext};
  
  use sui::transfer;

  use scallop_protocol::withdraw_collateral::withdraw_collateral;
  use scallop_protocol::Market as ScallopMarket;
  use scallop_protocol::Version as ScallopVersion;
  use scallop_protocol::obligation::{Self, Obligation, ObligationKey};
  use scallop_protocol::coin_decimals_registry::CoinDecimalsRegistry;
  use scallop_protocol::x_oracle::XOracle;
  
  ...
	
	
  public fun doFoo<T>(
    version: &ScallopVersion,
    obligation: &mut Obligation,
    obligation_key: &ObligationKey,
    market: &mut ScallopMarket,
    coin_decimals_registry: &CoinDecimalsRegistry,
    withdraw_amount: u64,
    x_oracle: &XOracle,
    clock: &Clock,
    ctx: &mut TxContext
  ) {
    let withdrawed_coin = scallop_protocol::withdraw_collateral::withdraw_collateral(
      scallop_version,
      obligation_id,
      obligation_key,
      market,
      coin_decimals_registry,
      withdraw_amount,
      x_oracle,
      clock,
      ctx,
    );
    transfer::transfer(withdrawed_coin, ctx.sender());
  }
}
```

{% endtab %}

{% tab title="Typescript" %}

```tsx
import { getFullnodeUrl, SuiClient, } from '@mysten/sui.js/client';
import { SUI_CLOCK_OBJECT_ID } from '@mysten/sui.js/utils';
import { Ed25519Keypair } from '@mysten/sui/keypairs/ed25519';

const keypair = new Ed25519Keypair();
const address = keypair.getPublicKey().toSuiAddress();

const rpcUrl = getFullnodeUrl('mainnet');
const client = new SuiClient({ url: rpcUrl });
 
const SCALLOP_MARKET_OBJECT = "0xa757975255146dc9686aa823b7838b507f315d704f428cbadad2f4ea061939d9";
const SCALLOP_VERSION_OBJECT = "0x07871c4b3c847a0f674510d4978d5cf6f960452795e8ff6f189fd2088a3f6ac7";
const SCALLOP_COIN_DECIMAL_REGISTRY = "0x200abe9bf19751cc566ae35aa58e2b7e4ff688fc1130f8d8909ea09bc137d668";
const SCALLOP_X_ORACLE = "0x93d5bf0936b71eb27255941e532fac33b5a5c7759e377b4923af0a1359ad494f";

const txb = new TransactionBlock();
txb.setSender();
const [sui] = txb.splitCoins(txb.gas, [1e9]);

// Before doing this transaction make sure you have updated the price of our x_oracle
const withdrawSui = txb.moveCall({
  target: "0xa45b8ffca59e5b44ec7c04481a04cb620b0e07b2b183527bca4e5f32372c5f1a::withdraw_collateral::withdraw_collateral",
  arguments: [
   txb.object(SCALLOP_VERSION_OBJECT),
   obligationId,
   obligationKey,
   txb.object(SCALLOP_MARKET_OBJECT),
   txb.object(SCALLOP_COIN_DECIMAL_REGISTRY),
   1e9,
   txb.object(SCALLOP_X_ORACLE),
   txb.object(SUI_CLOCK_OBJECT_ID)
  ],
  typeArguments: ["0x2::sui::SUI"]
});

txb.transferObjects([withdrawSui], txb.pure(address));

await client.signAndExecuteTransaction({
  signer: getKeyPair(keypair),
  transaction: txb,
  requestType: 'WaitForLocalExecution',
  options: {
    showEffects: true,
  },
});
```

{% endtab %}
{% endtabs %}

Check here the example how to do update price `x_oracle` :

<https://github.com/scallop-io/sui-scallop-sdk/blob/main/src/builders/oracle.ts>

We recommend you to call this function using our [Scallop SDK](https://github.com/scallop-io/sui-scallop-sdk), so before calling any function related to withdraw Collateral, you need to call update price in the beginning of the [PTB (Programmable Transaction Block)](https://docs.sui.io/guides/developer/sui-101/building-ptb).

Here what your PTB should looks like:

```rust
PTB for calling function that have withdraw collateral:
- update price (you get this from SDK)
- your function that call withdraw_collateral
```

## **Borrowing**

***

### **Borrow**

Allow user to borrow assets from borrowing pools againts collateral deposited by user.

```rust
 public fun borrow<T>(
  version: &Version,
  obligation: &mut Obligation,
  obligation_key: &ObligationKey,
  market: &mut Market,
  coin_decimals_registry: &CoinDecimalsRegistry,
  borrow_amount: u64,
  x_oracle: &XOracle,
  clock: &Clock,
  ctx: &mut TxContext,
): Coin<T> { }
```

**Parameters:**

| Name                     | Type                 | Description                                                                      |
| ------------------------ | -------------------- | -------------------------------------------------------------------------------- |
| version                  | Version              | The version control object, contract version must match with this                |
| obligation               | Obligation           | The id of obligation, it should be shared object.                                |
| obligation\_key          | ObligationKey        | The key to prove the ownership of the obligation                                 |
| market                   | Market               | The Scallop market object, it contains base assets, and related protocol configs |
| coin\_decimals\_registry | CoinDecimalsRegistry | The package that has decimal coin of base assets.                                |
| borrow\_amount           | u64                  | The amount assets will borrow from pool                                          |
| x\_oracle                | XOracle              | The x-oracle object which provides the price of assets                           |
| clock                    | Clock                | The SUI system clock object                                                      |

**Returns Value**

| Name | Type | Description                   |
| ---- | ---- | ----------------------------- |
| coin | Coin | The borrowed underlying asset |

**Events:**

* BorrowEventV3 is emmited when transaction is success

**Errors:**

* **770:** Means your current obligation is locked and need to unstake first from borrow incentive
* **0:** Not owner of obligation
* **1284**: Means unable to borrow a collateral coin
* **1282**: Borrow to small
* **1281**: Borrow to much
* **81924**: Reserve not enough

Example:

{% tabs %}
{% tab title="Move" %}

```rust
module protocol::foo {

  use sui::coin::{Self, Coin};
  use sui::clock::{Self, Clock};
  use sui::tx_context::{Self ,TxContext};
  use sui::transfer;

  use scallop_protocol::borrow::borrow;
  use scallop_protocol::Market as ScallopMarket;
  use scallop_protocol::Version as ScallopVersion;
  use scallop_protocol::obligation::{Self, Obligation, ObligationKey};
  use scallop_protocol::coin_decimals_registry::CoinDecimalsRegistry;
  use scallop_protocol::x_oracle::XOracle;
	
  ...
	
	
  public fun doFoo<T>(
    version: &ScallopVersion,
    obligation: &mut Obligation,
    obligation_key: &ObligationKey,
    market: &mut ScallopMarket,
    coin_decimals_registry: &CoinDecimalsRegistry,
    borrow_amount: u64,
    x_oracle: &XOracle,
    clock: &Clock,
    ctx: &mut TxContext
  ) {
      let borrowed_coin = scallop_protocol::borrow::borrow(
	  scallop_version,
	  obligation_id,
	  obligation_key,
	  market,
	  coin_decimals_registry,
	  borrow_amount,
	  x_oracle,
	  clock,
	  ctx,
	);
		
      transfer::transfer(borrowed_coin, ctx.sender());
  }
}
```

{% endtab %}

{% tab title="Typescript" %}

```tsx
import { getFullnodeUrl, SuiClient, } from '@mysten/sui.js/client';
import { SUI_CLOCK_OBJECT_ID } from '@mysten/sui.js/utils';
import { Ed25519Keypair } from '@mysten/sui/keypairs/ed25519';

const keypair = new Ed25519Keypair();
const address = keypair.getPublicKey().toSuiAddress();

const rpcUrl = getFullnodeUrl('mainnet');
const client = new SuiClient({ url: rpcUrl });
 
const SCALLOP_MARKET_OBJECT = "0xa757975255146dc9686aa823b7838b507f315d704f428cbadad2f4ea061939d9";
const SCALLOP_VERSION_OBJECT = "0x07871c4b3c847a0f674510d4978d5cf6f960452795e8ff6f189fd2088a3f6ac7";
const SCALLOP_COIN_DECIMAL_REGISTRY = "0x200abe9bf19751cc566ae35aa58e2b7e4ff688fc1130f8d8909ea09bc137d668";
const SCALLOP_X_ORACLE = "0x93d5bf0936b71eb27255941e532fac33b5a5c7759e377b4923af0a1359ad494f";

const txb = new TransactionBlock();
txb.setSender();
const [sui] = txb.splitCoins(txb.gas, [1e9]);

// Before doing this transaction make sure you have updated the price of our x_oracle
const withdrawSui = txb.moveCall({
  target: "0xa45b8ffca59e5b44ec7c04481a04cb620b0e07b2b183527bca4e5f32372c5f1a::borrow::borrow",
  arguments: [
    txb.object(SCALLOP_VERSION_OBJECT),
    obligationId,
    obligationKey,
    txb.object(SCALLOP_MARKET_OBJECT),
    txb.object(SCALLOP_COIN_DECIMAL_REGISTRY),
    1e9,
    txb.object(SCALLOP_X_ORACLE),
    txb.object(SUI_CLOCK_OBJECT_ID)
  ],
  typeArguments: ["0x2::sui::SUI"]
});

txb.transferObjects([withdrawSui], txb.pure(address));

await client.signAndExecuteTransaction({
  signer: getKeyPair(keypair),
  transaction: txb,
  requestType: 'WaitForLocalExecution',
  options: {
    showEffects: true,
  },
});
```

{% endtab %}
{% endtabs %}

Check here the example how to do update price `x_oracle` :

<https://github.com/scallop-io/sui-scallop-sdk/blob/main/src/builders/oracle.ts>

We recommend you to call this function using our [Scallop SDK](https://github.com/scallop-io/sui-scallop-sdk), so before calling any function related to borrow, you need to call update price in the beginning of the [PTB (Programmable Transaction Block)](https://docs.sui.io/guides/developer/sui-101/building-ptb).

Here what your PTB should looks like:

```rust
PTB for calling function that have borrow:
- update price (you get this from SDK)
- your function that call borrow
```

### **Repay**

Enabled user to repay underlying assets without requiring the ObligationKey object. Therefore, users can repay the borrowing obligation using any account, not just the obligation owner’s account.

```rust
public entry fun repay<T>(
  version: &Version,
  obligation: &mut Obligation,
  market: &mut Market,
  user_coin: Coin<T>,
  clock: &Clock,
  ctx: &mut TxContext,
) { }
```

**Parameters:**

| Name       | Type       | Description                                                                      |
| ---------- | ---------- | -------------------------------------------------------------------------------- |
| version    | Version    | The version control object, contract version must match with this                |
| obligation | Obligation | The id of obligation, it should be shared object.                                |
| market     | Market     | The Scallop market object, it contains base assets, and related protocol configs |
| user\_coin | Coin       | The coin object used to repay borrowed underlying asset                          |
| clock      | Clock      | The SUI system clock object                                                      |

**Events:**

* RepayEventV3 is emmited when transaction is success

**Errors:**

* **770:** Means your current obligation is locked and need to unstake first from borrow incentive

Example:

{% tabs %}
{% tab title="Move" %}

```rust
module protocol::foo {

  use sui::coin::{Self, Coin};
  use sui::clock::{Self, Clock};
  use sui::tx_context::{Self ,TxContext};
  use sui::transfer;
  use scallop_protocol::repay::repay;
  use scallop_protocol::Market as ScallopMarket;
  use scallop_protocol::Version as ScallopVersion;
  use scallop_protocol::obligation::{Self, Obligation};
  use scallop_protocol::coin_decimals_registry::CoinDecimalsRegistry;

  public fun doFoo<T>(
    version: &ScallopVersion,
    obligation: &mut Obligation,
    market: &mut ScallopMarket,
    user_coin: Coin<T>,
    clock: &Clock,
    ctx: &mut TxContext
  ) {
      scallop_protocol::repay::repay(
	scallop_version,
        obligation_id,
	market,
	user_coin,
	clock,
	ctx,
      );
  }
}
```

{% endtab %}

{% tab title="Typescript" %}

```tsx
import { getFullnodeUrl, SuiClient, } from '@mysten/sui.js/client';
import { SUI_CLOCK_OBJECT_ID } from '@mysten/sui.js/utils';
import { Ed25519Keypair } from '@mysten/sui/keypairs/ed25519';

const keypair = new Ed25519Keypair();
const address = keypair.getPublicKey().toSuiAddress();

const rpcUrl = getFullnodeUrl('mainnet');
const client = new SuiClient({ url: rpcUrl });
 
const SCALLOP_MARKET_OBJECT = "0xa757975255146dc9686aa823b7838b507f315d704f428cbadad2f4ea061939d9";
const SCALLOP_VERSION_OBJECT = "0x07871c4b3c847a0f674510d4978d5cf6f960452795e8ff6f189fd2088a3f6ac7";
const SCALLOP_COIN_DECIMAL_REGISTRY = "0x200abe9bf19751cc566ae35aa58e2b7e4ff688fc1130f8d8909ea09bc137d668";
const SCALLOP_X_ORACLE = "0x93d5bf0936b71eb27255941e532fac33b5a5c7759e377b4923af0a1359ad494f";

const txb = new TransactionBlock();
txb.setSender();
const [sui] = txb.splitCoins(txb.gas, [1e9]);

// Before doing this transaction make sure you have updated the price of our x_oracle
const withdrawSui = txb.moveCall({
  target: "0xa45b8ffca59e5b44ec7c04481a04cb620b0e07b2b183527bca4e5f32372c5f1a::repay::repay",
  arguments: [
    txb.object(SCALLOP_VERSION_OBJECT),
    obligationId,
    txb.object(SCALLOP_MARKET_OBJECT),
    sui,
    txb.object(SUI_CLOCK_OBJECT_ID)
  ],
  typeArguments: ["0x2::sui::SUI"]
});

await client.signAndExecuteTransaction({
  signer: getKeyPair(keypair),
  transaction: txb,
  requestType: 'WaitForLocalExecution',
  options: {
    showEffects: true,
  },
});
```

{% endtab %}
{% endtabs %}


# Liquidation Function

## L**iquidate**

***

This function allows you to liquidate an obligation account that has unhealthy condition. Anyone can perform the liquidation if the obligation is in unhealthy condition. Additionally, you need to update the oracle price before proceeding with the liquidation.

```rust
public fun liquidate<DebtType, CollateralType>(
  version: &Version,
  obligation: &mut Obligation,
  market: &mut Market,
  available_repay_coin: Coin<DebtType>,
  coin_decimals_registry: &CoinDecimalsRegistry,
  x_oracle: &XOracle,
  clock: &Clock,
  ctx: &mut TxContext,
): (Coin<DebtType>, Coin<CollateralType>) { }
```

**Modules**:

**Parameters**

| **Name**                 | **Type**             | **Description**                                                                  |
| ------------------------ | -------------------- | -------------------------------------------------------------------------------- |
| version                  | Version              | The version control object, contract version must match with this                |
| obligation               | Obligation           | The obligation id object                                                         |
| market                   | Market               | The Scallop market object, it contains base assets, and related protocol configs |
| available\_repay\_coin   | Coin                 | Coin object that used to repay the debt of obligation.                           |
| coin\_decimals\_registry | CoinDecimalsRegistry | The package that has decimal coin of base assets.                                |
| x\_oracle                | XOracle              | The x-oracle object which provides the price of assets                           |
| clock                    | Clock                | The SUI system clock object                                                      |

**Return Values**

| Name | Type | Description               |
| ---- | ---- | ------------------------- |
| Coin | Coin | The remaining base asset  |
| Coin | Coin | The liquidated collateral |

**Events**

* LiquidateEventV2 is emited when the supply tx success

**Errors**

* **770:** Means current obligation is locked and need to unstake first from borrow incentive
* **1537:** Unable liquidated because liquid amount is not lower than or equal 0

**Example**:

{% tabs %}
{% tab title="Move" %}

```rust
module protocol::foo {

  use sui::coin::{Self, Coin};

  use scallop_protocol::mint::mint;
  use scallop_protocol::Market as ScallopMarket;
  use scallop_protocol::Version as ScallopVersion;
  use scallop_protocol::Obligation;
  use scallop_protocol::CoinDecimalsRegistry;
  use scallop_protocol::XOracle;

  public fun doFoo<T>(
    scallop_version: &Version,
    obligation: &mut Obligation,
    scallop_market: &mut Market,
    available_repay_coin: Coin<DebtType>,
    coin_decimals_registry: &CoinDecimalsRegistry,
    x_oracle: &XOracle,
    clock: &Clock,
    ctx: &mut TxContext
  ): Coin<MarketCoin<T>> {
    scallop_protocol::liquidate::liquidate<T>(
      scallop_version,
      scallop_market,
      available_repay_coin,
      coin_decimals_registry,
      x_oracle,
      clock,
      ctx,
    )
 }
}
```

{% endtab %}

{% tab title="Typescript" %}

```tsx
import { getFullnodeUrl, SuiClient, } from '@mysten/sui.js/client';
import { SUI_CLOCK_OBJECT_ID } from '@mysten/sui.js/utils';
import { Ed25519Keypair } from '@mysten/sui/keypairs/ed25519';

const keypair = new Ed25519Keypair();
const address = keypair.getPublicKey().toSuiAddress();

const rpcUrl = getFullnodeUrl('mainnet');
const client = new SuiClient({ url: rpcUrl });
 
const SCALLOP_MARKET_OBJECT = "0xa757975255146dc9686aa823b7838b507f315d704f428cbadad2f4ea061939d9";
const SCALLOP_VERSION_OBJECT = "0x07871c4b3c847a0f674510d4978d5cf6f960452795e8ff6f189fd2088a3f6ac7";
const SCALLOP_COIN_DECIMAL_REGISTRY = "0x200abe9bf19751cc566ae35aa58e2b7e4ff688fc1130f8d8909ea09bc137d668";
const SCALLOP_X_ORACLE = "0x93d5bf0936b71eb27255941e532fac33b5a5c7759e377b4923af0a1359ad494f";

const txb = new TransactionBlock();
txb.setSender();
const [repaySui] = txb.splitCoins(txb.gas, [1e9]);

// Before doing this transaction make sure you have updated the price of our x_oracle
const withdrawSui = txb.moveCall({
  target: "0xa45b8ffca59e5b44ec7c04481a04cb620b0e07b2b183527bca4e5f32372c5f1a::liquidate::liquidate",
  arguments: [
    txb.object(SCALLOP_VERSION_OBJECT),
    obligationId,
    txb.object(SCALLOP_MARKET_OBJECT),
    repaySui,
    txb.object(SCALLOP_COIN_DECIMAL_REGISTRY),
    txb.object(SCALLOP_X_ORACLE),
    txb.object(SUI_CLOCK_OBJECT_ID)
  ],
  typeArguments: ["0x2::sui::SUI", "0x5d4b302506645c37ff133b98c4b50a5ae14841659738d6d733d59d0d217a93bf::coin::COIN"]
});

await client.signAndExecuteTransaction({
  signer: getKeyPair(keypair),
  transaction: txb,
  requestType: 'WaitForLocalExecution',
  options: {
    showEffects: true,
  },
});
```

{% endtab %}
{% endtabs %}

Check here the example how to do update price `x_oracle`

{% embed url="<https://github.com/scallop-io/sui-scallop-sdk/blob/main/src/builders/oracle.ts>" %}

We recommend you to call this function using our [Scallop SDK](https://github.com/scallop-io/sui-scallop-sdk), so before calling any function related to liquidation, you need to call update price in the beginning of the [PTB (Programmable Transaction Block)](https://docs.sui.io/guides/developer/sui-101/building-ptb).

Here what your PTB should looks like:

```rust
PTB for calling function that have to run liquidate function:
- update price (you get this from SDK)
- your function that call liquidate
```


# veSCA

Coming soon


# Borrow Incentive


# Package Addresses

You can get the list package address of scallops using this endpoint:

```url
https://sui.apis.scallop.io/addresses/66f8e7ed9bb9e07fdfb86bbb
```

**Response**

{% tabs %}
{% tab title="200" %}
{% code fullWidth="false" %}

```json
{
    "mainnet": {
        "core": {
            "version": "0x07871c4b3c847a0f674510d4978d5cf6f960452795e8ff6f189fd2088a3f6ac7",
            "versionCap": "0x590a4011cb649b3878f3ea14b3a78674642a9548d79b7e091ef679574b158a07",
            "object": "0xefe8b36d5b2e43728cc323298626b83177803521d195cfb11e15b910e892fddf",
            "market": "0xa757975255146dc9686aa823b7838b507f315d704f428cbadad2f4ea061939d9",
            "adminCap": "0x09689d018e71c337d9db6d67cbca06b74ed92196103624028ccc3ecea411777c",
            "coinDecimalsRegistry": "0x200abe9bf19751cc566ae35aa58e2b7e4ff688fc1130f8d8909ea09bc137d668",
            "obligationAccessStore": "0x733e30b7c94d619d78cb8f5bc4bfbb759ced9a531239028caabb2474e5be59c9",
            "coins": {
                "usdc": {
                    "id": "0xdba34672e30cb065b1f93e3ab55318768fd6fef66c15942c9f7cb846e2f900e7",
                    "metaData": "0x69b7a7c3c200439c1b5f3b19d7d495d5966d5f08de66c69276152f8db3992ec6",
                    "treasury": "",
                    "oracle": {
                        "supra": "",
                        "switchboard": "",
                        "pyth": {
                            "feed": "eaa020c61cc479712813461ce153894a96a6c00b21ed0cfc2798d1f9a9e9c94a",
                            "feedObject": "0x5dec622733a204ca27f5a90d8c2fad453cc6665186fd5dff13a83d0b6c9027ab"
                        }
                    }
                },
                "cetus": {
                    "id": "0x06864a6f921804860930db6ddbe2e16acdf8504495ea7481637a1c8b9a8fe54b",
                    "metaData": "0x4c0dce55eff2db5419bbd2d239d1aa22b4a400c01bbb648b058a9883989025da",
                    "treasury": "",
                    "oracle": {
                        "supra": "",
                        "switchboard": "",
                        "pyth": {
                            "feed": "e5b274b2611143df055d6e7cd8d93fe1961716bcd4dca1cad87a83bc1e78c1ef",
                            "feedObject": "0x24c0247fb22457a719efac7f670cdc79be321b521460bd6bd2ccfa9f80713b14"
                        }
                    }
                },
                "wapt": {
                    "id": "0x3a5143bb1196e3bcdfab6203d1683ae29edd26294fc8bfeafe4aaa9d2704df37",
                    "metaData": "0xc969c5251f372c0f34c32759f1d315cf1ea0ee5e4454b52aea08778eacfdd0a8",
                    "treasury": "",
                    "oracle": {
                        "supra": "",
                        "switchboard": "",
                        "pyth": {
                            "feed": "03ae4db29ed4ae33d323568895aa00337e658e348b37509f5372ae51f0af00d5",
                            "feedObject": "0x7c5b7837c44a69b469325463ac0673ac1aa8435ff44ddb4191c9ae380463647f"
                        }
                    }
                },
                "wsol": {
                    "id": "0xb7844e289a8410e50fb3ca48d69eb9cf29e27d223ef90353fe1bd8e27ff8f3f8",
                    "metaData": "0x4d2c39082b4477e3e79dc4562d939147ab90c42fc5f3e4acf03b94383cd69b6e",
                    "treasury": "",
                    "oracle": {
                        "supra": "",
                        "switchboard": "",
                        "pyth": {
                            "feed": "ef0d8b6fda2ceba41da15d4095d1da392a0d2f8ed0c6c7bc0f4cfac8c280b56d",
                            "feedObject": "0x9d0d275efbd37d8a8855f6f2c761fa5983293dd8ce202ee5196626de8fcd4469"
                        }
                    }
                },
                "wbtc": {
                    "id": "0x027792d9fed7f9844eb4839566001bb6f6cb4804f66aa2da6fe1ee242d896881",
                    "metaData": "0x5d3c6e60eeff8a05b693b481539e7847dfe33013e7070cdcb387f5c0cac05dfd",
                    "treasury": "",
                    "oracle": {
                        "supra": "",
                        "switchboard": "",
                        "pyth": {
                            "feed": "e62df6c8b4a85fe1a67db44dc12de5db330f7ac66b72dc658afedf0f4a415b43",
                            "feedObject": "0x9a62b4863bdeaabdc9500fce769cf7e72d5585eeb28a6d26e4cafadc13f76ab2"
                        }
                    }
                },
                "weth": {
                    "id": "0xaf8cd5edc19c4512f4259f0bee101a40d41ebed738ade5874359610ef8eeced5",
                    "metaData": "0x8900e4ceede3363bef086d6b50ca89d816d0e90bf6bc46efefe1f8455e08f50f",
                    "treasury": "",
                    "oracle": {
                        "supra": "",
                        "switchboard": "",
                        "pyth": {
                            "feed": "ff61491a931112ddf1bd8147cd1b641375f79f5825126d665480874634fd0ace",
                            "feedObject": "0x9193fd47f9a0ab99b6e365a464c8a9ae30e6150fc37ed2a89c1586631f6fc4ab"
                        }
                    }
                },
                "wusdc": {
                    "id": "0x5d4b302506645c37ff133b98c4b50a5ae14841659738d6d733d59d0d217a93bf",
                    "metaData": "0x4fbf84f3029bd0c0b77164b587963be957f853eccf834a67bb9ecba6ec80f189",
                    "treasury": "",
                    "oracle": {
                        "supra": "",
                        "switchboard": "",
                        "pyth": {
                            "feed": "eaa020c61cc479712813461ce153894a96a6c00b21ed0cfc2798d1f9a9e9c94a",
                            "feedObject": "0x5dec622733a204ca27f5a90d8c2fad453cc6665186fd5dff13a83d0b6c9027ab"
                        }
                    }
                },
                "wusdt": {
                    "id": "0xc060006111016b8a020ad5b33834984a437aaa7d3c74c18e09a95d48aceab08c",
                    "metaData": "0xfb0e3eb97dd158a5ae979dddfa24348063843c5b20eb8381dd5fa7c93699e45c",
                    "treasury": "",
                    "oracle": {
                        "supra": "",
                        "switchboard": "",
                        "pyth": {
                            "feed": "2b89b9dc8fdf9f34709a5b106b472f0f39bb6ca9ce04b0fd7f2e971688e2e53b",
                            "feedObject": "0x985e3db9f93f76ee8bace7c3dd5cc676a096accd5d9e09e9ae0fb6e492b14572"
                        }
                    }
                },
                "sui": {
                    "id": "0x0000000000000000000000000000000000000000000000000000000000000002",
                    "metaData": "0x9258181f5ceac8dbffb7030890243caed69a9599d2886d957a9cb7656af3bdb3",
                    "treasury": "",
                    "oracle": {
                        "supra": "",
                        "switchboard": "0xbca474133638352ba83ccf7b5c931d50f764b09550e16612c9f70f1e21f3f594",
                        "pyth": {
                            "feed": "23d7315113f5b1d3ba7a83604c44b94d79f4fd69af77f804fc7f920a6dc65744",
                            "feedObject": "0x801dbc2f0053d34734814b2d6df491ce7807a725fe9a01ad74a07e9c51396c37"
                        }
                    }
                },
                "afsui": {
                    "id": "0xf325ce1300e8dac124071d3152c5c5ee6174914f8bc2161e88329cf579246efc",
                    "metaData": "0x2f9217f533e51334873a39b8026a4aa6919497b47f49d0986a4f1aec66f8a34d",
                    "treasury": "",
                    "oracle": {
                        "supra": "",
                        "switchboard": "",
                        "pyth": {
                            "feed": "23d7315113f5b1d3ba7a83604c44b94d79f4fd69af77f804fc7f920a6dc65744",
                            "feedObject": "0x801dbc2f0053d34734814b2d6df491ce7807a725fe9a01ad74a07e9c51396c37"
                        }
                    }
                },
                "hasui": {
                    "id": "0xbde4ba4c2e274a60ce15c1cfff9e5c42e41654ac8b6d906a57efa4bd3c29f47d",
                    "metaData": "0x2c5f33af93f6511df699aaaa5822d823aac6ed99d4a0de2a4a50b3afa0172e24",
                    "treasury": "",
                    "oracle": {
                        "supra": "",
                        "switchboard": "",
                        "pyth": {
                            "feed": "23d7315113f5b1d3ba7a83604c44b94d79f4fd69af77f804fc7f920a6dc65744",
                            "feedObject": "0x801dbc2f0053d34734814b2d6df491ce7807a725fe9a01ad74a07e9c51396c37"
                        }
                    }
                },
                "vsui": {
                    "id": "0x549e8b69270defbfafd4f94e17ec44cdbdd99820b33bda2278dea3b9a32d3f55",
                    "metaData": "0xabd84a23467b33854ab25cf862006fd97479f8f6f53e50fe732c43a274d939bd",
                    "treasury": "",
                    "oracle": {
                        "supra": "",
                        "switchboard": "",
                        "pyth": {
                            "feed": "23d7315113f5b1d3ba7a83604c44b94d79f4fd69af77f804fc7f920a6dc65744",
                            "feedObject": "0x801dbc2f0053d34734814b2d6df491ce7807a725fe9a01ad74a07e9c51396c37"
                        }
                    }
                },
                "sca": {
                    "id": "0x7016aae72cfc67f2fadf55769c0a7dd54291a583b63051a5ed71081cce836ac6",
                    "metaData": "0x5d26a1e9a55c88147ac870bfa31b729d7f49f8804b8b3adfdf3582d301cca844",
                    "treasury": "",
                    "oracle": {
                        "supra": "",
                        "switchboard": "",
                        "pyth": {
                            "feed": "7e17f0ac105abe9214deb9944c30264f5986bf292869c6bd8e8da3ccd92d79bc",
                            "feedObject": "0xf6de1d3279a269a597d813cbaca59aa906543ab9a8c64e84a4722f1a20863985"
                        }
                    }
                },
                "sbeth": {
                    "id": "0xd0e89b2af5e4910726fbcd8b8dd37bb79b29e5f83f7491bca830e94f7f226d29",
                    "metaData": "0x89b04ba87f8832d4d76e17a1c9dce72eb3e64d372cf02012b8d2de5384faeef0",
                    "treasury": "",
                    "oracle": {
                        "supra": "",
                        "switchboard": "",
                        "pyth": {
                            "feed": "ff61491a931112ddf1bd8147cd1b641375f79f5825126d665480874634fd0ace",
                            "feedObject": "0x9193fd47f9a0ab99b6e365a464c8a9ae30e6150fc37ed2a89c1586631f6fc4ab"
                        }
                    }
                }
            },
            "oracles": {
                "xOracle": "0x93d5bf0936b71eb27255941e532fac33b5a5c7759e377b4923af0a1359ad494f",
                "xOracleCap": "0x1edeae568fde99e090dbdec4bcdbd33a15f53a1ce1f87aeef1a560dedf4b4a90",
                "supra": {
                    "registry": "",
                    "registryCap": "",
                    "holder": ""
                },
                "switchboard": {
                    "registry": "",
                    "registryCap": ""
                },
                "pyth": {
                    "registry": "0xedc293f9413a5a7a5d53bdba1fd889d0a4030894469228f0acdae4aa3c55a213",
                    "registryCap": "0xbcb07141eb1f7e01fbda4130ecf5f5adaeabb77f5d9c32158b7532bcd2197acd",
                    "state": "0x1f9310238ee9298fb703c3419030b35b22bb1cc37113e3bb5007c99aec79e5b8",
                    "wormhole": "0x5306f64e312b581766351c07af79c72fcb1cd25147157fdc2f8ad76de9a3fb6a",
                    "wormholeState": "0xaeab97f96cf9877fee2883315d459552b2b921edc16d7ceac6eab944dd88919c"
                }
            },
            "packages": {
                "coinDecimalsRegistry": {
                    "id": "0xca5a5a62f01c79a104bf4d31669e29daa387f325c241de4edbe30986a9bc8b0d",
                    "upgradeCap": "0x34e76a945d29f195bc53ca704fa70877d1cf3a5d7bbfdda1b13e633fff13c0f6"
                },
                "math": {
                    "id": "0xad013d5fde39e15eabda32b3dbdafd67dac32b798ce63237c27a8f73339b9b6f",
                    "upgradeCap": "0x3a329598231de02e6135c62284b66005b41cad1d9ab7ca2dc79c08293aba2ec6"
                },
                "whitelist": {
                    "id": "0x1318fdc90319ec9c24df1456d960a447521b0a658316155895014a6e39b5482f",
                    "upgradeCap": "0xf5a22aea23db664f7b69855b6a546747f17c1ec4230319cfc17225e462b05761"
                },
                "x": {
                    "id": "0x779b5c547976899f5474f3a5bc0db36ddf4697ad7e5a901db0415c2281d28162",
                    "upgradeCap": "0x3f203f6fff6a69d151e4f1cd931f22b68c489ef2759765662fc7baf673943c9e"
                },
                "protocol": {
                    "id": "0xa45b8ffca59e5b44ec7c04481a04cb620b0e07b2b183527bca4e5f32372c5f1a",
                    "upgradeCap": "0x38527d154618d1fd5a644b90717fe07cf0e9f26b46b63e9568e611a3f86d5c1a"
                },
                "protocolWhitelist": {
                    "id": "0x4c262d9343dac53ecb28f482a2a3f62c73d0ebac5b5f03d57383d56ff219acdf",
                    "upgradeCap": "0x4a5e88a75039b00988f633f811f58117f31b8627a46bf822aa114d9010049449"
                },
                "query": {
                    "id": "0xb8d603a39114a5efef3dd0bf84df0bed1be1fbd39b78b7dd6e8a61ccc5e6006f",
                    "upgradeCap": "0x0d535c35f608b9b01b7ccce11acf43b1dd80c1b72bf8b541744a6e28e8d2745f"
                },
                "supra": {
                    "id": "",
                    "upgradeCap": ""
                },
                "pyth": {
                    "id": "0x910f30cbc7f601f75a5141a01265cd47c62d468707c5e1aecb32a18f448cb25a",
                    "upgradeCap": "0xdf0ffbae1ea5bb25fbca5efba433dcf00c7cced65679af2f04728901275c6157"
                },
                "switchboard": {
                    "id": "",
                    "upgradeCap": ""
                },
                "xOracle": {
                    "id": "0x1478a432123e4b3d61878b629f2c692969fdb375644f1251cd278a4b1e7d7cd6",
                    "upgradeCap": "0x0f928a6b2e26b73330fecaf9b44acfc9800a4a9794d6415c2a3153bc70e3c1f0"
                },
                "testCoin": {
                    "id": "",
                    "upgradeCap": ""
                }
            }
        },
        "spool": {
            "id": "0x472fc7d4c3534a8ec8c2f5d7a557a43050eab057aaab853e8910968ddc84fc9f",
            "adminCap": "0xdd8a047cbbf802bfcde5288b8ef1910965d789cc614da11d39af05fca0bd020a",
            "object": "0xe87f1b2d498106a2c61421cec75b7b5c5e348512b0dc263949a0e7a3c256571a",
            "pools": {
                "sweth": {
                    "id": "0xeec40beccb07c575bebd842eeaabb835f77cd3dab73add433477e57f583a6787",
                    "rewardPoolId": "0x957de68a18d87817de8309b30c1ec269a4d87ae513abbeed86b5619cb9ce1077"
                },
                "ssui": {
                    "id": "0x4f0ba970d3c11db05c8f40c64a15b6a33322db3702d634ced6536960ab6f3ee4",
                    "rewardPoolId": "0x162250ef72393a4ad3d46294c4e1bdfcb03f04c869d390e7efbfc995353a7ee9"
                },
                "susdc": {
                    "id": "0x0b5f5f413bd3799e4052c37311966c77f3a4545eb125d2e93e67a68478021918",
                    "rewardPoolId": "0x85ed6ed72ea97c35dbf0cdc7ed6fbc48d8ec15de9b17c74bf4512df8a6d7f166"
                },
                "swusdc": {
                    "id": "0x4ace6648ddc64e646ba47a957c562c32c9599b3bba8f5ac1aadb2ae23a2f8ca0",
                    "rewardPoolId": "0xf4268cc9b9413b9bfe09e8966b8de650494c9e5784bf0930759cfef4904daff8"
                },
                "swusdt": {
                    "id": "0xcb328f7ffa7f9342ed85af3fdb2f22919e1a06dfb2f713c04c73543870d7548f",
                    "rewardPoolId": "0x2c9f934d67a5baa586ceec2cc24163a2f049a6af3d5ba36b84d8ac40f25c4080"
                },
                "scetus": {
                    "id": "0xac1bb13bf4472a637c18c2415fb0e3c1227ea2bcf35242e50563c98215bd298e",
                    "rewardPoolId": "0x6835c1224126a45086fc6406adc249e3f30df18d779ca4f4e570e38716a17f3f"
                },
                "safsui": {
                    "id": "0xeedf438abcaa6ce4d9625ffca110920592d5867e4c5637d84ad9f466c4feb800",
                    "rewardPoolId": "0x89255a2f86ed7fbfef35ab8b7be48cc7667015975be2685dd9a55a9a64baf76e"
                },
                "shasui": {
                    "id": "0xa6148bc1b623e936d39a952ceb5bea79e8b37228a8f595067bf1852efd3c34aa",
                    "rewardPoolId": "0x6f3563644d3e2ef13176dbf9d865bd93479df60ccbe07b7e66db57f6309f5a66"
                },
                "svsui": {
                    "id": "0x69ce8e537e750a95381e6040794afa5ab1758353a1a2e1de7760391b01f91670",
                    "rewardPoolId": "0xbca914adce058ad0902c7f3cfcd698392a475f00dcfdc3f76001d0370b98777a"
                }
            },
            "version": "",
            "versionCap": "",
            "config": ""
        },
        "borrowIncentive": {
            "id": "0xf8365ce9fc69231ed36c2e6e114bea942e15b69d3e2b62e5e5bbf3d96ac6d34e",
            "adminCap": "0xc486afa253646f4d381e81d7f1df8aa4723b845a6bb356f69bad635ffefffe2c",
            "object": "0x002875153e09f8145ab63527bc85c00f2bd102e12f9573c47f8cdf1a1cb62934",
            "query": "0x529edc54a3dce2207703ceebbccb0ac14133f7825c1f528775ba0d85a4063489",
            "incentivePools": "0x6547e143d406b5ccd5f46aae482497de279cc1a68c406f701df70a05f9212ab4",
            "incentiveAccounts": "0xc4701fdbc1c92f9a636d334d66012b3027659e9fb8aff27279a82edfb6b77d02",
            "config": "0xdf5d04b4691cc67e82fd4db8394d89ff44823a9de29716c924f74bb4f11cc1f7",
            "version": "",
            "versionCap": ""
        },
        "vesca": {
            "id": "0x1158813b32962c2d22888fae257d5f2365b03631f0cd5d5b912ccdf51ff4e2f2",
            "object": "0xcfe2d87aa5712b67cad2732edb6a2201bfdf592377e5c0968b7cb02099bd8e21",
            "adminCap": "0x4d105b16467acca81d18c132cdd1a3cee159920a86c1ef4bdbf2e8d7878500c5",
            "tableId": "0x0a0b7f749baeb61e3dfee2b42245e32d0e6b484063f0a536b33e771d573d7246",
            "table": "0xd3a4632b1080f7d96e1c2487d4dabf2c1196916937c505a69954ac9f393be8d0",
            "treasury": "0xafa4b6231e49c15a22d641ce33fda761baaf650fa21899dfa2eb1716146e7306",
            "config": "0x7cbcb0a342179577a117dfdff974cf1ab765d3b571067bf22ddf5f9e3a667922"
        },
        "referral": {
            "id": "0xe34647d10326c4cd977577f84aced48c2f0621c6f7fb4d6988e7011397fed80f",
            "object": "0x5658d4bf5ddcba27e4337b4262108b3ad1716643cac8c2054ac341538adc72ec",
            "adminCap": "0xc5dc06b9074291259f2cac460c940012c781c4430e42125c541cc43101c3bcbd",
            "referralBindings": "0xf63299d58789d99de94092b9011323466e55ca0c1ea1a7a3786a589af46e1c09",
            "bindingTableId": "0x1c8202b17267ec8d6cf97ca013615354181a04f179570e42601ff2dae19294b1",
            "referralRevenuePool": "0x6abd852caf90769c1b185cdf636d841673fa95528f0550f018b8a138bd283c07",
            "revenueTableId": "0x595baa3654c297bff84ab7786a2d250f019cefc66e8df8e89fd9d41e02bd30dd",
            "referralTiers": "0x962cb903d8d7346190c5204785ccbb91b61086aa764f674c8145df82335cf83e",
            "tiersTableId": "0xeac755a7a8b7798530905ac79e8c114f19d0f130f6eab012954f08faac29c75d",
            "authorizedWitnessList": "0xf21b0ed043c9bb70842c0129159f4943dbcc3c9ef2f2f808af65f8be25cfd20e",
            "version": "0x1bd4b7285f72e11c316b828c7c47b3f4da18dcec9f9b3dba6d8629cbb6f93e5e"
        },
        "loyaltyProgram": {
            "id": "0xab7c4e6d53ef862a1115d0c381fd33e05f9c206b79f322a54990b1e8c2fe3446",
            "object": "0xab7c4e6d53ef862a1115d0c381fd33e05f9c206b79f322a54990b1e8c2fe3446",
            "rewardPool": "0x215e1022037052407e69a5c5938f888078013c924cae97132492719ac2c53ec6",
            "userRewardTableId": "0x574a11f8a0fbaa05b8f559cb65634e8eb20f26b1ec29e7d58de9167f3cedd0f7"
        },
        "scoin": {
            "id": "0x80ca577876dec91ae6d22090e56c39bc60dce9086ab0729930c6900bc4162b4c",
            "coins": {
                "ssui": {
                    "coinType": "0xaafc4f740de0dd0dde642a31148fb94517087052f19afb0f7bed1dc41a50c77b::scallop_sui::SCALLOP_SUI",
                    "treasury": "0x5c1678c8261ac9eec024d4d630006a9f55c80dc0b1aa38a003fcb1d425818c6b"
                },
                "scetus": {
                    "coinType": "0xea346ce428f91ab007210443efcea5f5cdbbb3aae7e9affc0ca93f9203c31f0c::scallop_cetus::SCALLOP_CETUS",
                    "treasury": "0xa283c63488773c916cb3d6c64109536160d5eb496caddc721eb39aad2977d735"
                },
                "ssca": {
                    "coinType": "0x5ca17430c1d046fae9edeaa8fd76c7b4193a00d764a0ecfa9418d733ad27bc1e::scallop_sca::SCALLOP_SCA",
                    "treasury": "0xe04bfc95e00252bd654ee13c08edef9ac5e4b6ae4074e8390db39e9a0109c529"
                },
                "swusdc": {
                    "coinType": "0xad4d71551d31092230db1fd482008ea42867dbf27b286e9c70a79d2a6191d58d::scallop_wormhole_usdc::SCALLOP_WORMHOLE_USDC",
                    "treasury": "0x50c5cfcbcca3aaacab0984e4d7ad9a6ad034265bebb440f0d1cd688ec20b2548"
                },
                "swusdt": {
                    "coinType": "0xe6e5a012ec20a49a3d1d57bd2b67140b96cd4d3400b9d79e541f7bdbab661f95::scallop_wormhole_usdt::SCALLOP_WORMHOLE_USDT",
                    "treasury": "0x1f02e2fed702b477732d4ad6044aaed04f2e8e586a169153694861a901379df0"
                },
                "sweth": {
                    "coinType": "0x67540ceb850d418679e69f1fb6b2093d6df78a2a699ffc733f7646096d552e9b::scallop_wormhole_eth::SCALLOP_WORMHOLE_ETH",
                    "treasury": "0x4b7f5da0e306c9d52490a0c1d4091e653d6b89778b9b4f23c877e534e4d9cd21"
                },
                "safsui": {
                    "coinType": "0x00671b1fa2a124f5be8bdae8b91ee711462c5d9e31bda232e70fd9607b523c88::scallop_af_sui::SCALLOP_AF_SUI",
                    "treasury": "0x55f4dfe9e40bc4cc11c70fcb1f3daefa2bdc330567c58d4f0792fbd9f9175a62"
                },
                "shasui": {
                    "coinType": "0x9a2376943f7d22f88087c259c5889925f332ca4347e669dc37d54c2bf651af3c::scallop_ha_sui::SCALLOP_HA_SUI",
                    "treasury": "0x404ccc1404d74a90eb6f9c9d4b6cda6d417fb03189f80d9070a35e5dab1df0f5"
                },
                "svsui": {
                    "coinType": "0xe1a1cc6bcf0001a015eab84bcc6713393ce20535f55b8b6f35c142e057a25fbe::scallop_v_sui::SCALLOP_V_SUI",
                    "treasury": "0xc06688ee1af25abc286ffb1d18ce273d1d5907cd1064c25f4e8ca61ea989c1d1"
                },
                "swsol": {
                    "coinType": "0x1392650f2eca9e3f6ffae3ff89e42a3590d7102b80e2b430f674730bc30d3259::scallop_wormhole_sol::SCALLOP_WORMHOLE_SOL",
                    "treasury": "0x760fd66f5be869af4382fa32b812b3c67f0eca1bb1ed7a5578b21d56e1848819"
                },
                "swbtc": {
                    "coinType": "0x2cf76a9cf5d3337961d1154283234f94da2dcff18544dfe5cbdef65f319591b5::scallop_wormhole_btc::SCALLOP_WORMHOLE_BTC",
                    "treasury": "0xe2883934ea42c99bc998bbe0f01dd6d27aa0e27a56455707b1b34e6a41c20baa"
                },
                "susdc": {
                    "coinType": "0x854950aa624b1df59fe64e630b2ba7c550642e9342267a33061d59fb31582da5::scallop_usdc::SCALLOP_USDC",
                    "treasury": "0xbe6b63021f3d82e0e7e977cdd718ed7c019cf2eba374b7b546220402452f938e"
                },
                "ssbeth": {
                    "coinType": "0xb14f82d8506d139eacef109688d1b71e7236bcce9b2c0ad526abcd6aa5be7de0::scallop_sb_eth::SCALLOP_SB_ETH",
                    "treasury": "0xfd0f02def6358a1f266acfa1493d4707ee8387460d434fb667d63d755ff907ed"
                }
            }
        }
    },
    "memo": "main address contract(for native) on app.scallop.io 22/05/2024",
    "createdAt": "Sun Sep 29 2024 04:09:37 GMT+0000 (Coordinated Universal Time)",
    "updatedAt": "Mon Oct 21 2024 14:55:44 GMT+0000 (Coordinated Universal Time)",
    "version": 0,
    "id": "66f8e7ed9bb9e07fdfb86bbb"
}
```

{% endcode %}
{% endtab %}
{% endtabs %}


# Mainnet

### Main Object Address

<table><thead><tr><th width="217">Name</th><th>Address</th></tr></thead><tbody><tr><td>Version</td><td><pre data-overflow="wrap" data-full-width="true"><code>0x07871c4b3c847a0f674510d4978d5cf6f960452795e8ff6f189fd2088a3f6ac7
</code></pre></td></tr><tr><td>Version Cap</td><td><pre data-overflow="wrap"><code>0x590a4011cb649b3878f3ea14b3a78674642a9548d79b7e091ef679574b158a07
</code></pre></td></tr><tr><td>Market</td><td><pre data-overflow="wrap"><code>0xa757975255146dc9686aa823b7838b507f315d704f428cbadad2f4ea061939d9
</code></pre></td></tr><tr><td>Admin Cap</td><td><pre data-overflow="wrap" data-full-width="true"><code>0x09689d018e71c337d9db6d67cbca06b74ed92196103624028ccc3ecea411777c
</code></pre></td></tr><tr><td>Coin Decimal Registry</td><td><pre data-overflow="wrap" data-full-width="true"><code>0x200abe9bf19751cc566ae35aa58e2b7e4ff688fc1130f8d8909ea09bc137d668
</code></pre></td></tr></tbody></table>

### Oracles Object Address

Scallop oracle addresses

#### xOracle

Scallop object address to get price from oracle by avoiding Manipulation Prices attack in Oracle

<table><thead><tr><th width="149">Name</th><th>Address</th></tr></thead><tbody><tr><td>xOracle</td><td><pre data-overflow="wrap"><code>0x93d5bf0936b71eb27255941e532fac33b5a5c7759e377b4923af0a1359ad494f
</code></pre></td></tr></tbody></table>

#### Pyth

<table><thead><tr><th width="151">Name</th><th>Address</th></tr></thead><tbody><tr><td>Registry</td><td><pre data-overflow="wrap"><code>0x8c30c13df429e16d4e7be8726f25acfd8f5a6992d84a81eb36967e95bf18c889
</code></pre></td></tr></tbody></table>

### Packages Address

List Scallop object package addresses

<table><thead><tr><th width="221">Name</th><th>Address</th></tr></thead><tbody><tr><td>Coin Decimal Registry</td><td><pre data-overflow="wrap" data-full-width="true"><code>0xca5a5a62f01c79a104bf4d31669e29daa387f325c241de4edbe30986a9bc8b0d
</code></pre></td></tr><tr><td>Math</td><td><pre data-overflow="wrap" data-full-width="true"><code>0xad013d5fde39e15eabda32b3dbdafd67dac32b798ce63237c27a8f73339b9b6f
</code></pre></td></tr><tr><td>Whitelist</td><td><pre data-overflow="wrap" data-full-width="true"><code>0x1318fdc90319ec9c24df1456d960a447521b0a658316155895014a6e39b5482f
</code></pre></td></tr><tr><td>x (utilities package)</td><td><pre data-overflow="wrap"><code>0x779b5c547976899f5474f3a5bc0db36ddf4697ad7e5a901db0415c2281d28162
</code></pre></td></tr><tr><td>Protocol (<em>initial package ID</em>)</td><td><pre data-overflow="wrap" data-full-width="true"><code>0xefe8b36d5b2e43728cc323298626b83177803521d195cfb11e15b910e892fddf
</code></pre></td></tr><tr><td>Query</td><td><pre data-overflow="wrap"><code>0xbd4f1adbef14cf6ddf31cf637adaa7227050424286d733dc44e6fd3318fc6ba3
</code></pre></td></tr><tr><td>Pyth Adapter</td><td><pre data-overflow="wrap" data-full-width="true"><code>0xaac1fdb607b884cc256c59dc307bb78b6ba95b97e22d4415fe87ad99689ea462
</code></pre></td></tr><tr><td>xOracle (package ID)</td><td><pre data-overflow="wrap" data-full-width="true"><code>0x1478a432123e4b3d61878b629f2c692969fdb375644f1251cd278a4b1e7d7cd6
</code></pre></td></tr></tbody></table>

### Scoin

List scoin object package addresses

<table><thead><tr><th width="221">Name</th><th>Address</th></tr></thead><tbody><tr><td>id</td><td><pre data-overflow="wrap" data-full-width="true"><code>0x80ca577876dec91ae6d22090e56c39bc60dce9086ab0729930c6900bc4162b4c
</code></pre></td></tr><tr><td>sSUI</td><td><pre data-overflow="wrap" data-full-width="true"><code>0xaafc4f740de0dd0dde642a31148fb94517087052f19afb0f7bed1dc41a50c77b::scallop_sui::SCALLOP_SUI
</code></pre></td></tr><tr><td>sWUSDC</td><td><pre data-overflow="wrap" data-full-width="true"><code>0xad4d71551d31092230db1fd482008ea42867dbf27b286e9c70a79d2a6191d58d::scallop_wormhole_usdc::SCALLOP_WORMHOLE_USDC
</code></pre></td></tr><tr><td>sWUSDT</td><td><pre data-overflow="wrap"><code>0xe6e5a012ec20a49a3d1d57bd2b67140b96cd4d3400b9d79e541f7bdbab661f95::scallop_wormhole_usdt::SCALLOP_WORMHOLE_USDT
</code></pre></td></tr><tr><td>sWETH</td><td><pre data-overflow="wrap" data-full-width="true"><code>0x67540ceb850d418679e69f1fb6b2093d6df78a2a699ffc733f7646096d552e9b::scallop_wormhole_eth::SCALLOP_WORMHOLE_ETH
</code></pre></td></tr><tr><td>sSCA</td><td><pre data-overflow="wrap"><code>0x5ca17430c1d046fae9edeaa8fd76c7b4193a00d764a0ecfa9418d733ad27bc1e::scallop_sca::SCALLOP_SCA
</code></pre></td></tr><tr><td>safSUI</td><td><pre data-overflow="wrap" data-full-width="true"><code>0x00671b1fa2a124f5be8bdae8b91ee711462c5d9e31bda232e70fd9607b523c88::scallop_af_sui::SCALLOP_AF_SUI
</code></pre></td></tr><tr><td>shaSUI</td><td><pre data-overflow="wrap" data-full-width="true"><code>0x9a2376943f7d22f88087c259c5889925f332ca4347e669dc37d54c2bf651af3c::scallop_ha_sui::SCALLOP_HA_SUI
</code></pre></td></tr><tr><td>svSUI</td><td><pre data-overflow="wrap"><code>0xe1a1cc6bcf0001a015eab84bcc6713393ce20535f55b8b6f35c142e057a25fbe::scallop_v_sui::SCALLOP_V_SUI
</code></pre></td></tr><tr><td>sCETUS</td><td><pre data-overflow="wrap"><code>0xea346ce428f91ab007210443efcea5f5cdbbb3aae7e9affc0ca93f9203c31f0c::scallop_cetus::SCALLOP_CETUS
</code></pre></td></tr><tr><td>sUSDC</td><td><pre data-overflow="wrap"><code>0x854950aa624b1df59fe64e630b2ba7c550642e9342267a33061d59fb31582da5::scallop_usdc::SCALLOP_USDC
</code></pre></td></tr><tr><td>ssbETH</td><td><pre data-overflow="wrap"><code><strong>0xb14f82d8506d139eacef109688d1b71e7236bcce9b2c0ad526abcd6aa5be7de0::scallop_sb_eth::SCALLOP_SB_ETH
</strong></code></pre></td></tr><tr><td>sDEEP</td><td>0xeb7a05a3224837c5e5503575aed0be73c091d1ce5e43aa3c3e716e0ae614608f::scallop_deep::SCALLOP_DEEP</td></tr></tbody></table>


# Developer Resources

Do you want to cook something on top of Scallop? you can check this repos to help you build on top of us.

Sui Lending Smart Contract (Sui Move)

{% embed url="<https://github.com/scallop-io/sui-lending-protocol>" %}

We also have SDK and Kit can help you to build:

Scallop Sui SDK (Typescript)

{% embed url="<https://github.com/scallop-io/sui-scallop-sdk>" %}

Scallop Sui Kit (Typescript)

{% embed url="<https://github.com/scallop-io/sui-kit>" %}

Scallop API Docs

<https://sui.apis.scallop.io/api-docs/>


# FAQs❔

## Who is behind Scallop?

The Scallop Project Contributors currently consist of 7 core members who are solely focused on this project. The CEO and founder bring extensive experience in web application security, development, and crypto, having founded Scallop in early 2021 and expanded it to the Sui network in 2022. Under their leadership, the project contributors have achieved numerous milestones, such as receiving the first DeFi project award grants from the Sui Foundation and ranking high in various Hackathon and CTF challenges.

For more Scallop Project Contributor info please visit​ <https://scallop.io/>

## Why do I need to pay more than my debt?

<figure><img src="/files/m8JNGbdbSDLV5dEeoz9g" alt="" width="375"><figcaption><p>Repay Debt</p></figcaption></figure>

In the example above, if you have debts of 0.97 and 0.98, when repaying these debts, we'll add a 1% charge from your account to ensure full debt clearance. Any excess from this 1% charge, after the debt is settled, will be refunded to you. This 1% is not kept by us; it's merely a precaution to guarantee that all debts are fully repaid, and it will be returned to you after repayment.


# Links🔗

**Scallop Linktree🌲:** [**http://linktr.ee/scallop\_io**](https://t.co/bl8GzRqdc2)


# Achievements🏆

**🥇** [**1st DeFi project award an official grant from the Sui Foundation.**](https://sui.io/resources-sui/sui-foundation-round-1-awardees/)

[**🥇 1st place in the Sui Builder House Seoul Hackathon in June 2023. (Scallop Tools)**](https://blog.csdn.net/Sui_Network/article/details/131092949)

**🥇**[ **1st place in the Move Hackathon by WebX Circle track in July 2023.**](https://twitter.com/Scallop_io/status/1688429952071520257)

**🥉**[**3rd place Best Overall in the Sui x Kucoin Labs Summer Hackathon in July 2023.**](https://blog.sui.io/hackathon-winners/)

**🥉** [**3rd place in the Sui x jump\_ Builder House Ho Chi Minh City CTF challenge**](https://suictf.movebit.xyz/scoreboard)**.**

[**🎖️ 5th place in the Sui Builder House Denver CTF challenge Mar 2023.**](https://blog.sui.io/seoul-builder-house-recap/)

[**🎖️ 5th place in the Sui Builder House Seoul Hackathon in June 2023. (Sui Kit)**](https://blog.csdn.net/Sui_Network/article/details/131092949)

\\


# Brand kit 🎨

If you need some pictures of Scallop you can contact us!

<a href="https://drive.google.com/drive/folders/1WTuq2xecB_ZIQIHpeURbZsG2AOXjX3ZC?usp=sharing" class="button primary" data-icon="download">Download Brand Kit</a>

***

## Logo

### Logo Configurations

The Scallop logo has an iconic scallop illustration, symbolizing the brand name and aligning with the theme of Sui Blockchain.

Present Scallop’s logo in these four ways. Apply Scallop logo with the suitable [Color Configuration](#logo-color-configurations) so that the logo maintain its visibility and legibility.

{% hint style="info" %}

* Scallop also uses logos specially crafted for special occasions. For example, New Year, Christmas, CNY, and special campaigns logo. We use this in Scallop DApp and social medias.\
  Always use the original logo in this brand kit (not seasonal ones) for partnership purposes.
* In written text, write Scallop with a capital S; ‘Scallop’.
  {% endhint %}

<table data-card-size="large" data-view="cards"><thead><tr><th></th><th></th><th></th><th data-hidden data-card-cover data-type="files"></th></tr></thead><tbody><tr><td><strong>Logotype</strong></td><td>Always use this logo whenever possible as this is the most recognizable visual shorthand of Scallop’s brand.</td><td><a href="https://drive.google.com/drive/folders/1xcqCdXQeeCeML-27yiHjdBNd8tCrMesh">Download</a></td><td><a href="/files/5aJFZjUZt89Ofu6i88ZB">/files/5aJFZjUZt89Ofu6i88ZB</a></td></tr><tr><td><strong>Vertical Logotype</strong></td><td>Use the vertical lockup when the space is limited or constrained.<br></td><td><a href="https://drive.google.com/drive/folders/1KRe4XNuZDG6_5kRYmojFOi_TqPGl-ku7">Download</a></td><td><a href="/files/LQ2mI2uup2ALYEdbLCYK">/files/LQ2mI2uup2ALYEdbLCYK</a></td></tr><tr><td><strong>Logomark</strong></td><td>Use the logomark icon as a shorthand to the full Logotype logo.</td><td><a href="https://drive.google.com/drive/folders/1vEDr-K8Cm1Hc7NYq9_D62ecfKV_mf8S1">Download</a></td><td><a href="/files/MKy7E1NQakLGlzISgKNf">/files/MKy7E1NQakLGlzISgKNf</a></td></tr><tr><td><strong>Wordmark</strong></td><td>Use the wordmark in special cases where the other logo configurations are not suitable.</td><td><a href="https://drive.google.com/drive/folders/1aqxUqGiTsxJo2XCb6VFH1tcd7msimDel">Download</a></td><td><a href="/files/1JFVmAHOUS9payboXx1E">/files/1JFVmAHOUS9payboXx1E</a></td></tr></tbody></table>

### Logo Color Configurations

Always choose the color of Scallop logo based on these color configurations. Maintain the consistency of Scallop brand while keeping the logo legible.

<table data-card-size="large" data-view="cards"><thead><tr><th></th><th></th><th data-hidden data-card-cover data-type="files"></th></tr></thead><tbody><tr><td><strong>Primary Color Configuration</strong></td><td>Scallop logo’s primary configuration is the Scallop logotype with white font color. Make sure to apply this configuration whenever possible.</td><td><a href="/files/5aJFZjUZt89Ofu6i88ZB">/files/5aJFZjUZt89Ofu6i88ZB</a></td></tr><tr><td><strong>Reversed Primary Color Configuration</strong></td><td>Scallop logo’s reversed primary configuration is the Scallop logotype with black font color. Apply this configuration on light background, when the primary color logo is not suitable.</td><td><a href="/files/S0OKtXlfLnlye5w2OSwv">/files/S0OKtXlfLnlye5w2OSwv</a></td></tr><tr><td><strong>Light Grayscale Configuration</strong></td><td>Apply this configuration only on special occasions, such as only one color ink is available. Apply on dark colored background.</td><td><a href="/files/CxMZsgDZvh9WBty8mBqP">/files/CxMZsgDZvh9WBty8mBqP</a></td></tr><tr><td><strong>Dark Grayscale Color Configuration</strong></td><td>Apply this configuration only on special occasions, such as only one color ink is available. Apply on light colored background.</td><td><a href="/files/gyU7IS1HtCr3p4GLDkM6">/files/gyU7IS1HtCr3p4GLDkM6</a></td></tr></tbody></table>

### Logo Clearspace

Scallop logo needs a minimum amount of spacing to maintain the visibility, legibility, and visual impact.

To make sure the logo has enough clear space, use the letter ‘o’ in the wordmark as a guide for spacing. Do not place any objects, such as graphics or text in the clear space shown.

<figure><img src="/files/sYExzWaA8FNUwNNkcpne" alt="Scallop Logo Clearspace Guide"><figcaption></figcaption></figure>

### Logo Placement Guide

{% columns %}
{% column %}

<figure><img src="/files/78KakyG8rFaERT5lu8TQ" alt="Scallop logo placement guide"><figcaption><p>Always use the official logo in the approved configurations and correct brand colors</p></figcaption></figure>

<figure><img src="/files/dQMwfu4HtiG47wPJiZLK" alt="Scallop logo placement guide"><figcaption><p>Don’t stretch the logo in non-uniform way</p></figcaption></figure>

<figure><img src="/files/trRMVN4yldbSuJXrFpIG" alt="Scallop logo placement guide"><figcaption><p>Don’t apply the logo in low resolution</p></figcaption></figure>
{% endcolumn %}

{% column %}

<figure><img src="/files/2D5Uw59PMpDh1LaCC6zb" alt="Scallop logo placement guide"><figcaption><p>Don’t use Scallop seasonal logo for partnership/formal purposes</p></figcaption></figure>

<figure><img src="/files/vgMMLSerMNa73fOk7Ixh" alt="Scallop logo placement guide"><figcaption><p>Don’t add any effect to the logo</p></figcaption></figure>

<figure><img src="/files/2c3vvSXztY2bTXiskCM5" alt="Scallop logo placement guide"><figcaption><p>Don’t rotate the logo</p></figcaption></figure>
{% endcolumn %}
{% endcolumns %}

### Scallop Labs

Scallop Labs builds secure, capital-efficient DeFi infrastructure on Sui. We are the team behind the Scallop suite.

The team is distributed in APAC with DeFi, cybersecurity, fintech, global hackathon, algorithm contest, CTF challenges, and quantitative trading backgrounds.

[Download Scallop Labs Logo](https://drive.google.com/drive/folders/10aKeTtkTOXMEsfsL6fC-Ae3mLile1dc1)

<figure><picture><source srcset="/files/Kr3s9ItC1Tpx9V2PgIwa" media="(prefers-color-scheme: dark)"><img src="/files/SVIrLqzarC1Sbaj1xDws" alt="Scallop Labs Logo"></picture><figcaption></figcaption></figure>

### Sub-brands

Scallop products and services that are not uniquely branded use this generic layout to keep the brand consistency.

The logos are constructed from the Scallop logotype and sub-brand wordmark. We put a greater emphasis on the core branding by differentiating the size and wordmark weight. View the samples below.

[Download Sub-brands Logo](https://drive.google.com/drive/folders/14ik0FG1voCiVXgyreB4_RYrBcfm4hkba)

<div align="center"><figure><picture><source srcset="/files/QA2gTJlOPLBfMDW6joRn" media="(prefers-color-scheme: dark)"><img src="/files/deNoVkHikSxXGcWa0h44" alt="Scallop Sub-brand Logo: Scallop Lend"></picture><figcaption></figcaption></figure></div>

***

<div align="center"><figure><picture><source srcset="/files/JjKudzWwd2IFNdt2J7cW" media="(prefers-color-scheme: dark)"><img src="/files/17QBVEFxPw8AlokLCN3W" alt="Scallop Sub-brand Logo: Scallop Swap"></picture><figcaption></figcaption></figure></div>

***

<div align="center"><figure><picture><source srcset="/files/xsHw8dBXLP2i2QstqGyu" media="(prefers-color-scheme: dark)"><img src="/files/kUZmH4M1aKUda1gwEqhA" alt="Scallop Sub-brand Logo: Scallop Tools"></picture><figcaption></figcaption></figure></div>

## Colors

### Brand Colors

These are Scallop’s brand color palette that reflects the brand personality.

The palette consists of shades of blue and coral, inspired by scuba-diving seascape. These colors, reflecting our product, connecting to the sea themes and fostering professionalism and nature growth.

<table data-card-size="large" data-view="cards"><thead><tr><th></th><th></th><th></th><th data-hidden data-card-cover data-type="files"></th></tr></thead><tbody><tr><td><strong>Ocean</strong></td><td>Scallop's Navy Color<br>HEX: #1E2D45<br>RGB: 30/45/69<br>CMYK: 54/38/0/73<br>PMS: 533C</td><td>Use this color prominently for backgrounds, graphic elements, establishing the overall brand mood.</td><td><a href="/files/FHLCdK9LCQjHIPcswnKD">/files/FHLCdK9LCQjHIPcswnKD</a></td></tr><tr><td><strong>Bubble</strong></td><td>Scallop's Light Blue Color<br>HEX: #9CD0DD<br>RGB: 156/208/221<br>CMYK: 29/6/0/13</td><td>Use this color for CTA, interactive elements, and to provide visual contrast. Use sparingly to maintain its impact.</td><td><a href="/files/X5jg6YCTerBbXO4lthK8">/files/X5jg6YCTerBbXO4lthK8</a></td></tr><tr><td><strong>Sand</strong></td><td>Scallop's Peach Color<br>HEX: #F1D6C8<br>RGB: 241/214/200<br>CMYK: 0/11/17/5</td><td>Sand is the circle color of our logo. Use this color as a subtle accent on texts or graphic elements to tie back to the brand's visual identity.</td><td><a href="/files/d9Jek1Cxzzuw4SYTNXyX">/files/d9Jek1Cxzzuw4SYTNXyX</a></td></tr><tr><td><strong>Twilight</strong></td><td>Scallop's Grey-Blue Color<br>HEX: #334664 <br>RGB: 51/70/100<br>CMYK: 49/30/0/61</td><td>Use this color for section backgrounds, an alternative (secondary blue) to Ocean.</td><td><a href="/files/G4IVZgtS5bCckL3mHSLz">/files/G4IVZgtS5bCckL3mHSLz</a></td></tr><tr><td><strong>Mist</strong></td><td>Scallop's Grey Color<br>HEX: #ABB0C0<br>RGB: 171/176/192<br>CMYK: 11/8/0/25</td><td>Mist is the prominent color of our logo. Use this color as neutral supporting color.</td><td><a href="/files/0VcKcxBYn7ijE0XMWBuD">/files/0VcKcxBYn7ijE0XMWBuD</a></td></tr><tr><td><strong>Night</strong></td><td>Scallop's Black Color<br>HEX: #000000<br>RGB: 0/0/0<br>CMYK: 100/100/100/100</td><td>Night is our text color on light background. Use this color as neutral supporting color.</td><td><a href="/files/IFkfy5ks8VDfosNpGTEb">/files/IFkfy5ks8VDfosNpGTEb</a></td></tr><tr><td><strong>Pearl</strong></td><td>Scallop's White Color<br>HEX: #FFFFFF<br>RGB: 255/255/255<br>CMYK: 0/0/0/0</td><td>Pearl is our main longform texts color. Use this color as neutral supporting color.</td><td><a href="/files/XSrOYSN0gN9ZGYQCT8oR">/files/XSrOYSN0gN9ZGYQCT8oR</a></td></tr></tbody></table>

### Functional Colors

These are the colors that we use to convey status or meaning in app interface and medias.

<table data-view="cards"><thead><tr><th></th><th></th><th data-hidden data-card-cover data-type="files"></th></tr></thead><tbody><tr><td><strong>Green</strong></td><td>HEX: #7BBBA7<br>RGB: 123/187/167<br>CMYK: 34/0/11/27</td><td><a href="/files/ITsoJwWc7YZaBC5CM0g7">/files/ITsoJwWc7YZaBC5CM0g7</a></td></tr><tr><td><strong>Red</strong></td><td>HEX: #CA6460<br>RGB: 202/100/96<br>CMYK: 0/50/52/21</td><td><a href="/files/0eNzd4lxTD629G1Vqt5Z">/files/0eNzd4lxTD629G1Vqt5Z</a></td></tr><tr><td><strong>Yellow</strong></td><td>HEX: #E8D997<br>RGB: 232/217/151<br>CMYK: 0/6/35/9</td><td><a href="/files/JABVKAuhXJrSktfVOMHQ">/files/JABVKAuhXJrSktfVOMHQ</a></td></tr></tbody></table>

## Typography

Scallop uses Poppins and Roboto for our brand communications and application interface.

<table data-card-size="large" data-view="cards"><thead><tr><th></th><th></th><th></th><th data-hidden data-card-target data-type="content-ref"></th><th data-hidden data-card-cover data-type="files"></th></tr></thead><tbody><tr><td><strong>Poppins</strong></td><td><p>Used in headlines and titles.</p><ul><li>In app interface, we use Poppins SemiBold.</li><li>In marketing outputs, we use Poppins Extrabold. We also use Poppins Bold in case where ExtraBold are not suitable for titles.</li></ul></td><td><a href="https://fonts.google.com/specimen/Poppins">Download</a></td><td><a href="https://fonts.google.com/specimen/Poppins">https://fonts.google.com/specimen/Poppins</a></td><td><a href="/files/1tAFDQMe8pAvw9h3UqKx">/files/1tAFDQMe8pAvw9h3UqKx</a></td></tr><tr><td><strong>Roboto</strong></td><td><p>Used in body texts.</p><ul><li>In app interface and marketing, we use Roboto Regular for body texts.</li><li>In app interface and marketing, we use Roboto SemiBold for body text highlight.</li></ul></td><td><a href="https://fonts.google.com/specimen/Roboto">Download</a></td><td><a href="https://fonts.google.com/specimen/Roboto">https://fonts.google.com/specimen/Roboto</a></td><td><a href="/files/9zDW3jTVhfXBDaOqh0kp">/files/9zDW3jTVhfXBDaOqh0kp</a></td></tr></tbody></table>


# How to Supply on Scallop

### Supply

Choose the asset you want to supply on the Lending pools page. The Supply APY you earn will automatically compound.

<figure><img src="/files/5l3hb1prxOjHyVd5YsCh" alt=""><figcaption></figcaption></figure>

Click on "supply" for the asset you want to supply, and enter the amount. You can click on “More Parameters” to view more detailed data.

<div><figure><img src="/files/cSLC6tEGtlDYCMKfMfeP" alt=""><figcaption></figcaption></figure> <figure><img src="/files/wQTLM5US77ouNQwr4m84" alt=""><figcaption></figcaption></figure></div>

After you supply, you will receive sCoin, which represents your supply position. You can view your supplied assets, amount, and quantity on the Lending pools page.\
Over time, your supply will auto-compound, and your sCoin balance will increase automatically. This updated amount will also be reflected on the Lending page.

<div><figure><img src="/files/IGbXM2DO6bCO2YK2meoJ" alt=""><figcaption></figcaption></figure> <figure><img src="/files/vz0stSVpCpmrGcwHiXqb" alt=""><figcaption></figcaption></figure></div>

Reminder: You must have SUI in your wallet to pay for gas fees.

***

**You can also open a Lending position on Scallop by directly swapping into sCoins.**\
Go to the Swap page, Select the asset you want to supply and swap it directly into sCoin which represents your supplied position in the pool.

<div><figure><img src="/files/8wyoQfucG7aYngUqGA0S" alt=""><figcaption></figcaption></figure> <figure><img src="/files/l7ThDuzSLh5AoMjfjZQL" alt=""><figcaption></figcaption></figure></div>

Once the swap is completed, you will automatically receive sCoin in your wallet, and your Lending position will be active.

<div><figure><img src="/files/IGbXM2DO6bCO2YK2meoJ" alt=""><figcaption></figcaption></figure> <figure><img src="/files/ahbiS2VmV67Xeus14ovE" alt=""><figcaption></figcaption></figure></div>

Reminder: You must have SUI in your wallet to pay for gas fees, and the swap fee is 0.01%.

Visit [Lending](broken://pages/DgmgSUa30HKzqz2CEbm4) and [sCoins](broken://pages/zdpLeD6u4FjeAhxvtAoL) to get more information


# How to Withdraw from Lending pools

### Withdraw from Lending pools

Choose the asset you supplied on the Lending pools page. Click on "withdraw"

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

Enter the amount you want to withdraw from your supplies. You can click on “More Parameters” to view more detailed data.

<div><figure><img src="/files/Ww8lmIg7Tyb4LuxpiY9n" alt=""><figcaption></figcaption></figure> <figure><img src="/files/6l1SzvT9mHhJeVk8zrsX" alt=""><figcaption></figcaption></figure></div>

After you withdraw, the sCoin which represents your supply position will disappear, and your supplied asset, it will be sent back to your wallet, and the Lending Pools page will reflect the updated balance.

<div><figure><img src="/files/GTdMUUvQBKgM2ZKlB7L5" alt=""><figcaption></figcaption></figure> <figure><img src="/files/8rMOEe1VMoWCRf68U8Mx" alt=""><figcaption></figcaption></figure></div>

Reminder: You must have SUI in your wallet to pay for gas fees.

***

**You can also withdraw your Lending position on Scallop by swapping your sCoins back into the original asset.**\
Go to the Swap page, select the sCoin you want to redeem, and swap it back into the original asset.

<div><figure><img src="/files/Bdjum4SzXo3GItBrQJqm" alt=""><figcaption></figcaption></figure> <figure><img src="/files/FqtAuRblRc780PbNaLXR" alt=""><figcaption></figcaption></figure></div>

Once the swap is completed, the asset will be returned to your wallet.\
Your Lending position will be updated automatically, and the sCoin balance will be reduced accordingly.

<div><figure><img src="/files/GTdMUUvQBKgM2ZKlB7L5" alt=""><figcaption></figcaption></figure> <figure><img src="/files/bvUUP4AcVVLCZnFdyan3" alt=""><figcaption></figcaption></figure></div>

Reminder: You must have SUI in your wallet to pay for gas fees, and the swap fee is 0.01%.


# How to Borrow on Scallop

## Borrow

To borrow on Scallop, you need to deposit collateral so that you can borrow the desired asset. However, before making the deposit and borrowing, you need to create an [obligation](broken://pages/c56ar21giCcXNoTCw5nh#set-account) account.

<figure><img src="/files/iA1Fzl3JkRClZ9O7rGte" alt="" width="563"><figcaption><p>Create obligation account</p></figcaption></figure>

### Deposit Collateral

You can choose the asset that you want to use as collateral.

<figure><img src="/files/x6i0ckXApQ7yBC4jRzEC" alt="" width="563"><figcaption><p>Collateral Pools</p></figcaption></figure>

Enter the amount of assets you want to use as collateral.

<figure><img src="/files/87WpP9MQm91WFNKoYpJj" alt="" width="375"><figcaption><p>Deposit SUI collateral</p></figcaption></figure>

> You will not earn any yield on assets that you use as collateral.

<figure><img src="/files/yuEwC7UVCwkQx9BZXrzT" alt="" width="563"><figcaption><p>Deposited Assets</p></figcaption></figure>

As seen in the image above, you can view a summary dashboard of the assets you've deposited in the collateral pools. The summary dashboard consists of four sections:

1. **Available Collateral**: Total USD value of assets available for borrowing.
2. **Deposited Collateral**: Total USD value of assets deposited into the Collateral Pools.
3. **Risk Level**: Indicates the security status of the obligation account, calculated as "borrowValueWithWeight" divided by "requireCollateralValue". A reading of 100% means the liquidation threshold is reached, even if it exceeds this value.
4. **Collateral Portfolio**: Lists the assets you've supplied to the collateral pools.

### Borrowing

After depositing your assets into the collateral pools, you can select the assets you want to borrow from the borrowing pools. Enter the amount you want to borrow from the borrowing pools, and consider that the higher your borrowing amount, the higher the Risk Level of your obligation, which may lead to your obligation account being liquidated.

<figure><img src="/files/FODJjvqaEgz0pRvkQg6F" alt="" width="563"><figcaption><p>Borrow Assets</p></figcaption></figure>

As seen in the image above, there are **Borrow Fee** parameters, meaning you will be charged a fee of 0.3% every time you borrow assets.

<figure><img src="/files/k4vjajS9lowV4gxiXTp2" alt="" width="563"><figcaption><p>Borrow Dashboard</p></figcaption></figure>

* **Available Collateral**: Total USD assets that you can borrow.
* **Debt Assets**: Total USD assets that you have borrowed.
* **Risk Level**: Indicates the security status of your obligation account, calculated based on "borrowValueWithWeight" divided by "requireCollateralValue". A reading of 100% indicates that the liquidation threshold has been reached; it remains at 100% even if exceeded.
* **Debt Portfolio**: List of assets that you have borrowed.

#### Borrow APR and Reward APR

You may notice that in the borrowing pools, there are columns for Borrow APR and Reward APR.

<figure><img src="/files/UAaCTWUE4fvUzGRqL3hH" alt=""><figcaption><p>Borrowing Pools</p></figcaption></figure>

Borrow APR refers to the loan interest rate, while Reward APR is the incentive program provided to users who borrow. When the Reward APR is greater than the Borrow APR, it means that by borrowing, you receive a positive yield.

<figure><img src="/files/VdRiRFAHHwHxj8IVo6ox" alt=""><figcaption><p>Claim Incentive Reward</p></figcaption></figure>

You can claim rewards from borrowing in that panel as well. So, if you stake your sCoins and also borrow assets with a reward APR, it means you receive Reward Incentive Program from both the Lending Pools and Borrowing Pools.

### Avoid Liquidation

To avoid liquidation, you can set the Risk Level of your obligation to be less than 100%. If the Risk Level of your obligation account exceeds 100%, Scallop will initiate the [Soft Liquidation](broken://pages/p1lMLrvjAMQacRm9RNbH#soft-liquidation) mechanism.

<figure><img src="/files/cAuMhIiAnRvnK7o48zNy" alt=""><figcaption><p>Borrowing Dashboard</p></figcaption></figure>

In the example, the obligation has reached 93%, and if it surpasses 100%, our collateral assets will be liquidated. To prevent this, we can repay the assets we previously borrowed. Since the borrowed assets are only USDC, we can repay this asset to decrease the Risk Level percentage.

<figure><img src="/files/ZNm6DMhsjRd2sgk8LaMm" alt="" width="375"><figcaption><p>Repay Debt</p></figcaption></figure>

After repaying the debt assets, our Risk Level percentage has decreased.

<figure><img src="/files/fbooXu3DkYAVZpZywZAc" alt=""><figcaption><p>Borrowing Dashboard</p></figcaption></figure>

#### Withdraw Collateral

Before withdrawing collateral, make sure you have repaid all the assets you borrowed along with their interest. Once you have repaid all the debt assets, you can withdraw all your assets from the collateral pools.

<figure><img src="/files/LBS1jMC3jl9ULG3h5kTT" alt="" width="375"><figcaption><p>Withdraw Collateral</p></figcaption></figure>

Visit [Borrowing](broken://pages/c56ar21giCcXNoTCw5nh) and [Liquidation](broken://pages/p1lMLrvjAMQacRm9RNbH) to get more information


# How to Avoid Liquidation

To avoid liquidation, you can periodically monitor your risk level, and if it becomes too high, you can repay your loan, which will automatically lower your risk level status. Alternatively, you can subscribe to the Notification feature available on Scallop, which will notify you when your account is subject to liquidation or when your account's risk level status exceeds the safe threshold.

## Notification

In Scallop, you can set notifications to remind you if the risk level of your obligation account surpasses the safe threshold you previously determined. Scallop collaborates with Notifi to assist users in maintaining the health of their obligation accounts.

To use this feature, you first need to connect your wallet. Once your wallet is connected, you can press the bell icon.

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

Subsequently, a modal will appear, and you will be asked to enter your email or Telegram account to receive notification messages from Scallop.

<figure><img src="/files/7yYItFNpZIW5rMRYB6rH" alt="" width="375"><figcaption><p>Notifi Modal</p></figcaption></figure>

After entering your email or Telegram username, click "Next," and you will be prompted to sign the transaction. There is no need to worry; this transaction signing does not incur any fees.

<figure><img src="/files/Vke7ck9XqMgrogMth6kK" alt="" width="370"><figcaption></figcaption></figure>

After signing the transaction, you will be asked to verify your email first. If you do not verify your email, you will not receive notifications if your account's risk level exceeds the safe limit.

<figure><img src="/files/EsHGYRN5nuBVwiHHGcJo" alt="" width="375"><figcaption></figcaption></figure>

\
You will be asked to choose three alerts:

* Scallop Announcement: This alert will notify you about the latest updates from Scallop.
* Liquidation Alert: This alert will notify you that your obligation has been liquidated.
* Obligation Risk Alert: This alert will notify you when the risk level of your account exceeds the threshold you previously set.

<figure><img src="/files/mmdO9pXRE0o7Rwczbs1m" alt="" width="375"><figcaption><p>List Scallop Alerts</p></figcaption></figure>

In the image above, there are already two values, 50% and 80%, which you can choose as the threshold for your notifications, or you can enter your threshold in the custom field. For example, if you set your threshold at 70%, you will receive notifications when your risk level percentage exceeds 70%. However, if it remains below 70%, you will not receive any notifications.

<figure><img src="/files/2UQDQSY9aTKnz5FHsD2d" alt="" width="375"><figcaption><p>Alert history</p></figcaption></figure>

\
You can also view the history of alerts that have been successfully sent to your email or Telegram.

Visit the [Notifi Docs](https://notifi-network.github.io/docs/faq#privacy) to see information regarding the privacy of your email account or Telegram username.


# Scallop 介紹

## **Scallop**

<figure><picture><source srcset="/files/t3TGxdFRkP1Kd6rgIakl" media="(prefers-color-scheme: dark)"><img src="/files/U2nKqZg6IQUR8p4Ks5bi" alt=""></picture><figcaption><p>Scallop Logo</p></figcaption></figure>

Scallop 是 Sui 生態系中新一代點對點貨幣市場，也是第一個獲得 Sui 基金會官方資助的 DeFi 協議。我們強調機構級品質、高度可組合性、透明性和強大的安全性。提供貸款/借貸、貸款衍生品、Sui PTB 建設工具、閃電貸款、SDK，以及用於代幣交換和橋接的界面。\
\
Scallop官方網站: [https://www.scallop.io](https://www.scallop.io/)

## **Sui 是什麼？**

<figure><img src="/files/OUpKTVByXhrRzVK5sQt2" alt=""><figcaption><p>Sui Logo</p></figcaption></figure>

[Sui](https://sui.io/) 是一個 Layer 1 區塊鏈，為開發者與創作者提供一個易於建設的環境，來迎向未來數十億的 Web3 用戶。Sui 是一個去中心化且採行 PoS 權益證明機制的區塊鏈，具有水平擴展的吞吐量與存儲容量，允許高速且低成本的應用程式開發。Sui 的開發團隊是 Mysten Labs，由來自 Facebook（後更名為 Meta）Novi 研究團隊的員工共同創立。Sui 不是 Diem Network 的衍生產品，也不是一種漸進式的改進，而是基於區塊鏈技術功能上的進步，以滿足下一個世代加密貨幣使用者及開發者的需求。Sui目標在通過引入創新的底層技術，成為第一個具有互聯網規模的可編程區塊鏈平台。

**Sui 協議具有以下主要特點:**

1. 可擴展性與即時結算: Sui 支持水平擴展的處理和存儲，以實現高吞吐量和低延遲的交易結算。
2. 安全智能合約語言: Sui 提供了安全的智能合約語言，供開發者定義豐富且可組合的鏈上資產，以提供更好的使用者體驗。
3. Narwhal & Bullshark 有向無環圖內存池與拜占庭容錯共識機制: Sui 使用 Narwhal 和 Bullshark 有向無環圖作為內存池與高效的拜占庭容錯共識機制，以確保交易的可靠性與一致性。
4. 因果排序與全排序達到大量平行執行: Sui的因果排序與全排序機制，使得交易能大量地平行執行，減少延遲與增加吞吐量。
5. 物件導向的數據模型與 Move 程式語言: Sui的數據模型以物件為中心，並使用物件導向的程式語言 Move，實現可組合的物件與非同質化代幣(NFTs)，簡化了開發者的使用體驗。


# 常見術語

在整個文檔中使用的一些術語可能對開發者來說比較陌生。以下是一些常見術語，它們將有助於您更好地理解內容：

<table data-header-hidden><thead><tr><th width="255"></th><th></th></tr></thead><tbody><tr><td>術語</td><td>描述</td></tr><tr><td>清算準備系數</td><td>此系數是清算資金中分配給 Scallop 國庫作為特定準備金的一個百分比。</td></tr><tr><td>清算系數</td><td>決定何時需要清算抵押資產以維持協議財務健康的風險參數。該參數設定了抵押品價值與貸款價值之間的最低比率，如果抵押品的價值低於此閾值，抵押資產將被出售以償還貸款。</td></tr><tr><td>債務本</td><td>債務本保存您的抵押資產和借貸信息。</td></tr><tr><td>預言機</td><td>一種第三方鏈上數據服務，用於獲取鏈上資產價格或是鏈上缺乏的原生數據。</td></tr><tr><td>APR</td><td>年借款的成本，包括利息和費用，但不包括一年內利息的累積。</td></tr><tr><td>APY</td><td>年收益或利息，包含複利效果。</td></tr><tr><td>風險水平</td><td>指示您的債務帳戶的安全狀態，根據「 加權後的借款價值 」除以「 所需抵押品價值 」計算得出。讀數達到 100% 表示已達到清算閾值；即使超過，仍將保持在 100%。</td></tr><tr><td>清算閥值</td><td>清算閾值是指當債務達到抵押品價值的清算系數時，貸款將被清算。這個閾值根據不同的抵押品而異，並以百分比表示。</td></tr><tr><td>利用率</td><td>利用率在貸款中顯示了可用資金的借出情況。如果利用率高，意味著大部分資金已經被借出；如果利用率低，則表示還有更多資金可供借出。這一比率有助於決定借款人支付的利息和放貸者獲得的收益。</td></tr><tr><td>清算罰金</td><td>清算罰金是當抵押品被出售以償還借款人的債務時，從抵押品價值中扣除的一筆費用。例如，如果罰金為 10%，且出售了 100 美元的抵押品，那麼只有 90 美元用來償還債務，剩下的 10 美元則作為罰金。</td></tr><tr><td>清算折扣</td><td>清算人通過償還經過折扣後的債務來獲得抵押品，這意味著當他們結清債務時，以較低的價格獲得抵押品，作為對其服務的獎勵。</td></tr><tr><td>抵押系數</td><td>抵押系數是指某資產價值中可用於借貸的最大百分比。例如，若 BTC 的抵押因子為 70%，那麼擁有價值 100 美元 BTC 的借款人最多可以借出 70 美元。</td></tr></tbody></table>


# 原生 USDC

原生 USDC 登陸 SUI 網絡是一個備受期待的里程碑，象徵著 SUI 區塊鏈生態系的重大擴展。Scallop 作為這次發展的有力支持者，從一開始便整合了原生 USDC，讓用戶能夠立即在 Scallop 上借貸原生 USDC。

<figure><img src="/files/LfPFGNT5RrzVsWPGcMl9" alt=""><figcaption><p>原生 USDC 在 Scallop 上線</p></figcaption></figure>

為慶祝並支持原生 USDC 登陸 SUI 生態系，Scallop 正為進行借貸的用戶提供特別激勵。不僅如此，我們還免除了借貸手續費——原先設定為 0.3%，在此次特別活動期間降為 0%。這次免手續費借貸活動將從 2024 年 10 月 8 日持續至 10 月 15 日，無論是 veSCA 持有者還是非持有者，都能有平等的機會透過在 SUI 上引入的原生 USDC 來最大化自己的回報。

<figure><img src="/files/5ZtqPfoyQsreFCjIPvMb" alt="" width="563"><figcaption><p>原生 USDC 激勵措施</p></figcaption></figure>

此外，Scallop 意識到原生 USDC 在 SUI 上線的重要性，特別開發了一項無縫遷移功能。這款由我們專業開發團隊打造的先進工具，讓 wUSDC 貸款池中的用戶能輕鬆遷移到原生 USDC 池中，免去手動提取、將 wUSDC 兌換為 USDC，再重新存入貸款池的繁瑣過程，使整個遷移過程更加快速且無縫順暢。

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

<figure><img src="/files/0XgDwfB8pTdJ63fc6EX6" alt="" width="375"><figcaption></figcaption></figure>


# 開始

## Sui 錢包

以下是 Scallop 推薦的 Sui 錢包:

* [**Sui Wallet**](https://github.com/MystenLabs/mysten-app-docs/blob/main/mysten-sui-wallet.md)
* [**Martian**](https://martianwallet.xyz/)
* [**Ethos**](https://twitter.com/EthosWalletXYZ)
* [**Elli**](https://elliwallet.com/)
* [**Suiet**](https://suiet.app/)
* [**OKX**](https://www.okx.com/hk/web3)
* [**Bitget**](https://web3.bitget.com/)

1. 安裝一個您喜歡的錢包
2. 設置密碼 (此密碼用於網路瀏覽器，以防有心人士偷走筆電，並在未經許可下竊取您的代幣)
3. 安全地保存您的註記詞 ([Best Ways to Store Your Mnemonic Passphrase and How](https://cryptoadventure.com/best-ways-to-store-your-mnemonic-passphrase-and-how/))
4. 現在您可以複製您的 Sui 地址，然後傳送 SUI 到您的錢包！

## 如何取得 SUI

以下是全球知名且受信賴的中心化交易所，您可以使用信用卡等方式購買 SUI。

* [**Binance**](https://www.binance.com/)
* [**OKX**](https://www.okx.com/)
* [**Kucoin**](https://www.kucoin.com/)
* [**Bybit**](https://www.bybit.com/)
* [**Coinlist**](https://coinlist.co/)

將 SUI 傳送到您的 Sui 錢包後，您可以開始成為一位 Scalloper。

## 跨鏈轉移資產到 Sui

想要跨鏈轉移代幣到 Sui Network 上，您可以使用 [Wormhole Connect](https://app.scallop.io/bridge) 。Wormhole 是一個跨鏈訊息傳輸協議 (跨鏈橋)，能夠連結多條區塊鏈，例如: Ethereum, Solana, Terra, Binance Smart Chain, Polygon, Sui, Avalanche, and Oasis.

以下是簡易的指引:

* 前往 Scallop 的橋接 (Bridge) 專區或Wormhole Connect的頁面。
* 決定您希望從哪個區塊鏈轉移資產，然後選擇 Sui Network 作為目標區塊鏈，並連結您的 web3 錢包。
* 選擇您想轉移的代幣類型 (WBTC, WETH, USDC or USDT) 與數量.
* 最後，連結您的 Sui 錢包，在 Sui 上支付燃料費用，並批准發送與領取兩筆交易。


# 放貸

在去中心化金融（DeFi）領域中，有許多方式可以參與各種第三方協議來獲得額外的代幣獎勵，其中一種方式就是在借貸協議成為貸方。當您將您的代幣貸出給借款人時，他們有責任支付所借金額的利息，身為貸方，您將獲得此利息，作為提供資金給借款人的回報。

### 資產池 <a href="#zi-chan-chi" id="zi-chan-chi"></a>

資產池提供者可以通過存款賺取利息，並可以隨時提取資產。資產池中的資產將被借款人借走，借款人已經存入足夠的抵押品作為擔保品，並且借款人也將會隨著時間支付利息。

### sCoins (Scallop 市場貨幣) <a href="#scoins-scallop-market-coins" id="scoins-scallop-market-coins"></a>

與 Compound 的抵押代幣類似，Scallop也將協議上的債權進行代幣化，並命名為 sCoins (Scallop Market Coins)。sCoins 具有不斷增加的價值，是您將代幣存入資產池並有權領取存入資產的證明。sCoins 允許建立倉位，而無需與標的資產互動，並可用於創建包括債務本的衍生產品。Comment本協議重申，"資產池"和"sCoins"僅是部署在區塊鏈網絡上的自動化智能合約，由用戶直接操作調用其中的函數 (這使得他們能夠與其他用戶互動，或者以多方點對點方式進行交易或其他活動)。原始部署智能合約的實體並無進一步控制或與之互動的權力，該實體僅作為用戶的技術工具提供者，不提供任何形式的證券產品或受監管服務，也不託管任何用戶資產。


# sCoin

### **sCoin 是什麼?**

Scallop 是一個去中心化的貨幣市場，讓使用者可以借貸多種加密貨幣。當使用者在 Scallop 的借款資金池存入代幣，他們將獲得 sCoin 作為存款證明 (例如: sSUI 代表 SUI 的存款，sUSDC 代表 USDC 的存款)

sCoin 的主要功能:

* 計息: sCoin的價值會隨時間增加，反映存款所獲得的利息。
* 匯率: sCoin 與標的資產的關係由匯率決定。匯率表示 sCoin 可以兌換多少基礎資產，存款所產生的利息持續被添加回標的資產，使得匯率隨時間增長。

sCoin 的價格計算是根據它的標的資產價格，以下是 sCoin 價格計算的簡單概念:

當您首次將代幣(標的資產)存入Scallop時，您獲得的 sCoin 取決於當下的匯率。然而隨著時間推移，匯率會因為利息累積而上升。 舉例來說，如果 sSUI的匯率從 1 提升至 1.03 ，代表現在每個 sSUI 能換回更多SUI。

假如現在 1 SUI 的價格是 $1 USD，而 sSUI 的匯率是 1.03，則sSUI的價格將會是 1.03: sSUI price = 1\*1.03 = $1.03

重要的是需了解，sCoin 的價格與標的資產的價格存在相關性，並且匯率會隨著時間上升並累積利息。因此，持有 sCoin 不僅代表對基礎資產的所有權，還代表了所獲得的利息。

您能夠在Scallop平台上看到您擁有的 sCoin 之種類與數量。

<figure><img src="/files/TbivQkvBIn05Qr239had" alt="" width="375"><figcaption><p>Scallop mini錢包中的 sCoins</p></figcaption></figure>


# 債務

在進行任何與借貸相關的活動之前，您必須擁有一個債務本`Obligation`。債務本是一個用於記錄您的抵押品和債務的物件。 因此，您需要至少創建一個債務本才能執行任何與借貸相關的操作。

{% hint style="info" %}
您可以擁有多個債務本

每個債務本都是獨立的，這意味著即使您是這些債務本的所有者，在一個債務本中存入抵押品並不能讓您使用另一個債務本來借貸資產。
{% endhint %}

## 深度了解債務物件

債務本`Obligation`是一個共享物件。債務本並非保存在您的錢包中，您擁有一個債務密鑰`ObligationKey`。這個債務密鑰作為您擁有特定債務物件的證明。因此，您在錢包中看到的是一個代表債務密鑰`ObligationKey`的 NFT。

基本上，您的債務本可以包含在任何交易中。然而，對於某些需要所有權證明的操作，其他人無法使用您的債務本，因為這些操作需要所有權的證明。這時，您的債務密鑰發揮了關鍵作用。

例如，當您想要借款時，借款功能將要求您提供債務本`Obligation`和債務密鑰`ObligationKey`。在這種情況下，任何人都可以在這個功能中傳遞您的債務本`Obligation`，但只有您可以使用正確的債務密鑰`ObligationKey`。這一機制保障了您的債務本不被未經授權使用。

這正是我們從 Sui 以物件中心的模型中獲得之優勢。<https://docs.sui.io/concepts/object-ownership/address-owned>


# 借款

## 設置帳號

進入 [Scallop Dapp](https://app.scallop.io/) 與連結您的 Sui 錢包

### 可轉移子帳戶

Scallop 提供了靈活性，使每個使用者的 Sui 地址可以訪問多達 5 個子帳戶，包括主要帳戶。這使得使用者能夠高效自主管理多個倉位。一旦使用者持有 "Scallop Obligation Key"，他們可以在任何子帳戶中存款，而無需重複批准。此外，在子帳戶之間轉移資產和債務時無需批准，使用戶可以根據自己的偏好輕鬆地隔離和分離他們的抵押品和債務。

我們在一個稱為債務本(`Obligation)`的物件中計算您的抵押品和債務。為了更改此物件，您將需要一個稱為`Obligation Key`的對象，每個`Obligation Key`都屬於一個債務本(`Obligation)`。因此，當您首次創建債務本(`Obligation)`時，您將得到一個`Obligation Key`，並且它將存儲在您的地址中。這個`Obligation Key`就像一個 NFT 一樣，它代表所有權並且可以轉讓。將您的`Obligation Key`轉移到其他地址代表您將您對`Obligation`的所有權轉讓給其他人。

## 抵押資產

**抵押品池**允許借款人存入抵押品並獲得一定比例的借款額度，但提供抵押品無法從抵押品池中獲得任何利息。想要從資產池借款的借款人必須首先將抵押品存入抵押品池中，您的抵押品將安全地存放在您的 債務本(Obligation) 中。

## 抵押品權重

為了控制可以使用抵押品借出的幣種比例，我們需要在每個抵押品池中設定一個名為抵押品權重的參數。例如，如果您將 1 BTC 存入一個抵押品池中，並且當時的 BTC 價格為 $10,000，而該 BTC 抵押品池的抵押品權重為 70%。這代表您只能借出您 BTC 價值的 70%，等於`$10,000 x 70% = $7,000`

抵押品權重通常小於1。

您可以從資產池借多少取決於您的抵押品價值，而您的抵押品價值是使用以下公式決定的：

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

您存入抵押品池的抵押品權重發生任何變化都將影響您的抵押品價值。

## 借款權重

有些加密貨幣的價格波動較大，因此為了保護用戶免受價格波動影響，我們創建了**借款權重**的功能。借用價格波動較大的代幣會更"昂貴"，這裡的"昂貴"指的是您能借入的高波動代幣數量較低波動代幣少。借款權重將影響您的債務金額，以下是計算您債務的方式：

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

例如，有 SUI 和 USDC 兩個資產池

USDC 的價格比 SUI 更穩定，因此我們分別將**借款權重**設置為 **1** 和 **1.25**。然後，您將價值為 $10,000 的 1 BTC 存入抵押品池，該 BTC 的抵押權重為 **70%**，您的抵押品價值為 **$7,000** (70% of $10,000)。

假設 USDC 的價格為 $1，SUI 的價格也是 $1。根據您的抵押品價值為 $7,000，您可以借入 7,000 個 USDC，但若想要借入 SUI，您只能借入 5,600 個 SUI。

## 借款/流出/抵押率 限制

Scallop實施了債務與提款總額的動態限制，可以針對每個資產和流動性池進行調整。具體而言，在24小時內，從主要流動性池中借款或提取的限額為100萬美元。


# 利率

## 動態利率

在 Scallop，借款利率是由靜態線性 (或分段線性) 模型來決定的。一般來說，隨著對借款的需求增加或供應減少，利率會呈上升趨勢，相反，當供應增加或借款需求下降時，利率會相應地降低。

## 可升級的協議參數

Sui 上的智能合約是可升級的，Scallop 協議包括利率模型、清算參數、Oracle 整合和資產池。這些組件將根據市場條件、戰略考量和協議優化進行定期升級和調整。隨著 Sui 鏈上治理的基礎設施逐漸成熟，治理權將通過協議代幣進行去中心化治理，逐步轉移到社區手中。

## 三線性利率模型

與 Compound 的雙線利率模型不同，Scallop 的三線性模型運作於三個獨特的階段，每個階段由不同水平的資本利用率觸發。當資本利用率接近其上限時，系統確保能為流動性提供者提供足夠的補償以應對增加的風險，同時提示借款人去減少其倉位，因應增加的借款成本。Scallop 的三線性利率模型專門設計以滿足去中心化金融領域的動態需求，優化利率穩定性並對市場情況作出反應。

## Scallop 利率模型

{% embed url="<https://docs.google.com/spreadsheets/d/1Z3uGcwG1eYm-ulVGgFpjA4USYjh8bBLxx98ZW24b3HM/edit?usp=sharing>" %}


# 清算

### 概述

與許多借貸協議中清算者可以一次性賣出用戶全部抵押品不同，Scallop 採用了更友善的方式。Scallop 使用**軟清算**機制，清算者每次清算最多只能償還借款人**總債務的 20%**，並以折扣價獲得借款人的部分抵押品作為回報。這種漸進式的流程將對借款人的影響降到最低，在維持協議償付能力的同時，盡可能保留借款人的抵押品。

如果一次部分清算後，倉位仍處於不健康狀態，清算過程可以逐步重複進行，直到借款人的倉位完全恢復至健康狀態。

### 風險等級：何時會觸發清算？

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

Scallop 透過比較以下兩個數值來評估每位借款人的倉位狀態：

* **加權債務價值（Weighted Debt Value）**：您所有借款的美元總值，並依據各資產的 `borrow_weight` 進行調整。借款權重越高的資產，對您倉位的影響越大。
* **清算用抵押品價值（Collateral Value for Liquidation）**：您存入的抵押品美元總值，依據各資產的 `liquidation_factor` 進行調整。此數值決定了您的抵押品在觸發清算前能支撐多少借款。

您的風險等級（Risk Level）反映的是這兩個數值之間的比率。當風險等級低於 100% 時，您的倉位是安全的。當風險等級達到或超過 100%，代表您的加權債務價值已超過清算用抵押品價值，您的倉位將面臨清算。

Scallop 上每種資產都有各自的風險參數，因此您的抵押品和債務組成非常重要。舉例來說，以低 `liquidation_factor` 的抵押品去借入高 `borrow_weight` 的資產，會比更保守的配置更容易接近清算門檻。

### 軟清算

Scallop 的軟清算機制旨在保護借款人，避免其在單次事件中失去全部抵押品。

**運作方式：**

* 每次清算最多可償還借款人**總債務價值的 20%**（涵蓋所有債務類型）。此上限可防止單次清算造成過多的抵押品損失。
* 若一次清算後倉位仍不健康，可以繼續進行額外的清算，每次仍限制在剩餘總債務的 20%，直到倉位恢復健康。
* 對於非常小的倉位（總債務低於 **$10**），允許在單次清算中全額償還。這類「微量（dust）」倉位太小，無法以經濟的方式進行逐步清算。

這種逐步清算的方式大幅降低了連鎖壞帳的風險，避免單次大額清算進一步破壞倉位的穩定性。

### 清算罰款與獎勵

當清算發生時，借款人的抵押品會被扣押，並分配給清算者和協議：

**對借款人而言：** 您的被扣押抵押品會產生一筆**清算罰款（Liquidation Penalty）**。罰款比率依抵押品類型而異，由治理機制設定，最高為 20%。這意味著如果您被清算，您損失的抵押品會略多於替您償還的債務金額。

**對清算者而言：** 清算者會獲得清算折扣（Liquidation Discount）作為獎勵，即以低於市場價格的方式取得借款人的抵押品。例如，在 5% 的清算折扣下，清算者實際上以 $95 的債務償還獲得價值 $100 的抵押品。最高折扣為 15%。

**對協議而言：** 清算罰款與清算折扣之間的差額會作為收入流入協議。例如，若罰款為 8%、折扣為 5%，協議將獲得被扣押抵押品價值的 3%。

各抵押品類型的關鍵參數如下：

| 參數                         | 說明                                    | 最大值 |
| -------------------------- | ------------------------------------- | --- |
| 清算因子（Liquidation Factor）   | 您的抵押品價值中有多少比例計入清算門檻。數值越高，距離清算的緩衝空間越大。 | 95% |
| 清算折扣（Liquidation Discount） | 清算者取得您抵押品時享有的折扣。數值越高，對清算者的激勵越大。       | 15% |
| 清算罰款（Liquidation Penalty）  | 對您被扣押抵押品施加的總罰款。罰款始終 ≥ 折扣。             | 20% |

請注意，借款人的債務會按**全額償還金額**進行減少。協議的收入份額來自抵押品端，而非債務償還端。這意味著借款人在每次清算中都能獲得最大程度的債務減免。

### 誰可以執行清算？

Scallop 上的清算是**無需許可的（Permissionless）**。任何人都可以清算不健康的倉位，不需要白名單或特殊權限。這種開放設計確保不健康的倉位能被及時處理，維持協議的償付能力。

清算者通常運行自動化機器人來監控倉位，並在有利可圖時執行清算。如果您有興趣運行清算機器人，請參閱[清算功能](https://docs.scallop.io/integrations/contract-integration/liquidation-function)整合指南以獲取技術細節。

### 如何避免被清算

您可以透過積極管理倉位來保護自己免於清算：

* **監控您的風險等級（Risk Level）：**&#x5728; Scallop 儀表板上，當您的加權債務接近清算加權抵押品價值時，代表您已處於風險中。
* **增加抵押品：**&#x64F4;大您的債務與清算門檻之間的緩衝空間。
* **償還部分債務：**&#x964D;低您的加權債務價值。
* **注意資產選擇**：清算因子較高的抵押品資產能提供更大的緩衝空間，而借款權重較高的借入資產則會讓您更快接近清算門檻。
* **留意市場波動**：抵押品價格下跌或債務代幣價格上漲，都可能在您未改變倉位的情況下將您推向清算。


# 風險

## 使用Scallop的潛在風險

所有的 DeFi 協議，包括 Scallop，都存在風險，在存入大量加密資產前了解這些風險非常重要。以下概述了使用 Scallop 所涉及的主要風險。

**智能合約風險**

這是指 Scallop 智能合約可能遭到攻擊，導致資金被竊取或永久凍結的風險。這種風險是所有智能合約固有的，無法完全消除，但可以通過多種方式減少風險。

**預言機風險**

Scallop 依賴於 Pyth、Switchboard 和 Supra[ 預言機](/zh/protocol/oracles)提供價格信息。儘管我們採用了多預言機匯總策略以避免單一預言機被攻擊並輸出錯誤的價格訊息，但仍然存在這些預言機同時報錯價格的風險，從而導致不正確的清算。

**錢包服務風險**

Scallop 支援多種錢包，包括 Martian、Suiet、Elli、Ethos Wallet，以及開源的 Sui 錢包 Sui Wallet。任何 Sui 錢包的漏洞都有可能影響到部分 Scallop 用戶。

**監管風險**

Scallop、$SCA 和分佈式賬本技術的監管狀況在許多司法管轄區仍不明確或尚未確定。數位資產的監管已成為全球主要國家的重點監管目標。無法預測監管機構會如何、何時或是否對這些技術及其應用（包括 $SCA 和/或 Scallop）應用現行法規或創立新法規。監管行動可能會以多種方式對 $SCA 和/或 Scallop 產生負面影響。如果監管行動或法律、法規的變更使在某地區運營成為非法，或使獲得必要的監管批准變得商業上不可行，公司或分銷商（或其相關附屬公司）可能會停止在該地區的業務運營。為盡量降低法律風險，公司和分銷商已諮詢多名法律顧問，並與 Jacque Law LLC 的區塊鏈專業部門合作，取得關於代幣分配的法律意見，將根據現行市場慣例進行業務運營。

**資訊不充分的風險**

截至目前，Scallop 仍在開發中，其設計理念、共識機制、算法、代碼及其他技術細節和參數可能會經常更新和變更。儘管這個資料包含了與 Scallop 相關的最新信息，但它並非絕對完整，Scallop 項目貢獻者可能會隨時進行調整和更新。Scallop 項目貢獻者無法也無義務向 $SCA 持有人告知有關 Scallop 開發項目的每一個細節（包括開發進度和預期的里程碑），因此信息披露不足是不可避免且合理的。

**競爭風險**

各種類型的去中心化應用、遊戲和網絡正在快速涌現，行業競爭日益激烈。有可能會出現使用與 $SCA 和/或 Scallop 相同或類似代碼和協議的替代網絡，並試圖重建類似的設施。Scallop 可能需要與這些替代網絡競爭，這可能會對 $SCA 和/或 Scallop 產生負面影響。

**開發失敗風險**

Scallop 的開發可能因多種原因無法按計劃執行或實施，包括但不限於數位資產、虛擬貨幣或 $SCA 價格下跌、未預見的技術困難以及開發活動資金短缺等情況。


# 隔離資產

我們很高興宣布 Scallop 隔離資產池的正式上線！這項新功能是 Scallop 邁向全方位金融平台的重要一步，致力於為用戶提供更多功能，吸引下一批數百萬用戶加入。

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

## 什麼是隔離資產？

隔離資產功能將風險限制在特定的資金池內，確保壞賬不會影響其他資金池。

此功能允許協議支持更多元化的資產，而不會產生跨資金池的風險。

需要注意的是，當用戶借入隔離資產時，該債務本（obligation）下不能與其他債務共存，這意味著一次僅能借入一種類型的隔離資產。

## 隔離資產與非隔離資產的差異

借貸隔離資產需要更高的抵押比率，通常為 **200%**，即用戶需要提供至少兩倍於借款金額的抵押品。

此外，隔離資產的借貸費用為 **1%**，高於非隔離資產的費率。

## 如何借貸隔離資產

借貸隔離資產前，用戶需要先存入抵押資產。在單一債務本（obligation）下，如果用戶已經借入隔離資產，將無法借入其他資產。

實際舉例：

Alice 存入了多種抵押資產（例如 USDC 和 USDT）。當 Alice 借貸隔離資產 $FUD 後，便無法再借入其他資產，例如 SUI、ETH，甚至另一個隔離資產 $DEEP。若 Alice 希望借貸其他資產，必須先還清她的 $FUD 債務，才能再借入包括 $DEEP 在內的其他資產。

## 借貸隔離資產的最佳方法

最好的方法是使用多個債務本（**multiple obligations**）。通過創建一個新債務本，Scalloper可以保留現有的倉位，無需對其進行任何操作。

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

創建新債務本後，Scalloper可以在新債務本和現有債務本之間切換。在新債務本中存入抵押資產後，便可以借貸隔離資產。

<figure><img src="/files/38iGbtIKa4UmKMoRjKVG" alt=""><figcaption></figcaption></figure>

## 馬上開始借貸隔離資產！

Scallop 很高興為用戶引入更多元化的資產。敬請期待更多隔離資產即將在 Scallop 上線！


# 新興資產

作為 Sui Network 上領先的貨幣市場協議，Scallop 持續致力於優化協議效能並拓展產品功能，以提供更完善的用戶體驗。

隨著 Sui 生態系中新代幣的不斷推出，Scallop 隆重推出全新資產類型 —— **Emerging Assets（新興資產）**。

Emerging Assets 是繼現有的 Main Assets（主資產）與 Isolated Assets（隔離資產）後，新增的第三類資產配置選項，提供一個彈性且效率兼具的機制，便於快速納入新發行或高熱度資產，同時維持整體協議的穩定性與安全性。

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

***

### 現有資產類型介紹

Scallop 先前支援以下兩種資產類型：

#### Main Assets（主資產）

* 主資產為在 Sui 生態中廣泛支援的核心代幣，通常具備較高市值、良好流動性，且價格波動性相對較低。
* 借入主資產所需的借貸費用為 **0.3%**。

#### Isolated Assets（隔離資產）

* 隔離資產主要針對價格波動較大、尚未成熟的新代幣。
* 此類代幣被配置於獨立資產池中，以便個別風險管理，避免系統性風險傳染。
* 借貸隔離資產的費用為 **1%**，且單筆借貸中不得混合借入多種隔離資產。

👉 詳細介紹可參見《Scallop 隔離資產指南》

***

### Introducing: Emerging Asset Pools

**Emerging Assets** 作為一種新型資產分類，定位於主資產與隔離資產之間，具備以下特性：

* 可被用作抵押品，其抵押權重低於主資產。
* 借入 Emerging 資產所需之費用與隔離資產相同，為 **1%**。
* 採用較嚴謹的風控參數設定，以確保協議運作穩定。
* 設計目標為提供新發行代幣的過渡機制，協助其在通過審核與觀察後升級為主資產。

***

### 初期納入之 Emerging 資產

Scallop 已正式上線第一批 Emerging 資產池，初期支援以下代幣：

* **WAL**
* **SCA**
* **DEEP**
* **CETUS**
* **HAEDAL**
* **wWAL**
* **haWAL**

更多資產將於接下來數週與數月內陸續加入 Emerging Asset Pools，敬請關注後續更新。


# 數據

## 資產種類

<table><thead><tr><th width="158">資產名稱</th><th>資產類型</th></tr></thead><tbody><tr><td>wUSDC</td><td>0x5d4b302506645c37ff133b98c4b50a5ae14841659738d6d733d59d0d217a93bf::coin::COIN</td></tr><tr><td>wUSDT</td><td>0xc060006111016b8a020ad5b33834984a437aaa7d3c74c18e09a95d48aceab08c::coin::COIN</td></tr><tr><td>wETH</td><td>0xaf8cd5edc19c4512f4259f0bee101a40d41ebed738ade5874359610ef8eeced5::coin::COIN</td></tr><tr><td>SUI</td><td>0x2::sui::SUI</td></tr><tr><td>CETUS</td><td>0x06864a6f921804860930db6ddbe2e16acdf8504495ea7481637a1c8b9a8fe54b::cetus::CETUS</td></tr><tr><td>afSUI</td><td>0xf325ce1300e8dac124071d3152c5c5ee6174914f8bc2161e88329cf579246efc::afsui::AFSUI</td></tr><tr><td>haSUI</td><td>0xbde4ba4c2e274a60ce15c1cfff9e5c42e41654ac8b6d906a57efa4bd3c29f47d::hasui::HASUI</td></tr><tr><td>vSUI</td><td>0x549e8b69270defbfafd4f94e17ec44cdbdd99820b33bda2278dea3b9a32d3f55::cert::CERT</td></tr><tr><td>SCA</td><td>0x7016aae72cfc67f2fadf55769c0a7dd54291a583b63051a5ed71081cce836ac6::sca::SCA</td></tr><tr><td>wBTC</td><td>0x027792d9fed7f9844eb4839566001bb6f6cb4804f66aa2da6fe1ee242d896881::coin::COIN</td></tr><tr><td>wSOL</td><td>0xb7844e289a8410e50fb3ca48d69eb9cf29e27d223ef90353fe1bd8e27ff8f3f8::coin::COIN</td></tr><tr><td>USDC</td><td>0xdba34672e30cb065b1f93e3ab55318768fd6fef66c15942c9f7cb846e2f900e7::usdc::USDC</td></tr><tr><td>sbETH</td><td>0xd0e89b2af5e4910726fbcd8b8dd37bb79b29e5f83f7491bca830e94f7f226d29::eth::ETH</td></tr><tr><td>sbUSDT</td><td>0x375f70cf2ae4c00bf37117d0c85a2c71545e6ee05c4a5c7d282cd66a4504b068::usdt::USDT</td></tr><tr><td>FDUSD</td><td>0xf16e6b723f242ec745dfd7634ad072c42d5c1d9ac9d62a39c381303eaa57693a::fdusd::FDUSD</td></tr><tr><td>DEEP</td><td>0xdeeb7a4662eec9f2f3def03fb937a663dddaa2e215b8078a284d026b7946c270::deep::DEEP</td></tr><tr><td>NS</td><td>0x5145494a5f5100e645e4b0aa950fa6b68f614e8c59e17bc5ded3495123a79178::ns::NS</td></tr><tr><td>USDY</td><td>0x960b531667636f39e85867775f52f6b1f220a058c4de786905bdf761e06a56bb::usdy::USDY</td></tr><tr><td>mUSD</td><td>0xe44df51c0b21a27ab915fa1fe2ca610cd3eaa6d9666fe5e62b988bf7f0bd8722::musd::MUSD</td></tr><tr><td>BLUB</td><td>0xfa7ac3951fdca92c5200d468d31a365eb03b2be9936fde615e69f0c1274ad3a0::BLUB::BLUB</td></tr><tr><td>sbwBTC</td><td>0xaafb102dd0902f5055cadecd687fb5b71ca82ef0e0285d90afde828ec58ca96b::btc::BTC</td></tr></tbody></table>

### 利率模型

Scallop採用三線性利率模型，隨著資金利用率增加，借款利率也會提高。

| 資產     | 0% 利用率 | 70% 利用率 | 90% 利用率 | 100% 利用率 |
| ------ | ------ | ------- | ------- | -------- |
| SUI    | 5%     | 10%     | 30%     | 150%     |
| afSUI  | 5%     | 10%     | 30%     | 150%     |
| haSUI  | 5%     | 10%     | 30%     | 150%     |
| USDC   | 3%     | 10%     | 25%     | 150%     |
| sbUSDT | 3%     | 10%     | 25%     | 150%     |
| USDY   | 3%     | 10%     | 25%     | 150%     |
| FDUSD  | 3%     | 10%     | 25%     | 150%     |
| mUSD   | 3%     | 10%     | 25%     | 150%     |
| SCA    | 20%    | 30%     | 50%     | 600%     |
| CETUS  | 20%    | 30%     | 50%     | 600%     |
| WAL    | 20%    | 30%     | 50%     | 600%     |
| wWAL   | 20%    | 30%     | 50%     | 600%     |
| haWAL  | 20%    | 30%     | 50%     | 600%     |
| NS     | 20%    | 30%     | 50%     | 600%     |
| DEEP   | 20%    | 30%     | 50%     | 600%     |
| BLUB   | 20%    | 30%     | 50%     | 600%     |
| wSOL   | 5%     | 10%     | 30%     | 150%     |
| sbwBTC | 5%     | 10%     | 30%     | 150%     |
| sbETH  | 5%     | 10%     | 30%     | 150%     |

### 風險模型

Scallop 為每個抵押資產定義風險參數，這些參數共同作用於借貸協議中的風險管理機制，旨在平衡借貸的便利性與金融安全。

<table><thead><tr><th width="146">資產</th><th width="115">抵押因子</th><th width="111">清算因子</th><th width="109">清算罰金</th><th width="105">清算折扣</th><th>最大抵押金額</th></tr></thead><tbody><tr><td>wUSDC</td><td>85%</td><td>90%</td><td>5%</td><td>4%</td><td>0</td></tr><tr><td>wUSDT</td><td>85%</td><td>90%</td><td>5%</td><td>4%</td><td>0</td></tr><tr><td>wETH</td><td>75%</td><td>80%</td><td>5%</td><td>4%</td><td>0</td></tr><tr><td>SUI</td><td>75%</td><td>80%</td><td>5%</td><td>4%</td><td>100M</td></tr><tr><td>CETUS</td><td>45%</td><td>65%</td><td>5%</td><td>4%</td><td>1M</td></tr><tr><td>SCA</td><td>50%</td><td>70%</td><td>5%</td><td>4%</td><td>5M</td></tr><tr><td>afSUI</td><td>70%</td><td>75%</td><td>5%</td><td>4%</td><td>20M</td></tr><tr><td>haSUI</td><td>70%</td><td>75%</td><td>5%</td><td>4%</td><td>20M</td></tr><tr><td>vSUI</td><td>60%</td><td>70%</td><td>5%</td><td>4%</td><td>0</td></tr><tr><td>wBTC</td><td>75%</td><td>80%</td><td>5%</td><td>4%</td><td>0</td></tr><tr><td>wSOL</td><td>70%</td><td>80%</td><td>5%</td><td>4%</td><td>10K</td></tr><tr><td>USDC</td><td>85%</td><td>90%</td><td>5%</td><td>4%</td><td>30M</td></tr><tr><td>sbETH</td><td>75%</td><td>80%</td><td>5%</td><td>5%</td><td>5K</td></tr><tr><td>sbUSDT</td><td>85%</td><td>90%</td><td>5%</td><td>4%</td><td>20M</td></tr><tr><td>FDUSD</td><td>85%</td><td>90%</td><td>5%</td><td>4%</td><td>100K</td></tr><tr><td>USDY</td><td>85%</td><td>90%</td><td>5%</td><td>4%</td><td>10M</td></tr><tr><td>sbwBTC</td><td>75%</td><td>80%</td><td>5%</td><td>4%</td><td>50</td></tr><tr><td>WAL</td><td>70%</td><td>80%</td><td>5%</td><td>4%</td><td>10M</td></tr><tr><td>wWAL</td><td>70%</td><td>80%</td><td>5%</td><td>4%</td><td>2M</td></tr><tr><td>haWAL</td><td>70%</td><td>80%</td><td>5%</td><td>4%</td><td>2M</td></tr></tbody></table>


# 費用

為了確保協議的長期運行，Scallop 對特定功能收取一定比例的交易費用。此外，Scallop 還會收取一些基本的營運成本，包括區塊鏈的 Gas 費用和預言機共識費用。

## 借款費用

當用戶透過 Scallop 借款時，系統會根據資產類型收取一筆小額手續費。Scallop 將資產分為三種類型：主要資產（main assets）、新興資產（emerging assets）以及隔離資產（isolated assets），依據不同的風險屬性對應不同費率。主要資產的手續費為 0.3%，新興資產與隔離資產則為 1%。此手續費不需額外支付，而是於借款當下直接自借出金額中扣除。

## 借款利息費用

當借款人支付利息時，其中一部分會作為協議收益分配給平台。每個資金池皆有其獨立的借貸利息費率，借款人所支付的利息將依比例回饋給協議。

## 清算費用

當用戶的帳戶變得不健康並進行清算時，作為清算過程的一部分，會對交易收取特定費用。在這種情況下，清算所得總額的 1% 會作為收入分配給協議。

## 閃電貸費用

當用戶使用閃電貸款時，這是一種允許在短時間內（通常在單個交易區塊內）無需抵押借入資產的金融工具，會有一個獨特的費用結構。具體而言，這類交易中，閃電貸款金額的 0.1% 會作為收入分配給協議。

## Sui 網路費用

Sui 網絡費用是處理您在 Scallop 上交易所必需的。這些 Sui 交易費用會在您的交易執行時從您的錢包中扣除。（通常少於 0.0001 SUI）

## 預言機費用

預言機（負責提供價格信息）增加了一層額外的安全措施。作為權衡，您需要支付額外的費用來從多預言機中獲取數據。（通常少於 0.01 SUI）


# 流出限制

Scallop 在借貸池中實施了提款限額，以維持經濟穩定性和安全性，防止大規模的突然提款可能對系統造成的不穩定。這樣可以確保流動性，支持借款人的資金使用需求，並將波動性降到最低，這對於用戶信任和平台的財務完整性至關重要。

| 資產    | 每日流出限制          |
| ----- | --------------- |
| SUI   | 3,000,000 SUI   |
| wUSDC | 3,000,000 wUSDC |
| wUSDT | 3,000,000 wUSDT |
| CETUS | 1,000,000 CETUS |
| afSUI | 500,000 afSUI   |
| haSUI | 500,000 haSUI   |
| vSUI  | 10,000 vSUI     |
| wETH  | 500 wETH        |
| wBTC  | 2 wBTC          |
| wSOL  | 1,000 wSOL      |
| USDC  | 10,000,000 USDC |


# 資安審計

## Scallop的Sui智能合約受過資安審計與開源嗎?

Scallop 已經完成了 Zellic、OtterSec 和 MoveBit 的智能合約審計。Scallop Lend 是一個開源協議，運行在 Sui 區塊鏈上，因此每個人都可以成為 Scallop Lend 的審計員。

### 核心智能合約 (借貸)

**Scallop 智能合約審計報告 by Zellic:**

{% file src="/files/h2WHIiEKpaePVgmWezP8" %}

**Scallop 智能合約審計報告 by OtterSec:**

{% file src="/files/S9qjY23WxFth6TiE6qGA" %}

{% file src="/files/v0qwiTRWHLGjsUc3Kyy6" %}

**Scallop 智能合約審計報告 by MoveBit:**

{% file src="/files/SwHoaWiI4ux3ZAWzvSen" %}

{% file src="/files/RO4zGgkvdz9TXfeg9wHz" %}

**Scallop 智能合約審計報告 by Asmptotic:**

{% file src="/files/TpiXb4GrovX4gvUs7a9L" %}

**Scallop sui-lending-protocol** ��**:**\
\
<https://github.com/scallop-io/sui-lending-protocol>

### sCoin 封包

{% file src="/files/Ark9Rxxr6Xxe9AWCxTCY" %}
audited by MoveBit
{% endfile %}

### veSCA

{% file src="/files/9atnTR5AYnV00rhr7NAI" %}
audited by MoveBit
{% endfile %}

{% file src="/files/hljv96CgXiEvI7VUYphU" %}
audited by MoveBit
{% endfile %}

### SCA (Scallop 代幣)

{% file src="/files/QSF7EKZoFyTd5LtmtWsJ" %}
audited by MoveBit
{% endfile %}

### 借款激勵

{% file src="/files/e5wtbkeuc822BZWTs2ae" %}
audited by MoveBit
{% endfile %}


# 預言機

## **多重預言機 (規劃中)**

Scallop 價格模組以 **Pyth、Switchboard、Supra Oracles** 組&#x6210;**。**&#x9019;些價格預言機對於評估帳戶健康狀況和決定清算至關重要。每個預言機根據其數據源有不同的刷新率，我們使用它們的 **TWAP（時間加權平均價格）預言機**來提高安全性，您可以通過以下鏈接進一步了解這些內容。

* **Pyth**: <https://pyth.network/price-feeds>
* **Switchboard**: <https://switchboard.xyz/explorer>
* **Supra Oracles**: <https://supraoracles.com/data>

🔔 **提醒：目前在 Sui 網路上，僅有 Pyth 提供相對完整且穩定的價格資料。因此，Scallop 現階段僅依賴 Pyth 作為價格數據來源。多重預言機將作為未來的發展方向，以進一步提升系統的韌性與安全性。**

## **聚合多預言機策略 (規劃中)**

為了降低借貸協議中價格操縱的風險，預言機（負責提供價格）增加了一層額外的安全措施。我們使用多個預言機並評估它們發布的價格。如果檢測到任何異常情況，我們將中止操作。主預言機被選為主要數據來源，而額外的預言機則作為對主預言機價格的補充證明。

## **\*TWAP 預言機 (開發中)**

區塊鏈預言機為 DeFi 智能合約提供現實世界的數據，例如資產價格或選舉結果。為了保護 DeFi 智能合約免受價格操縱，已實施了時間加權平均價格（TWAP）預言機來提高安全性。

TWAP 預言機提供在特定期間內資產的平均價格，使得價格操縱對攻擊者來說變得成本高昂且困難。TWAP 預言機使用加權平均法計算資產價格，其中時間作為權重。這種方法比簡單的平均值更為準確，因為它賦予分佈中某些值更高的重要性。

TWAP 預言機首次在 Uniswap v2 中引入，並在 Uniswap v3 中得到了改進，提供了一種比現貨價格或鏈下預言機更安全的替代方案。它們不易受到合謀的影響，並且對短期價格波動和閃電貸款具有更強的抵抗力。因此，TWAP 預言機對於 DeFi 的安全性至關重要。


# 漏洞賞金

## 摘要

Scallop 的主要目標是提供一個遵循最高安全標準的 DeFi 協議。我們正在推出一個漏洞賞金計劃，邀請社群幫助識別我們系統中的潛在漏洞。該計劃重點關注智能合約的安全性，以保護用戶資金並維持平台的償付能力。與 UI 相關的漏洞將不在此計劃範圍內。請將發現的任何漏洞提交至 `bug@scallop.io`，有機會獲得高達 300,000 美元的獎勵。

參加漏洞賞金計劃的要求：

1. 將發現的任何漏洞或安全漏洞僅提交給 Scallop 項目貢獻者，郵箱為`bug@scallop.io`.
2. 請確保報告的漏洞或安全漏洞之前未被披露，屬於此計劃範圍內，且未包含在任何公開可用的審計報告中。
3. 如果接收到相同漏洞的多個報告，只有第一個提交將被考慮獲得獎勵。
4. 不要以任何方式利用該安全漏洞，包括公開披露或個人牟利（除了此計劃的獎勵之外）。
5. 所有獎勵將以 SUI/USDC/SCA 支付，並發送至報告者提供的錢包地址。獎勵不能兌換成其他加密貨幣或法定貨幣。

#### 賞金支付

Scallop 項目貢獻者將對每個提交進行單獨評估，並根據問題的嚴重性來確定獎勵金額：

* 特殊危急案例 : 最高可達協定損失金額的 20%（取決於案件具體情況）
* 危急嚴重性 : $30,000 - $300,000
* 高嚴重性 : $3,000 - $30,000
* 中等嚴重性 : $300 - $3,000
* 低嚴重性: $30 - $300
*

在提交漏洞報告時，請包括以下信息：

* 姓名:
* Telegram ID:
* Sui 錢包地址:
* 描述:
* 漏洞類型:
* 影響的範圍:
* 附件:
* (相關的截圖或協助文件)

關於我們智慧合約 (Smart Contract) 漏洞賞金計畫（Bug Bounty Program）的詳情，您可以查閱此連結：<https://hackenproof.com/programs/scallop-protocol-smart-contract>


# SCA

**名字:** Scallop Token

**代號:** $SCA

**區塊鏈:** Sui

**總供應量 (最大):** 250,000,000 SCA

Scallop 的原生代幣（代號 $SCA）是一種可轉移代幣，在 Scallop 協議/代碼中指定的具體功能，僅為可互操作的功能型代幣。

## 代幣分配

| 類別            | 分配比例 |
| ------------- | ---- |
| 流動性挖礦         | 45%  |
| Scallop 項目貢獻者 | 15%  |
| 開發 & 營運       | 4%   |
| 戰略夥伴/投資人      | 15%  |
| 顧問            | 1.5% |
| 生態/社群/行銷      | 7.5% |
| 流動性           | 5%   |
| 國庫            | 7%   |

#### 詳解:

* **流動性挖礦：** 45% 代幣透過各式的流動性激勵計畫分發，刺激生態穩定成長
* **Scallop 項目貢獻者：**&#x31;5% 給予創始團隊及貢獻者
* **開發 & 營運：**&#x34;% 用於開發與營運
* **戰略夥伴/投資人：**&#x31;5% 給予投資人與戰略夥伴
* **顧問：** 1.5% 給予重要顧問
* **生態/社群/行銷：**&#x37;.5% 支持行銷活動與促進生態成長
* **流動性** **：**&#x35;% 作為維持代幣流動性使用
* **國庫：** 7% 包留給國庫

## 代幣解鎖計畫

* **流動性挖礦：** 代幣將每月釋放，當前月份的釋放量將比前一個月減少 1.5%。最初的釋放量為 2,830,459 SCA。
* **國庫：** 在TGE (代幣生成事件)時100%解鎖，以維持在中心化交易所與去中心化交易所的長期流動性。
* **生態/社群/行銷：** 五年內線性解鎖。
* **Scallop 項目貢獻者：** 鎖倉一年，隨後三年內線性解鎖。
* **顧問：** 鎖倉一年，隨後三年內線性解鎖。
* **開發 & 營運：**&#x4E94;年內線性解鎖。
* **戰略夥伴/投資人：** 一到三年內解鎖。

<figure><img src="https://lh7-rt.googleusercontent.com/slidesz/AGV_vUcHuEblIUL5jB5U6Uh5s406BdzHI630wqQS8JF-HP1h4hS7GTpVzOYBVSHIGM84npvp99nwEv7M27GN6Y4h2sOnWw2FaSa4B_zgMAM5HUNajxcp_hIB6VvVybToexqFNWomaK2r6YLCizzkgr4LJ5UGGlw_mRg=s2048?key=qv-6nSOS9_VQLQ22j4lLuw" alt=""><figcaption></figcaption></figure>


# veSCA

Scallop 採用一種被普遍稱為Vesting Model的 $SCA 代幣的鎖定機制，其衍生品為 veSCA，通過持有 veSCA，擁有者可以解鎖持有 $SCA的好處，讓代幣變得更加有用。

veSCA 有助於減少流通的 $SCA 代幣數量，增強去中心化與市場恆定性，有助於穩定代幣的價值，並加強整個 Scallop 平台的穩定性。這種方法對於確保 Scallop 的成功和長期發展至關重要。

### 持有veSCA的好處

1. 治理 & 投票（即將推出）
2. 借款獎勵加乘
3. 加入扇貝忠誠計畫
4. 獲得更高的推薦碼折扣/分潤等級

***

### 怎麼取得veSCA?

僅需要鎖定您的 SCA 即可獲得 veSCA.

您收到的 veSCA 數量與您鎖定的 SCA 數量和鎖定的持續時間成正比。您的 veSCA 數量會隨著時間逐漸減少，並在鎖定期結束後降至零。鎖定的 SCA 屆時將會全部解鎖。<br>

<figure><img src="/files/Q5kNR4b3JgKZ6GKqyDdd" alt=""><figcaption><p>veSCA 衰減圖</p></figcaption></figure>

您可以通過選擇延長質押期限和/或增加質押數量來提高您的 veSCA 數值。

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

鎖定時間越久，會獲得越多 veSCA 。

#### veSCA 公式

$$
veSCA = SCA \times (RemainLockPeriod  \div4 Years)
$$

#### **鎖倉規則**

* 解鎖日期僅在每天的 UTC 時間凌晨 12 點發生。因此，用戶需要選擇這個解鎖日期。
* 每輪持續一天（24 小時）。
* 用戶需要至少鎖定一整輪。例如，如果他們在 UTC 時間中午 12 點開始，他們不能在下一個 UTC 時間凌晨 12 點（即 12 小時後）解鎖，因為這還不算一整輪。在這種情況下，用戶需要鎖定超過一天的時間，以達到至少一整輪。
* 最低鎖定輪數為 1，最高鎖定輪數為 1460。最高輪數相當於 4 年。

#### **鎖定更多 SCA**

* 如果用戶在不更改鎖定期限的情況下增加他們的 SCA 質押，這也會刷新他們的 veSCA 數量。

**延長鎖定期**

* 用戶可以選擇更長的鎖定期限，屆時用戶的 veSCA 值將被重新計算。鎖定期限不能縮短。

#### **贖回** veSCA

* 用戶在鎖定結束後可以 100% 取回 SCA 。

***

## veSCA 用途

### 持有 veSCA 加乘收益 <a href="#id-9857" id="id-9857"></a>

* 用戶可以通過持有 veSCA 來提高他們的收益。當他們將資金存入提供激勵的池中時，需要持有 veSCA。例如，如果一個池子為存入流動性提供 20% 的年利率（APR），持有一定數量的 veSCA 可以提供增益，例如最高可達 5 倍。最初的年利率是 20%，在經過 5 倍增益後，年利率將變為 100%。
* 用戶獲得的增益數量取決於他們持有的 veSCA 的比例份額。用戶擁有的流動性越多，他們所需的 veSCA 也越多。

{% hint style="info" %}
如果您的加乘值（Boost Value）顯示不正確，這意味著它尚未刷新。當您進行借款、供應、還款、質押 SCA 或延長鎖定期限等操作後，它將會更新。或者，您也可以通過訪問質押頁面並點擊“刷新加乘”（Refresh Boost）按鈕來手動刷新您的增益值。
{% endhint %}

*計算收益權重的公式*

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

\
\&#xNAN;*計算收益加乘的公式。您獲得的收益百分比。最低為 100%，代表基礎收益。*

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

現在，讓我們來計算您將獲得的 APR

<br>

$$
EarningAPR = PoolIncentiveAPR \times EarningBoost
$$

讓我們模擬不同的情境來證明 veSCA 數量和幣量（coinAmount）之間的相關性。假設 veSCA 的總供應量為 500,000。

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

上表說明了當用戶的供應量增加時，需要增加 veSCA 的數量，以維持收益年利率（APR），否則 APR 將會下降。

### veSCA 加乘收益計算機 <a href="#id-9857" id="id-9857"></a>

<div align="left" data-full-width="false"><figure><img src="/files/KVoeWx0cnOp8YVz8yANu" alt="" width="264"><figcaption></figcaption></figure></div>

我們還提供了支持讀取你當前持有艙位並且模擬持有veSCA數量的veSCA 加乘收益計算機，以便您在鎖定SCA之前可以先行做更多評估。\
\
veSCA 加乘收益計算機: <https://app.scallop.io/vesca>

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

### 扇貝忠誠計畫 (2024第二季) <a href="#id-3f52" id="id-3f52"></a>

忠誠度計畫旨在在我們達到某些收入里程碑時獎勵用戶。在每個里程碑，我們都會進行代幣回購，將這些代幣分發給持有 veSCA 的用戶。

我們曾經進行過的忠誠計畫: <https://medium.com/scallopio/search?q=Loyalty><br>

### 治理 (2025第一季) <a href="#id-4c10" id="id-4c10"></a>

Scallop 的治理機制，也稱為 veSCA，將有助於實現更高程度的去中心化。


# 推薦碼

Scallopers 可以生成專屬的推薦連結並分享給他人以邀請新用戶加入。當新用戶通過推薦連結加入 Scallop 並在 Scallop 上創建obligation key時，該obligation key將通過推薦人的錢包地址與推薦人聯接。

需特別注意，一旦接受了推薦連結，將無法解除與該推薦連結的綁定！

## 推薦計畫的好處

被推薦人從 Scallop 資金池借款時，推薦者將獲得部分借款手續費的分成。分成比例取決於推薦人持有的 veSCA 數量。\
被推薦人在從 Scallop 借款時，最高可以享受 **20% 的借款手續費折扣**。

**Tier-Based Rates**

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

## 範例

假設 Scalloper A 持有 1,000,000 veSCA，並生成一個推薦連結給 Scalloper B。

* **Scalloper A** 有資格獲得 **40% 的借款手續費分成**。
* **Scalloper B** 使用 Scalloper A 的推薦連結，能享受 **20% 的借款手續費折扣**。

Scalloper B 借款 $1,000，計算如下：

1. **基礎借款手續費**：$1,000 × 0.3% = **$3**
2. **Scalloper B 實際支付的手續費**：$3 × (100% - 20%) = **$2.4**
3. **推薦人 Scalloper A 的分成**：$3 × 40% = **$1.2**

如此一來，Scalloper B 借款手續費減少，Scalloper A 獲得借款分成，雙方皆受益。

## 開始使用Scallop推薦碼！

## 如何推薦：

**步驟 1**：前往 Scallop 平台的 **「推薦賺取」(Refer & Earn)** 頁面。

<figure><img src="/files/WCuFJoeRvgsPQ66Cukbf" alt=""><figcaption><p>Referral Page: <a href="https://app.scallop.io/referral">https://app.scallop.io/referral</a></p></figcaption></figure>

**步驟 2**：點擊 **「開始賺取」(Start Earning)** 以生成您的專屬推薦連結。

會需要同意一個transaction。

<figure><img src="/files/6KX07mOSmf49f4xOiVGY" alt=""><figcaption></figcaption></figure>

步驟 3：一旦連結生成，便可以複製並分享鏈接來開始賺取分成！ 還能夠查看當前符合條件的借款費用折扣和借款費用分成。

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

## 如何接受推薦連結：

進入推薦連結後，系統會顯示接受邀請。只需點擊「接受推薦」即可加入 Scallop。

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

一旦接受，就可以看到帳戶將綁定到的推薦人代碼！請注意，接受推薦代碼後，將無法解除綁定。

## 馬上加入Scallop推薦計畫！

通過參加 Scallop 推薦計劃，不僅可以賺取獎勳，還能幫助我們的社群成長。質押 SCA 並開始分享你的推薦連結吧！


# 團隊控制SCA地址

## 團隊 SCA

<table data-full-width="false"><thead><tr><th>類別</th><th>分配</th><th>釋放方式</th><th>釋放狀態</th><th>Wallet Address</th></tr></thead><tbody><tr><td>開發與運營</td><td>開發與運營</td><td>手動釋放，多重簽名</td><td>釋放中</td><td><a href="https://suivision.xyz/account/0xa7be72c38e7d868fecc4f0dea795bf1992ec63830434d2b9762a7b0a0ad0de0b">0xa7be72c38e7d868fecc4f0dea795bf1992ec63830434d2b9762a7b0a0ad0de0b</a></td></tr><tr><td>生態系統 / 社區 / 行銷</td><td>生態系統 / 社區 / 行銷</td><td>手動釋放，多重簽名</td><td>釋放中</td><td><a href="https://suivision.xyz/account/0x45582f247570ac5c65afaed413c3c34fe26e3f400a3a6df76598a115b23b2baa">0x45582f247570ac5c65afaed413c3c34fe26e3f400a3a6df76598a115b23b2baa</a></td></tr><tr><td>生態系統 / 社區 / 行銷</td><td>MMsafe 流水線性釋放</td><td>完全釋放</td><td>釋放中</td><td><a href="https://suivision.xyz/account/0x45582f247570ac5c65afaed413c3c34fe26e3f400a3a6df76598a115b23b2baa">0x45582f247570ac5c65afaed413c3c34fe26e3f400a3a6df76598a115b23b2baa</a></td></tr><tr><td>生態系統 / 社區 / 行銷</td><td>TGE<br>上市</td><td>解鎖</td><td>釋放中</td><td><a href="https://suivision.xyz/account/0x45582f247570ac5c65afaed413c3c34fe26e3f400a3a6df76598a115b23b2baa">0x45582f247570ac5c65afaed413c3c34fe26e3f400a3a6df76598a115b23b2baa</a></td></tr><tr><td>質押 / 礦池挖礦</td><td>質押 / 礦池挖礦</td><td>手動釋放，多重簽名</td><td>釋放中</td><td><a href="https://suivision.xyz/account/0x20d12c362caa4907c593c2a4981ddef70f56eeba5ea181ee5303d2164d97cddf">0x20d12c362caa4907c593c2a4981ddef70f56eeba5ea181ee5303d2164d97cddf</a></td></tr><tr><td>財務資金</td><td>財務資金</td><td>TGE<br>上市</td><td>已解鎖</td><td><a href="https://suivision.xyz/account/0xfbc3117f547089a29e1cf197994d0ecf628e72babc6a3bf850f311533384cf99">0xfbc3117f547089a29e1cf197994d0ecf628e72babc6a3bf850f311533384cf99</a></td></tr><tr><td>流動性</td><td>流動性</td><td>TGE<br>上市</td><td>已解鎖</td><td><a href="https://suivision.xyz/account/0x38afea660cbb76561cf622fb015644de4850242f3f1bdc71d00d4be2f058632f">0x38afea660cbb76561cf622fb015644de4850242f3f1bdc71d00d4be2f058632f</a></td></tr></tbody></table>

## 團隊控制預算

<table data-full-width="false"><thead><tr><th>錢包類型</th><th>分配</th><th>類型</th><th>釋放狀態</th><th>Wallet Address</th></tr></thead><tbody><tr><td>熱錢包</td><td>預算</td><td>財務資金 / 收益，多簽錢包</td><td>已解鎖</td><td><a href="https://suivision.xyz/account/0x473c5b346a779b7d6271a94fccc4c0d75c380a9f478cd7afaec79127a715c519">0x473c5b346a779b7d6271a94fccc4c0d75c380a9f478cd7afaec79127a715c519</a></td></tr><tr><td>多簽錢包</td><td>預算</td><td>財務資金 / 收益，多簽錢包</td><td>已解鎖</td><td><a href="https://suivision.xyz/account/0x1226a80ef40bd2e70c6a285b045b9b5d29915a2c5a2d57a2d3032cbdd89a8d5c">0x1226a80ef40bd2e70c6a285b045b9b5d29915a2c5a2d57a2d3032cbdd89a8d5c</a></td></tr><tr><td>熱錢包</td><td>預算</td><td>激勵/活動獎勵</td><td>已解鎖</td><td><a href="https://suivision.xyz/account/0xfc2a72936f6402faf482bd05cb56cd7b184739e7d541c3f35b79c100cd957f26">0xfc2a72936f6402faf482bd05cb56cd7b184739e7d541c3f35b79c100cd957f26</a></td></tr></tbody></table>


# 包和相關物件地址

您可以使用以下端點來獲取 Scallop 的包（Package）和相關物件（Object）地址列表：

```url
https://sui.apis.scallop.io/addresses/66f8e7ed9bb9e07fdfb86bbb
```

**回應結果**

{% tabs %}
{% tab title="200" %}
{% code title="" lineNumbers="true" %}

```json
{
  "mainnet": {
    "core": {
      "version": "0x07871c4b3c847a0f674510d4978d5cf6f960452795e8ff6f189fd2088a3f6ac7",
      "versionCap": "0x590a4011cb649b3878f3ea14b3a78674642a9548d79b7e091ef679574b158a07",
      "object": "0xefe8b36d5b2e43728cc323298626b83177803521d195cfb11e15b910e892fddf",
      "market": "0xa757975255146dc9686aa823b7838b507f315d704f428cbadad2f4ea061939d9",
      "adminCap": "0x09689d018e71c337d9db6d67cbca06b74ed92196103624028ccc3ecea411777c",
      "coinDecimalsRegistry": "0x200abe9bf19751cc566ae35aa58e2b7e4ff688fc1130f8d8909ea09bc137d668",
      "obligationAccessStore": "0x733e30b7c94d619d78cb8f5bc4bfbb759ced9a531239028caabb2474e5be59c9",
      "coins": {
        "usdc": {
          "id": "0xdba34672e30cb065b1f93e3ab55318768fd6fef66c15942c9f7cb846e2f900e7",
          "metaData": "0x69b7a7c3c200439c1b5f3b19d7d495d5966d5f08de66c69276152f8db3992ec6",
          "treasury": "",
          "oracle": {
            "supra": "",
            "switchboard": "",
            "pyth": {
              "feed": "eaa020c61cc479712813461ce153894a96a6c00b21ed0cfc2798d1f9a9e9c94a",
              "feedObject": "0x5dec622733a204ca27f5a90d8c2fad453cc6665186fd5dff13a83d0b6c9027ab"
            }
          }
        },
        "cetus": {
          "id": "0x06864a6f921804860930db6ddbe2e16acdf8504495ea7481637a1c8b9a8fe54b",
          "metaData": "0x4c0dce55eff2db5419bbd2d239d1aa22b4a400c01bbb648b058a9883989025da",
          "treasury": "",
          "oracle": {
            "supra": "",
            "switchboard": "",
            "pyth": {
              "feed": "e5b274b2611143df055d6e7cd8d93fe1961716bcd4dca1cad87a83bc1e78c1ef",
              "feedObject": "0x24c0247fb22457a719efac7f670cdc79be321b521460bd6bd2ccfa9f80713b14"
            }
          }
        },
        "wapt": {
          "id": "0x3a5143bb1196e3bcdfab6203d1683ae29edd26294fc8bfeafe4aaa9d2704df37",
          "metaData": "0xc969c5251f372c0f34c32759f1d315cf1ea0ee5e4454b52aea08778eacfdd0a8",
          "treasury": "",
          "oracle": {
            "supra": "",
            "switchboard": "",
            "pyth": {
              "feed": "03ae4db29ed4ae33d323568895aa00337e658e348b37509f5372ae51f0af00d5",
              "feedObject": "0x7c5b7837c44a69b469325463ac0673ac1aa8435ff44ddb4191c9ae380463647f"
            }
          }
        },
        "wsol": {
          "id": "0xb7844e289a8410e50fb3ca48d69eb9cf29e27d223ef90353fe1bd8e27ff8f3f8",
          "metaData": "0x4d2c39082b4477e3e79dc4562d939147ab90c42fc5f3e4acf03b94383cd69b6e",
          "treasury": "",
          "oracle": {
            "supra": "",
            "switchboard": "",
            "pyth": {
              "feed": "ef0d8b6fda2ceba41da15d4095d1da392a0d2f8ed0c6c7bc0f4cfac8c280b56d",
              "feedObject": "0x9d0d275efbd37d8a8855f6f2c761fa5983293dd8ce202ee5196626de8fcd4469"
            }
          }
        },
        "wbtc": {
          "id": "0x027792d9fed7f9844eb4839566001bb6f6cb4804f66aa2da6fe1ee242d896881",
          "metaData": "0x5d3c6e60eeff8a05b693b481539e7847dfe33013e7070cdcb387f5c0cac05dfd",
          "treasury": "",
          "oracle": {
            "supra": "",
            "switchboard": "",
            "pyth": {
              "feed": "e62df6c8b4a85fe1a67db44dc12de5db330f7ac66b72dc658afedf0f4a415b43",
              "feedObject": "0x9a62b4863bdeaabdc9500fce769cf7e72d5585eeb28a6d26e4cafadc13f76ab2"
            }
          }
        },
        "weth": {
          "id": "0xaf8cd5edc19c4512f4259f0bee101a40d41ebed738ade5874359610ef8eeced5",
          "metaData": "0x8900e4ceede3363bef086d6b50ca89d816d0e90bf6bc46efefe1f8455e08f50f",
          "treasury": "",
          "oracle": {
            "supra": "",
            "switchboard": "",
            "pyth": {
              "feed": "ff61491a931112ddf1bd8147cd1b641375f79f5825126d665480874634fd0ace",
              "feedObject": "0x9193fd47f9a0ab99b6e365a464c8a9ae30e6150fc37ed2a89c1586631f6fc4ab"
            }
          }
        },
        "wusdc": {
          "id": "0x5d4b302506645c37ff133b98c4b50a5ae14841659738d6d733d59d0d217a93bf",
          "metaData": "0x4fbf84f3029bd0c0b77164b587963be957f853eccf834a67bb9ecba6ec80f189",
          "treasury": "",
          "oracle": {
            "supra": "",
            "switchboard": "",
            "pyth": {
              "feed": "eaa020c61cc479712813461ce153894a96a6c00b21ed0cfc2798d1f9a9e9c94a",
              "feedObject": "0x5dec622733a204ca27f5a90d8c2fad453cc6665186fd5dff13a83d0b6c9027ab"
            }
          }
        },
        "wusdt": {
          "id": "0xc060006111016b8a020ad5b33834984a437aaa7d3c74c18e09a95d48aceab08c",
          "metaData": "0xfb0e3eb97dd158a5ae979dddfa24348063843c5b20eb8381dd5fa7c93699e45c",
          "treasury": "",
          "oracle": {
            "supra": "",
            "switchboard": "",
            "pyth": {
              "feed": "2b89b9dc8fdf9f34709a5b106b472f0f39bb6ca9ce04b0fd7f2e971688e2e53b",
              "feedObject": "0x985e3db9f93f76ee8bace7c3dd5cc676a096accd5d9e09e9ae0fb6e492b14572"
            }
          }
        },
        "sui": {
          "id": "0x0000000000000000000000000000000000000000000000000000000000000002",
          "metaData": "0x9258181f5ceac8dbffb7030890243caed69a9599d2886d957a9cb7656af3bdb3",
          "treasury": "",
          "oracle": {
            "supra": "",
            "switchboard": "0xbca474133638352ba83ccf7b5c931d50f764b09550e16612c9f70f1e21f3f594",
            "pyth": {
              "feed": "23d7315113f5b1d3ba7a83604c44b94d79f4fd69af77f804fc7f920a6dc65744",
              "feedObject": "0x801dbc2f0053d34734814b2d6df491ce7807a725fe9a01ad74a07e9c51396c37"
            }
          }
        },
        "afsui": {
          "id": "0xf325ce1300e8dac124071d3152c5c5ee6174914f8bc2161e88329cf579246efc",
          "metaData": "0x2f9217f533e51334873a39b8026a4aa6919497b47f49d0986a4f1aec66f8a34d",
          "treasury": "",
          "oracle": {
            "supra": "",
            "switchboard": "",
            "pyth": {
              "feed": "23d7315113f5b1d3ba7a83604c44b94d79f4fd69af77f804fc7f920a6dc65744",
              "feedObject": "0x801dbc2f0053d34734814b2d6df491ce7807a725fe9a01ad74a07e9c51396c37"
            }
          }
        },
        "hasui": {
          "id": "0xbde4ba4c2e274a60ce15c1cfff9e5c42e41654ac8b6d906a57efa4bd3c29f47d",
          "metaData": "0x2c5f33af93f6511df699aaaa5822d823aac6ed99d4a0de2a4a50b3afa0172e24",
          "treasury": "",
          "oracle": {
            "supra": "",
            "switchboard": "",
            "pyth": {
              "feed": "23d7315113f5b1d3ba7a83604c44b94d79f4fd69af77f804fc7f920a6dc65744",
              "feedObject": "0x801dbc2f0053d34734814b2d6df491ce7807a725fe9a01ad74a07e9c51396c37"
            }
          }
        },
        "vsui": {
          "id": "0x549e8b69270defbfafd4f94e17ec44cdbdd99820b33bda2278dea3b9a32d3f55",
          "metaData": "0xabd84a23467b33854ab25cf862006fd97479f8f6f53e50fe732c43a274d939bd",
          "treasury": "",
          "oracle": {
            "supra": "",
            "switchboard": "",
            "pyth": {
              "feed": "23d7315113f5b1d3ba7a83604c44b94d79f4fd69af77f804fc7f920a6dc65744",
              "feedObject": "0x801dbc2f0053d34734814b2d6df491ce7807a725fe9a01ad74a07e9c51396c37"
            }
          }
        },
        "sca": {
          "id": "0x7016aae72cfc67f2fadf55769c0a7dd54291a583b63051a5ed71081cce836ac6",
          "metaData": "0x5d26a1e9a55c88147ac870bfa31b729d7f49f8804b8b3adfdf3582d301cca844",
          "treasury": "",
          "oracle": {
            "supra": "",
            "switchboard": "",
            "pyth": {
              "feed": "7e17f0ac105abe9214deb9944c30264f5986bf292869c6bd8e8da3ccd92d79bc",
              "feedObject": "0xf6de1d3279a269a597d813cbaca59aa906543ab9a8c64e84a4722f1a20863985"
            }
          }
        }
      },
      "oracles": {
        "xOracle": "0x93d5bf0936b71eb27255941e532fac33b5a5c7759e377b4923af0a1359ad494f",
        "xOracleCap": "0x1edeae568fde99e090dbdec4bcdbd33a15f53a1ce1f87aeef1a560dedf4b4a90",
        "supra": {
          "registry": "",
          "registryCap": "",
          "holder": ""
        },
        "switchboard": {
          "registry": "",
          "registryCap": ""
        },
        "pyth": {
          "registry": "0xedc293f9413a5a7a5d53bdba1fd889d0a4030894469228f0acdae4aa3c55a213",
          "registryCap": "0xbcb07141eb1f7e01fbda4130ecf5f5adaeabb77f5d9c32158b7532bcd2197acd",
          "state": "0x1f9310238ee9298fb703c3419030b35b22bb1cc37113e3bb5007c99aec79e5b8",
          "wormhole": "0x5306f64e312b581766351c07af79c72fcb1cd25147157fdc2f8ad76de9a3fb6a",
          "wormholeState": "0xaeab97f96cf9877fee2883315d459552b2b921edc16d7ceac6eab944dd88919c"
        }
      },
      "packages": {
        "coinDecimalsRegistry": {
          "id": "0xca5a5a62f01c79a104bf4d31669e29daa387f325c241de4edbe30986a9bc8b0d",
          "upgradeCap": "0x34e76a945d29f195bc53ca704fa70877d1cf3a5d7bbfdda1b13e633fff13c0f6"
        },
        "math": {
          "id": "0xad013d5fde39e15eabda32b3dbdafd67dac32b798ce63237c27a8f73339b9b6f",
          "upgradeCap": "0x3a329598231de02e6135c62284b66005b41cad1d9ab7ca2dc79c08293aba2ec6"
        },
        "whitelist": {
          "id": "0x1318fdc90319ec9c24df1456d960a447521b0a658316155895014a6e39b5482f",
          "upgradeCap": "0xf5a22aea23db664f7b69855b6a546747f17c1ec4230319cfc17225e462b05761"
        },
        "x": {
          "id": "0x779b5c547976899f5474f3a5bc0db36ddf4697ad7e5a901db0415c2281d28162",
          "upgradeCap": "0x3f203f6fff6a69d151e4f1cd931f22b68c489ef2759765662fc7baf673943c9e"
        },
        "protocol": {
          "id": "0xa45b8ffca59e5b44ec7c04481a04cb620b0e07b2b183527bca4e5f32372c5f1a",
          "upgradeCap": "0x38527d154618d1fd5a644b90717fe07cf0e9f26b46b63e9568e611a3f86d5c1a"
        },
        "protocolWhitelist": {
          "id": "0x4c262d9343dac53ecb28f482a2a3f62c73d0ebac5b5f03d57383d56ff219acdf",
          "upgradeCap": "0x4a5e88a75039b00988f633f811f58117f31b8627a46bf822aa114d9010049449"
        },
        "query": {
          "id": "0xb8d603a39114a5efef3dd0bf84df0bed1be1fbd39b78b7dd6e8a61ccc5e6006f",
          "upgradeCap": "0x0d535c35f608b9b01b7ccce11acf43b1dd80c1b72bf8b541744a6e28e8d2745f"
        },
        "supra": {
          "id": "",
          "upgradeCap": ""
        },
        "pyth": {
          "id": "0x910f30cbc7f601f75a5141a01265cd47c62d468707c5e1aecb32a18f448cb25a",
          "upgradeCap": "0xdf0ffbae1ea5bb25fbca5efba433dcf00c7cced65679af2f04728901275c6157"
        },
        "switchboard": {
          "id": "",
          "upgradeCap": ""
        },
        "xOracle": {
          "id": "0x1478a432123e4b3d61878b629f2c692969fdb375644f1251cd278a4b1e7d7cd6",
          "upgradeCap": "0x0f928a6b2e26b73330fecaf9b44acfc9800a4a9794d6415c2a3153bc70e3c1f0"
        },
        "testCoin": {
          "id": "",
          "upgradeCap": ""
        }
      }
    },
    "spool": {
      "id": "0x472fc7d4c3534a8ec8c2f5d7a557a43050eab057aaab853e8910968ddc84fc9f",
      "adminCap": "0xdd8a047cbbf802bfcde5288b8ef1910965d789cc614da11d39af05fca0bd020a",
      "object": "0xe87f1b2d498106a2c61421cec75b7b5c5e348512b0dc263949a0e7a3c256571a",
      "pools": {
        "sweth": {
          "id": "0xeec40beccb07c575bebd842eeaabb835f77cd3dab73add433477e57f583a6787",
          "rewardPoolId": "0x957de68a18d87817de8309b30c1ec269a4d87ae513abbeed86b5619cb9ce1077"
        },
        "ssui": {
          "id": "0x4f0ba970d3c11db05c8f40c64a15b6a33322db3702d634ced6536960ab6f3ee4",
          "rewardPoolId": "0x162250ef72393a4ad3d46294c4e1bdfcb03f04c869d390e7efbfc995353a7ee9"
        },
        "susdc": {
          "id": "0x0b5f5f413bd3799e4052c37311966c77f3a4545eb125d2e93e67a68478021918",
          "rewardPoolId": "0x85ed6ed72ea97c35dbf0cdc7ed6fbc48d8ec15de9b17c74bf4512df8a6d7f166"
        },
        "swusdc": {
          "id": "0x4ace6648ddc64e646ba47a957c562c32c9599b3bba8f5ac1aadb2ae23a2f8ca0",
          "rewardPoolId": "0xf4268cc9b9413b9bfe09e8966b8de650494c9e5784bf0930759cfef4904daff8"
        },
        "swusdt": {
          "id": "0xcb328f7ffa7f9342ed85af3fdb2f22919e1a06dfb2f713c04c73543870d7548f",
          "rewardPoolId": "0x2c9f934d67a5baa586ceec2cc24163a2f049a6af3d5ba36b84d8ac40f25c4080"
        },
        "scetus": {
          "id": "0xac1bb13bf4472a637c18c2415fb0e3c1227ea2bcf35242e50563c98215bd298e",
          "rewardPoolId": "0x6835c1224126a45086fc6406adc249e3f30df18d779ca4f4e570e38716a17f3f"
        },
        "safsui": {
          "id": "0xeedf438abcaa6ce4d9625ffca110920592d5867e4c5637d84ad9f466c4feb800",
          "rewardPoolId": "0x89255a2f86ed7fbfef35ab8b7be48cc7667015975be2685dd9a55a9a64baf76e"
        },
        "shasui": {
          "id": "0xa6148bc1b623e936d39a952ceb5bea79e8b37228a8f595067bf1852efd3c34aa",
          "rewardPoolId": "0x6f3563644d3e2ef13176dbf9d865bd93479df60ccbe07b7e66db57f6309f5a66"
        },
        "svsui": {
          "id": "0x69ce8e537e750a95381e6040794afa5ab1758353a1a2e1de7760391b01f91670",
          "rewardPoolId": "0xbca914adce058ad0902c7f3cfcd698392a475f00dcfdc3f76001d0370b98777a"
        }
      },
      "version": "",
      "versionCap": "",
      "config": ""
    },
    "borrowIncentive": {
      "id": "0xf8365ce9fc69231ed36c2e6e114bea942e15b69d3e2b62e5e5bbf3d96ac6d34e",
      "adminCap": "0xc486afa253646f4d381e81d7f1df8aa4723b845a6bb356f69bad635ffefffe2c",
      "object": "0x002875153e09f8145ab63527bc85c00f2bd102e12f9573c47f8cdf1a1cb62934",
      "query": "0x529edc54a3dce2207703ceebbccb0ac14133f7825c1f528775ba0d85a4063489",
      "incentivePools": "0x6547e143d406b5ccd5f46aae482497de279cc1a68c406f701df70a05f9212ab4",
      "incentiveAccounts": "0xc4701fdbc1c92f9a636d334d66012b3027659e9fb8aff27279a82edfb6b77d02",
      "config": "0xdf5d04b4691cc67e82fd4db8394d89ff44823a9de29716c924f74bb4f11cc1f7",
      "version": "",
      "versionCap": ""
    },
    "vesca": {
      "id": "0x1158813b32962c2d22888fae257d5f2365b03631f0cd5d5b912ccdf51ff4e2f2",
      "object": "0xcfe2d87aa5712b67cad2732edb6a2201bfdf592377e5c0968b7cb02099bd8e21",
      "adminCap": "0x4d105b16467acca81d18c132cdd1a3cee159920a86c1ef4bdbf2e8d7878500c5",
      "tableId": "0x0a0b7f749baeb61e3dfee2b42245e32d0e6b484063f0a536b33e771d573d7246",
      "table": "0xd3a4632b1080f7d96e1c2487d4dabf2c1196916937c505a69954ac9f393be8d0",
      "treasury": "0xafa4b6231e49c15a22d641ce33fda761baaf650fa21899dfa2eb1716146e7306",
      "config": "0x7cbcb0a342179577a117dfdff974cf1ab765d3b571067bf22ddf5f9e3a667922"
    },
    "referral": {
      "id": "0xe34647d10326c4cd977577f84aced48c2f0621c6f7fb4d6988e7011397fed80f",
      "object": "0x5658d4bf5ddcba27e4337b4262108b3ad1716643cac8c2054ac341538adc72ec",
      "adminCap": "0xc5dc06b9074291259f2cac460c940012c781c4430e42125c541cc43101c3bcbd",
      "referralBindings": "0xf63299d58789d99de94092b9011323466e55ca0c1ea1a7a3786a589af46e1c09",
      "bindingTableId": "0x1c8202b17267ec8d6cf97ca013615354181a04f179570e42601ff2dae19294b1",
      "referralRevenuePool": "0x6abd852caf90769c1b185cdf636d841673fa95528f0550f018b8a138bd283c07",
      "revenueTableId": "0x595baa3654c297bff84ab7786a2d250f019cefc66e8df8e89fd9d41e02bd30dd",
      "referralTiers": "0x962cb903d8d7346190c5204785ccbb91b61086aa764f674c8145df82335cf83e",
      "tiersTableId": "0xeac755a7a8b7798530905ac79e8c114f19d0f130f6eab012954f08faac29c75d",
      "authorizedWitnessList": "0xf21b0ed043c9bb70842c0129159f4943dbcc3c9ef2f2f808af65f8be25cfd20e",
      "version": "0x1bd4b7285f72e11c316b828c7c47b3f4da18dcec9f9b3dba6d8629cbb6f93e5e"
    },
    "loyaltyProgram": {
      "id": "0xab7c4e6d53ef862a1115d0c381fd33e05f9c206b79f322a54990b1e8c2fe3446",
      "object": "0xab7c4e6d53ef862a1115d0c381fd33e05f9c206b79f322a54990b1e8c2fe3446",
      "rewardPool": "0x215e1022037052407e69a5c5938f888078013c924cae97132492719ac2c53ec6",
      "userRewardTableId": "0x574a11f8a0fbaa05b8f559cb65634e8eb20f26b1ec29e7d58de9167f3cedd0f7"
    },
    "scoin": {
      "id": "0x80ca577876dec91ae6d22090e56c39bc60dce9086ab0729930c6900bc4162b4c",
      "coins": {
        "ssui": {
          "coinType": "0xaafc4f740de0dd0dde642a31148fb94517087052f19afb0f7bed1dc41a50c77b::scallop_sui::SCALLOP_SUI",
          "treasury": "0x5c1678c8261ac9eec024d4d630006a9f55c80dc0b1aa38a003fcb1d425818c6b"
        },
        "scetus": {
          "coinType": "0xea346ce428f91ab007210443efcea5f5cdbbb3aae7e9affc0ca93f9203c31f0c::scallop_cetus::SCALLOP_CETUS",
          "treasury": "0xa283c63488773c916cb3d6c64109536160d5eb496caddc721eb39aad2977d735"
        },
        "ssca": {
          "coinType": "0x5ca17430c1d046fae9edeaa8fd76c7b4193a00d764a0ecfa9418d733ad27bc1e::scallop_sca::SCALLOP_SCA",
          "treasury": "0xe04bfc95e00252bd654ee13c08edef9ac5e4b6ae4074e8390db39e9a0109c529"
        },
        "swusdc": {
          "coinType": "0xad4d71551d31092230db1fd482008ea42867dbf27b286e9c70a79d2a6191d58d::scallop_wormhole_usdc::SCALLOP_WORMHOLE_USDC",
          "treasury": "0x50c5cfcbcca3aaacab0984e4d7ad9a6ad034265bebb440f0d1cd688ec20b2548"
        },
        "swusdt": {
          "coinType": "0xe6e5a012ec20a49a3d1d57bd2b67140b96cd4d3400b9d79e541f7bdbab661f95::scallop_wormhole_usdt::SCALLOP_WORMHOLE_USDT",
          "treasury": "0x1f02e2fed702b477732d4ad6044aaed04f2e8e586a169153694861a901379df0"
        },
        "sweth": {
          "coinType": "0x67540ceb850d418679e69f1fb6b2093d6df78a2a699ffc733f7646096d552e9b::scallop_wormhole_eth::SCALLOP_WORMHOLE_ETH",
          "treasury": "0x4b7f5da0e306c9d52490a0c1d4091e653d6b89778b9b4f23c877e534e4d9cd21"
        },
        "safsui": {
          "coinType": "0x00671b1fa2a124f5be8bdae8b91ee711462c5d9e31bda232e70fd9607b523c88::scallop_af_sui::SCALLOP_AF_SUI",
          "treasury": "0x55f4dfe9e40bc4cc11c70fcb1f3daefa2bdc330567c58d4f0792fbd9f9175a62"
        },
        "shasui": {
          "coinType": "0x9a2376943f7d22f88087c259c5889925f332ca4347e669dc37d54c2bf651af3c::scallop_ha_sui::SCALLOP_HA_SUI",
          "treasury": "0x404ccc1404d74a90eb6f9c9d4b6cda6d417fb03189f80d9070a35e5dab1df0f5"
        },
        "svsui": {
          "coinType": "0xe1a1cc6bcf0001a015eab84bcc6713393ce20535f55b8b6f35c142e057a25fbe::scallop_v_sui::SCALLOP_V_SUI",
          "treasury": "0xc06688ee1af25abc286ffb1d18ce273d1d5907cd1064c25f4e8ca61ea989c1d1"
        },
        "swsol": {
          "coinType": "0x1392650f2eca9e3f6ffae3ff89e42a3590d7102b80e2b430f674730bc30d3259::scallop_wormhole_sol::SCALLOP_WORMHOLE_SOL",
          "treasury": "0x760fd66f5be869af4382fa32b812b3c67f0eca1bb1ed7a5578b21d56e1848819"
        },
        "swbtc": {
          "coinType": "0x2cf76a9cf5d3337961d1154283234f94da2dcff18544dfe5cbdef65f319591b5::scallop_wormhole_btc::SCALLOP_WORMHOLE_BTC",
          "treasury": "0xe2883934ea42c99bc998bbe0f01dd6d27aa0e27a56455707b1b34e6a41c20baa"
        },
        "susdc": {
          "coinType": "0x854950aa624b1df59fe64e630b2ba7c550642e9342267a33061d59fb31582da5::scallop_usdc::SCALLOP_USDC",
          "treasury": "0xbe6b63021f3d82e0e7e977cdd718ed7c019cf2eba374b7b546220402452f938e"
        }
      }
    }
  }
}
```

{% endcode %}
{% endtab %}
{% endtabs %}


# 主網

###

### 版本上限主要物件地址

<table><thead><tr><th width="217">名字</th><th>地址</th></tr></thead><tbody><tr><td>Version</td><td><pre data-overflow="wrap" data-full-width="true"><code>0x07871c4b3c847a0f674510d4978d5cf6f960452795e8ff6f189fd2088a3f6ac7
</code></pre></td></tr><tr><td>Version Cap</td><td><pre data-overflow="wrap"><code>0x590a4011cb649b3878f3ea14b3a78674642a9548d79b7e091ef679574b158a07
</code></pre></td></tr><tr><td>Market</td><td><pre data-overflow="wrap"><code>0xa757975255146dc9686aa823b7838b507f315d704f428cbadad2f4ea061939d9
</code></pre></td></tr><tr><td>Admin Cap</td><td><pre data-overflow="wrap" data-full-width="true"><code>0x09689d018e71c337d9db6d67cbca06b74ed92196103624028ccc3ecea411777c
</code></pre></td></tr><tr><td>Coin Decimal Registry</td><td><pre data-overflow="wrap" data-full-width="true"><code>0x200abe9bf19751cc566ae35aa58e2b7e4ff688fc1130f8d8909ea09bc137d668
</code></pre></td></tr></tbody></table>

### 預言機物件地址

Scallop 預言機地址

#### xOracle

Scallop 物件地址可用於從預言機獲取價格，以避免預言機中的價格操縱攻擊。

<table><thead><tr><th width="149">名字</th><th>地址</th></tr></thead><tbody><tr><td>xOracle</td><td><pre data-overflow="wrap"><code>0x93d5bf0936b71eb27255941e532fac33b5a5c7759e377b4923af0a1359ad494f
</code></pre></td></tr></tbody></table>

#### Pyth

<table><thead><tr><th width="151">名字</th><th>地址</th></tr></thead><tbody><tr><td>Registry</td><td><pre data-overflow="wrap"><code>0x8c30c13df429e16d4e7be8726f25acfd8f5a6992d84a81eb36967e95bf18c889
</code></pre></td></tr></tbody></table>

### 包地址 Packages

列出 Scallop 包裡面的物件地址

<table><thead><tr><th width="221">名字</th><th>地址</th></tr></thead><tbody><tr><td>Coin Decimal Registry</td><td><pre data-overflow="wrap" data-full-width="true"><code>0xca5a5a62f01c79a104bf4d31669e29daa387f325c241de4edbe30986a9bc8b0d
</code></pre></td></tr><tr><td>Math</td><td><pre data-overflow="wrap" data-full-width="true"><code>0xad013d5fde39e15eabda32b3dbdafd67dac32b798ce63237c27a8f73339b9b6f
</code></pre></td></tr><tr><td>Whitelist</td><td><pre data-overflow="wrap" data-full-width="true"><code>0x1318fdc90319ec9c24df1456d960a447521b0a658316155895014a6e39b5482f
</code></pre></td></tr><tr><td>x (utilities package)</td><td><pre data-overflow="wrap"><code>0x779b5c547976899f5474f3a5bc0db36ddf4697ad7e5a901db0415c2281d28162
</code></pre></td></tr><tr><td>Protocol (<em>initial package ID</em>)</td><td><pre data-overflow="wrap" data-full-width="true"><code>0xefe8b36d5b2e43728cc323298626b83177803521d195cfb11e15b910e892fddf
</code></pre></td></tr><tr><td>Query</td><td><pre data-overflow="wrap"><code>0xbd4f1adbef14cf6ddf31cf637adaa7227050424286d733dc44e6fd3318fc6ba3
</code></pre></td></tr><tr><td>Pyth Adapter</td><td><pre data-overflow="wrap" data-full-width="true"><code>0xaac1fdb607b884cc256c59dc307bb78b6ba95b97e22d4415fe87ad99689ea462
</code></pre></td></tr><tr><td>xOracle (package ID)</td><td><pre data-overflow="wrap" data-full-width="true"><code>0x1478a432123e4b3d61878b629f2c692969fdb375644f1251cd278a4b1e7d7cd6
</code></pre></td></tr></tbody></table>

### sCoin

列出 sCoin 包裡面的物件地址

<table><thead><tr><th width="221">名字</th><th>地址</th></tr></thead><tbody><tr><td>id</td><td><pre data-overflow="wrap" data-full-width="true"><code>0x80ca577876dec91ae6d22090e56c39bc60dce9086ab0729930c6900bc4162b4c
</code></pre></td></tr><tr><td>sSUI</td><td><pre data-overflow="wrap" data-full-width="true"><code>0xaafc4f740de0dd0dde642a31148fb94517087052f19afb0f7bed1dc41a50c77b::scallop_sui::SCALLOP_SUI
</code></pre></td></tr><tr><td>sWUSDC</td><td><pre data-overflow="wrap" data-full-width="true"><code>0xad4d71551d31092230db1fd482008ea42867dbf27b286e9c70a79d2a6191d58d::scallop_wormhole_usdc::SCALLOP_WORMHOLE_USDC
</code></pre></td></tr><tr><td>sWUSDT</td><td><pre data-overflow="wrap"><code>0xe6e5a012ec20a49a3d1d57bd2b67140b96cd4d3400b9d79e541f7bdbab661f95::scallop_wormhole_usdt::SCALLOP_WORMHOLE_USDT
</code></pre></td></tr><tr><td>sWETH</td><td><pre data-overflow="wrap" data-full-width="true"><code>0x67540ceb850d418679e69f1fb6b2093d6df78a2a699ffc733f7646096d552e9b::scallop_wormhole_eth::SCALLOP_WORMHOLE_ETH
</code></pre></td></tr><tr><td>sSCA</td><td><pre data-overflow="wrap"><code>0x5ca17430c1d046fae9edeaa8fd76c7b4193a00d764a0ecfa9418d733ad27bc1e::scallop_sca::SCALLOP_SCA
</code></pre></td></tr><tr><td>safSUI</td><td><pre data-overflow="wrap" data-full-width="true"><code>0x00671b1fa2a124f5be8bdae8b91ee711462c5d9e31bda232e70fd9607b523c88::scallop_af_sui::SCALLOP_AF_SUI
</code></pre></td></tr><tr><td>shaSUI</td><td><pre data-overflow="wrap" data-full-width="true"><code>0x9a2376943f7d22f88087c259c5889925f332ca4347e669dc37d54c2bf651af3c::scallop_ha_sui::SCALLOP_HA_SUI
</code></pre></td></tr><tr><td>svSUI</td><td><pre data-overflow="wrap"><code>0xe1a1cc6bcf0001a015eab84bcc6713393ce20535f55b8b6f35c142e057a25fbe::scallop_v_sui::SCALLOP_V_SUI
</code></pre></td></tr><tr><td>sCETUS</td><td><pre data-overflow="wrap"><code><strong>0xea346ce428f91ab007210443efcea5f5cdbbb3aae7e9affc0ca93f9203c31f0c::scallop_cetus::SCALLOP_CETUS
</strong></code></pre></td></tr><tr><td>sUSDC</td><td><pre data-overflow="wrap" data-full-width="false"><code>0x854950aa624b1df59fe64e630b2ba7c550642e9342267a33061d59fb31582da5::scallop_usdc::SCALLOP_USDC
</code></pre></td></tr></tbody></table>


# 開發者資源

想在 Scallop 上構建一些功能嗎？您可以查看這些資源庫來幫助您在我們的基礎上進行開發。

Sui Lending Smart Contract (Sui Move)

{% embed url="<https://github.com/scallop-io/sui-lending-protocol>" %}

我們提供 SDK 和工具包，可以幫助您進行開發：

Scallop Sui SDK (Typescript)

{% embed url="<https://github.com/scallop-io/sui-scallop-sdk>" %}

Scallop Sui Kit (Typescript)

{% embed url="<https://github.com/scallop-io/sui-kit>" %}

Scallop API 文件

<https://sui.apis.scallop.io/api-docs/>


# 常見問題❔

## Scallop 的背後團隊是誰？

Scallop 項目貢獻者目前由 7 名核心成員組成，這些成員全力專注於該項目。CEO 兼創始人擁有豐富的網絡應用安全、開發和加密貨幣經驗，於 2021 年初創立了 Scallop，並於 2022 年將其擴展至 Sui 網絡。在他們的帶領下，項目貢獻者實現了許多重要里程碑，例如成為首個獲得 Sui 基金會 DeFi 項目獎勵資助的團隊，並多次在黑客松和 CTF 挑戰中名列前茅。

如需更多有關 Scallop 項目貢獻者的信息，請訪問 <https://scallop.io/>

## 為什麼我需要支付超過欠款的金額？

<figure><img src="/files/m8JNGbdbSDLV5dEeoz9g" alt="" width="375"><figcaption><p>Repay Debt</p></figcaption></figure>

在上述例子中，如果您有 0.97 和 0.98 的債務，在償還這些債務時，我們會從您的賬戶額外收取 1% 的金額以確保能完全清償債務。債務清算後，這 1% 中的多餘部分將會退還給您。我們並不會保留這 1% 的費用；這僅是為了確保所有債務都能全額償還的一項預防措施，償還完成後該金額會退回給您。


# 連結🔗

**Scallop Linktree🌲:** [**http://linktr.ee/scallop\_io**](https://t.co/bl8GzRqdc2)


# 里程碑🏆

**🥇** [**1st DeFi project award an official grant from the Sui Foundation.**](https://sui.io/resources-sui/sui-foundation-round-1-awardees/)

[**🥇 1st place in the Sui Builder House Seoul Hackathon in June 2023. (Scallop Tools)**](https://blog.csdn.net/Sui_Network/article/details/131092949)

**🥇**[ **1st place in the Move Hackathon by WebX Circle track in July 2023.**](https://twitter.com/Scallop_io/status/1688429952071520257)

**🥉**[**3rd place Best Overall in the Sui x Kucoin Labs Summer Hackathon in July 2023.**](https://blog.sui.io/hackathon-winners/)

**🥉** [**3rd place in the Sui x jump\_ Builder House Ho Chi Minh City CTF challenge**](https://suictf.movebit.xyz/scoreboard)**.**

[**🎖️ 5th place in the Sui Builder House Denver CTF challenge Mar 2023.**](https://blog.sui.io/seoul-builder-house-recap/)

[**🎖️ 5th place in the Sui Builder House Seoul Hackathon in June 2023. (Sui Kit)**](https://blog.csdn.net/Sui_Network/article/details/131092949)

\\


# 品牌工具 🎨

如果您需要一些 Scallop的照片，您可以聯絡我們!

<a href="https://drive.google.com/drive/folders/1WTuq2xecB_ZIQIHpeURbZsG2AOXjX3ZC?usp=sharing" class="button primary" data-icon="download">下載品牌工具包</a>

***

## 品牌標誌 (Logo)

### 標誌組合形式（Logo Configurations）

Scallop 的標誌是一個扇貝圖案，除了代表品牌名稱，也呼應了 Sui 區塊鏈的海洋主題。

請以這四種標誌組合形式呈現 Scallop 標誌，並搭配適合的[配色規範](#biao-zhi-pei-se-gui-fan-logo-color-configurations)使用，以確保標誌在各種情境下都具備良好辨識度與可讀性。

{% hint style="info" %}

* 遇到特殊節日或活動時，例如新年、聖誕節、農曆新年或各種行銷活動，我們也會推出特別版的標誌。這些設計會用在 Scallop 的 DApp 和社群媒體上。

  不過，如果是跟其他單位合作，請務必使用這份品牌手冊裡提供的標準版標誌，不要使用節慶版。
* 在文字中提到品牌名稱時，請將首字母大寫，寫成：「Scallop」 。
  {% endhint %}

<table data-card-size="large" data-view="cards"><thead><tr><th></th><th></th><th></th><th data-hidden data-card-cover data-type="files"></th></tr></thead><tbody><tr><td>標準標誌 (Logotype)</td><td>請盡可能使用此版本，這是 Scallop 最具代表性的標誌形式。</td><td><a href="https://drive.google.com/drive/folders/1xcqCdXQeeCeML-27yiHjdBNd8tCrMesh">下載</a></td><td><a href="/files/5aJFZjUZt89Ofu6i88ZB">/files/5aJFZjUZt89Ofu6i88ZB</a></td></tr><tr><td>垂直標誌 (Vertical Logotype)</td><td>當橫向空間不足時，建議使用此垂直排列的版本。</td><td><a href="https://drive.google.com/drive/folders/1KRe4XNuZDG6_5kRYmojFOi_TqPGl-ku7">下載</a></td><td><a href="/files/LQ2mI2uup2ALYEdbLCYK">/files/LQ2mI2uup2ALYEdbLCYK</a></td></tr><tr><td>圖形標誌 (Logomark)</td><td>可作為標準標誌的簡化替代，用於空間有限或需縮圖的情境。</td><td><a href="https://drive.google.com/drive/folders/1vEDr-K8Cm1Hc7NYq9_D62ecfKV_mf8S1">下載</a></td><td><a href="/files/MKy7E1NQakLGlzISgKNf">/files/MKy7E1NQakLGlzISgKNf</a></td></tr><tr><td>文字標誌 (Wordmark)</td><td>僅限於其他組合不適用時使用。</td><td><a href="https://drive.google.com/drive/folders/1aqxUqGiTsxJo2XCb6VFH1tcd7msimDel">下載</a></td><td><a href="/files/1JFVmAHOUS9payboXx1E">/files/1JFVmAHOUS9payboXx1E</a></td></tr></tbody></table>

### 標誌配色規範 (Logo Color Configurations)

請依照以下配色方案使用 Scallop 標誌，以保持品牌一致性並確保其在不同背景下皆具備良好可讀性。

<table data-card-size="large" data-view="cards"><thead><tr><th></th><th></th><th data-hidden data-card-cover data-type="files"></th></tr></thead><tbody><tr><td>主色配置</td><td>白色字樣的標準字標，為首選版本，建議優先使用。</td><td><a href="/files/5aJFZjUZt89Ofu6i88ZB">/files/5aJFZjUZt89Ofu6i88ZB</a></td></tr><tr><td>反白配色</td><td>黑色字樣的標準字標，適用於亮色背景無法使用主色時。</td><td><a href="/files/S0OKtXlfLnlye5w2OSwv">/files/S0OKtXlfLnlye5w2OSwv</a></td></tr><tr><td>淺灰單色</td><td>限於特定情境（如印刷限制）使用，應用於深色背景上。</td><td><a href="/files/CxMZsgDZvh9WBty8mBqP">/files/CxMZsgDZvh9WBty8mBqP</a></td></tr><tr><td>深灰單色</td><td>限於特定情境（如印刷限制）使用，應用於淺色背景上。</td><td><a href="/files/gyU7IS1HtCr3p4GLDkM6">/files/gyU7IS1HtCr3p4GLDkM6</a></td></tr></tbody></table>

### 標誌的最少預留空間

為確保標誌清晰且具視覺效果，四周需保留最小留白區域。

請以字標中的字母 「o」 作為間距參考，不得在留白區域中放置任何文字、圖形或其他元素。

<figure><img src="/files/sYExzWaA8FNUwNNkcpne" alt="Scallop Logo Clearspace Guide"><figcaption></figcaption></figure>

### 標誌使用注意事項

{% columns %}
{% column %}

<figure><img src="/files/78KakyG8rFaERT5lu8TQ" alt="標誌使用注意事項"><figcaption><p>務必在所有應用中，使用本手冊核准的標誌組合形式與配色規範</p></figcaption></figure>

<figure><img src="/files/dQMwfu4HtiG47wPJiZLK" alt="Scallop logo placement guide"><figcaption><p>請勿不等比例縮放或變形標誌</p></figcaption></figure>

<figure><img src="/files/trRMVN4yldbSuJXrFpIG" alt="Scallop logo placement guide"><figcaption><p>請勿使用低畫質的標誌</p></figcaption></figure>
{% endcolumn %}

{% column %}

<figure><img src="/files/2D5Uw59PMpDh1LaCC6zb" alt="Scallop logo placement guide"><figcaption><p>請勿在合作或正式場合使用季節性標誌</p></figcaption></figure>

<figure><img src="/files/vgMMLSerMNa73fOk7Ixh" alt="Scallop logo placement guide"><figcaption><p>請勿在標誌上加入任何效果</p></figcaption></figure>

<figure><img src="/files/2c3vvSXztY2bTXiskCM5" alt="Scallop logo placement guide"><figcaption><p><strong>請勿旋轉標誌</strong></p></figcaption></figure>
{% endcolumn %}
{% endcolumns %}

### Scallop Labs

Scallop Labs 致力於在 Sui 上打造安全且資本效率高的 DeFi 基礎建設。我們同時也是 Scallop 全系列產品背後的團隊。

團隊成員分布於亞太地區，擁有 DeFi、資安、金融科技、全球黑客松、演算法競賽、CTF 挑戰，以及量化交易等多元背景。

[下載 Scallop Labs 標誌](https://drive.google.com/drive/folders/10aKeTtkTOXMEsfsL6fC-Ae3mLile1dc1)

<figure><picture><source srcset="/files/zEgtk8PSsc2HKYbV0ogN" media="(prefers-color-scheme: dark)"><img src="/files/qxJYufdIWi4rtRveM2A1" alt="Scallop Labs 標誌"></picture><figcaption></figcaption></figure>

### 子品牌 (Sub-brands)

Scallop 旗下有些產品或服務還沒有獨立品牌，這時候我們會統一使用這通用版式 來維持整體的一致性。

子品牌的標誌會由 Scallop 的標準標誌，加上子品牌名稱組成。我們會透過字體大小和粗細的變化，來凸顯主品牌 Scallop 的存在。請參考下方的示範範例。

[下載子品牌標誌](https://drive.google.com/drive/folders/14ik0FG1voCiVXgyreB4_RYrBcfm4hkba)

<div align="center"><figure><picture><source srcset="/files/QA2gTJlOPLBfMDW6joRn" media="(prefers-color-scheme: dark)"><img src="/files/deNoVkHikSxXGcWa0h44" alt="子品牌標誌: Scallop Lend"></picture><figcaption></figcaption></figure></div>

***

<div align="center"><figure><picture><source srcset="/files/JjKudzWwd2IFNdt2J7cW" media="(prefers-color-scheme: dark)"><img src="/files/17QBVEFxPw8AlokLCN3W" alt="子品牌標誌: Scallop Swap"></picture><figcaption></figcaption></figure></div>

***

<div align="center"><figure><picture><source srcset="/files/xsHw8dBXLP2i2QstqGyu" media="(prefers-color-scheme: dark)"><img src="/files/kUZmH4M1aKUda1gwEqhA" alt="子品牌標誌: Scallop Tools"></picture><figcaption></figcaption></figure></div>

## 配色

### 品牌配色 (Brand Colors)

以下為 Scallop 的主要品牌配色，展現品牌個性與視覺風格。

整體配色靈感來自潛水時所見的海洋景致，結合藍色與珊瑚色，傳達與海洋的連結、專業感以及自然永續的理念。

<table data-card-size="large" data-view="cards"><thead><tr><th></th><th></th><th></th><th data-hidden data-card-cover data-type="files"></th></tr></thead><tbody><tr><td><strong>Ocean</strong></td><td>Scallop 的深藍色<br>HEX: #1E2D45<br>RGB: 30/45/69<br>CMYK: 54/38/0/73<br>PMS: 533C</td><td>品牌主色之一，常用於背景、圖形與建立整體品牌氛圍。</td><td><a href="/files/FHLCdK9LCQjHIPcswnKD">/files/FHLCdK9LCQjHIPcswnKD</a></td></tr><tr><td><strong>Bubble</strong></td><td>Scallop 的淺藍色<br>HEX: #9CD0DD<br>RGB: 156/208/221<br>CMYK: 29/6/0/13</td><td>請用於行動呼籲（CTA）、互動式元素，或需要製造視覺對比的地方。建議適量使用以突顯重點。</td><td><a href="/files/X5jg6YCTerBbXO4lthK8">/files/X5jg6YCTerBbXO4lthK8</a></td></tr><tr><td><strong>Sand</strong></td><td>Scallop 的蜜桃色<br>HEX: #F1D6C8<br>RGB: 241/214/200<br>CMYK: 0/11/17/5</td><td>此色應用於標誌圓形，可作為文字或圖形元素的點綴色，呼應品牌視覺識別。</td><td><a href="/files/d9Jek1Cxzzuw4SYTNXyX">/files/d9Jek1Cxzzuw4SYTNXyX</a></td></tr><tr><td><strong>Twilight</strong></td><td>Scallop 的灰藍色<br>HEX: #334664 <br>RGB: 51/70/100<br>CMYK: 49/30/0/61</td><td>可作為分段背景使用，也是 Ocean 的替代色。</td><td><a href="/files/G4IVZgtS5bCckL3mHSLz">/files/G4IVZgtS5bCckL3mHSLz</a></td></tr><tr><td><strong>Mist</strong></td><td>Scallop 的灰色<br>HEX: #ABB0C0<br>RGB: 171/176/192<br>CMYK: 11/8/0/25</td><td>此色也應用於標誌中，可作為中性的輔助配色。</td><td><a href="/files/0VcKcxBYn7ijE0XMWBuD">/files/0VcKcxBYn7ijE0XMWBuD</a></td></tr><tr><td><strong>Night</strong></td><td>Scallop 的黑色<br>HEX: #000000<br>RGB: 0/0/0<br>CMYK: 100/100/100/100</td><td>淺色背景上的主要文字色，同時作為中性的輔助配色。</td><td><a href="/files/IFkfy5ks8VDfosNpGTEb">/files/IFkfy5ks8VDfosNpGTEb</a></td></tr><tr><td><strong>Pearl</strong></td><td>Scallop 的白色<br>HEX: #FFFFFF<br>RGB: 255/255/255<br>CMYK: 0/0/0/0</td><td>主要長篇文字用色，同時作為中性的輔助配色。</td><td><a href="/files/XSrOYSN0gN9ZGYQCT8oR">/files/XSrOYSN0gN9ZGYQCT8oR</a></td></tr></tbody></table>

### 功能配色 (Functional Colors)

這些顏色主要用於 App 介面和宣傳素材中，用來傳達特定的狀態或意義。

<table data-view="cards"><thead><tr><th></th><th></th><th data-hidden data-card-cover data-type="files"></th></tr></thead><tbody><tr><td><strong>Green</strong></td><td>HEX: #7BBBA7<br>RGB: 123/187/167<br>CMYK: 34/0/11/27</td><td><a href="/files/ITsoJwWc7YZaBC5CM0g7">/files/ITsoJwWc7YZaBC5CM0g7</a></td></tr><tr><td><strong>Red</strong></td><td>HEX: #CA6460<br>RGB: 202/100/96<br>CMYK: 0/50/52/21</td><td><a href="/files/0eNzd4lxTD629G1Vqt5Z">/files/0eNzd4lxTD629G1Vqt5Z</a></td></tr><tr><td><strong>Yellow</strong></td><td>HEX: #E8D997<br>RGB: 232/217/151<br>CMYK: 0/6/35/9</td><td><a href="/files/JABVKAuhXJrSktfVOMHQ">/files/JABVKAuhXJrSktfVOMHQ</a></td></tr></tbody></table>

## 字體系統 (Typography)

Scallop 品牌在行銷設計與產品介面上，統一使用 Poppins 與 Roboto 字體。

<table data-card-size="large" data-view="cards"><thead><tr><th></th><th></th><th></th><th data-hidden data-card-target data-type="content-ref"></th><th data-hidden data-card-cover data-type="files"></th></tr></thead><tbody><tr><td><strong>Poppins</strong></td><td><p>用於標題。</p><ul><li>在應用介面中，標題會使用 Poppins SemiBold。</li><li>而在行銷素材方面，標題會使用 Poppins Extrabold。如果 Extrabold 不適用，則可改用 Poppins Bold。</li></ul></td><td><a href="https://fonts.google.com/specimen/Poppins">下載</a></td><td><a href="https://fonts.google.com/specimen/Poppins">https://fonts.google.com/specimen/Poppins</a></td><td><a href="/files/1tAFDQMe8pAvw9h3UqKx">/files/1tAFDQMe8pAvw9h3UqKx</a></td></tr><tr><td><strong>Roboto</strong></td><td><p>用於內文。</p><ul><li>不論是應用介面或行銷素材，內文都會使用 Roboto Regular。</li><li>若內文有需要強調的文字，請使用 Roboto SemiBold。</li></ul></td><td><a href="https://fonts.google.com/specimen/Roboto">下載</a></td><td><a href="https://fonts.google.com/specimen/Roboto">https://fonts.google.com/specimen/Roboto</a></td><td><a href="/files/9zDW3jTVhfXBDaOqh0kp">/files/9zDW3jTVhfXBDaOqh0kp</a></td></tr></tbody></table>


# 怎麼在Scallop上放貸(存款)

### 供應

選擇您想要提供給池子的資產。您將會從您提供的資產中賺取供應年利率（Supply APY）。

<figure><img src="/files/2HiuomQtCEuKWHxQaH1P" alt="" width="563"><figcaption><p>放貸池</p></figcaption></figure>

在選定的放貸池，輸入您想要供應的代幣數量

<figure><img src="/files/pT5Ob9xkE3A6rCVk5ZOq" alt="" width="375"><figcaption><p>供應 Sui</p></figcaption></figure>

您會獲得 **sCoin** 作為存款的憑證。

<figure><img src="/files/b4vg5C7VkxGsezMVVTtq" alt="" width="336"><figcaption><p>mini錢包</p></figcaption></figure>

您可以將這些 sCoin 抵押到 sCoin 池中，參與激勵計劃，並隨時以代幣的形式獲得獎勵。

<figure><img src="/files/v0xyhAu8XtJWuuTIyAQc" alt=""><figcaption><p>抵押 sCoins</p></figcaption></figure>

您可以通過按下“收穫全部”按鈕，從 sCoin 池中收穫獎勵。

<figure><img src="/files/VdRiRFAHHwHxj8IVo6ox" alt=""><figcaption><p>激勵計劃</p></figcaption></figure>

要從 sCoin 池和借貸池中提取資產，您可以直接在借貸池標籤頁進行操作。請確保勾選檢查清單按鈕，以啟用從借貸池和 sCoin 池提取資產的功能。

<figure><img src="/files/Svgu0BElAZdcnJgihtFr" alt="" width="375"><figcaption><p>從放貸池提領資產</p></figcaption></figure>

如果您想將 sCoin 提供並抵押到 sCoin 池中，您可以勾選選框，這樣您的 sCoin 就會直接被抵押到 sCoin 池中。

訪問 [放貸](/zh/scallop-lend/lending)和 [sCoins](/zh/scallop-lend/lending/scoin) 以獲得更多資訊


# 怎麼在Scallop上借款

## 借款

在 Scallop 平台上借款時，您需要先存入抵押品，以便借到所需的資產。然而，在進行存款和借款之前，您需要先創建一個[債務](/zh/scallop-lend/zhai-wu)。

<figure><img src="/files/iA1Fzl3JkRClZ9O7rGte" alt="" width="563"><figcaption><p>創建債務帳戶</p></figcaption></figure>

### 存入抵押品

您可以選擇各類資產做為抵押品

<figure><img src="/files/x6i0ckXApQ7yBC4jRzEC" alt="" width="563"><figcaption><p>抵押品池</p></figcaption></figure>

輸入您想要存入的資產數量

<figure><img src="/files/87WpP9MQm91WFNKoYpJj" alt="" width="375"><figcaption><p>存入 SUI 做為抵押品</p></figcaption></figure>

> 您不會因為存入抵押品獲得任何收益

<figure><img src="/files/yuEwC7UVCwkQx9BZXrzT" alt="" width="563"><figcaption><p>抵押品資產池</p></figcaption></figure>

如上圖所示，您可以查看您在抵押池中存入資產的摘要儀表板。該摘要儀表板包含四個部分：

1. **可用抵押品**: 可借款資產的總美元價值。
2. **已存入抵押品**: 已存入抵押池的資產總美元價值。
3. **風險水平**: 表示債務帳戶的安全狀態，計算方式為「借款價值加權」除以「所需抵押品價值」。讀數為100%時表示達到清算門檻，即使超過這個數值也是如此。
4. **抵押品組合**: 列出您提供給抵押池的資產。

### 借款

在將資產存入抵押池後，您可以從借貸池中選擇您想借的資產。輸入您想從借貸池中借出的金額，並考慮到借款金額越高，您的債務風險水平就越高，這可能導致您的債務本被清算。

<figure><img src="/files/FODJjvqaEgz0pRvkQg6F" alt="" width="563"><figcaption><p>借出資產</p></figcaption></figure>

如上圖所示，存在借款費用參數，這意味著每次您借款時，都將被收取0.3%的費用。

<figure><img src="/files/k4vjajS9lowV4gxiXTp2" alt="" width="563"><figcaption><p>借款儀錶板</p></figcaption></figure>

* **可用抵押品**: 可以借款的總美元資產。
* **已借款總負債**: 已借出的總美元資產。
* **風險水平**: 表示債務帳戶的安全狀態，根據「借款價值加權」除以「所需抵押品價值」計算。當讀數達到100%時，表示已達到清算門檻；即使超過這個數值，它仍然會保持在100%。
* **債務組合**: 您已借出的資產列表。

#### 借款 APR & 獎勵 APR

您可能會注意到，在借貸池中有借款年利率（Borrow APR）和獎勵年利率（Reward APR）兩個欄位。

<figure><img src="/files/UAaCTWUE4fvUzGRqL3hH" alt=""><figcaption><p>借款池</p></figcaption></figure>

借款年利率（Borrow APR）是指貸款利率，而獎勵年利率（Reward APR）則是提供給借款用戶的激勵計劃利率。當獎勵年利率高於借款年利率時，這意味著通過借款，您可以獲得正收益。

<figure><img src="/files/VdRiRFAHHwHxj8IVo6ox" alt=""><figcaption><p>取得激勵獎勵</p></figcaption></figure>

您也可以在該面板中領取借款獎勵。因此，如果您抵押 sCoin 並同時借入具有獎勵年利率的資產，這意味著您將同時從借貸池和借款池獲得獎勵激勵計劃的回報。

### 避免清算

為避免被清算，您可以將債務的風險水平設置為低於100%。如果您的債務本風險水平超過100%，Scallop將啟動[軟清算](/zh/scallop-lend/liquidations#ruan-qing-suan)機制。

<figure><img src="/files/cAuMhIiAnRvnK7o48zNy" alt=""><figcaption><p>借款儀錶板</p></figcaption></figure>

在這個例子中，債務本的風險水平已達到93%，如果超過100%，我們的抵押資產將被清算。為了防止這種情況發生，我們可以償還之前借入的資產。由於借入的資產僅有USDC，我們可以償還這種資產以降低風險水平百分比。

<figure><img src="/files/ZNm6DMhsjRd2sgk8LaMm" alt="" width="375"><figcaption><p>還款</p></figcaption></figure>

在還款之後，風險水平會隨之下降。

<figure><img src="/files/fbooXu3DkYAVZpZywZAc" alt=""><figcaption><p>借款儀錶板</p></figcaption></figure>

#### 提領抵押品

在提取抵押品之前，請確保已償還所有借入的資產及其利息。一旦您償還了所有債務資產，就可以從抵押池中提取所有資產。

<figure><img src="/files/LBS1jMC3jl9ULG3h5kTT" alt="" width="375"><figcaption><p>提領抵押品</p></figcaption></figure>

訪問[借款](/zh/scallop-lend/borrowing)[清算](/zh/scallop-lend/liquidations)以獲得更多資訊


# 怎麼避免清算

為避免被清算，您可以定期監控您的風險水平，如果風險水平過高，您可以償還貸款，這將自動降低您的風險水平狀態。或者，您可以訂閱 Scallop 提供的通知功能，當您的帳戶面臨清算或風險水平超過安全門檻時，該功能將提醒您。

## 提醒

在 Scallop 中，您可以設置通知，以便當債務的風險水平超過您預先設定的安全門檻時，能夠及時提醒您。Scallop 與 Notifi 合作，幫助用戶維護其債務帳戶的健康。

要使用此功能，您需要先連接您的錢包。一旦錢包連接成功，您可以按下鈴鐺圖標來啟用通知功能。

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

隨後，會彈出一個視窗，系統會要求您輸入您的電子郵件或 Telegram 帳戶，以便接收來自 Scallop 的通知消息。

<figure><img src="/files/7yYItFNpZIW5rMRYB6rH" alt="" width="375"><figcaption><p>Notifi 視窗</p></figcaption></figure>

在輸入您的電子郵件或 Telegram 用戶名後，點擊“下一步”，系統會提示您簽署交易。無需擔心，這次交易簽署不會產生任何費用。

<figure><img src="/files/Vke7ck9XqMgrogMth6kK" alt="" width="370"><figcaption></figcaption></figure>

在簽署交易後，系統會要求您先驗證您的電子郵件。如果您沒有驗證電子郵件，當您的帳戶風險水平超過安全限額時，您將無法接收通知。

<figure><img src="/files/EsHGYRN5nuBVwiHHGcJo" alt="" width="375"><figcaption></figcaption></figure>

系統會要求您選擇三個提醒：

* **Scallop公告提醒**：此提醒會通知您關於 Scallop 的最新更新。
* **清算提醒**：此提醒會通知您，您的債務已被清算。
* **債務風險提醒**：此提醒會在您的帳戶風險水平超過您之前設定的門檻時通知您。

<figure><img src="/files/mmdO9pXRE0o7Rwczbs1m" alt="" width="375"><figcaption><p>設定 Scallop 提醒</p></figcaption></figure>

如上圖所示，已經有兩個值，50% 和 80%，您可以選擇作為通知的門檻，或者您可以在自定義欄位中輸入您的門檻。例如，如果您將門檻設置為 70%，當您的風險水平百分比超過 70% 時，您將收到通知；如果風險水平保持在 70% 以下，您將不會收到任何通知。

<figure><img src="/files/2UQDQSY9aTKnz5FHsD2d" alt="" width="375"><figcaption><p>提醒歷史</p></figcaption></figure>

\
您還可以查看成功發送到您的電子郵件或 Telegram 的通知歷史記錄。

訪問 [Notifi Docs](https://notifi-network.github.io/docs/faq#privacy) 以查看有關您的電子郵件帳戶或 Telegram 用戶名隱私的相關信息。


