Skip to content

Commit

Permalink
Update README.md
Browse files Browse the repository at this point in the history
  • Loading branch information
amr080 authored Oct 16, 2024
1 parent 50f563d commit f4646de
Showing 1 changed file with 17 additions and 18 deletions.
35 changes: 17 additions & 18 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,26 +1,26 @@
# Mountain Protocol USD [![codecov](https://codecov.io/github/mountainprotocol/tokens/branch/main/graph/badge.svg?token=YXQ2CTHYNA)](https://codecov.io/github/mountainprotocol/tokens)
# X Protocol USD [![codecov](https://codecov.io/github/Xprotocol/tokens/branch/main/graph/badge.svg?token=YXQ2CTHYNA)](https://codecov.io/github/Xprotocol/tokens)

USDM is a stablecoin designed to maintain a 1 USD valuation backed by short-term US Treasury bills. The yield generated by these T-bills is automatically distributed to USDM token holders through rebasing. This feature keeps the price of USDM stable while steadily increasing the balance of USDM for token holders.
USDX is a stablecoin designed to maintain a 1 USD valuation backed by short-term US Treasury bills. The yield generated by these T-bills is automatically distributed to USDX token holders through rebasing. This feature keeps the price of USDX stable while steadily increasing the balance of USDX for token holders.

Mountain Protocol hosts the primary market that establishes the price peg. KYC-verified users can deposit collateral, either USDC or fiat currency, on our platform. In exchange, they receive USDM and can choose to redeem USDM for collateral or withdraw USDM to any Ethereum address. Since Mountain Protocol offers an exchange rate of one dollar per USDM in both directions, any price movement in the external (secondary) market can be traded in the primary market to re-establish the peg.
X Protocol hosts the primary market that establishes the price peg. KYC-verified users can deposit collateral, either USDC or fiat currency, on our platform. In exchange, they receive USDX and can choose to redeem USDX for collateral or withdraw USDX to any Ethereum address. Since X Protocol offers an exchange rate of one dollar per USDX in both directions, any price movement in the external (secondary) market can be traded in the primary market to re-establish the peg.

