diff --git a/src/.vuepress/config.js b/src/.vuepress/config.js index 61923cf..e4d1ca2 100755 --- a/src/.vuepress/config.js +++ b/src/.vuepress/config.js @@ -21,16 +21,6 @@ module.exports = { ["meta", { name: "twitter:title", content: "JuiceDollar (JUSD) Documentation" }], ["meta", { name: "twitter:description", content: "JuiceDollar (JUSD) - A decentralized, over-collateralized stablecoin on Citrea. No oracles, no admin keys, fully permissionless." }], ["meta", { name: "twitter:image", content: "https://docs.juicedollar.com/assets/logo.png" }], - // Weglot - [ "script", { type: "text/javascript", src: "https://cdn.weglot.com/weglot.min.js" }, ], - [ - "script", - {}, - `Weglot.initialize({ - api_key: 'wg_3fa7772719c0808c3a058c58e13b59890' - }); - `, - ], ], themeConfig: { diff --git a/src/.vuepress/public/assets/adjust-position.png b/src/.vuepress/public/assets/adjust-position.png index cdeb4ff..00b454c 100644 Binary files a/src/.vuepress/public/assets/adjust-position.png and b/src/.vuepress/public/assets/adjust-position.png differ diff --git a/src/.vuepress/public/assets/arch.jpeg b/src/.vuepress/public/assets/arch.jpeg index 7796d3b..48ef60b 100644 Binary files a/src/.vuepress/public/assets/arch.jpeg and b/src/.vuepress/public/assets/arch.jpeg differ diff --git a/src/.vuepress/public/assets/clone-list.png b/src/.vuepress/public/assets/clone-list.png index 7c31a59..f8182ad 100644 Binary files a/src/.vuepress/public/assets/clone-list.png and b/src/.vuepress/public/assets/clone-list.png differ diff --git a/src/.vuepress/public/assets/clone-position.png b/src/.vuepress/public/assets/clone-position.png index 6ba6a09..43d2a12 100644 Binary files a/src/.vuepress/public/assets/clone-position.png and b/src/.vuepress/public/assets/clone-position.png differ diff --git a/src/.vuepress/public/assets/collateral.png b/src/.vuepress/public/assets/collateral.png index 7d82369..caaa47a 100644 Binary files a/src/.vuepress/public/assets/collateral.png and b/src/.vuepress/public/assets/collateral.png differ diff --git a/src/.vuepress/public/assets/financial-terms.png b/src/.vuepress/public/assets/financial-terms.png index bbf689c..6f98038 100644 Binary files a/src/.vuepress/public/assets/financial-terms.png and b/src/.vuepress/public/assets/financial-terms.png differ diff --git a/src/.vuepress/public/assets/liquidation.png b/src/.vuepress/public/assets/liquidation.png index 08580b7..7d89532 100644 Binary files a/src/.vuepress/public/assets/liquidation.png and b/src/.vuepress/public/assets/liquidation.png differ diff --git a/src/.vuepress/public/assets/new-position-button.png b/src/.vuepress/public/assets/new-position-button.png index b2c71e3..33241a6 100644 Binary files a/src/.vuepress/public/assets/new-position-button.png and b/src/.vuepress/public/assets/new-position-button.png differ diff --git a/src/.vuepress/public/assets/proposal-process.png b/src/.vuepress/public/assets/proposal-process.png index dbc4e98..60aae94 100644 Binary files a/src/.vuepress/public/assets/proposal-process.png and b/src/.vuepress/public/assets/proposal-process.png differ diff --git a/src/.vuepress/public/assets/reserve.png b/src/.vuepress/public/assets/reserve.png index 1dc9039..18ce047 100644 Binary files a/src/.vuepress/public/assets/reserve.png and b/src/.vuepress/public/assets/reserve.png differ diff --git a/src/overview.md b/src/overview.md index 3231b87..7abd564 100644 --- a/src/overview.md +++ b/src/overview.md @@ -4,7 +4,7 @@ ## Structure and Purpose -The purpose of this page is to provide potential users of the JuiceDollar system with everything they need to know to meaningfully interact with it. For actually interacting with the system, there is a standard [frontend](https://app.juicedollar.com/). The name JuiceDollar hints at its self-governing nature, but also the risks associated with releasing an artificial machinery into the wild. If you encounter errors or if things are not clear to you, you can [file a suggestion for improving this page on GitHub](https://github.com/JuiceDollar/smartContracts/issues). +The purpose of this page is to provide potential users of the JuiceDollar system with everything they need to know to meaningfully interact with it. For actually interacting with the system, there is a standard [frontend](https://bapp.juicedollar.com/). The name JuiceDollar hints at its self-governing nature, but also the risks associated with releasing an artificial machinery into the wild. If you encounter errors or if things are not clear to you, you can [file a suggestion for improving this page on GitHub](https://github.com/JuiceDollar/smartContracts/issues). ## The Cypherpunk Heritage @@ -65,18 +65,8 @@ JUSD can also be minted 1:1 against trusted external stablecoins through [bridge | **USDC** | [`0x920DB0aDf6fEe2D69401e9f68D60319177dCa20F`](https://citreascan.com/address/0x920DB0aDf6fEe2D69401e9f68D60319177dCa20F) | | **USDT** | [`0x5CC0e668F8BA61E111B6168E19d17d3C65040614`](https://citreascan.com/address/0x5CC0e668F8BA61E111B6168E19d17d3C65040614) | | **CTUSD** | [`0x8D11020286aF9ecf7E5D7bD79699c391b224a0bd`](https://citreascan.com/address/0x8D11020286aF9ecf7E5D7bD79699c391b224a0bd) | -| **StartUSD** | [`0x51ff8141D731676Fb21aE1E5D5A88c04511994dD`](https://citreascan.com/address/0x51ff8141D731676Fb21aE1E5D5A88c04511994dD) | - Bridge volume is limited and time-restricted to minimize risk from external stablecoin failures. -### Bootstrap Phase (Temporary) - -::: warning -During the initial 6-week bootstrap phase, JUSD can also be minted via the StartUSD bridge. StartUSD has no intrinsic value - it exists solely to initialize the system. After 6 weeks, this bridge expires permanently and all JUSD will be backed only by real collateral and audited stablecoins. - -See [StartUSD Bridge](swap.md#startusd-bridge) for full details. -::: - ### The Role of JUICE JUICE holders provide an additional safety buffer. If liquidations result in bad debt, JUICE holders absorb the loss. This makes JUICE similar to bank equity - profitable in good times, but first in line to take losses. @@ -99,5 +89,5 @@ Anyone can mint new JuiceDollars against a collateral using the built-in borrowi ## Technical Architecture -The JuiceDollar system consists of a set of smart contracts on Citrea. The two token contracts serve as a foundation for everything else. JuiceDollar can have an arbitrary number of contracts that have the power to mint and burn JUSD. Anyone can propose new such contracts and once they passed the governance process, they can start minting and burning JuiceDollar. Today, there are two such contracts. One is a simple bridge to bootstrap JuiceDollar based on StartUSD. The other is a contract named minting hub that serves as the central point to manage all debt positions. The JUICE token has built-in governance features and holds the equity capital of the system. +The JuiceDollar system consists of a set of smart contracts on Citrea. The two token contracts serve as a foundation for everything else. JuiceDollar can have an arbitrary number of contracts that have the power to mint and burn JUSD. Anyone can propose new such contracts and once they passed the governance process, they can start minting and burning JuiceDollar. The main contracts are the stablecoin bridges that peg JUSD 1:1 to other stablecoins, and the minting hub that serves as the central point to manage all debt positions. The JUICE token has built-in governance features and holds the equity capital of the system.

Technical Architecture

diff --git a/src/positions.md b/src/positions.md index f244db0..2a73f0c 100644 --- a/src/positions.md +++ b/src/positions.md @@ -2,6 +2,6 @@ **Documentation on minting JuiceDollars against a collateral.** -When someone mints fresh JuiceDollars against a collateral, we call the result a [position](https://github.com/JuiceDollar/smartContracts/blob/main/contracts/MintingHubV2/Position.sol). At the time of writing, the only smart contract that is approved to create new positions is the [minting hub](https://github.com/JuiceDollar/smartContracts/blob/main/contracts/MintingHubV2/MintingHub.sol). The notation is inspired by portfolio theory, where a position denotes an exposure to a specific asset. In the JuiceDollar system, a position always belongs to exactly one owner. Initially, this is the user that created the position, but ownership is transferrable through the standard functions of Ownable contracts. The owner can deposit collateral into the position and mint JuiceDollars up to a certain limit defined by the liquidation price. Anyone can challenge a position if they believe that the liquidation price is below the true value of the collateral, triggering an auction that serves the purpose of determining the market price of the collateral. Thanks to this mechanism, JuiceDollar does not depend on oracles and is very flexible with regards to the provided collateral. +When someone mints fresh JuiceDollars against a collateral, we call the result a [position](https://github.com/JuiceDollar/smartContracts/blob/main/contracts/MintingHubV3/Position.sol). At the time of writing, the only smart contract that is approved to create new positions is the [minting hub](https://github.com/JuiceDollar/smartContracts/blob/main/contracts/MintingHubV3/MintingHub.sol). The notation is inspired by portfolio theory, where a position denotes an exposure to a specific asset. In the JuiceDollar system, a position always belongs to exactly one owner. Initially, this is the user that created the position, but ownership is transferrable through the standard functions of Ownable contracts. The owner can deposit collateral into the position and mint JuiceDollars up to a certain limit defined by the liquidation price. Anyone can challenge a position if they believe that the liquidation price is below the true value of the collateral, triggering an auction that serves the purpose of determining the market price of the collateral. Thanks to this mechanism, JuiceDollar does not depend on oracles and is very flexible with regards to the provided collateral. -There are two ways to initiate a position: one can either create a completely new one with arbitrary parameters or one can clone an existing position. The former is for advanced users and not exposed in the default frontend. The latter is the faster way of obtaining JuiceDollar against a collateral and supported in the default frontend. +To get started, open [Lending](https://bapp.juicedollar.com/mint) and clone an existing cloneable type (including the app's default collateral), or pick a parent from [Monitoring](https://bapp.juicedollar.com/monitoring). If you need a new collateral type that is not yet listed, use [Propose position](https://bapp.juicedollar.com/mint/create). See [Opening New Positions](positions/open.md) for the full walkthrough. diff --git a/src/positions/adjust.md b/src/positions/adjust.md index 7d76c9f..af7f2bf 100644 --- a/src/positions/adjust.md +++ b/src/positions/adjust.md @@ -2,7 +2,7 @@ **How to adjust a position** -Once you are the proud owner of a position whose cooldown period has passed, you can start to adjust it. You can adjust the outstanding amount, the amount of the deposited collateral, and the liquidation price. Every input field has a magic wand button that automatically sets the value to whatever makes most sense given the other two values. +Once you are the proud owner of a position, you can start to adjust it. You can adjust the outstanding amount, the amount of the deposited collateral, and the liquidation price. Where the app offers it, a Max button fills the field to the largest allowed value for the current constraints. The liquidation price is tuned with a slider rather than the same Max pattern used for loan or collateral amounts. The following rules apply: diff --git a/src/positions/clone.md b/src/positions/clone.md index d445f8c..28bc926 100644 --- a/src/positions/clone.md +++ b/src/positions/clone.md @@ -7,7 +7,7 @@ This is the standard way to obtain JuiceDollars against a collateral. Unlike cre

Existing positions

-When selecting a position on the position overview, you get to see its detail view which shows all the relevant parameters. If you are interested in borrowing JuiceDollars and you think the terms are reasonable, you can proceed by clicking "borrow", which leads you to the borrow page. +When selecting a position on the position overview (Monitoring), you get to see its detail view with all the relevant parameters. If you want to mint against that position type and you are not the owner, click Clone — that opens the Borrow page with that parent position pre-selected. If you are the owner, use Manage to open your position’s adjustment hub instead of cloning.

Position details

diff --git a/src/positions/open.md b/src/positions/open.md index 45b0ddc..bf59f39 100644 --- a/src/positions/open.md +++ b/src/positions/open.md @@ -1,12 +1,26 @@ # Opening New Positions -You want to mint JuiceDollar, but your preferred type of collateral is not available yet? In that case, you can propose a new collateral type. +## Start on Lending -To do so, head over to the [Mint page](https://app.juicedollar.com/mint) and scroll to the bottom until you find the "Propose New Position or Collateral" button. +To open a new position as a borrower, start on [Lending](https://bapp.juicedollar.com/mint) in the app. -

Click this button to propose a new position type

+There you mint JUSD by cloning an existing cloneable position type. On [Lending](https://bapp.juicedollar.com/mint) the app pre-selects the best cloneable parent from the API. -On the next page are four boxes. Let's take a look at the box in the top left. +

Lending: cloneable positions and API-selected clone parent

+ + If you open Position from Monitoring with Clone, that parent overrides the pre-selection. That lets you start without a custom proposal when a suitable cloneable type already exists. You select how much collateral to post, set liquidation price and expiration, and confirm when the amounts look right—one transaction creates your position and moves collateral. + +For choosing a different listed parent from the ecosystem, open [Monitoring](https://bapp.juicedollar.com/monitoring) and Clone, as described in [Cloning existing positions](clone.md). + +

Open positions available for cloning

+ +## Proposing a new position type + +Open [Propose position](https://bapp.juicedollar.com/mint/create) This URL is not linked from the main Lending screen; When you submit the form, use the Propose Position button at the bottom of the page. + +

Propose position page

+ +On that page the form is grouped into four areas. Let's take a look at the box in the top left.

Proposal process

@@ -38,6 +52,6 @@ The "Retained Reserve" should be set to ensure a very high confidence that chall The last field, the "Auction Duration", describes how long an auction should be. For highly liquid collaterals such as cBTC, the challenge duration can be quite short, possibly ranging from hours to even minutes, especially with automated bidders in the market. For less liquid collaterals that are harder to evaluate, challenges might last up to two weeks to allow bidders to organize. The longer the challenge duration, the higher the required reserve should be to ensure the position remains economically sound. -Once all parameters are set, you can hit the "Propose Position" at the bottom of the page. +Once all parameters are set, confirm with Propose Position at the bottom of the page. -If there's no veto within the initialization process, you will have successfully opened a new position! After that, you can head over to the [My Positions page](https://app.juicedollar.com/mypositions) and mint your new JuiceDollar. +If there's no veto within the initialization process, you will have successfully opened a new position! After that, you can head over to the [My Positions page](https://bapp.juicedollar.com/mypositions) and mint your new JuiceDollar. diff --git a/src/reserve.md b/src/reserve.md index f7ae3d2..fefdf13 100644 --- a/src/reserve.md +++ b/src/reserve.md @@ -10,7 +10,7 @@ If the JuiceDollar system was a company, its balance sheet would roughly look as To provide you with an intuitive understanding of the balance sheet, let us look at what happens in three example scenarios: -1. If a user sends 100 JUSD to the stablecoin bridge to swap them into StartUSD, the balance sheet items **x** and **z** are both reduced by 100 units of that currency. The other balance positions are unaffected. +1. If a user sends 100 JUSD to a stablecoin bridge to swap them into another stablecoin (e.g., USDC), the balance sheet items **x** and **z** are both reduced by 100 units of that currency. The other balance positions are unaffected. 2. If a user mints 500 JUSD against a collateral with a reserve ratio of 20% and a fee of 5%, the following will happen on the active side: **m** will increase by 500 (because that is how much they need to repay) and **r** will increase by 125 (because that is how much they put into the borrowers reserves and paid in fees). On the passive side, **z** will increase by 500 (because that is how much is being minted), **b** will increase by 100 (because that is how much the system needs to return to the user when the position is repaid), and equity **e** will increase by 25, as the fee is never returned and now belongs to the JuiceDollar system. So in this case, minting 500 JUSD counter-intuitively expands the balance sheet by more than that, namely 625 JUSD. The collateral provided by the user is outside the balance sheet and does not appear here. Even though it is locked, it still belongs to the user. 3. A position that was used to mint 5,000 JUSD is successfully challenged, with the highest bid being 4,500 JUSD. To be able to repay everything, the system will take 600 JUSD out of the reserve, decreasing **r** by 600. Out of the 5,100 JUSD we get as a result, 5,000 JUSD are used to repay the loan, reducing both **m** and **z** by 5,000 each. The remaining 100 JUSD are sent to the challenger as a reward. Assuming that the borrower's reserve attributable to that position was 1,000 JUSD, there are 400 JUSD remaining that can be reassigned from **b** to equity **e** on the passive side. These 400 JUSD are the liquidation profits the system made in this example. diff --git a/src/savings.md b/src/savings.md index f50dd69..f5fb642 100644 --- a/src/savings.md +++ b/src/savings.md @@ -50,7 +50,7 @@ The Leadrate uses a "ticks" system for precise interest calculation: To start earning interest: -1. Navigate to the Savings page on the [JuiceDollar app](https://app.juicedollar.com) +1. Navigate to the Savings page on the [JuiceDollar app](https://bapp.juicedollar.com) 2. Enter the amount of JUSD you want to deposit 3. Approve the transaction 4. Your JUSD immediately starts earning interest diff --git a/src/smart-contracts.md b/src/smart-contracts.md index f222fc1..e324766 100644 --- a/src/smart-contracts.md +++ b/src/smart-contracts.md @@ -15,7 +15,7 @@ The contracts are organized into five main categories: | **Core** | Token contracts and reserve management | | **MintingHub** | Position management and collateralized minting | | **Savings** | Interest-bearing savings functionality | -| **Bridges** | Stablecoin conversion and bootstrapping | +| **Bridges** | Stablecoin conversion | | **Gateways** | Frontend rewards and enhanced functionality | --- @@ -296,14 +296,7 @@ Enables 1:1 conversion between trusted external stablecoins and JUSD. |----------|-------| | **Emergency Quorum** | 10% | -**StartUSD Bridge:** - -| Network | Address | -|---------|---------| -| **Mainnet** | [`0x51ff8141D731676Fb21aE1E5D5A88c04511994dD`](https://citreascan.com/address/0x51ff8141D731676Fb21aE1E5D5A88c04511994dD) | -| **Testnet** | [`0x9ba2264bE7695044f59B9ca863E69aC38B3c913d`](https://testnet.citreascan.com/address/0x9ba2264bE7695044f59B9ca863E69aC38B3c913d) | - -**Additional Mainnet Bridges:** +**Mainnet Bridges:** | Bridge | Address | |--------|---------| @@ -313,36 +306,18 @@ Enables 1:1 conversion between trusted external stablecoins and JUSD. --- -### StartUSD +### StartUSD (Historical) -Genesis token used to bootstrap the JuiceDollar protocol during the initial 6-week launch phase. +StartUSD (SUSD) was a simple ERC-20 bootstrap token used to initialize the JuiceDollar system during a time-limited 6-week launch phase. The StartUSD bridge has since expired and SUSD is no longer part of the system. -::: warning BOOTSTRAP TOKEN -**StartUSD has no intrinsic value.** It exists solely to initialize the system during the 6-week bootstrap phase. After this period, the StartUSD bridge expires and no new SUSD can enter the system. - -See [StartUSD Bridge](swap.md#startusd-bridge) for full details on the bootstrap phase and associated risks. -::: - -**Key Features:** -- Simple ERC-20 token with fixed supply -- Mints 100,000,000 SUSD to deployer -- Used to initialize JUSD through the StablecoinBridge -- Creates initial JUICE token supply -- **Bridge expires after 6 weeks** - deployer influence is time-limited - -| Property | Value | -|----------|-------| -| **Symbol** | SUSD | -| **Total Supply** | 100,000,000 | -| **Intrinsic Value** | None (bootstrap only) | -| **Bridge Horizon** | 6 weeks | - -| Network | Address | -|---------|---------| -| **Mainnet** | [`0xD41ab73aF9c7324b9c7c6e63dE1aeC666d98bc80`](https://citreascan.com/address/0xD41ab73aF9c7324b9c7c6e63dE1aeC666d98bc80) | -| **Testnet** | [`0x8398Da4c32eaE51B9840DA230095BB29F4179590`](https://testnet.citreascan.com/address/0x8398Da4c32eaE51B9840DA230095BB29F4179590) | +| Network | Contract | Address | +|---------|----------|---------| +| **Mainnet** | Token | [`0xD41ab73aF9c7324b9c7c6e63dE1aeC666d98bc80`](https://citreascan.com/address/0xD41ab73aF9c7324b9c7c6e63dE1aeC666d98bc80) | +| **Mainnet** | Bridge (expired) | [`0x51ff8141D731676Fb21aE1E5D5A88c04511994dD`](https://citreascan.com/address/0x51ff8141D731676Fb21aE1E5D5A88c04511994dD) | +| **Testnet** | Token | [`0x8398Da4c32eaE51B9840DA230095BB29F4179590`](https://testnet.citreascan.com/address/0x8398Da4c32eaE51B9840DA230095BB29F4179590) | +| **Testnet** | Bridge (expired) | [`0x9ba2264bE7695044f59B9ca863E69aC38B3c913d`](https://testnet.citreascan.com/address/0x9ba2264bE7695044f59B9ca863E69aC38B3c913d) | -**Additional Mainnet Stablecoins:** +**Mainnet Stablecoins:** | Token | Address | |-------|---------| @@ -441,7 +416,6 @@ Extended Savings module with frontend reward integration. | SavingsGateway | [`0x22FE...60b`](https://citreascan.com/address/0x22FE239892eBC8805DA8f05eD3bc6aF75332b60b) | Savings with frontend rewards | | SavingsVaultJUSD | [`0x1b70...97d`](https://citreascan.com/address/0x1b70ae756b1089cc5948e4f8a2AD498DF30E897d) | ERC-4626 savings vault | | FrontendGateway | [`0x3090...B92`](https://citreascan.com/address/0x3090a89A1fF5DC99117BE655599e5491A0BaBB92) | Frontend reward system | -| StartUSD Bridge | [`0x51ff...4dD`](https://citreascan.com/address/0x51ff8141D731676Fb21aE1E5D5A88c04511994dD) | Bootstrap stablecoin bridge | | USDC Bridge | [`0x920D...20F`](https://citreascan.com/address/0x920DB0aDf6fEe2D69401e9f68D60319177dCa20F) | USDC stablecoin bridge | | USDT Bridge | [`0x5CC0...614`](https://citreascan.com/address/0x5CC0e668F8BA61E111B6168E19d17d3C65040614) | USDT stablecoin bridge | | CTUSD Bridge | [`0x8D11...0bd`](https://citreascan.com/address/0x8D11020286aF9ecf7E5D7bD79699c391b224a0bd) | CTUSD stablecoin bridge | @@ -458,8 +432,8 @@ Extended Savings module with frontend reward integration. | SavingsGateway | [`0x5443...D8e`](https://testnet.citreascan.com/address/0x54430781b33581CE2b0DBD837CA66113BeEEFD8e) | Savings with frontend rewards | | SavingsVaultJUSD | [`0x802a...c7B`](https://testnet.citreascan.com/address/0x802a29bD29f02c8C477Af5362f9ba88FAe39Cc7B) | ERC-4626 savings vault | | FrontendGateway | [`0xd824...1D0`](https://testnet.citreascan.com/address/0xd824b7d36594Fc3088B1D91a79F34931AA2a15D0) | Frontend reward system | -| StartUSD Bridge | [`0x9ba2...3d`](https://testnet.citreascan.com/address/0x9ba2264bE7695044f59B9ca863E69aC38B3c913d) | Bootstrap stablecoin bridge | -| StartUSD | [`0x8398...590`](https://testnet.citreascan.com/address/0x8398Da4c32eaE51B9840DA230095BB29F4179590) | Genesis stablecoin | +| StartUSD Bridge (expired) | [`0x9ba2...3d`](https://testnet.citreascan.com/address/0x9ba2264bE7695044f59B9ca863E69aC38B3c913d) | Bootstrap stablecoin bridge (expired) | +| StartUSD | [`0x8398...590`](https://testnet.citreascan.com/address/0x8398Da4c32eaE51B9840DA230095BB29F4179590) | Bootstrap token (historical) | --- diff --git a/src/smart-contracts/functions.md b/src/smart-contracts/functions.md index 7f62300..b98dbd2 100644 --- a/src/smart-contracts/functions.md +++ b/src/smart-contracts/functions.md @@ -953,9 +953,9 @@ event PositionRewardAdded(bytes32 frontendCode, address position, uint256 amount --- -## StartUSD +## StartUSD (Historical) -Bootstrap stablecoin for protocol initialization. +Bootstrap stablecoin used for protocol initialization. The StartUSD bridge has since expired and SUSD is no longer actively used in the system. ### Functions diff --git a/src/swap.md b/src/swap.md index 51ecbc6..ca95131 100644 --- a/src/swap.md +++ b/src/swap.md @@ -185,72 +185,13 @@ Watch the balance changes to understand market dynamics: | **Outflow** (burning) | JUSD is less attractive, possibly rates too low | | **Balanced** | Market in equilibrium | -## StartUSD Bridge +## StartUSD Bridge (Historical) -The initial bootstrap bridge uses StartUSD, a simple ERC-20 token created specifically for JuiceDollar initialization. +During the initial launch of JuiceDollar, a bootstrap token called StartUSD (SUSD) was used to initialize the system. StartUSD was a simple ERC-20 token with no intrinsic value, created solely to enable the first JUSD minting and governance setup during a time-limited 6-week bootstrap phase. -### Important: Bootstrap Phase Transparency +The StartUSD bridge has since expired. SUSD is no longer part of the system and all JUSD in circulation is now backed by real collateral and audited stablecoins. -::: warning BOOTSTRAP PHASE -**StartUSD (SUSD) has no intrinsic value.** It is a simple ERC-20 token that mints its entire supply to the deployer. During the bootstrap phase, JUSD minted via the StartUSD bridge is technically **not backed by real assets**. - -This is a deliberate design choice with built-in safeguards explained below. -::: - -### Purpose - -StartUSD serves as the genesis mechanism to: -1. Create initial JUSD supply for system testing -2. Enable first JUICE minting and governance setup -3. Bootstrap the system in a controlled environment before connecting to established stablecoins - -### The 6-Week Bootstrap Window - -The StartUSD bridge has a **strict 6-week horizon**. This time-limited window is a critical security feature: - -| Phase | Duration | What Happens | -|-------|----------|--------------| -| **Bootstrap Phase** | Weeks 1-6 | SUSD can be bridged to JUSD, system is initializing | -| **Post-Bootstrap** | After Week 6 | SUSD bridge expires, no new SUSD can enter the system | - -**After the 6-week horizon:** -- No new StartUSD can be minted into JUSD -- The deployer's ability to add unbacked JUSD is permanently removed -- Only bridges to real, audited stablecoins (USDC, USDT, etc.) remain active -- The system transitions to being fully backed by real assets - -### Why This Design? - -The 6-week bootstrap phase provides: - -1. **Controlled Launch:** Time to identify and fix critical bugs before real capital enters -2. **Emergency Shutdown Option:** If a severe vulnerability is discovered, the system can be safely wound down -3. **Gradual Ramp-Up:** Real stablecoin bridges can be added and tested alongside the bootstrap -4. **Transparent Risk Window:** Users know exactly when the bootstrap phase ends - -### Risks During Bootstrap Phase - -::: danger BOOTSTRAP RISKS -During the first 6 weeks, be aware: - -- **No Real Backing:** JUSD minted via SUSD is not backed by real dollar assets -- **Deployer Trust:** The deployer team could theoretically harm the system during this window - -**After the 6-week horizon expires, these risks are eliminated.** -::: - -### StartUSD Properties - -| Property | Value | -|----------|-------| -| Name | StartUSD | -| Symbol | SUSD | -| Decimals | 18 | -| Total Supply | 100,000,000 | -| Initial Holder | Deployer | -| **Intrinsic Value** | **None** (bootstrap token only) | - -### Bridge Details +### Bridge Contracts (Expired) | Network | Address | |---------|---------| @@ -338,15 +279,15 @@ event EmergencyStopped(address indexed caller, string message) | Bridge | Source | Address | Status | |--------|--------|---------|--------| -| StartUSD | SUSD | [`0x51ff...4dD`](https://citreascan.com/address/0x51ff8141D731676Fb21aE1E5D5A88c04511994dD) | Active | | USDC | USDC | [`0x920D...20F`](https://citreascan.com/address/0x920DB0aDf6fEe2D69401e9f68D60319177dCa20F) | Active | | USDT | USDT | [`0x5CC0...614`](https://citreascan.com/address/0x5CC0e668F8BA61E111B6168E19d17d3C65040614) | Active | | CTUSD | CTUSD | [`0x8D11...0bd`](https://citreascan.com/address/0x8D11020286aF9ecf7E5D7bD79699c391b224a0bd) | Active | +| StartUSD | SUSD | [`0x51ff...4dD`](https://citreascan.com/address/0x51ff8141D731676Fb21aE1E5D5A88c04511994dD) | Expired | ### Testnet (Chain ID: 5115) | Bridge | Source | Address | Status | |--------|--------|---------|--------| -| StartUSD | SUSD | [`0x9ba2...3d`](https://testnet.citreascan.com/address/0x9ba2264bE7695044f59B9ca863E69aC38B3c913d) | Active | +| StartUSD | SUSD | [`0x9ba2...3d`](https://testnet.citreascan.com/address/0x9ba2264bE7695044f59B9ca863E69aC38B3c913d) | Expired | *Additional bridges may be added through governance.*