GitBook: [#148] mini updates round 1

This commit is contained in:
Nick Feeney 2021-12-23 22:21:21 +00:00 committed by gitbook-bot
parent ae204c821a
commit 8f7fba4dba
No known key found for this signature in database
GPG Key ID: 07D2180C7B12D0FF
23 changed files with 88 additions and 90 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 458 KiB

BIN
.gitbook/assets/Connect.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 217 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 346 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 242 KiB

View File

@ -4,7 +4,7 @@ description: >-
trading platform.
---
# Initial set up with 🥭
# 🥭 Initial Setup
## **Connecting your Wallet**
@ -12,15 +12,15 @@ First, choose your wallet and then click connect.
* For help creating or funding your wallet, please see [our dedicated article](tutorials/creating-a-wallet.md#how-to-create-a-sollet-io-wallet).
![](<.gitbook/assets/connect (1).png>)
![](<.gitbook/assets/Connect (1).png>)
Next, decide whether auto-approval is on or off and approve the connection
After connecting, under settings you can decide whether auto-approval is on or off and approve the connection
![](.gitbook/assets/approve.png)
![](.gitbook/assets/autoapprove.png)
_**\*\***Selecting on will give a smoother trading experience (more like a CEX.) keeping it off you will need to approve every transaction within the platform._
## **Creating a** 🥭 MangoAccount **& depositing funds**
## **Creating a** MangoAccount **& depositing funds**
It's time to create and fund your first 🥭MangoAccount. Simply click on the deposit button within the account modal to initiate the MangoAccount creation modal.

View File

@ -1,9 +1,9 @@
# Overview
# 🔍 Overview
Mango provides a single venue to lend, borrow, and leverage trade cryptoassets through a powerful risk engine
Mango provides a single venue to lend, borrow, and leverage trade crypto assets through a powerful risk engine
* Earn interest on deposits&#x20;
* Cross-Margin / Cross-Collateralized
* &#x20;Decentralized
* Earn interest on assets deposited, lend and borrow easily&#x20;
* Cross-Collateralized permission-less margin spot and futures trading
* Decentralized and community governed
Mango is built on Solana blockchain and utilizes Serum DEX for spot margin trading while perpetual futures are traded on Mango's own orderbook. Mango is governed by its MNGO token.&#x20;
Mango is currently built on the Solana blockchain and utilizes Serum for spot margin trading. Perpetual futures are traded on Mango's own orderbook. Mango is governed by it the MNGO token and its community.&#x20;

View File

@ -1,29 +1,29 @@
# Table of contents
* [Overview](README.md)
* [Beginner Tips](beginner-tips.md)
* [🔍 Overview](README.md)
* [🙋 Beginner Tips](beginner-tips.md)
## Tutorials
* [Initial set up with 🥭](<README (1).md>)
* [Trading 📈](tutorials/trading-on-mango.md)
* [Borrowing & Lending 💸](tutorials/borrowing-and-lending.md)
* [Creating & Funding a Wallet 👛](tutorials/creating-a-wallet.md)
* [How to Vote in Governance](tutorials/how-to-vote-in-governance.md)
* [🥭 Initial Setup](<README (1).md>)
* [📈 Trading](tutorials/trading-on-mango.md)
* [💵 Borrowing & Lending](tutorials/borrowing-and-lending.md)
* [👛 Creating & Funding a Wallet](tutorials/creating-a-wallet.md)
* [How to Vote in Governance](tutorials/how-to-vote-in-governance.md)
## Mango
* [Health Overview](mango/health-overview.md)
* [Liquidations](mango/liquidations.md)
* [Insurance Fund](mango/insurance-fund.md)
* [Socialized Losses](mango/socialized-losses.md)
* [Settle Pnl](mango/settle-pnl.md)
* [Funding](mango/funding.md)
* [Liquidity Mining](mango/liquidity-incentives.md)
* [Asset Specs](mango/token-specs.md)
* [Perp Contract Specs](mango/perp-contract-specs.md)
* [Market Making Bot (python)](mango/market-making-bot-python.md)
* [Mango Client API (javascript)](mango/mango-client-api-javascript.md)
* [Health Overview](mango/health-overview.md)
* [💀 Liquidations](mango/liquidations.md)
* [💰 Insurance Fund](mango/insurance-fund.md)
* [👪 Socialized Losses](mango/socialized-losses.md)
* [🤝 Settle Pnl](mango/settle-pnl.md)
* [💸 Funding](mango/funding.md)
* [Liquidity Mining](mango/liquidity-incentives.md)
* [Asset Specs](mango/token-specs.md)
* [🔮 Perp Contract Specs](mango/perp-contract-specs.md)
* [🤖 Market Making Bot (python)](mango/market-making-bot-python.md)
* [Mango Client API (javascript)](mango/mango-client-api-javascript.md)
## FAQ's
@ -44,9 +44,9 @@
## Mango V2
* [Overview 👀](mango-v2/overview.md)
* [Risks ⚠️](mango-v2/risks.md)
* [PNL Calculation 🧮](mango-v2/pnl-calculation.md)
* [Overview](mango-v2/overview.md)
* [Risks](mango-v2/risks.md)
* [PNL Calculation](mango-v2/pnl-calculation.md)
* [Mango Program API](mango-v2/mango-program-api.md)
***

View File

@ -1,6 +1,6 @@
# Begginer Tips
# 🙋 Beginner Tips
Mango is a powerful platform, some things to know to get the most out of it. \
Mango is an extremely powerful tool, some things to know to get the most out of the platform. \
\
Collateral is shared between borrow/lending and leverage trading. If you deposit into your MangoAccount, those assets will automatically earn interest and serve as available collateral to leverage trade or withdraw a borrow.&#x20;

View File

@ -1,4 +1,4 @@
# Funding
# 💸 Funding
Funding is computed continuously as a daily difference in the index price and current book price (current mid). The `UpdateFunding` instruction is called by the Keeper roughly every 5 seconds and so funding is paid out roughly every 5 seconds. The calculation is as follows:

View File

@ -1,4 +1,4 @@
# Health Overview
# Health Overview
The health of an account is used to determine if one can open a new position or if one can be liquidated. There are two types of health, initial health used for opening new positions and maintenance health used for liquidations. They are both calculated as a weighted sum of the assets minus the liabilities but the maint. health uses slightly larger weights for assets and slightly smaller weights for the liabilities. Zero is used as the bright line for both i.e. if your init health falls below zero, you cannot open new positions and if your maint. health falls below zero you will be liquidated. They are calculated as follows:

View File

@ -1,3 +1,3 @@
# Insurance Fund
# 💰 Insurance Fund
The Mango program has a $70m DAO controlled treasury for insurance on v3 deposits. When there are bankrupt accounts, the insurance fund will pay off losses incurred by token lenders or perps contract participants.&#x20;

View File

@ -1,4 +1,4 @@
# Liquidations
# 💀 Liquidations

View File

@ -1,4 +1,4 @@
# Liquidity Mining
# Liquidity Mining
## Overview

View File

@ -1,16 +1,16 @@
# Mango Client API \(javascript\)
# Mango Client API (javascript)
[API Reference](https://blockworks-foundation.github.io/mango-client-v3/)
### Installation
```text
```
yarn add @blockworks-foundation/mango-client
```
### Usage Example
This example assumes that you have a wallet that is already setup with devnet tokens. The private key should be stored in `~/.config/solana/devnet.json`. Visit [https://v3.mango.markets/](https://v3.mango.markets/) and connect with the wallet to fund your margin account so that you can place orders. You can find the full source code in [example.ts](https://github.com/blockworks-foundation/mango-client-v3/blob/main/src/example.ts).
This example assumes that you have a wallet that is already setup with devnet tokens. The private key should be stored in `~/.config/solana/devnet.json`. Visit [https://v3.mango.markets/](https://v3.mango.markets) and connect with the wallet to fund your margin account so that you can place orders. You can find the full source code in [example.ts](https://github.com/blockworks-foundation/mango-client-v3/blob/main/src/example.ts).
```javascript
// Fetch orderbooks
@ -75,4 +75,3 @@ for (const fill of await perpMarket.loadFills(connection)) {
);
}
```

View File

@ -4,7 +4,7 @@ description: >-
Python code shown here is available in the Mango Explorer V3 branch.)
---
# Market Making Bot \(python\)
# 🤖 Market Making Bot (python)
## 🏛️ Marketmaking
@ -18,7 +18,7 @@ Instead, lets look at the mechanics of marketmaking on 🥭 Mango.
Lets start with a really simple example. Heres an [actual marketmaker](https://github.com/blockworks-foundation/mango-explorer/blob/v3/scripts/worlds-simplest-market-maker) that will cancel any existing orders, look up the current price on a market, place a BUY order below that price and a SELL order above that price, then pause, then go back to the beginning:
```text
```
#!/usr/bin/env bash
MARKET=${1:-BTC-PERP}
FIXED_POSITION_SIZE=${2:-0.01}
@ -44,9 +44,9 @@ done
You can run this and watch it place orders!
For example this will run it on the _ETH-PERP_ market, placing a BUY at the current Serum price minus $10 and a SELL at the current Serum price plus $10, both with a position size of 1 ETH. It will then pause for 30 seconds before cancelling those orders \(if they havent been filled\) and placing fresh orders:
For example this will run it on the _ETH-PERP_ market, placing a BUY at the current Serum price minus $10 and a SELL at the current Serum price plus $10, both with a position size of 1 ETH. It will then pause for 30 seconds before cancelling those orders (if they havent been filled) and placing fresh orders:
```text
```
mango-explorer worlds-simplest-market-maker ETH-PERP 1 10 30
```
@ -54,8 +54,8 @@ Thats not bad for 21 lines of `bash` scripting! OK, the price-fetching is a b
* `cancel-my-orders`
* `fetch-price`
* `place-order` \(BUY\)
* `place-order` \(SELL\)
* `place-order` (BUY)
* `place-order` (SELL)
* `sleep`
## 📈 A Better Simple Marketmaker
@ -66,7 +66,7 @@ First of all lets write it in Python instead of `bash`, and lets put it in
The [full class is available](https://github.com/blockworks-foundation/mango-explorer/blob/v3/mango/simplemarketmaking/simplemarketmaker.py), but the guts of it are in this looped section:
```text
```
try:
# Update current state
price = self.oracle.fetch_price(self.context)
@ -117,13 +117,13 @@ Its following these steps:
* If the desired SELL orders and existing orders dont match, cancel and replace them
* Pause
You can see this is similar to the steps in the Worlds Simplest Marketmaker \(above\), but its a bit more complete. Instead of using a fixed position size, it varies it based on inventory. Instead of blindly cancelling orders, it checks to see if the current orders are what it wants them to be.
You can see this is similar to the steps in the Worlds Simplest Marketmaker (above), but its a bit more complete. Instead of using a fixed position size, it varies it based on inventory. Instead of blindly cancelling orders, it checks to see if the current orders are what it wants them to be.
## 🍳 A Tangent On Market Operations
Its worth highlighting the use of a `MarketOperations` object in the `SimpleMarketMaker`. Lines like:
```text
```
self.market_operations.place_order(buy_order)
```
@ -135,11 +135,11 @@ What it hides, though, is that the marketmaker can work with 3 different market
* Mango Spot
* Mango Perp
The `market_operations` object is loaded based on the desired market, so it doesnt matter \(much\) to the marketmaker if the market is Spot or Serum, it still follows the same steps and the `market_operations` takes action on the right market using the right instructions.
The `market_operations` object is loaded based on the desired market, so it doesnt matter (much) to the marketmaker if the market is Spot or Serum, it still follows the same steps and the `market_operations` takes action on the right market using the right instructions.
Behind the scenes, a similar variance happens with `MarketInstructions`. The actual instructions sent to Solana vary significantly depending on market type, but by having a unified `MarketInstructions` interface those differences can be largely hidden from marketmaking code. \(Its not perfect but this commonality does help in most situations.\)
Behind the scenes, a similar variance happens with `MarketInstructions`. The actual instructions sent to Solana vary significantly depending on market type, but by having a unified `MarketInstructions` interface those differences can be largely hidden from marketmaking code. (Its not perfect but this commonality does help in most situations.)
This can serve as a kind of a Rosetta Stone for Mango. If you know and understand the instructions sent to Serum to place orders, cancel them, or crank the market, you can look at `SerumMarketInstructions` to see how those instructions are implemented in 🥭 Mango Explorer. Then you can compare that file with `SpotMarketInstructions` to see what bits are different for Spot markets \(that require Mango Accounts\) and what bits are similar. And then you can explore `PerpMarketInstructions` to see how those same actions are performed on perp markets.
This can serve as a kind of a Rosetta Stone for Mango. If you know and understand the instructions sent to Serum to place orders, cancel them, or crank the market, you can look at `SerumMarketInstructions` to see how those instructions are implemented in 🥭 Mango Explorer. Then you can compare that file with `SpotMarketInstructions` to see what bits are different for Spot markets (that require Mango Accounts) and what bits are similar. And then you can explore `PerpMarketInstructions` to see how those same actions are performed on perp markets.
## 🚀 A More Complete Marketmaker
@ -148,15 +148,15 @@ Weve seen a common structure in the previous marketmakers, so lets see if
The main design ideas behind the design are:
* every interval, a pulse is sent to run the marketmaker code
* the marketmaker is provided with relevant live data \(like balances\) but can fetch whatever other information it requires
* the marketmaker is provided with relevant live data (like balances) but can fetch whatever other information it requires
* the main pluggable component is a desired orders builder. It looks at the state of balances, market, or other data sources, and it provides a list of BUY and SELL orders it would like to see on the orderbook.
* another component \(also pluggable\) compares the desired orders with any existing orders, and decides which orders need to be placed or cancelled.
* another component (also pluggable) compares the desired orders with any existing orders, and decides which orders need to be placed or cancelled.
Live data is provided as a `ModelState` parameter to the `pulse()` method, and its kept live by a websocket connection that watches for changes in the underlying accounts. That doesnt matter \(much\) to the marketmaker code, it can just assume the `ModelState` parameter provides up-to-date information on balances, group, prices etc.
Live data is provided as a `ModelState` parameter to the `pulse()` method, and its kept live by a websocket connection that watches for changes in the underlying accounts. That doesnt matter (much) to the marketmaker code, it can just assume the `ModelState` parameter provides up-to-date information on balances, group, prices etc.
The `pulse()` method is called, say, every 30 seconds \(again, its configurable\). The current version of it looks like this:
The `pulse()` method is called, say, every 30 seconds (again, its configurable). The current version of it looks like this:
```text
```
def pulse(self, context: mango.Context, model_state: ModelState):
try:
payer = mango.CombinableInstructions.from_wallet(self.wallet)
@ -201,18 +201,18 @@ Whats different here is:
* Desired orders are built using a `DesiredOrdersBuilder` object, and most people will probably want to provide their own version with their own strategy.
* Existing orders are tracked, rather than having to be fetched.
* Desired and existing orders are compared using an `OrderReconciler`. The default version takes a `tolerance` value and if an existing order has the same side \(BUY or SELL\) and both price and quantity are within the `tolerance` of a desired order, the existing order remains on the orderbook and the desired order is ignored.
* The code builds a list of instructions, and theyre executed in one step. This is faster, more efficient, and can allow cancels and places to happen in the same transaction. \(Instruction szie can mean this doesnt happen though, but the `execute()` method takes this into account and uses as many transactions as necessary.\)
* Desired and existing orders are compared using an `OrderReconciler`. The default version takes a `tolerance` value and if an existing order has the same side (BUY or SELL) and both price and quantity are within the `tolerance` of a desired order, the existing order remains on the orderbook and the desired order is ignored.
* The code builds a list of instructions, and theyre executed in one step. This is faster, more efficient, and can allow cancels and places to happen in the same transaction. (Instruction szie can mean this doesnt happen though, but the `execute()` method takes this into account and uses as many transactions as necessary.)
You can see the different parameters the marketmaker takes by running:
```text
```
mango-explorer marketmaker --help
```
You can run a basic instance of the marketmaker against the BTC-PERP market using [Pyth](https://pyth.network/) with:
You can run a basic instance of the marketmaker against the BTC-PERP market using [Pyth](https://pyth.network) with:
```text
```
mango-explorer marketmaker --market BTC/USDC --oracle-provider pyth-mainnet-beta --position-size-ratio 0.01
```
@ -223,4 +223,3 @@ We started by saying what prices to use, how much inventory to offer, and how to
Theyre up to you.
For now the code is in the [Mango Explorer V3 branch](https://github.com/blockworks-foundation/mango-explorer/tree/v3). Happy marketmaking!

View File

@ -2,7 +2,7 @@
description: This is a work in progress. More information will be added as they come.
---
# Perp Contract Specs
# 🔮 Perp Contract Specs
Contracts are all denominated in the underlying.&#x20;

View File

@ -1,3 +1,3 @@
# Settle Pnl
# 🤝 Settle Pnl
In order to get USDC realized profits from unrealized profits on a perp contract, the trader must settle his profits by finding account(s) that have equivalent losses on the same contract and call the `SettlePnl` instruction on chain.

View File

@ -1,4 +1,4 @@
# Socialized Losses
# 👪 Socialized Losses
## Socialized Losses

View File

@ -4,11 +4,11 @@ description: >-
added
---
# Asset Specs
# Asset Specs
### Spot Market Leverage
Note: The asset\_weight applies a haircut to the value of the collateral in health calculations. The lower the asset weight, the less the asset counts towards collateral. Initial Leverage and Maintenance Leverage can be converted to the corresponding asset\_weights with these calculations:
Note: The asset\_weight applies a haircut to the value of the collateral in health calculations. The lower the asset weight, the less the asset counts towards collateral. Initial Leverage and Maintenance Leverage can be converted to the corresponding asset\_weights with these calculations:
```
init_asset_weight = 1 - 1 / init_leverage
@ -32,7 +32,7 @@ maint_liab_weight = 1 + 1 / maint_leverage
### Asset Weights
The init asset weight (aka haircut) is the discount applied to the value of the collateral when initializing a new position. For example, for BTC, $100 in BTC is treated as 80 USDC when initializing a new position. The maint asset weight is the discount applied when calculating the value of the collateral for purposes of liquidation. The maint asset weight is higher to give you more of a buffer before liquidation.&#x20;
The init asset weight (aka haircut) is the discount applied to the value of the collateral when initializing a new position. For example, for BTC, $100 in BTC is treated as 80 USDC when initializing a new position. The maint asset weight is the discount applied when calculating the value of the collateral for purposes of liquidation. The maint asset weight is higher to give you more of a buffer before liquidation.
| Token | Init Asset Weight | Maint Asset Weight |
| ----- | ----------------- | ------------------ |

View File

@ -2,11 +2,11 @@
description: Powerful borrowing and lending capabilities, powered by Mango.
---
# Borrowing & Lending 💸
# 💵 Borrowing & Lending
## Don't sell, just utilize&#x20;
🥭offers an approachable and powerful platform. Under the hood, the mango risk engine permits users to take out fully collateralized loans against any deposited assets, and deposits into margin accounts accrue interest every second.
🥭 offers an approachable and powerful platform. Under the hood, the mango risk engine permits users to take out fully collateralized loans against any deposited assets, and deposits into you MangoAccount accrue interest every second.
**Check out the** [**Account page.** ](https://trade.mango.markets/account)****

View File

@ -4,7 +4,7 @@ description: >-
personal bank accounts that only you control.
---
# Creating & Funding a Wallet 👛
# 👛 Creating & Funding a Wallet
Mango Markets is built on the Solana blockchain. To interact with the ecosystem, youll need a Solana-compatible wallet. Mango offers compatibility with 2 different wallets. A popular wallet and our favorite for first-time user experience, [Phantom](https://phantom.app); and also [Sollet.io](https://www.sollet.io), a more dev/power user-focused wallet.
@ -18,7 +18,7 @@ Add Phantom to your browser to get started. Once installed, you should be prompt
![](../.gitbook/assets/phan.png)
If you are a brand new Solana user, select "**Create New Wallet**". If you are an existing Solana user and have another wallet, simply import it and continue.
If you are a brand new Solana user, select "**Create New Wallet**". If you are an existing Solana user and have another wallet, simply import it and continue.&#x20;
Users coming from sollet can follow the steps [here](https://phantom.app/help/migrating-from-sollet-to-phantom) to migrate existing wallets to Phantom.
@ -32,21 +32,21 @@ You must store "**Recovery Phrase**" in a safe location, it is the only way to r
To begin, visit [https://www.sollet.io/](https://www.sollet.io).\
\
Sollet.io stores private keys in your web browser. You must access the wallet from the same web browser you created it in; otherwise, youll be prompted to create a new one.
Sollet.io stores private keys in your web browser. You must access the wallet from the same web browser you created it in; otherwise, youll be prompted to create a new one.&#x20;
The first step in creating a new wallet is recording your seed phrase in a safe place. This phrase is the only way to recover and restore your wallets funds in case you forget your password, the computer breaks, or sometimes even when you clear browser cookies. This phrase is very important, so please keep it somewhere safe!
![](../.gitbook/assets/seedphrase2.png)
After you record your phrase in a safe place and click Continue, youll be prompted to add a password to your wallet. Although this step is optional, its highly suggested for security purposes. Enter your desired password and click Create Wallet.
After you record your phrase in a safe place and click Continue, youll be prompted to add a password to your wallet. Although this step is optional, its highly suggested for security purposes. Enter your desired password and click Create Wallet.&#x20;
![](../.gitbook/assets/createwallet2.png)
Congratulations, youve successfully created a Sollet.io wallet!
Congratulations, youve successfully created a Sollet.io wallet!&#x20;
## **How to add funds to a Sollet.io wallet**
In the Solana ecosystem, different tokens have separate addresses in the same wallet. This is different from the Ethereum network, for example, where different ERC-20 tokens are received by the same address.
In the Solana ecosystem, different tokens have separate addresses in the same wallet. This is different from the Ethereum network, for example, where different ERC-20 tokens are received by the same address.&#x20;
Transaction fees on the network are paid in SOL. To add new tokens addresses to your wallet or send funds youll need some SOL. To add SOL to your wallet, click on SOL asset to expand the menu and then Receive.
@ -66,15 +66,15 @@ Browse popular tokens or search through manual input with the token mint address
![](../.gitbook/assets/tokenlist.png)
After youve found your desired token, click Add and the token will appear in the main account of your wallet.
After youve found your desired token, click Add and the token will appear in the main account of your wallet.&#x20;
To receive funds of added token addresses, click on the asset you wish to deposit and then Receive in your main account.
To receive funds of added token addresses, click on the asset you wish to deposit and then Receive in your main account.&#x20;
The deposit address displayed is the address to which your selected asset can be sent to your wallet. Only the selected token type should be sent to this address, other tokens will have different deposit addresses.
![](../.gitbook/assets/deposit5.png)
Some tokens, like BTC, possess multiple accepted mint types. SPL BTC can be deposited into your wallet using the SPL BTC deposit address while Native BTC is accepted by its own address. Click Native BTC in the receive BTC menu to find this deposit address.
Some tokens, like BTC, possess multiple accepted mint types. SPL BTC can be deposited into your wallet using the SPL BTC deposit address while Native BTC is accepted by its own address. Click Native BTC in the receive BTC menu to find this deposit address.&#x20;
![](../.gitbook/assets/addressseselection3.png)
@ -82,11 +82,11 @@ Congratulations, you can now transfer funds to your sollet.io wallet!
## How to swap Wrapped USDT for Native USDT
Native USDT is now available on Solana and Serum DEX is transitioning all liquidity pairs from wrapped USDT (wUSDT) to new, native USDT. This means in order to trade on USDT pairs in Serum, you'll need native USDT.
Native USDT is now available on Solana and Serum DEX is transitioning all liquidity pairs from wrapped USDT (wUSDT) to new, native USDT. This means in order to trade on USDT pairs in Serum, you'll need native USDT.&#x20;
First, please visit [https://wusdt.mango.markets](https://wusdt.mango.markets) to close your BTC and ETH positions. Once positions are closed and settled, withdraw your wrapped USDT (wUSDT) along with any deposited SRM in the Fee Discounts tab. To continue trading, follow the steps below to convert your wUSDT to native USDT and then visit [https://trade.mango.markets](https://trade.mango.markets)
Sollet.io makes it easy to convert wUSDT to native USDT. First, add USDT token address to your wallet:
Sollet.io makes it easy to convert wUSDT to native USDT. First, add USDT token address to your wallet:&#x20;
![](../.gitbook/assets/usdtadd.png)
@ -94,11 +94,11 @@ Next, in your Main account menu click the Wrapped USDT asset and 'Send'
![](../.gitbook/assets/usdtnative2.png)
Select 'SPL USDT' in the send window; your USDT address will autopopulate in the Recipient Address (please double check it is accurate), enter the amount you'd like to convert to native USDT, and click 'Send'.
Select 'SPL USDT' in the send window; your USDT address will autopopulate in the Recipient Address (please double check it is accurate), enter the amount you'd like to convert to native USDT, and click 'Send'.&#x20;
![](../.gitbook/assets/usdtnative3.png)
Congratulations! Your wUSDT has been converted to USDT and is visible in your USDT address.
Congratulations! Your wUSDT has been converted to USDT and is visible in your USDT address.&#x20;
![](../.gitbook/assets/usdtnative4.png)
@ -112,4 +112,4 @@ Congratulations! Your wUSDT has been converted to USDT and is visible in your US
##
## &#x20;

View File

@ -1,4 +1,4 @@
# How to Vote in Governance
# How to Vote in Governance
MNGO is a governance token whose ownership grants voting rights on proposals to dictate Mango protocol's future.&#x20;

View File

@ -2,7 +2,7 @@
description: Permissionless trading, powered by Mango.
---
# Trading 📈
# 📈 Trading
## **Welcome to** 🥭 Market**s**