[USDM](https://github.com/mountainprotocol/tokens#USDM) is a rebasing ERC-20 token with a set of additional features, including pausing, blocking/unblocking accounts, role-based access control, and upgradability. The contract’s primary objective is to reflect the T-bills’ annual percentage yield (APY) within the token’s value. It achieves this through a reward multiplier rebasing mechanism, where the addRewardMultiplier function is called daily to adjust the reward multiplier, guaranteeing an accurate representation of yield from the underlying assets.
[USDX](https://github.com/Xprotocol/tokens#USDX) is a rebasing ERC-20 token with a set of additional features, including pausing, blocking/unblocking accounts, role-based access control, and upgradability. The contract’s primary objective is to reflect the T-bills’ annual percentage yield (APY) within the token’s value. It achieves this through a reward multiplier rebasing mechanism, where the addRewardMultiplier function is called daily to adjust the reward multiplier, guaranteeing an accurate representation of yield from the underlying assets.

Acknowledging the complexities of handling rebasing tokens in the DeFi ecosystem, the [wUSDM](https://github.com/mountainprotocol/tokens#wUSDM) contract serves as a wrapped token, simplifying integration while preserving stability. The wUSDM contract is an ERC-462 token vault, enabling users to deposit USDM in exchange for wUSDM tokens. The USDM tokens are rebasing, whereas the wUSDM tokens are non-rebasing, making wUSDM ideal for seamless integration with protocols in the DeFi ecosystem.
Acknowledging the complexities of handling rebasing tokens in the DeFi ecosystem, the [wUSDX](https://github.com/Xprotocol/tokens#wUSDX) contract serves as a wrapped token, simplifying integration while preserving stability. The wUSDX contract is an ERC-462 token vault, enabling users to deposit USDX in exchange for wUSDX tokens. The USDX tokens are rebasing, whereas the wUSDX tokens are non-rebasing, making wUSDX ideal for seamless integration with protocols in the DeFi ecosystem.

The wUSDM contract incorporates the ERC-2612 permit functionality, allowing the use of signatures to grant token allowances. Additionally, the close relationship between the wUSDM and USDM contracts is also worth noting; the wUSDM contract leverages the account block list from the USDM contract to govern transfers and, specifically, prevent transfers from accounts included in the block list.
The wUSDX contract incorporates the ERC-2612 permit functionality, allowing the use of signatures to grant token allowances. Additionally, the close relationship between the wUSDX and USDX contracts is also worth noting; the wUSDX contract leverages the account block list from the USDX contract to govern transfers and, specifically, prevent transfers from accounts included in the block list.

Finally, the wUSDM token transfers can be paused in two ways: either by being paused directly from within the wUSDM contract or in the event the USDM contract is paused.
Finally, the wUSDX token transfers can be paused in two ways: either by being paused directly from within the wUSDX contract or in the event the USDX contract is paused.

## Security

The [Mountain Protocol Security Center](https://security.mountainprotocol.com) contains more details about the secure development process.
The [X Protocol Security Center](https://security.Xprotocol.com) contains more details about the secure development process.

The security policy is detailed in [SECURITY.md](https://github.com/mountainprotocol/tokens/blob/main/SECURITY.md), and specifies how you can report security vulnerabilities and which versions will receive security updates. We run a [bug bounty program on Immunefi](https://immunefi.com/bounty/mountainprotocol/) to reward the responsible disclosure of vulnerabilities.
The security policy is detailed in [SECURITY.md](https://github.com/Xprotocol/tokens/blob/main/SECURITY.md), and specifies how you can report security vulnerabilities and which versions will receive security updates. We run a [bug bounty program on Immunefi](https://immunefi.com/bounty/Xprotocol/) to reward the responsible disclosure of vulnerabilities.

## Audits

Audits can be found at https://github.com/mountainprotocol/audits.
Audits can be found at https://github.com/Xprotocol/audits.

## Contributing

Expand Down Expand Up @@ -108,7 +108,7 @@ npx hardhat help
- EIP-2612 permit support
- OpenZeppelin UUPS upgrade pattern

### USDM
### USDX

#### Public and External Functions

Expand Down Expand Up @@ -177,14 +177,14 @@ npx hardhat help
- `UPGRADE_ROLE`: Grants the ability to upgrade the contract.
- `PAUSE_ROLE`: Grants the ability to pause/unpause the contract.
### wUSDM
### wUSDX
#### Public and External Functions
- `initialize(IUSDM _USDM, address owner)`: Initializes the contract.
- `initialize(IUSDX _USDX, address owner)`: Initializes the contract.
- `pause()`: Pauses the contract, halting token transfers.
- `unpause()`: Unpauses the contract, allowing token transfers.
- `paused()`: Returns true if USDM or wUSDM is paused, and false otherwise.
- `paused()`: Returns true if USDX or wUSDX is paused, and false otherwise.
- `DOMAIN_SEPARATOR()`: Returns the EIP-712 domain separator.
- `nonces(address owner)`: Returns the nonce for the specified address.
- `permit(address owner, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s)`: Implements EIP-2612 permit functionality.
Expand All @@ -209,10 +209,9 @@ npx hardhat help
- `UPGRADE_ROLE`: Grants the ability to upgrade the contract.
- `PAUSE_ROLE`: Grants the ability to pause/unpause the contract.
## License
## Contract Deployments
Mountain Protocol Contracts are released under the [MIT License](https://github.com/mountainprotocol/tokens/blob/main/LICENSE).
## Legal
The use of this Project is governed by the terms found at https://docs.mountainprotocol.com/legal/terms-and-conditions.
Alexander Reed

0 comments on commit f4646de

Please sign in to comment.