# Welcome

Resources and documentation for the Serum Ecosystem.

{% embed url="<https://docs.projectserum.com/serum-ecosystem/build-on-serum>" %}

{% embed url="<https://docs.projectserum.com/serum-ecosystem/trade-on-serum>" %}

{% embed url="<https://docs.projectserum.com/serum-ecosystem/help>" %}

### [⚗️](https://emojipedia.org/alembic/) Serum Portal

{% embed url="<https://portal.projectserum.com>" %}

### ❓ Frequently Asked Questions

{% embed url="<https://docs.projectserum.com/appendix/faq>" %}

### 🏛️ Forum & Governance

{% embed url="<https://forum.projectserum.com>" %}

### 👥 User Guides

{% embed url="<https://docs.projectserum.com/guides/trade-on-serum-dex>" %}

### [🛠️](https://emojipedia.org/hammer-and-wrench/) Developer Resources

{% embed url="<https://docs.projectserum.com/serum-ecosystem/building-on-our-vision>" %}

### 🌱 EcoSerum Support

{% embed url="<https://docs.projectserum.com/serum-ecosystem/building-on-our-vision/ecoserum-support>" %}

### 📞 **Contact**

* **Discord:** <https://discord.com/invite/zxPsXcB>
* **Telegram:** <https://t.me/ProjectSerum>
* **Twitter:** <https://twitter.com/ProjectSerum>
* **Email:** <contact@projectserum.com>

### 📝 About Serum

* **Website:** <https://projectserum.com/>
* **Medium:** <https://projectserum.medium.com/>
* **Github:** <https://github.com/project-serum>
* **Solana Network:** <https://solanabeach.io/>


# Overview

An overview of Project Serum and its vision.

## 📖 What is Serum?

Serum is a protocol and ecosystem that brings unprecedented speed and low transaction costs to decentralized finance. It is built on Solana and is completely permissionless. Ecosystem partners can compose with Serum’s on-chain central limit orderbook to share liquidity and power markets-based features for institutional and retail users.

More specifically, Serum's on-chain central limit order book and matching engine provides liquidity and price-time-priority matching to traders and composing projects. Users benefit from this exchange model through the ability to choose the price, size and direction of their trades. Composing projects benefit from Serum’s existing architecture, bootstrapped liquidity, and matching service.

### 🕰️ History

In light of the popularity of DeFi and the growth of DEXes on Ethereum, users and developers were limited by high gas costs and slow transactions. Serum's aim was to solve these problems, and improve issues of centralization, capital inefficiency, and liquidity segmentation.&#x20;

Serum launched on the 31st of August 2020 and was one of the first major open source projects to build on Solana. It is supported by the Serum Foundation, and backed by a consortium of experts in cryptocurrency trading and decentralized finance, including FTX, Alameda Research, and the Solana Foundation.&#x20;

### ⚗️ What Serum Offers

* **Serum Core**

  * Asset Agnostic order book for matching any Solana based trading product from options, futures, borrow lending positions, or any financial and non-financial instrument that can take advantage of Serum’s backend matching engine.

* **True Composability**

  * Serum makes it possible for a diverse range of applications and participants to share middleware in one place. The design of the AOB makes Serum’s architecture more suited to modularity. Programs that use Serum will have more flexibility, all while maintaining some standard design principles and composability.

* **Developer Ecosystem and Services**

  * Decentralized on chain order matching service that provides infrastructure for trading applications, giving developers full control and flexibility.
  * Permissioned markets allow for even greater flexibility and compliance.
  * Serum DEX, built on top of the Asset Agnostic Order book provides the ecosystem with a greater source of pooled liquidity and shared resource to power based trading features.

* **Serum Token (SRM)**

  * SRM is the utility and governance token of the Serum ecosystem
  * SRM will be fully integrated into Serum and benefit from buy/burn of fees

* **Solana Speeds and Costs**
  * Solana allows for sub-second trading and settlement on top of ultra-low transaction costs of $0.00001 per transaction

## 🔮 Ultimate Vision

The Ultimate Vision behind Serum is to drive the **global mass adoption of DeFi**. One conceptualization of this goal includes the milestones of reaching 1 billion users and $10T of on-chain value.

{% embed url="<https://projectserum.medium.com/an-ultimate-vision-for-serum-473a16e77201>" %}


# Serum Ecosystem

Where does Serum fit into its ecosystem?

**Serum** provides a *fully on-chain* **orderbook**, allowing applications such as trading interfaces to 'plug into' Serum's composable ecosystem.&#x20;

Serum lives in the heart of the ecosystem, providing services to its ecosystem applications, each with their own technology and set of users. Anyone can create a trading application that leverages Serum's liquidity and its ecosystem benefits.&#x20;

To illustrate this concept: an order made on one dApp composing with a Serum orderbook market can be matched with an order made on completely separate dApp composing with that same market!

Retail Traders, Developers, and Algorithmic Traders can all connect to Serum and leverage its shared liquidity, or build a marketplace.&#x20;

![](https://gblobscdn.gitbook.com/assets%2F-MX0KCPgI-ecLKfYa3jX%2F-MjSaXQwyOQ5D_MhzxKD%2F-MjToIDeunhjxkLxPTNk%2FSerum%20Graphic.png?alt=media\&token=0b245839-542a-42eb-a121-0ff1d4aba28f)

###


# Solana

This guide explains the design choice behind building Serum DEX on Solana blockchain.

### Why Solana

[Solana](https://solana.com/?source=post_page-----2ddba46a51db----------------------) is a fast, secure, and censorship resistant blockchain providing the open infrastructure required for global adoption. Serum is built on the Solana blockchain. Solana was selected for its performance and technical innovations, allowing it to achieve low transaction latency (by blockchain standards), high throughput, and low fees.

Serum's founders recognized a potential for DeFi to reach [1 billion users](https://projectserum.medium.com/an-ultimate-vision-for-serum-473a16e77201) and $10T of on-chain value. This is no small ambition, and current blockchain limitations encouraged the choice to build on Solana and to address these issues at Layer-1.

### Specifications

Solana's blockchain is designed to scale natively *without* sacrificing decentralization or security to be able to support billions of users and devices:

* Supporting 50k transactions per seconds (TPS)&#x20;
* Block times of approximately 400ms
* Network fees of $0.0001 per transaction
* No sharding required

These specs allow Solana to handle hundreds of orders per second per market. Solana is also built to scale with Moore's Law, doubling in capacity around every two years with hardware and processing improvements. The current foreseeable roadmap envisions 1m TPS and 150ms block times.

### Bridges

On October 2020, Solana announced [Wormhole](https://solana.com/wormhole), a secure and decentralized [bridge to Ethereum](https://medium.com/solana-labs/wormhole-solana-ethereum-bridge-d5502e944acb). Wormhole, the product of a partnership with Certus One, will be first of many decentralized cross-chain bridges on Solana.

> Wormhole allows existing projects, platforms, and communities to move tokenized assets seamlessly across blockchains to benefit from Solana’s high speed and low cost.

Developers can employ Wormhole to access the high-speed and low-cost benefits of the Solana network instead of rewriting their codebase for Solana. Note also that any ERC20 can be wrapped as a [Solana Program Library](https://spl.solana.com) token.

Builders need not constrict themselves to a single chain if they wish to leverage the community of one chain with the performance of another.

### Further Reading

* [An Ultimate Vision for Serum](https://projectserum.medium.com/an-ultimate-vision-for-serum-473a16e77201) - Serum Medium, November 17, 2020
* [An Ultimate Vision for Serum](https://twitter.com/sbf_alameda/status/1328896719531110405) - SBF (@SBF\_Alameda) Twitter Thread, November 17, 2020
* [Why Solana?](https://medium.com/solana-labs/why-solana-8c927d58ba06) - Solana Medium, October 13, 2020
* [Wormhole - Solana/Ethereum Bridge](https://medium.com/solana-labs/wormhole-solana-ethereum-bridge-d5502e944acb) - Solana Medium, October 8, 2020
* [FTX Chooses Solana for Serum](https://medium.com/solana-labs/ftx-chooses-solana-for-serum-a-high-speed-non-custodial-decentralized-derivatives-exchange-c346a27c1f2b) - Solana Medium, July 27, 2020
* [Solana Documentation](https://docs.solana.com/) - Solana Team


# SRM Token

This guide provides a summary on the SRM and MSRM tokens.

## SRM and MSRM

**Serum (SRM)** is the utility and governance token of Serum. If you hold SRM in your wallet, you receive a discount on fees. SRM is native to the Solana blockchain (as an SPL token) and is also available on the Ethereum blockchain (as an ERC20 token).&#x20;

**MegaSerum (MSRM)** is 1,000,000 SRM stacked together. Both SRM and MSRM are available on Serum.

You can create 1 MSRM by locking up 1 million SRM, and you can redeem the MSRM back out for 1 million SRM. However, there is a limit of 1,000 MSRM in the world, so in practice, they are scarce. You generally receive benefits for holding SRM and larger benefits for holding MSRM.

### Tokenomics

10% of all SRM tokens begin unlocked. The other 90% all have the same unlock schedule. They are fully locked for the first year, and then unlock linearly over the next 6 years, beginning on the 11th of August 2021, at approximately 1/2190 per day. All seed sales were locked.

![](/files/-MiFQzDzXbQPSslSD1ZJ)

## Buy and Burn

{% hint style="info" %}
100% of the exchange fees flow back into SRM, generally via a buy and burn, and also potentially into staking rewards or other ecosystem grants.
{% endhint %}

#### Ecosystem Fees

Serum charges fees on trades that use its order book. Other applications (including e.g. Raydium and Bonfida) may charge their own fees in addition to the fees Serum charges. All fees go to the benefit of SRM.

More information on fees for DEXes built on Serum can be found at the bottom of: <https://projectserum.com/#/staking-and-voting>

## Resources

You can learn more about the SRM token at [Project Serum SRM FAQ](https://projectserum.com/srm-faq).

You can also check out SBF's [Twitter thread](https://twitter.com/sbf_alameda/status/1296840819706478592?lang=en) on SRM and MSRM.

#### Price Trackers

* CoinMarketCap: <https://coinmarketcap.com/currencies/serum/>
* CoinGecko: <https://www.coingecko.com/en/coins/serum>

#### Block Explorers

* [SRM ERC20](https://etherscan.io/token/0x476c5e26a75bd202a9683ffd34359c0cc15be0ff)
* [MSRM ERC20](https://etherscan.io/token/0x1320c8c64b9f2eAa851F70702e6C9FC1EE4E8Ce4)
* [SRM SPL](https://explorer.solana.com/address/SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt)
* [MSRM SPL](https://explorer.solana.com/address/MSRMcoVyrFxnSgo5uXwone5SKcGhT1KEJMFEkMEWf9L)


# Build on Serum

This guide gives an overview on how builders can get involved and build on the Serum ecosystem.

## 🏗️ How Can We Get Involved?

These guide pages will direct you to developer resources, popular ideas, and tutorials building in the Serum and Solana ecosystems.

{% content-ref url="/pages/-MXZBEbEihaju1SBaG9T" %}
[Project Ideas](/serum-ecosystem/build-on-serum/project-ideas-for-serum)
{% endcontent-ref %}

### 🔗 Useful links

* [Solana Blockchain](https://github.com/solana-labs/solana)
* [Solana Program Library](https://github.com/solana-labs/solana-program-library)
* [Solana Web3 SDK](https://github.com/solana-labs/solana-web3.js)
* [Solana Explorer](https://github.com/solana-labs/solana/tree/master/explorer)
* [Solana Hello World](https://github.com/solana-labs/example-helloworld)
* [Solana Technical Documentation](https://docs.solana.com/)
* [Solana Discord](https://solana.com/discord)
* Solana Wormhole - (bidirectional, trustless ERC-20 ⇄ SPL token bridge)
  * [Github repository](https://github.com/certusone/wormhole)
  * [Medium article](https://medium.com/certus-one/introducing-the-wormhole-bridge-24911b7335f7)
* [Solnet SDK](https://github.com/bmresearch/Solnet) (.NET integration for Solana)
* [NFT example](https://spl.solana.com/token#example-create-a-non-fungible-token)
* [Solana Go](https://github.com/dfuse-io/solana-go)

### ⚗️ Serum <a href="#serum" id="serum"></a>

* [Awesome Serum](https://github.com/project-serum/awesome-serum) - (Github)
* [Solnet.Serum](https://github.com/bmresearch/Solnet.Serum) (.NET integration for Serum)
* [PySerum](https://github.com/serum-community/pyserum) (Python client library for interacting with Serum)

## ⭐ Popular Resources

### Serum Core (Asset Agnostic Order Book)

* Smart contract AAOB: <https://bonfida.github.io/doc-aob-program/agnostic_orderbook/>
* Smart contract DEX: <https://bonfida.github.io/doc-dex-program/dex_v3/>
* JS Lib for the DEX: <https://bonfida.github.io/doc-dex-js/>

### Anchor

Framework for Solana's [Sealevel](https://medium.com/solana-labs/sealevel-parallel-processing-thousands-of-smart-contracts-d814b378192) runtime providing several convenient developer tools.

{% embed url="<https://github.com/project-serum/anchor>" %}

### Swap Program

An educational resource and starting point for people who want to write Solana programs to compose with Serum DEX.

* Example on-chain program interacting with the DEX.
* The Swap Program here is *not* an AMM. **The Program is built directly on the Serum orderbook.**

{% embed url="<https://github.com/project-serum/swap-ui>" %}

### Host a GUI

Host your own state-of-the-art GUI and earn a portion of the fees!

* An implementation of a UI for the Serum DEX.&#x20;
* If you are hosting a public UI using this codebase, you can collect referral fees when your users trade through your site.

{% embed url="<https://github.com/project-serum/serum-dex-ui>" %}

{% content-ref url="/pages/-MXQ5lEVZI1dcd8cLUeP" %}
[Host a GUI](/serum-ecosystem/build-on-serum/how-to-host-a-gui-serum-academy)
{% endcontent-ref %}

### Permissioned Markets

A [permissioned market](https://twitter.com/armaniferrante/status/1423817352647352320?lang=en) is a regular Serum market with an additional open orders authority, which must sign every transaction to create an open orders account.

{% embed url="<https://github.com/project-serum/permissioned-markets-quickstart>" %}

## 📌 Pinned Repositories

{% embed url="<https://github.com/project-serum>" %}

### Client Code

{% embed url="<https://github.com/project-serum/serum-ts/tree/master/packages/serum>" %}

### On-chain Code

{% embed url="<https://github.com/project-serum/serum-dex/tree/master/dex>" %}

### Starter Repo

Serum quick start repo to setup a local on-chain integration:

* For those who want to build programs that compose with the DEX
* Contains boilerplates for setting up a populated Serum market for local development

{% embed url="<https://github.com/armaniferrante/serum-quickstart>" %}

### SOL Wallet Adapter

Library to allow Solana dApps to user third party wallets to sign transactions:

{% embed url="<https://github.com/project-serum/sol-wallet-adapter>" %}

## 🌟 What Makes a Great Project?

**Usefulness**: What do users want? The links above ("How can we contribute?") offer popular ideas users have asked for.

**Well-built**: Efficacy, intuitiveness, security, and reliability are some of the tell-tale traits of a good project. Check out the [list of popularly requested](https://github.com/project-serum/awesome-serum) for projects on Serum for reference.

**Users**: Your userbase will make or break your project, whether it's through word-of-mouth, marketing, partnerships, or other customer acquisition methods.

{% embed url="<https://projectserum.medium.com/building-on-serums-vision-38577235f70f>" %}


# Project Ideas

This guide provides ideas and inspirational resources for those who want to get involved with the Serum ecosystem.

## 🌟 What Makes a Great Project?

**Usefulness**: What do users want? The links above ("How can we contribute?") offer popular ideas users have asked for.

**Well-built**: Efficacy, intuitiveness, security, and reliability are some of the tell-tale traits of a good project. Check out the [list of popularly requested](https://github.com/project-serum/awesome-serum) for projects on Serum for reference.

**Users**: Your userbase will make or break your project, whether it's through word-of-mouth, marketing, partnerships, or other customer acquisition methods.

{% embed url="<https://projectserum.medium.com/building-on-serums-vision-38577235f70f>" %}

## 💡 Project Ideas

Check out **Awesome Serum** for a curated (unofficial) list of awesome things for people looking to build on Serum.

{% embed url="<https://github.com/project-serum/awesome-serum>" %}

Certain projects may include **SRM grants / bounties** (with terms and conditions). To learn more:

* **Discord:** <https://discord.com/invite/zxPsXcB>
* **Telegram:** <https://t.me/ProjectSerum>
* **EcoSerum:** <grants@projectserum.com>

## 🔥 Newest Requests:

### **Run Serum Markets on Testnet or Stress Competition**

It would be valuable for people to run Serum markets on testnet and stress test to break them.

Tasks to be done for this are:&#x20;

* Manage DEX upgrades
* List markets with tokens
* Provide a faucet (for those tokens) that anyone can use to get and trade on the testnet DEX
* Provide a GUI for testnet DEX
* Run cranks on testnet DEX

A grant is included for this project.

### **Introduce Streaming for Data from Solana Blockchain**

It would be valuable to build a way to switch the Solana information model from polling to streaming to facilitate development of novel and more complex hybrid apps on Solana.

Regarding data feeds, the only current way to extract data from the blockchain right now is to poll a validator / RPC node. This is related to one of Serum's biggest problems: orderbook introspection and being notified as a maker when an order is matched. Implementing something akin to this would involve adding some functionality to the validator codebase.&#x20;

In terms of architecture, the way a Solana validator currently works is by using a rocksdb instance for fast storage of state, and periodically committing transaction history to a Google BigTable instance. The idea for implementing this is to add some code to the rocksdb interface in order to intercept all calls to the database and stream out this information. A secondary server can then be used to process / filter / analyze / distribute this information as websocket streams. The implications of being able to do this are substantial.

A grant is included for this project.

## 💡 Project Requests and Grants:

### AMMs that share liquidity with Serum

Building an open source AMM that people can use to place liquidity on Serum’s order book. See [Raydium](https://raydium.io/Raydium-Litepaper.pdf), and [Atrix](https://docs.atrix.finance/docs/amm).

There are lots of variants and customizability but here are some ideas:

* AMMs that trade on Serum’s markets
* AMMs with more than two components
* AMMs with easy to customize curves

If you build it to the below specs, it will receive a predetermined bounty instead of the variable one.

**Specs**:

* Parameters must be reasonable
* Must be functional
* Must have pool tokens
* Must be open source
* Must be able to launch new AMMs with arbitrary SPL tokens

*Note: A draft of an implementation of AMMs on Solana can be found on the* [*GitHub account*](https://github.com/solana-labs/solana-program-library/tree/master/token-swap) *of Solana Labs.*

### Borrow/Lending

Building a basic borrow lending protocol where rates are determined by market participants using Serum’s order book rather than algorithmically.

###

### GUI Improvements

Below is a list of GUI improvements that could be developed:

* A tool to validate GUIs against the source code
* Build support for on-chain triggered orders (stop losses, take profits) into Serum.

See Project Serum [GitHub account](https://github.com/project-serum/) for the source of [Sollet.io](https://sollet.io/) and the [DEX GUI](https://serum-academy.com/en/dex-list)

### **Indexing Protocol for Serum**

Building infrastructure for accessing data on Solana for use in Serum  specific analytics tools. *E.g.* [*Skew*](https://analytics.skew.com/dashboard/bitcoin-spot) *but for Serum.*

### **Instant Messaging App on Solana**

Fully on-chain encrypted chat app, directly integrated to Serum DEX GUI.<br>

### Messaging Application

Build an instant messaging app on Solana with the following:

* The app would pass encrypted messages over the network
* The app would be fully on-chain
* Build a GUI for people to chat with each other
* The app could be directly integrated to Serum DEX GUI

### Native Metamask Integration

Native MetaMask integration for Solana, SRM and SPL tokens. See [this introduction](https://medium.com/metamask/introducing-the-next-evolution-of-the-web3-wallet-4abdf801a4ee) to Web3 Plugins for more details

### Security Audits

Security audits of the following repositories:

* <https://github.com/serum-foundation/spl-token-wallet>
* <https://github.com/project-serum/sol-wallet-adapter>
* <https://github.com/project-serum/serum-dex-ui>
* <https://github.com/project-serum/serum-dex>

### Serum Oracle

An on-chain oracle that takes prices from Serum markets, does sophisticated risk and sanity checks on them, and creates a clean price feed that other projects working on Serum can use.&#x20;

Furthermore, once there are on-chain cross-chain bridges, those can be combined with this to create a fully on-chain cross-chain pricing oracle. *Confer with* [*Pyth network*](https://pyth.network)*.*

**Specs**:

* Takes in arbitrary signals
  * Can take from multiple sources
  * Combines in a reasonable way
* Has reasonable error handling and outlier handling
* Writes on-chain
* Some way to charge people for querying it on-chain
* A built-in way to use Serum orderbooks as an oracle

### SPL Name Service

Create a table where the mint of a token can submit a name for their token; create a table where a token controls governance of the naming. If you create this, EcoSerum will support the token’s adoption.

#### &#x20;<a href="#cross-chain-bridges" id="cross-chain-bridges"></a>

### SushiSwap

*Note: This is submitted on behalf of EcoSerum, a Serum node. Serum Academy is involved in the development of Serum but has not been involved in the development of Sushi in any way.*

**Proposal**

* The Sushi community builds out support for Sushiswap on Solana
* Sushi rewards are paid to both Ethereum and Solana/Serum based Sushiswap
  * Proportional to the TLV in each
  * Or alternately fixed to each pool
  * Open to other suggestions as well–what’s fair?
* The Sushi community composes this with the Serum orderbooks
  * Each Sushi pool has a curve, currently constant-product
  * The pool sends bids/offers into the associated Serum orderbook to simulate that curve
  * This allows the Sushi AMM to share liquidity and volume with the orderbook
  * There are maker rebates on Serum orderbooks that the AMMs would capture; they can also add on their own fees
* [FTX](https://ftx.com/) has a bridge from ERC20 <> SPL (Solana token) Sushi; in the next week, [Sollet.io](https://sollet.io/) will as well
* Sushi will also be able to compose with a borrow/lending protocol on Serum to allow the pools to trade on margin, though that’s not necessary for V1
* To clarify: Sushi would not be moving off of Ethereum in any way; this would be an addition, not a replacement.

### Solana RPC Node Innovation&#x20;

* Upgrades that scale throughput and consistency for RPC nodes on the Solana network.
* Protocols that manage decentralised RPC services for Solana built applications.


# EcoSerum Grants

This guide explains how builders can apply for and use EcoSerum's grant resources.

## 🌱 EcoSerum

EcoSerum brings active investors, traders, and developers together to build the Serum ecosystem.&#x20;

Serum is only as strong as its liquidity, accessibility, and community. Stakers are active SRM holders committed to Project Serum's long-term growth and supporting the development of UX focused tools and applications.&#x20;

## 🧾 Grants

{% hint style="info" %}
All projects built on Serum can apply for a **grant** by following the instructions below:
{% endhint %}

**To apply for an EcoSerum grant, please prepare the following:**

1. A pitch deck outlining your product vision / roadmap, team, and demos (if any)
2. Grant size request, and *specific* use of proceeds
3. A thorough explanation of *how* your project will [compose](https://projectserum.medium.com/calling-all-devs-serum-srm-and-an-ecosystem-for-the-future-part-3-ae7adbf4466e) with Serum (*e.g. composition with Serum order book markets to match spot orders, to liquidate positions, to rebalance portfolios, etc.*)

**Once collected, please e-mail the above information to** [**grants@projectserum.com**](mailto:grants@projectserum.com) **along with your request and any enquiries.**

{% hint style="warning" %}
There is no guarantee that you will receive a grant. Please contact <grants@projectserum.com> to know whether your project idea is eligible.
{% endhint %}

## 📞 Contact

* Project Serum Discord: <https://discord.com/invite/wZbHams7KV/>
* Project Serum Telegram: <https://t.me/ProjectSerum>


# Tutorials and Concepts

This guide lists a number of tutorials, projects as concepts or WIP's, and related resources.

## 📖 Building Tips

### Developer Resources&#x20;

For developer resources on Serum and Solana: <https://github.com/project-serum/awesome-serum>

### RPC Servers

For a default list of RPC servers to use: <https://github.com/project-serum/awesome-serum#rpc-servers>

* Others may be less reliable

### Serum Market Data

If you want to consume Serum market data, you have the following options:

* Javascript program for on-chain calls: <https://github.com/project-serum/serum-js>
* REST server: <https://github.com/project-serum/serum-rest-server>
* Serum API: <https://docs.bonfida.com/#introduction>

### Mainnet, Devnet, Testnet

Developers are recommended to have (by default) both a mainnet and devnet/testnet version with a toggle to test the protocol on both, as there may be differences in performance that are useful to be able to test:

{% hint style="info" %}
It is useful to have a devnet or testnet version, and also a mainnet version for full testing
{% endhint %}

### Authenticating Transactions

If you need to authenticate transactions, the recommended course of action is to use the SPL wallet adapter, which is what e.g. [sollet.io](https://sollet.io) users to connect to DEXes.

{% hint style="info" %}
Note: you can build in auto-accepting as an option! <https://dex.projectserum.com/#/> uses this with [sollet.io](https://sollet.io).
{% endhint %}

Users will be prompted to click: “Automatically approve transactions from [https://dex.projectserum.com](https://dex.projectserum.com/)”

If they do, then for that session:

* As long as the URL is the same
* As long as the transaction contents match the expected contents (e.g. a DEX order)

It will not require clicking "accept".

This code is in <https://github.com/project-serum/sol-wallet-adapter>.

If you want your program to be auto-accepted, submit a PR (pull request) that adds it!

* Bonfida and others also sometimes connect.

{% hint style="info" %}
Developers are recommended to use the same conventions as e.g. [sollet.io](https://sollet.io) for the seed phrase and private key.
{% endhint %}

### Composability

Consider composing with existing apps:

* If your app needs liquidity you can trade on a DEX orderbook or swap
* If your app needs to mint tokens, consider using [https://spl-token-ui.com](https://spl-token-ui.com/)
* Check out <https://github.com/project-serum/awesome-serum> for ideas and tools

### Fees Going to SRM Governance

For fees going to SRM governance, you can assign to [this address](https://explorer.solana.com/address/7EEAZWuzNZTUSCdwrw1JS4eX9D8uTTL91owsk4GC3zNB/tokens) if you want.

## 🎓 Tutorials and Project Concepts <a href="#tutorials-and-projects" id="tutorials-and-projects"></a>

### 📈 Host a GUI

Want to help support the Serum ecosystem? Host a GUI and get a fraction of the fees!

* An open source GUI: <https://github.com/project-serum/serum-dex-ui>
* More about staking and voting: [ https://projectserum.com/#/staking-and-voting](< https://projectserum.com/#/staking-and-voting>)

{% content-ref url="/pages/-MXQ5lEVZI1dcd8cLUeP" %}
[Host a GUI](/serum-ecosystem/build-on-serum/how-to-host-a-gui-serum-academy)
{% endcontent-ref %}

### 🛠️ DEX Integration <a href="#dex-integration" id="dex-integration"></a>

A technical introduction to the Serum DEX can be found [here](https://docs.google.com/document/d/1isGJES4jzQutI0GtQGuqtrBUqeHxl_xJNXdtOv4SdII/edit?usp=sharing).

#### DEX Resources

* [DEX source code](https://github.com/project-serum/serum-dex)
* [Serum.JS](https://github.com/project-serum/serum-js), client-side JavaScript resources to connect to the DEX
* [Serum DEX UI](https://github.com/project-serum/serum-dex-ui), an implementation of a UI for the Serum DEX
* Testnet deployment of prototype DEX:
  * [DEX Program](https://explorer.solana.com/address/9JipvuvjcirpYf8mzYQtozXeYtQLWY67LaZCiANSMNgs)
  * [DEX Market](https://explorer.solana.com/address/2tJ2LVReFCZF81Ej4MAQHEr1kRSmk6QQ5XSnzjC9KJNj)
* Mainnet examples:
  * [DEX Program](https://explorer.solana.com/address/4ckmDgGdxQoPDLUkDT3vHgSAkzA3QRdNq5ywwY4sUSJn)
  * [DEX Market](https://explorer.solana.com/address/8AcVjMG2LTbpkjNoyq8RwysokqZunkjy3d5JDzxC6BJa)
* [PySerum](https://github.com/serum-community/pyserum): Python client library for interacting with the Project Serum DEX.

### 🔁 Minting Tokens <a href="#minting-tokens" id="minting-tokens"></a>

* [SPL Token Creator UI](https://www.spl-token-ui.com/)
* [Bonfida Minter](https://bonfida.com/mint)
* [SPL Manager](http://splmanager.com/)

### 🧾 Token Contracts

* [Serum (SRM) SPL](https://explorer.solana.com/address/SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt)
* [Serum (SRM) ERC20](https://etherscan.io/token/0x476c5e26a75bd202a9683ffd34359c0cc15be0ff)
* [MegaSerum (MSRM) SPL](https://explorer.solana.com/address/MSRMcoVyrFxnSgo5uXwone5SKcGhT1KEJMFEkMEWf9L)
* [MegaSerum (MSRM) ERC20](https://etherscan.io/token/0x1320c8c64b9f2eAa851F70702e6C9FC1EE4E8Ce4)

### 🧾 Miscellaneous

* [Messaging App](https://github.com/kemargrant/soltalk) - Proof of Concept
* [AMM](https://github.com/solana-labs/solana-program-library/tree/master/token-swap) - Work-in-progress
* [SAMM](https://gitlab.com/OpinionatedGeek/samm)
  * [RFC](https://github.com/project-serum/rfcs/blob/master/text/0003-samm.md)
* **On-chain Pools:**
  * [A general preview](https://docs.google.com/document/d/1lmMZRKkxMFOtGOEZOFEKYL7syqv-4QT87F0o55fc35Y/edit)
  * [Work in progress code](https://github.com/project-serum/serum-dex/tree/pool-wip/pool)
* [**Bonfida**](https://bonfida.com/)**:**
  * [REST API](https://bonfida.com/blog/articles/serum-api) to get Serum market data
  * [GUI](https://github.com/dr497/serum-dex-ui)
  * [Wallet](https://github.com/dr497/spl-token-wallet)


# Listing and Adding Markets

This guide shows how you can add a new market on Serum.

## Listing and Adding Custom Markets

Anyone can now list SPL tokens or Wrapped ERC20 Tokens on Serum.

### List New Market

{% hint style="danger" %}
This will create a new market and will require SOL to do it, if you want to add a market to a GUI that hasn't listed it you need to **Add Custom Market**
{% endhint %}

This will create a new market for a pair of tokens. Anyone can list any SPL or (wrapper on) ERC20 token on [Serum](https://dex.cyclos.io/#/list-new-market).&#x20;

![](/files/-Mkboom4D5rZsuINpu4c)

* **Base Token Mint Address:** The base token is the token being traded. For example, the base token of a BTC/USDT market is BTC.
* **Quote Token Mint Address:** The quote token is the token used to price trades. For example, the quote token of a BTC/USDT market is USDT.
* **Minimum Order Size:** Smallest allowed order size. For a BTC/USDT market, this would be in units of BTC, a.k.a. the Lot size.
* **Tick Size:** Smallest amount by which prices can move. For a BTC/USDT market, this would be in units of USDT, a.k.a. the price increment.

{% hint style="warning" %}
Creating a market should cost around 4 SOL. At the moment there is no way to close the market and recover the funds, make absolutely sure you want to create a market.
{% endhint %}

1. Obtain your SPL tokens; you can convert them between ERC20 and SPL via [Wormhole](https://wormholebridge.com/#/) or [Sollet Bridge](https://docs.projectserum.com/guides/getting-started/wallet-support/sol-wallet-serum-academy/converting-erc20-to-spl-tokens).
2. Go to a [GUI that allows you to list market](https://dex.cyclos.io/#/list-new-market)s.
3. Enter the desired parameters and submit. Check your wallet for messages
4. Copy the New market address

The Nodes are handling the details (including [cranking](https://docs.google.com/document/d/1isGJES4jzQutI0GtQGuqtrBUqeHxl_xJNXdtOv4SdII/edit)). You will only have to bring your own liquidity.

{% hint style="danger" %}
The Token Address or **Mint Address** is the **contract address** of a token i.e. the **token identifier**. Do not send tokens to this address. You can look for the mint addresses on your wallet or an explorer.
{% endhint %}

{% hint style="info" %}
Your market won't automatically appear on GUIs that are not listed, you must add it as a **Custom Market** first.&#x20;
{% endhint %}

### Add Custom Market

Direct links to the market won't work if it hasn't been listed officially by the GUI, if you want to use it you must

* Click the **+ button** on the homepage of the DEX, normally next to the trading pair
* Enter the New Market Address (Market ID)&#x20;
* Choose the market Label and Base Label of the token
* Click Add

![](/files/-Mkc3lFN2eD_bms5MKX3)

{% hint style="info" %}
**Warning: unknown token** is the expected message when you enter the market ID, \
Do not use if it mentions being a deprecated market.
{% endhint %}


# Host a GUI

This guide offers instructions on how to create and host your own GUI on Serum.

## How do you Host a DEX GUI?

Want to help support the Serum ecosystem? Host a GUI and get a fraction of the fees!

* Open source GUI: <https://github.com/project-serum/serum-dex-ui>
* More about staking and voting: [https://projectserum.com/#/staking-and-voting](< https://projectserum.com/#/staking-and-voting>)

Anyone can trade on any of the DEX markets, as they are not permissioned:

* <https://github.com/project-serum/serum-dex>
* <https://github.com/project-serum/serum-js>&#x20;
  * (Has some interfacing code to make it easier to trade)

In the spirit of DeFi, users are invited to compose with, it, and host their own GUIs.

### &#x20;<a href="#serum-gui" id="serum-gui"></a>

### Serum GUI <a href="#serum-gui" id="serum-gui"></a>

You will find the **official repository** of Serum DEX UI here:

{% embed url="<https://github.com/project-serum/serum-dex-ui>" %}

This repository provides everything you need to start your own Serum GUI.

Once you have forked the repository, you can run a local environment by running:

```
yarn start
```

### Customizing <a href="#customizing" id="customizing"></a>

The Serum DEX UI uses [React](https://reactjs.org/) and [Ant Design](https://ant.design/) UI library. To learn how to customize it, refer to their [official guide](https://ant.design/docs/react/customize-theme).

### Collecting Fees <a href="#collecting-fees" id="collecting-fees"></a>

Serum allows you to collect 20% of the fees for the orders made on your GUI. In order to collect the fees, you need to modify the `.env` file that looks like this:

```
REACT_APP_USDT_REFERRAL_FEES_ADDRESS=''
REACT_APP_USDC_REFERRAL_FEES_ADDRESS=''
```

To collect fees enter your USDT **SPL** and USD **SPL** addresses, for example:

```
REACT_APP_USDT_REFERRAL_FEES_ADDRESS=9EscMUvizE1ThHWuWQgs8siDz4r54yVxhZDub3ihWQAX
REACT_APP_USDC_REFERRAL_FEES_ADDRESS=9GiKG99ngtKzhQcNXtHokuhx5gk7ftKfrmKtrybHFNa1
```

#### Setting your own Domain Name

The `package.json` file contains a field called `homepage`, change it to your name domain.

###

### Hosting

There are different solutions to host your GUI. You can host it for free on Github Pages or host it on your own server.

#### Github Pages

This is the easiest way of hosting and deploying a GUI, you simply have to use the following command to deploy your GUI

```
yarn deploy
```

The GUI will then be hosted on the `gh-pages` branch of your Github repository.

#### Hosting on your own Server

Alternatively, you can host your GUI on your own server and use Nginx for instance to serve it. To create the production build run:

```
yarn build
```

The build will be created in the `build` folder of the working directory.


# Node List

This guide offers a comprehensive list of Serum nodes and a point of contact for prospective nodes.

{% hint style="info" %}
If you want your (prospective) node to be listed here, please email: <support@projectserum.com>
{% endhint %}

## Node List

### 3Commas & Smile Research

3Commas is the leading bot trading platform exploring new opportunities in algo trading and market making together with Smile Research.

{% embed url="<http://3commas.io>" %}

### Age Network

AGE Network will support Serum from launch and currently runs a top Solana validator.

{% embed url="<https://age.network>" %}

### AKG Ventures

AKG Venture is a self-operated primary/secondary investment hedge fund. The primary fund is involved in innovative finance (cryptocurrency, etc.). The secondary funds are mainly derivatives hedge funds.

{% embed url="<http://www.akgvc.com>" %}

### AlexDCrypto

> Easy to validate

```
6BVck3C2iopQpJiGQecX736ZgQxAsVTEq5gBSDuXWLXm
```

Twitter: <https://twitter.com/AlexDcrypto>

### Blocto

Blocto is a smart contract wallet with seamless user experience. Stake SRM with us to get more reward.

{% embed url="<https://blocto.portto.io/en/>" %}

### AscendEX

AscendEX (formerly BitMax.io) is a global digital asset trading platform driven by product innovation.

{% embed url="<https://ascendex.com/en/login>" %}

### Capsule Mining

{% embed url="<http://www.capsulemining.com>" %}

### Certus

Certus One is a staking provider and leading Solana contributor. We have helped identify over 20 critical bugs in Solana and are the developers of the Wormhole bridge. Support our work by staking.

{% embed url="<https://Certus.One>" %}

### Chainode Tech

Founded in early 2019, Chainode Tech is a young, extremely motivated and experienced team based in Zug, Switzerland, that is focused on providing staking and validator services on cutting edge Distributed Ledger Technology (DLT) protocols. Driven by the motivation to bring decentralization in the real world and with the experience of getting to know the blockchain space since 2014, we actively joined the ecosystem as Chainode Tech in order to vote with our knowledge and services projects that we believe in and see as technically pertinent of growing the decentralized space.

{% embed url="<https://chainode.tech/>" %}

### DecaMegaDAO

Jacked in to the netnavi, slashing viruses and adversaries with the mega buster, collecting battle chips and sweet serum.

{% embed url="<http://megadao.eth.link/>" %}

### Dokia Capital

Dokia Capital is one of the most reputable professional validators. We operate an enterprise-grade infrastructure, fit for institutional staking, and ensure the security and stability of the networks that we join. We’re very careful and deliberate about the projects that we support because our commitment to their success goes past the responsibilities of a validator.

{% embed url="<https://staking.dokia.cloud/>" %}

### EcoSerum

ecoSerum brings active investors, traders and developers together to build the Serum ecosystem. Our stakers are active SRM holders committed to seeing Project Serum flourish, supporting the development of UX focused tools and applications.

{% embed url="<https://www.ecoserum.dev/>" %}

### FTX

FTX is a cryptocurrency exchange that allows you to stake directly from your FTX account.

{% embed url="<https://ftx.com>" %}

### Kyros Ventures

Stake with Kyros Staking, Vietnam's first and largest Serum Node in partnership with the Coin98 Wallet.

{% embed url="<https://kyros.ventures/staking/>" %}

### Genesis Block

Genesis Block is a leading Over The Counter (OTC) trading center for digital assets.

{% embed url="<https://genesisblockhk.com/staking-srm/>" %}

### P2P Validator

P2P Validator is a non-custodial staking provider with a proven expertise trusted by over 2000 clients with over $200M of digital-assets under management. As an early Solana investor, we have been involved in all stages of network testing since the first launch and are currently operating secure Solana validator.

{% embed url="<https://p2p.org>" %}

### QCP Soteria

> AccumulatorNode

{% embed url="<https://qsnholdings.com/?lang=en>" %}

### Sebytza05

> SOL validator, DEX lover, security, p2p, ethereum, crypto, chess, tennis :) Luv u if u luv me

```
DekVFzXypMuq1rDMFJ1tPrk3tC9KAoSCWchfCm4juVhK
```

Twitter: <https://twitter.com/sebytza05>

### Serum Capital

Fast, reliable and efficient supernode.

{% embed url="<https://serum.capital>" %}

### Serum Pool

{% embed url="<https://serumpool.com>" %}

### Serum Stakers

View your SRM wallet, node information, yield analysis, valuation displays, your liquidity profile, new node program and the S18 Rewards Program.

{% embed url="<http://www.serumstakers.com>" %}

### Staking Facilities

Staking Facilities is a staking-as-a-service company with currently six full-time employees. We are early Solana investors, supporters, and builders of solanabeach.io. We run market-making operations for Solana and are thrilled to move those over to Serum. Staking with us means supporting our holistic efforts to bootstrap the Solana/Serum ecosystem.

{% embed url="<https://stakingfacilities.com/>" %}

### Ubik Capital

Ubik Capital is providing highly resilient and secure staking service for different blockchain projects.

#### SPL Address:&#x20;

```
13gsguoNCRsdX8NuK2TSuYuMVcK7zxGVhtKaphBUe7Qf
```

{% embed url="<https://ubik.capital/>" %}

### W3M

> In a world of machines... What is the role of humans

```
HLiNSbSQS4g1xeN6Y68poNVJisJtrFT1bnXgCHz4gy2m
```

{% embed url="<https://github.com/pkrasam>" %}


# Trade on Serum

Understanding Serum's Shared Liquidity Model.

There are many ways to trade on Serum. When using an Application that trades via Serum, you may be trading against someone else using a completely separate application.&#x20;

This shared liquidity is one of the most powerful attributes of Serum, as it pools liquidity in one place and makes it accessible for any other applications on Solana.

Websites or applications that use Serum's protocol are free to customize the experience to satisfy their use case and compliance needs of their target market.&#x20;

There are many teams hosting Graphical User Interfaces (GUIs) on Serum. Below is an example of how Serum allows applications to share the same order book.

![](/files/-MiFIEy4PX4_cNEQWiNg)

## &#x20;<a href="#wallets" id="wallets"></a>


# Ecosystem

The Serum ecosystem is a diverse collection of innovative decentralised applications building upon the Serum order book and matching engine architecture.

### How will you build on Serum?&#x20;

What can Serum power for you? The use cases are abundant.

![](/files/3Ksyn7LZXGE33lfzmxJj)

### Want to get involved with Serum?&#x20;

There's many ways. Check them out here:

{% embed url="<https://projectserum.medium.com/calling-all-devs-serum-srm-and-an-ecosystem-for-the-future-part-3-ae7adbf4466e>" %}

{% embed url="<https://docs.projectserum.com/serum-ecosystem/building-on-our-vision/project-ideas-for-serum>" %}

{% embed url="<https://projectserum.medium.com/building-on-serums-vision-38577235f70f>" %}

{% embed url="<https://projectserum.medium.com/an-ultimate-vision-for-serum-473a16e77201>" %}

### Serum, SRM, and an Ecosystem for the Future

{% embed url="<https://projectserum.medium.com/serum-srm-and-the-ecosystem-part-1-2742f6a24597>" %}

{% embed url="<https://projectserum.medium.com/serum-srm-and-an-ecosystem-for-the-future-part-2-91398e75ce27>" %}

{% embed url="<https://projectserum.medium.com/calling-all-devs-serum-srm-and-an-ecosystem-for-the-future-part-3-ae7adbf4466e>" %}


# Trading GUIs

Interact with Serum via Graphical User Interfaces (GUIs).

Anyone can set up their own state-of-the-art Serum-based DEX GUI or embed the Serum Swapper into their UI.

Each trading interface that interacts with Serum is free to customize their user experience and restrictions to comply with the regulations of their target market.

{% hint style="danger" %}
The dApps below are not vetted by Project Serum. Use at your own risk.
{% endhint %}

Do you believe your Serum-based DEX GUI or Swap GUI should be listed below? Please [reach out](mailto:dashboard@projectserum.com).

## Serum Portal

{% embed url="<https://portal.projectserum.com>" %}

## 💱 Swap GUIs

{% embed url="<https://swap.symmetry.fi/>" %}

{% embed url="<https://mercurial.finance/>" %}

{% embed url="<https://solflare.com/swap>" %}

{% embed url="<https://app.atrix.finance/#/swap/>" %}

{% embed url="<https://app.cyclos.io/>" %}

{% embed url="<https://exchange.coin98.com>" %}

{% embed url="<https://step.finance/#/swap>" %}

## 📈 Full Featured DEX GUIs

{% embed url="<https://dex.bonfida.org/#/>" %}

{% embed url="<https://dex.raydium.io/>" %}

{% embed url="<https://trade.mango.markets>" %}

{% embed url="<https://trade.dexlab.space/>" %}

{% embed url="<https://dex.aldrin.com>" %}

{% embed url="<https://dex.cyclos.io/#/>" %}

{% embed url="<https://dex.sonar.watch/>" %}

{% embed url="<https://trade.ninjaprotocol.io>" %}

{% embed url="<https://solape.io/>" %}

{% embed url="<https://dex.compendium.fi>" %}

{% embed url="<https://catodex.com/#/>" %}

## 🛠️ Other Integrations <a href="#blockchain" id="blockchain"></a>

{% embed url="<https://app.step.finance/#/dashboard>" %}

{% embed url="<https://sideshift.ai/srm/eth>" %}

{% embed url="<https://zelcore.io/>" %}

## ⚠️ Important Notes

{% hint style="warning" %}
Some previously known DEX GUIs have not migrated to the Serum V3 markets (launched March 2021). They are removed from this list.
{% endhint %}

{% hint style="danger" %}
Do NOT interact with DEX GUIs listing the old Serum DEX V2 markets! Users are encouraged to reach out to these GUI teams and inform them of the [migration to Serum DEX V3](https://twitter.com/ProjectSerum/status/1369479249606934530).
{% endhint %}


# Get Help / FAQ

This page collects and answers the most popular and common questions. Information here can also be found in the appropriate pages of our Serum documentation.

## ❓ General FAQ

### What do I need to trade on the DEX?

You need an SPL wallet ([Phantom](https://phantom.app/) or [Solflare](https://solflare.com/) being good options) and enough SOL for transactions fees. Try to keep your balance above 0.1 SOL at all times.

### Why can't I see my tokens in my wallet after a trade?

1. Go to the market pair you were trading on. e.g. [SRM/USDC](https://dex.projectserum.com/#/market/ByRys5tuUWDgL73G8JBAEfkdFf8JWBzPBDHsBVQ5vbQA)
2. Check your balances for open orders -> Cancel the order
3. Check unsettled balances -> Click 'Settle'&#x20;

If the issue is still unresolved:

* Connect to [step.finance](https://app.step.finance/#/dashboard) and **check for unsettled balances**.

![](/files/-MlS990t2LusptlDtoL9)

### **What is settlement? Why do I have to do it?**

All trades done on the DEX/swap uses an intermediary account for each pair. Filled or canceled, funds needs to be settled back to your wallet. This process is automated by some wallets if you chose the option to auto-approve transactions.

### **I keep getting fail to fetch errors, error loading markets, or balance flickering whenever I try to trade on the DEX or see my balances.**

This is due to RPC nodes being overloaded. You can try again later, use [another GUI](https://docs.projectserum.com/serum-ecosystem/built-on-serum/trading-guis) or settle/cancel via [step.finance](https://step.finance/).

### **Why did the trade take a \~0.02 SOL fee?**

There is a rent of 0.02\~ SOL per market pair when trading on it for the first time to create the intermediary “open order account” that interacts with the dex. This can later be recovered later if you're not planning to use that pair again.

You can read more about this here: <https://docs.solana.com/storage_rent_economics>

### **Where can I stake SRM?**

On FTX exchange or AscendEX exchange.

Read more about on-chain staking here: <https://docs.projectserum.com/guides/about-staking/staking-srm>

### **What is the SRM staking APR?**

<https://serumpulse.com/main/staking>

### **I sent a cross chain transfer from Solana to Ethereum, but I didn't get it.**&#x20;

You probably lost your connection with metamask. Refresh your browser. Connect metamask to sollet.io. Open the token account details in your sollet wallet. Click the `Send` dialog, and metamask should popup, prompting you to complete the transfer.

Remember you must have the Estimated ETH fee on your metamask.

Read more about it here: <https://docs.projectserum.com/guides/getting-started/wallet-support/sol-wallet-serum-academy/converting-erc20-to-spl-tokens>

### **Common Error Messages:**

* **System program error 1; Custom program error 0x1**\
  System program error 1 indicates a lack of SOL in the wallet to complete the transaction. You may need as much as 0.03-0.1 to conduct a trade. Always try to keep your SOL balance over 0.1 to prevent most issues. If you're sending the MAX amount of SOL from your wallet you might need behind around 0.000005\~ SOL.
* **Custom program error: 0x22"**\
  Insufficient Funds, doesn't have enough tokens to do the trade.
* **Initialize Account**\
  You don't have enough sol to create the open order account, read FAQ: *Why did the trade took 0.02\~ SOL fee?*
* **Fail to fetch errors**\
  RPC issues, change to a GUI that uses different nodes or wait for a bit while it gets better.
* **Signature verification failed:**\
  The imported private key is likely wrong.
* **Price must be an increment of X**\
  Tick price decided when the market was created. You can only move the price by multiple of this.

## 👛 Wallet

### Is there a sollet.io wallet extension?

A sollet.io extension on Google Chrome was recently released. It is currently in beta mode:

{% embed url="<https://chrome.google.com/webstore/detail/sollet/fhmfendgdocmcbmfikdcogofphimnkno>" %}

### How do I restore my sollet.io wallet?

To restore (recover) your wallet, you will need your seed phrase from when you first created your wallet.

{% hint style="danger" %}
Without your seed phrase, your funds will be lost forever.
{% endhint %}

1 - Press "**Restore existing wallet**" at the bottom of the sollet.io menu box.

![Restore existing wallet prompt window](/files/-MXJ3DV3kUAssdFvwcDP)

If you are trying to restore your wallet but the proceed button is not highlighted (you cannot click), please ensure that there is a single space between all your seed phrase words.&#x20;

{% hint style="warning" %}
If you physically wrote down your seed phrase, be careful with spelling (e.g. sub-consciously mixing US and UK spelling like 'grey' and 'gray' or mix-ups like 'identity' and 'identify')!
{% endhint %}

If this does not work, try opening a different browser or a private browser window. If this is still unsuccessful, please contact an admin.

Once you have inputted the correct seed phrase, a dropdown list of *paths* (addresses) will appear.&#x20;

{% hint style="info" %}
A specific seed can generate multiple paths. These paths are different addresses you own. You must retrieve the same path you used before.
{% endhint %}

![Dropdown list of derivable accounts when restoring your wallet](/files/-MXJ4-ire7tZ1XO9CFqu)

2 - Select the correct address and press restore.

### How do I restore my sollet.io if the Derivable Accounts drop-down menu shows 0.0000 SOL for each balance?

If you have SPL tokens on your wallet, they will not show up until after you have selected.&#x20;

1 - Select your derivation path and hit "**RESTORE**". Next, to derive your SOL accounts, go to **ACCOUNT** > **"Add Account**".&#x20;

![](/files/-MZx_onGJIs4rEHsbiHh)

1A - There is no need to check the "**Import private key**" toggle unless you want to import a complete different address. "**Add Account**" will iterate through the list presented on the **Restore** screen.

If these steps did not work, you may want to try the following:

1 - Make absolutely sure you are using the right seed phrase.

{% hint style="warning" %}
If you physically wrote down your seed phrase, be careful with spelling (e.g. sub-consciously mixing US and UK spelling like 'grey' and 'gray')!
{% endhint %}

2 - Make sure you are on the right derivation path.

When you enter a seed and you see only 0 SOL accounts, those accounts are actually part of the same derivation path.

Select the dropdown in the upper-right of the [sollet.io](https://sollet.io) window to switch between paths.&#x20;

{% hint style="info" %}
The default derivation path is m/44'/501'/0'/0'
{% endhint %}

It is likely that after cycling through the dropdown paths, you will have found at least one path with a non-zero SOL account.

2A - If you are certain about your seed phrase and derivation path, try pressing "**Add Account**" multiple times until your SOL balance appears.

3 - If the last two steps did not work, you may have to try restoring on all derivation paths to see what balances show up when loading the wallet.

To restore each path, you can log out normally and try restoring again. You can also clear your browser cache each time to prompt the restore option.

### Can I find my private key in a device's local storage?

There have been success reports by other users on the following recovery steps:

> * Used an old laptop (that had been dormant for >1 year)
> * Downloaded the backup folder from before the cookies were erased: /Users//Library/Application Support/Google/Chrome/\*
> * Using the CLI (vs Finder) I copied over the folder to the location on the old laptop
> * When loading up Chrome, it had restored the cookies and state of the browser

### How can I cancel an order on Serum?

Whenever you connect your wallet, [sollet.io](https://sollet.io) will open a pop-up window or tab. Please approve of your transactions, including cancellations, in this new window or tab.

{% hint style="info" %}
You must manually approve all transactions through the pop-up from when you open or connect your sollet.io wallet!
{% endhint %}

{% hint style="warning" %}
The pop-up may appear behind your browser window.&#x20;
{% endhint %}

If you are trying to change or cancel an order, for example, be sure to approve the transaction in your [sollet.io](https://sollet.io) pop-up window. It may be behind your main browser window.

### Do I need to export the private key under each SOL account, or is having the seed phrase enough?

Having the seed phrase is enough.

### Can I stake SRM inside sollet?

You can stake SRM in the [staking program](https://stake.projectserum.com/#/). You cannot stake inside [sollet.io](https://sollet.io). You must stake within the staking program, such that SRM will leave your wallet.

### Can I move my staked tokens from sollet to my Ledger wallet without unstaking and restaking?

Currently, you cannot move my your tokens this way.

## 💱 Trading

### Fees

#### **The fees on trades are (taker / maker):**

* **Hold <100 SRM:** 22bps / -3bps
* **100 SRM:** 20bps / -3bps
* **1,000 SRM:** 18bps / -3bps
* **10,000 SRM:** 16 bps / -3bps
* **100,000 SRM:** 14 bps / -3bps
* **1m SRM:** 12 bps / -3bps
* **1 MSRM:** 10bps / -5bps

#### Fees in the ecosystem currently work as follows:

* 20% of net fees go to the project or GUI hosting the activity
* 2% of net fees go to ecoSerum
* 10% of net fees go to nodes as staking rewards
* 68% of fees go to buy and burn of SRM

## 📚 Orderbook

### What is crank turning?

The job of matching orders is often referred to as “**crank turning**”. The primary groups responsible for ensuring that cranks are turned promptly are **nodes**.

A node is a collection of SRM staking together, including at least one MSRM. Nodes manage much of the Serum ecosystem. Since nodes handle cranking, users interested in adding their own markets only have to bring their own liquidity.

Those who pay blockchain transaction fees to turn this crank will be compensated such that doing so is worthwhile.

A more [technical introduction](https://docs.google.com/document/d/1isGJES4jzQutI0GtQGuqtrBUqeHxl_xJNXdtOv4SdII/edit#heading=h.b3e4ep5arwb2) to the Serum DEX explains the rationale behind cranking in more detail.

### **My funds are stuck on an old market. How do I get them out?**&#x20;

You need to run a crank against the market. Anyone can do it. If you're familiar with the command line, run this command in `serum-dex/dex/crank`:

```
cargo run -- mainnet consume-events --coin-wallet <DUMMY> --pc-wallet <DUMMY> -d <DEX-PID> -e 5 --log-directory ./my-crank.log -m <MARKET-ADDRESS> --num-accounts 5 --num-workers 1 --payer <PATH-TO-SOLANA-WALLET>
```

The dummy addresses can be anything. `--events-per-works` , `--num-accounts` and `--num-workers` can be configured as needed.

## 📞 Contact

If you are ever unsure, please private message an admin on Serum's social media channels. The admins will be happy to assist you.

{% hint style="danger" %}
Beware of scams. Admins will never message you first!
{% endhint %}

### **Customer Support**

* **Discord:** <https://discord.com/invite/zxPsXcB>
* **Telegram:** <https://t.me/ProjectSerum>
* **Twitter:** <https://twitter.com/ProjectSerum>
* **Email:** <contact@projectserum.com>


# Changes to Staking

FAQ on the upcoming changes to staking

Beginning 5th October 2021, fees will no longer be dropped weekly, but will go directly to buy and burn until the DAO is ready to vote on fee distribution.&#x20;

**Why is this happening?**

As Serum evolves into a DAO, part of the decentralization process entails adjustments to how incentives work. There will be important changes that will make decentralised governance possible for Serum.

**Why is Serum moving to a DAO?**

Serum is preparing to meet the demands of a bigger and more diverse group of users. Decentralised governance is an important step that will create a framework for the community to have their say.

**What do I do with my staked tokens?**

You have until 5th October 2021 to remove your staked tokens from stake.projectserum.com

**When will the final staking reward be provided?**

The final staking reward will be provided during the week beginning 4th October 2021. You may keep your funds staked until the 5th of October but will not receive any further rewards after this final staking reward.


# Wallet Support

An overview of how to interact with your connected wallet.

## Our Wallet Guides

The next pages offer guides to using non-custodial and exchange wallets to interact with the Serum and Solana ecosystems.&#x20;

Users are recommended to check out the guides offered by third-party wallet creators and to conduct thorough research before making a transaction.

{% hint style="warning" %}
Do your own research before making a financially significant decision! Contact an admin if you are unsure about a step.
{% endhint %}

## **SPL Token Standard**

Serum and Solana ecosystem tokens are accessible through both non-custodial wallets and a number of centralized exchanges.&#x20;

Tokens that trade on Serum are governed by Solana's [SPL token standard](https://spl.solana.com/token), which allows them to take advantage of fast speeds and low transaction costs.&#x20;

The Solana Program Library (SPL) token standard is a collection of on-chain programs maintained by the Solana team. SPL tokens can be minted on Solana, just as ERC-20 tokens can be minted on Ethereum, and are designed for DeFi applications.

## Exchanges

### [FTX](https://ftx.com/) <a href="#ftxhttpsftxcom" id="ftxhttpsftxcom"></a>

* SOL
* SPL Tokens
* ERC20 <> SPL tokens conversion

{% embed url="<https://ftx.com>" %}

### [Binance](https://binance.com/) <a href="#binancehttpsbinancecom" id="binancehttpsbinancecom"></a>

* SOL
* SRM **(ERC20 only)**

{% embed url="<https://binance.com>" %}

### [AscendEX](https://ascendex.com) <a href="#bitmaxhttpsbitmaxio" id="bitmaxhttpsbitmaxio"></a>

* SOL
* SRM **(ERC20 only)**

{% embed url="<https://ascendex.com>" %}

### [FTX US](https://ftx.us/) <a href="#ftx-ushttpsftxus" id="ftx-ushttpsftxus"></a>

* SOL

{% embed url="<https://ftx.us>" %}


# Wallets

This guide offers a comprehensive list of all known non-custodial wallets with SPL support.

## 🌐 Web Wallets

{% embed url="<https://sollet.io>" %}

* [sollet.io Github](https://github.com/serum-foundation/spl-token-wallet)
* [SOL Wallet Adapter](https://github.com/project-serum/sol-wallet-adapter) - (library to allow Solana dApps to use third-party wallets to sign transactions)

{% embed url="<https://solflare.com/>" %}

{% embed url="<https://phantom.app>" %}

{% embed url="<https://mathwallet.org/en-us/>" %}

{% embed url="<https://zelcore.io>" %}

## 📲 Mobile **Wallets**

{% embed url="<https://coin98.com/wallet>" %}

{% embed url="<https://www.bitkeep.org/en/index.html>" %}

{% embed url="<https://mathwallet.org/en-us/>" %}

{% embed url="<https://slope.finance/#/>" %}

{% embed url="<https://zelcore.io>" %}

## 📑 Browser Extensions <a href="#browser-extensions" id="browser-extensions"></a>

{% embed url="<https://chrome.google.com/webstore/detail/coin98-wallet/aeachknmefphepccionboohckonoeemg?hl=en>" %}

{% embed url="<https://mathwallet.org/en-us/>" %}

{% embed url="<https://chrome.google.com/webstore/detail/phantom/bfnaelmomeimhlpmgjnjophhpkkoljpa>" %}

{% embed url="<https://chrome.google.com/webstore/detail/solflare-wallet/bhhhlbepdkbapadjdnnojkbgioiodbic>" %}

{% embed url="<https://chrome.google.com/webstore/detail/sollet/fhmfendgdocmcbmfikdcogofphimnkno?hl=en>" %}

## 🔩 **Hardware Wallets**

{% embed url="<https://ledger.com>" %}

{% embed url="<https://safepal.io>" %}

{% hint style="danger" %}
Not all projects are not open source. Use at your own risk.
{% endhint %}


# Exchanges

This guide offers a comprehensive list of exchanges that support storage and transfer of Solana and Serum ecosystem tokens.

## Exchange Support (SPL)

### [FTX](https://ftx.com/) <a href="#ftxhttpsftxcom" id="ftxhttpsftxcom"></a>

* SOL
* SPL Tokens
* ERC20 <> SPL tokens conversion

{% embed url="<https://ftx.com>" %}

### [Binance](https://binance.com/) <a href="#binancehttpsbinancecom" id="binancehttpsbinancecom"></a>

* SOL
* SRM **(ERC20 only)**

{% embed url="<https://binance.com>" %}

### [AscendEX](https://ascendex.com) <a href="#bitmaxhttpsbitmaxio" id="bitmaxhttpsbitmaxio"></a>

* SOL
* SRM **(ERC20 only)**

{% embed url="<https://ascendex.com>" %}

### [FTX US](https://ftx.us/) <a href="#ftx-ushttpsftxus" id="ftx-ushttpsftxus"></a>

* SOL

{% embed url="<https://ftx.us>" %}

### [Coin98](https://exchange.coin98.com/)

* DEX aggregator

{% embed url="<https://exchange.coin98.com>" %}


# Using Sollet (sollet.io)

Setting up your sollet.io wallet to interact with Serum applications.

## Important Note

You must manually approve all transactions through the pop-up from when you open or connect your sollet.io wallet.

*Sometimes, the pop-up will appear behind your browser window.*&#x20;

If you are trying to change or cancel an order, for example, be sure to approve the transaction in your sollet.io pop-up window. It may be behind your main browser window.

{% hint style="info" %}
You must manually approve all transactions through the pop-up from when you open or connect your [sollet.io](https://sollet.io) wallet!
{% endhint %}


# Creating SOL Wallet

This guide explains how to create your sollet.io wallet.

The first step is to create a [sollet.io](https://sollet.io) wallet, if you wish to use this wallet.

Your [sollet.io](https://sollet.io) wallet can be funded with **SOL** or **ETH** that will be converted to SOL using the **convert** function.

Once you arrive on [sollet.io](https://sollet.io) for the first time, you will see an option to create a new wallet. You will automatically be given a seed phrase (seed words).

{% hint style="warning" %}
Save your seed phrase offline and somewhere safe! Your seed words are the only way you can recover your wallet!
{% endhint %}

![Create new wallet prompt on S](/files/-MXQIt0eleiMuadIxpQ1)

Once you have saved your seed words in a safe place, you can next create a wallet password.&#x20;

{% hint style="warning" %}
Creating a wallet password is optional but highly recommended!
{% endhint %}


# Depositing Funds

This guide explains how to deposit funds on your sollet.io wallet to interact with Serum and ecosystem.

Once the password is set (or not), you have successfully created your SOL wallet. The next step is to send SOL to your deposit address. SOL can be bought on exchanges like [Binance](https://binance.com/), [FTX](https://ftx.com/), or [FTX US](https://ftx.us/).

![Balances window in sollet.io](/files/-MXQP2TTZiwKW2VWkfwn)

Let’s add some SOL to our wallet. You will need to first click "**RECEIVE**". A pop-up will appear with your SOL address. Use this address to send SOL from an exchange.&#x20;

{% hint style="warning" %}
Only send SOL to this address. Do not send other SPL tokens (e.g. SRM) to this address!
{% endhint %}

![Depositing SOL on sollet.io](/files/-MXQPWPF9aW76UO6l_2P)

You can also fund your wallet with ETH and **convert** it to SOL. To do this, click on the **ETH** tab and connect to your **Metamask** wallet.

![Depositing SOL (ETH) on sollet.io](/files/-MXQPi8nTVocKcU7fbGY)

With SOL in your wallet, you can create another SPL address in your wallet.&#x20;

To add another address, click on the **+** icon in the top right corner. A pop-up will appear with an option to add a popular SPL token, including: **SRM**, **MSRM**, **FTT**, **BTC**, **ETH**, **LINK** **XRP**, **USDT**, **USDC**.&#x20;

Now that you have added an SPL address, you can deposit tokens through the following methods:

* You can deposit **ERC20** tokens and **convert** them to SPL tokens using the **convert** function of [**sollet.io**](https://sollet.io) and **Metamask** (to learn how to convert ERC20 to SPL, please refer to the dedicated section below).
* You can use [**FTX**](https://ftx.com/) to deposit tokens (ERC20, XRP, BTC, etc) and withdraw from [FTX](https://ftx.com/) to [sollet.io](https://sollet.io). [FTX](https://ftx.com/) will automatically wrap your crypto as an SPL token to be used on the Serum DEX.&#x20;
  * To convert wrapped SPL assets back into their native chain, you can deposit them into [FTX](https://ftx.com/) and withdraw the unwrapped assets.

![Add a popular SPL token on sollet.io](/files/-MXQVRIZqpr7cGWAlwrC)

Following our example, you should see that an SRM address appeared below your SOL address. You can use this address to send and receive funds to your [Sollet.io](https://sollet.io/) wallet.

![Addresses of newly added SPL tokens on sollet.io](/files/-MXQVzuCAITw32Zk3x4g)

If you would like to add another token that’s not on the Popular Token list, you can add it manually by entering the **Mint Address** of the token.

![Token mint address box on sollet.io](/files/-MXQWMnYXiHA6YYZmDKe)

{% hint style="warning" %}
The Token Address or Mint Address is the contract address of a token i.e. the token identifier. Do not send tokens to this address!
{% endhint %}

{% hint style="warning" %}
The Deposit Address is the address where you deposit tokens to.
{% endhint %}

##


# Managing your Wallet

This guide explains how to manage your sollet.io wallet.

### **Importing Wallets**

Any Solana wallet seed phrase can be imported into [sollet.io](https://sollet.io).

{% hint style="warning" %}
Be sure to keep your seed phrase secure and always check the URL when importing your private key.
{% endhint %}

![](/files/-MY9AdcnkGzGybSA-liU)

{% hint style="info" %}
If you already have a Solana wallet open and want to connect a second wallet, try using a private browser window.&#x20;
{% endhint %}

### Derivable Accounts

It is possible to have multiple token addresses within the same wallet on Solana. When importing your private key between different types of wallets, it is possible that some apps create different addresses within your wallet. &#x20;

You can choose to access these different accounts when importing your wallet. Simply select from the Derivable Account drop down menu.

![](/files/-MY9B8FS_cSckqLhEbvu)

### Merge

If you would like to consolidate the token balances you own across the different accounts in your wallet, you can use the "**Merge**" function.&#x20;

![](/files/-MY9CSbccIaUr9QCKViH)

{% hint style="info" %}
Note: Some apps you are using with the wallet may depend on the existing token accounts you currently have set up in your wallet.
{% endhint %}


# Using Sollet with Ledger Nano S

This guide explains how to set up and manage your sollet.io wallet with a Ledger hardware wallet.

{% hint style="danger" %}
Make sure your ledger device firmware is up to date. In the ledger settings, make sure you have enabled **blind signing.**
{% endhint %}

### **Step 1: Create or Import an Existing Wallet (Non-Hardware Wallet)**

![](/files/-MY97B9KJSkPsakFYG6I)

### **Step 2: Add your Hardware wallet**

Go to "**Account**" and select "**Import Hardware Wallet**"

![](/files/-MY988uVKMRXacewSC8c)

### **Step 3: Connect and Unlock your Ledger Device**

![](/files/-MY98RDSif1ERqOw9wNH)

Once connected, click **"CONTINUE**" and open your wallet.


# Converting ERC20 to SPL tokens

This guide offers an overview on how to convert between ERC20 to SPL tokens. sollet.io allows you to convert ERC20 to SPL and vice versa using MetaMask.

{% hint style="info" %}
You can use the **convert** function to deposit ETH and ERC20 tokens to your [sollet.io](https://sollet.io) wallet.
{% endhint %}

To do so, click on the token you would like to deposit. When the deposit prompt appears, click on the **ERC20** Tab.

![Deposit ERC20 tab](/files/-MXQWgEjLEvqD3vItFYf)

Click on "**CONNECT TO METAMASK**". A **MetaMask** pop-up will open; click on **Confirm**.

Once your wallet is connected, enter the amount of **ERC20 token** you would like to convert and click on "**CONVERT**". A **MetaMask** pop-up will open, asking to confirm the transaction and set the gas fees:

![](/files/-MXQX3xQWtjDYMoOTwfq)

Next, wait for the transaction to be confirmed on the blockchain

![Depositing your ERC20](/files/-MXQXIUXn_bWv6CY5S2p)

Once the transaction is confirmed, the funds will be available in your wallet.

Now we have deposited some tokens in our [sollet.io](https://sollet.io) wallet. You are now ready to do a trade on Serum.


# Trade on Serum DEX

This multi-page guide to trading on Serum offers an overview of how to interact with Serum native exchange User Interfaces and the connected wallet.

Our step-by-step tutorials will show you how to trade on Serum across a number of popular Graphical User Interfaces (GUIs).

There are many teams who are hosting GUIs on Serum's protocol. Some have significantly customized the experience.

{% hint style="danger" %}
None of the DEXs mentioned are vetted by Project Serum. Use at your own risk.
{% endhint %}


# Connect your Wallet

How to connect your wallet to Serum native exchanges.

## Connect your Wallet to Serum <a href="#connect-your-wallet-to-serum" id="connect-your-wallet-to-serum"></a>

Once you are on a [Serum](https://bonfida.com/dex) native exchange, check the indicator in the top right corner to make sure you are on **mainnet-beta** in order to trade real markets.

![](/files/-MXSuatT6GsCv--u1Vji)

Click the **Connect** wallet button in the top right corner (make sure you have already switched to your desired wallet) and finish the connection process by clicking on your wallet's **Connect** option.

![Serum DEX wallet menu](/files/-MXTGJGd8otgvv21Zfsu)

You can disconnect your wallet at any time by clicking on **Disconnect**.

You will also see the options to switch to a different wallet by clicking on the "**Change Wallet**" button in the drop-down menu:

* [sollet.io](https://sollet.io), Sollet Extension, Ledger, Phantom, Solflare, Mathwallet, Bonfida (on Bonfida GUI).

You can see your connected wallet address in the upper right corner of the screen.

![](/files/-MXTGt207xsUmoshJuGc)


# Connect with Sollet

How to connect your sollet.io wallet to Serum native exchanges.

In the case of [sollet.io](https://sollet.io), a **new browser window or or tab** will open asking for approval to "**CONNECT**". Your [sollet.io](https://sollet.io) wallet will require approvals for all transactions through this box.&#x20;

{% hint style="info" %}
Note that the [sollet.io](https://sollet.io) window may open *behind* your current browser window.
{% endhint %}

![](/files/-MY9FjQ3ks1UYrA-PaCt)

{% hint style="warning" %}
Transactions will need to be approved in the pop up window or tab that opens in the background.&#x20;
{% endhint %}

{% hint style="info" %}
To minimize the amount of transactions you need to manually approve, you can select the switch to automatically approve transactions. This will not necessarily approve all transaction types.
{% endhint %}


# Connect Ledger Nano S with Sollet

How to set up and manage your sollet.io wallet with a Ledger hardware wallet on Serum native exchanges.

{% hint style="danger" %}
Make sure your ledger device firmware is up to date. In the ledger settings make sure you have enabled **blind signing.**
{% endhint %}

To connect your Ledger Nano S for trading purposes, you need to first connect an existing wallet (non-hardware), and then select the "**Account**" drop down menu.

![](/files/-MY9H67mYHTqu41ZrteE)

Select "**Import Hardware Wallet**" and make sure your ledger is connected and unlocked.&#x20;

![](/files/-MY9GfMfWQ4WoZ8cQ-Ru)

Once connected, click "**CONTINUE**" and open your wallet.&#x20;

{% hint style="warning" %}
Each trade or transaction will now require you to approve via your Ledger device.
{% endhint %}


# Trade

How to trade on Serum native exchanges.

## Trade <a href="#trade" id="trade"></a>

When you have successfully connected your wallet, you are ready to trade. The trading experience and interface replicates that of a centralized exchange.

{% hint style="info" %}
Need further support? Contact us on Discord or Telegram
{% endhint %}

{% hint style="danger" %}
Beware of scams. Admins will never message you first!
{% endhint %}


# Trade on Bonfida

Step by step of your first trade on a Serum DEX

Serum (SRM) is a decentralized exchange (DEX) that is built on the Solana blockchain and is completely permissionless.  Serum is open-source and allows for unprecedented speed and low transaction costs to decentralized finance. Experience is similar with trading with a centralized exchange (CEX), but with a few caveats. We will guide you between a few examples of trades on Serum DEX.

Anyone can set up their own Serum-based DEX GUI or embed the Serum Swapper into their UI. For this example we will be using [Bonfida DEX](https://dex.bonfida.org/#/market/ByRys5tuUWDgL73G8JBAEfkdFf8JWBzPBDHsBVQ5vbQA). You can see a list of available GUI [**HERE**](https://docs.projectserum.com/serum-ecosystem/trading-on-serum/trading-guis)

{% hint style="info" %}
You need a SPL wallet and enough SOL for transactions fees. Try to keep it above 0.1 SOL at all times.
{% endhint %}

![Bonfida DEX](/files/-MktftRqIWfgG6duEf7_)

**Step 1: Connecting your wallet**\
&#x20;\
The first difference you will notice is the need to connect your wallet and approve transactions. Every interaction with the dex will need your approval to proceed.\
\
Most sites will have multiple wallets available, you can see a list of our recommended wallets [**HERE**](https://docs.projectserum.com/guides/getting-started/wallet-support/wallet-support-serum-academy)

{% hint style="info" %}
When connecting your wallet you will have the option to automatically approve transactions from the GUI, you won't be able to read the instructions given, but it will skip a few steps like settling depending on the wallet being used.
{% endhint %}

![Wallets available on Bonfida](/files/-Mktg7Tjnt4mgGcIhhBM)

**Step 2: Check your balances**\
\
Once connected you will be able to see your available balances of that pair on the left side of the page.

* **Token account:** Your address of that token, if you have multiples you can select which one from the drop down menu.
* **Wallet Balance:** The funds available on your wallet.
* **Unsettled Balances:** Funds on the intermediary wallet that interacts between you and the DEX, be an order filled or canceled the funds will need to be settled back to your wallet.
* **Deposit Button:** Will show you a window with the token address to send funds to if needed, same as your wallet.
* **Settle Button:** Will transfer your funds from the intermediary wallet to your token address.

![Your token balances for the SRM/USDC pair](/files/-MktgEo03zsx-sOCWN9V)

**Step 3: Make an order**\
\
Similar to a CEX you will be able to create Buy and Sell orders. As an example, a sell order of 2.5 SRM at a price of 8 USDC for a total of 20 USDC will be created:

{% hint style="info" %}
You can populate the fields directly by clicking directly on the orderbook
{% endhint %}

![](/files/-MktgIyPzTDU9QjyHAoC)

{% hint style="info" %}
Similar to a CEX, on POST only orders your order will not be allowed to take, if it would cross the book it will be canceled instead. IOC orders that would not immediately trade will be canceled.
{% endhint %}

\
At this point **your funds are no longer in your wallet** and will now appear as open orders on the DEX. If the order was to be filled, your funds will be on the intermediary wallet as "unsettled balances" until you settle it back to your wallet.

![](/files/-MktjJp5KzEIm4R-NPGJ)

**Step 4: Settling your orders**\
\
Once filled or canceled your funds will show as unsettled balances. For this example the order will be  canceled to show how it looks:

![2.5 SRM as unsettled balances once the order was canceled](/files/-MktgU-lMqnwSf4AONDB)

If wanted to finish your trades here, one could use the settle button to recover the funds from the intermediary wallet. For this example the order will be remade so that it gets immediately filled. As the funds are already on the intermediary account **no funds will leave your wallet.** In case the order was changed to 3 SRM it will need at least 0.5 available and those **will leave your wallet** when the order is created.

![2.5 SRM at a price of 7.45 USDC](/files/-MkthEuBKYj0vNH1f-wJ)

{% hint style="info" %}
**The order will start at the best ask/bid and move up the orderbook until the order is filled. Leftovers at your price will open an order.**
{% endhint %}

Order was filled immediately, so USDC was received and appears as unsettled balances:

![](/files/-MkthMzBPdAg9pmiRX_p)

Now that all trades are done you can settle them back to your wallet

![](/files/-MkthWZ5uYJDysBhTEVv)

{% hint style="info" %}
If a market pair isn't officially listed on the GUI you must [add it as a custom market](https://docs.projectserum.com/serum-ecosystem/building-on-our-vision/add-a-market-on-serum-serum-academy)
{% endhint %}


# Avoiding Scams

This is a guide on avoiding scams, which are commonplace in the crypto space.

## How can I identify a scam?

Scammers impersonate admins on Telegram, Discord, and other social media applications to gain your trust and persuade you to hand over your wallet credentials or enter a phishing site.

{% hint style="danger" %}
**Admins will&#x20;*****never*****&#x20;message you first!**
{% endhint %}

If someone claiming to be an admin messages you first on Telegram, Discord, or our other social media channels, **block** and **report** that account.

## Common scammer strategies

Scammers will impersonate admins by copying their profile picture and creating a username/handle that is similar to the admin they are impersonating.

{% hint style="info" %}
If you are ever unsure, check the list of admins on the channel's ***pinned post*** and contact a real admin from there.
{% endhint %}

Scammers also pretend to be official "help desks" or "technical support teams". These scammers often message new users joining Telegram groups or Discord servers. They may also target users asking for help.&#x20;

{% hint style="info" %}
Do not be fooled by Unicode symbols (like ✪): such symbols do not mean anything.
{% endhint %}

#### **Common (fake) usernames include:**

* *Admin username*
* Technical Support
* Technical Support Desk
* Help | Support
* Support Team
* Community Manager
* Community Hotline
* Tech Support Representative
* Server | Operator
* HELP-DESK
* Team | Support
* Mediator

{% hint style="warning" %}
If you are offered an unheard of deal or an opportunity that sounds too good to be true, it is most likely a scam!
{% endhint %}

{% hint style="danger" %}
Do *not* click on any links you think are suspicious! Some scammers send victims to a link where they are offered to connect their wallet. Connecting your wallet will result in your tokens being stolen.
{% endhint %}

## What should I do if I receive a scam?

{% hint style="warning" %}
If you are contacted by a scammer on Telegram, ***block and report*** their account.
{% endhint %}

Scammers on **Telegram** can also be reported to:

{% embed url="<https://t.me/notoscam>" %}

Scammers and other trust / safety issues on **Discord** can be reported to:

{% embed url="<https://support.discord.com/hc/en-us/requests/new?ticket_form_id=360000029731>" %}

Phishing websites can be reported to **Google** on their Report Phishing Page:

{% embed url="<https://safebrowsing.google.com/safebrowsing/report_phish/?hl=en>" %}


# Wormhole Token Bridge

Step by step guide to bridge tokens from other networks to Solana.

## Transferring assets between Ethereum and Solana

Wormhole Token Bridge follow these simplified steps:

* **1: Select the source of the tokens**
* **2: Select the recipient chain for the tokens**
* **3: Send the tokens to the bridge**
* **4: Retrieve the tokens on the recipient network**

In this example we will show step by step the bridging from both sides, ETH -> SOL and SOL -> ETH.

{% hint style="info" %}
You will need both a Metamask Wallet with enough ETH and a Solana Wallet with enough SOL to pay for the transaction fees\
Make sure Metamask is connected to the intended network.
{% endhint %}

### Transferring Assets from Solana to ETH

**Step 1: Go to** [**https://wormholebridge.com/#/transfer**](https://wormholebridge.com/#/transfer)

![Main wormhole page](/files/-Ml33X8Vz5iPKHbkeqzV)

**Step 2: Select Solana as the source network and connect a wallet**

![List of supported Solana Wallets](/files/-Ml34Q_tW_eCezS5HqJF)

**Step 3: Choose the token account from the drop down list and the amount to send:**

You will be able to choose between the funds in your wallet from the drop down menu. For this example 5 SOL will be bridged.

![](/files/-Ml35JrFlYtpgRgd-u55)

**Step 4: Select the recipient chain and connect your Metamask Wallet.**

![You will receive an estimated transaction fee ](/files/-Ml39SuVte2YWldfCNIS)

![](/files/-Ml39sZ5oQVUN-nHl51N)

You will be alerted if you have low ETH balance

![](/files/-Ml3AUtTadQWAV6PC5tu)

**Step 5: Send the tokens to the Wormhole Token Bridge**

![Approve the transaction after transferring](/files/-Ml3Bycs8UbgmayFpqwR)

![Pending transaction and signature to view on the explorer](/files/-Ml3C0im58e2H1zUGhy8)

**Step 6: Redeem your tokens**

Once the transaction has been completed you will be able to redeem your tokens on your Metamask.

![](/files/-Ml3EFlYvg7GTzU4X2CN)

![](/files/-Ml3EHl3BhMLy3_ERKYV)

And done! you have successfully used the Wormhole Token Bridge. \
You can see the successful transaction on Etherscan.

### Transferring Assets from ETH to Solana

* **Step 1: Go to** [**https://wormholebridge.com/#/transfer**](https://wormholebridge.com/#/transfer)

![](/files/-Ml3JRAc6QnuY3-4htc-)

**Step 2: Select ETH as the source and connect your metamask**

For this example 5 wrapped SOL will be bridged.

![](/files/-Ml3GtbBul5Pt85he_N1)

**Step 3: Select Solana as the recipient and connect your SOL wallet**&#x20;

![](/files/-Ml3HOpd6okBtS_FalWv)

![If you do not have the token account it needs to be created](/files/-Ml3HRYR-jhmQlSyY73r)

**Step 4: Send the tokens to the Wormhole Token Bridge**\
\
You have the choice to approve the exact amount of tokens or to approve an unlimited amount to not have to do it again whenever you bridge that token. It's recommended for people that intend to use the bridge for that token frequently.

![](/files/-Ml3HZyNQVoJfX1vfeoL)

For this example unlimited tokens will be approved

![](/files/-Ml3HaQ8T5BAxHAg1srA)

Once you have approved the Bridge to use your Metamask tokens you can transfer and approve the transaction

![](/files/-Ml3cidU7ZQya5m4hXVz)

Wait for the confirmations on Ethereum

![](/files/-Ml3HebP-_8iaENK3oNy)

**Step 5: Redeem tokens**\
\
As the tokens were wrapped you will have the option to unwrap it to the native currency

![                                                     ](/files/-Ml3HhiUKY-bNCbPLIGB)

Once the transaction is confirmed you will receive your tokens

![](/files/-Ml3HnIbC3u4jBHhCoBF)

And done! you have successfully used the Wormhole Token Bridge.\
You can view the successful transaction on the Solana Explorer


# Using Symmetry Swap

## Step-by-Step Guide:

In this example, we will explain how to easily swap tokens using the [**Symmetry Swap**](https://symmetry.fi/) interface!

⚠️ **Important:** make sure to own at least **0.2 SOL** in your wallet to pay for transaction fees.

## Step 1: Go to the website: <https://symmetry.fi/> ⚡

Click [**here**](https://symmetry.fi/) to access the website:

![](/files/-MlJqAg3rqeHl3-gGg7O)

## Step 2: Click on the Swap Icon: &#x20;

Click [**here**](https://swap.symmetry.fi/) to access the interface:

![](/files/-MlJqxZjGZqXAH2i0MIj)

## Step 3: Connect your wallet to Symmetry&#x20;

If you already have a **Phantom wallet**, simply enter your password as shown below to unlock your wallet and access the [Symmetry Swap interface](https://swap.symmetry.fi/).

If you don’t already have a **Phantom wallet**, please visit [**this tutorial**](https://help.phantom.app/hc/en-us/articles/4406388623251-How-to-create-a-new-wallet), in order to create a fresh Phantom wallet.

![](/files/-MlJrZy1977g7cLWU7zA)

## Step 4: Start Swapping

Now that your **Phantom wallet** is connected to the **Symmetry Swap interface**, you can start **swapping** tokens easily!

![](/files/-MlJxchxjXo_TPYyGQS1)

### Example: Let’s say we want to swap 1 SOL for USDC.

1. Select from: **SOL**
2. Select To: **USDC**
3. The amount received will automatically update.
4. If you wish to proceed, click on **Swap**.

![](/files/-MlJsHF8U_UvEWTlBIz9)

## Step 5: Approve the Transaction

If you are using a hardware wallet such **Ledger**, you will need to approve the transaction on your computer screen but also on the Ledger device itself.

![](/files/-MlJtJViSbbjplExtGav)

If you don’t use a Ledger (skip this step).

If you do, please **approve the transaction** on your Ledger device ⬇️

![](/files/-MlM1nSFAJYEyPcWIbMx)

## Step 6: Wait for the Transaction to confirm

It will only take a few seconds!

![](/files/-MlJtfjCykxZgqy1Nlgy)

## Step 7: Transaction Complete

![](/files/-MlJtw3YHXrRP3Uq4_ui)

Congratulations! 🎉 You now know how to swap any tokens easily.

&#x20;                                                                                  **…**

If you have any questions or wish to build in the Serum ecosystem, please feel free to reach out to us at <contact@projectserum.com>.

You can also join the Serum community 🔗

**Serum** **Discord**: <https://discord.gg/V9Xzqqxj>

**Serum** **Telegram**: <https://t.me/ProjectSerum>

We’re always happy to answer questions or assist you in any way we can!


# Providing Liquidity to Pools

You are free to add liquidity to any pools on [**Atrix**](https://www.atrix.finance/) or [**Raydium**](https://raydium.io/#/).

In return for adding liquidity, you will receive **trading fees** for that pair, and receive **LP Tokens** that you may stake elsewhere to earn additional rewards!&#x20;

Please follow the steps below:&#x20;

## Step 1: Navigate to the Pools page

Click [**here**](https://app.atrix.finance/#/pools) to access the page.

![](/files/0Qlwak3wZhcPGqDafv2r)

## Step 2: Connect your wallet to Atrix

Select your corresponding wallet such as [**Phantom**](https://phantom.app/).

![](/files/6rfOqWQGS9GqNbW7CAPB)

## Step 3: Select the Token Pair & Pool you want to deposit liquidity into

We will choose the **SOL-USDC pool** as an example in this tutorial.

Click on **Deposit**.

![](/files/aedkczplstUCB9ecHzLx)

## Step 4: Add liquidity to the selected pool

To do so, you will need to provide an equal amount of tokens on both side of the pair.

*For example here, 0.90 SOL is currently equal & worth 128.78 USDC as of writing this.*

Click on **Deposit**.

**Approve** the transaction.

![](/files/FqgrebYn380ddhbh56f6)

Congratulations! You are now a **LP (liquidity provider)** for the **SOL-USDC Pool** on Atrix!

As you can see, your share in the pool is currently worth $261.04.

![](/files/alQYBse16Pgr2wZZT1jb)

## Step 5: How to withdraw liquidity from the Pool

Go back to the **pool** you added liquidity to.

Click on **withdraw**.

The **ALP balance** (453.893 in this example) is corresponding to your share in the pool.

![](/files/9LM8nf7ws4V3NfR60eU5)

Click on the **453.893 balance in red** to fully withdraw your LP tokens from the pool.

![](/files/QgZvoQPn2qdf0HkCLuaT)

Click on **Withdraw**.

**Approve** the transaction.

![](/files/4P6Wu6OFGZ6tNLlBppTY)

The **liquidity** has been **removed** ✅&#x20;

Congratulations! 🎉 You now know how to add and remove liquidity from pools easily.


# Staking

Staking is being deprecated.  For more information please see the below FAQ.

<https://docs.projectserum.com/appendix/faq/changes-to-staking>


# Multisig

This guide offers an overview of the multisig program.

## Multisig

The multisig will be used to govern program and IDL upgrades for Serum Programs, including the multisig itself.&#x20;

You can access multisig at: <http://multisig.projectserum.com/>

![](/files/-MYwdUdhNrxFrvsNSgxy)

For now, the multisig being used on the mainnet is this address:

```
3uztpEgUmvirDBYRXgDamUDZiU5EcgTwArQ2pULtHJPC
```

The **program-derived-address** (i.e. the "authority" representing this multisig) is:

```
2bXuJdSb4AeAZTBY8NDtYnSbxXGjgjkMHw9dPS9gjK9r
```

{% hint style="info" %}
Smart Contract Source: <https://github.com/project-serum/multisig>
{% endhint %}

{% hint style="info" %}
UI Source: <https://github.com/project-serum/multisig-ui>
{% endhint %}

{% hint style="info" %}
Brief snippet on how the program works: <https://github.com/project-serum/multisig#multisig>
{% endhint %}

## Purpose

The primary motivation for the multisig is to manage program upgrades, but in order to use a multisig, the proper tooling must be in place:&#x20;

* (1) A multisig program&#x20;
* (2) Deterministic, verifiable builds&#x20;
* (3) A way for multisig holders to use the program (i.e. verify an upgrade against source, compiled bytecode, and then execute the upgrade)

Addressing (1): You can find the multisig repo here: <https://github.com/project-serum/multisig>

Addressing (2) is done with by building inside the docker image <https://hub.docker.com/repository/docker/projectserum/build> here. Programs written in the [Anchor](https://github.com/project-serum/anchor) can easily leverage this with the `anchor build --verifiable` and `anchor verify <program-id>` commands.\
\
Addressing (3) is done with the UI at <https://multisig.projectserum.com>.

With this tooling in place, future upgrades by any program can take advantage of them.&#x20;

## Brief Tutorial

{% hint style="danger" %}
Multisig is unaudited software. Use at your own risk.
{% endhint %}

1 - Go to <http://multisig.projectserum.com/>

![Welcome screen](/files/-MYwZqpjbHmgIAwE5Edo)

2 - Read and accept the pop-up Agreement:

> *No statement or warranty is provided in relation to the utility of this program, the safety of its code or its suitability for your use, and by using it, you agree to bear any risk associated with such potential vulnerabilities, including, but not limited to the potential loss of tokens.*

2A - If you have not done so already, press "**CONNECT WALLET**" on the upper-right of the page.

![](/files/-MYw_NYQN2kgmh9wszBO)

3 - To create a new multisig account, press on the large plus-sign circle ("+") on the bottom-right of the page.

4 - The New Multisig pop-up menu will appear. Input your desired Threshold and Participant (SPL wallet) address:

![New Multisig menu](/files/-MYx2L2dnMocB_LAWXie)

{% hint style="warning" %}
If the New Multisig menu does not show the right number of Participant fields, try refreshing the page. Be sure to re-connect your wallet.
{% endhint %}

{% hint style="info" %}
If you are using [sollet.io](https://sollet.io) wallet, be sure to approve every action in the pop-up window or tab!
{% endhint %}

If you are successful in creating a multisig account, you will see a blue box on the bottom-left saying "Multisig created: \[*address*]".

4A - You can learn more about the Signer by pressing on the info circle to the right of the address. You will see the following box:

![Multisig Info (Signer) pop-up box](/files/-MYweZSfLt1JTA2WpkCg)

5 - To create a new transaction to be signed by the multisig, press the plus ("+") sign to the right of the address. You will see the following menu:

![New Transaction menu when you click the "+" arrow](/files/-MYw_qHSW9ukkFTcTncY)

6 - Upon selecting a new transaction and inputting the relevant fields (e.g. inputting the "Participant" addresses under the "Set owners" option), you will see in the main menu under your multisig address the "**APPROVE**" and "**EXECUTE**" buttons.

"**APPROVE**" signs the transaction on behalf of the participant. "Threshold" participants must first "**APPROVE**" in order to "**EXECUTE**" a transaction.

Once the threshold is reached, anyone can "**EXECUTE**". When you submit a transaction, you automatically "**APPROVE**".

![](/files/-MYwdrBn0d1T7THQOvnS)

![](/files/-MYwdxrq5bfj1OK-5oo2)


# Governance

## 🏛️ **Governance**

**Decentralization** is one of Serum’s founding tenants.

This principle is founded on the idea that the community knows best with regards to the direction of the Serum ecosystem. Serum’s responsiveness and flexibility are necessary traits for scaling up in this fast moving world. To prepare for the demands of a larger and more diverse group of users, it’s critical to have a framework for the community to have their say.

[Voting](https://dao.projectserum.com/#/) and Serum’s [Community Forum](https://forum.projectserum.com/) are some of the important governance constructs for empowering and leveraging the community’s thinking.

## ⚖️ Rules and Guidelines

{% hint style="info" %}
You can also find the Governance Rules and Guidelines [here](https://forum.projectserum.com/t/serum-governance-rules-and-guidelines/230).
{% endhint %}

The thoughts, perspectives, and ideas of Serum’s community are critical for the ecosystem’s development. We look forward to your contributions and constructive discussion.

How do ideas and discussions among the Serum community transform into Forum posts, and then into proposals on the DAO voting platform (<https://dao.projectserum.com>)?

The expectations and guidelines for this governance process are laid out below:

### (1) Discussion

#### (A) “Informal” Discussion

Informal discussion will naturally emerge across various channels. We recommend channels such as Discord and even this Forum. The Serum LinkTree lists some popular channels: @projectserum | Linktree.

#### (B) “Formal” Discussion

You can bring informal discussion topics to the Serum Community Forum (<https://forum.projectserum.com>) once they are ready for more “formal” discussion in preparation for transformation into an actionable proposal.

The Forum is considered a more formal domain of discussion. As a Forum participant, you are expected to:

Articulate what you believe should happen or be deployed specifically; Open your post(s) to public, constructive analysis and criticism; Interact with comments to your post in a timely manner and demonstrate willingness to engage other participants in a constructive manner.

The community looks forward to a future where all topics and parameters (except sending funds to the treasury) will be up for voting.&#x20;

It is expected that newly created forum topics are made open to discussion for ***at least 7 days*** before the relevant proposal on [dao.projectserum.com](https://dao.projectseum.com) is created for voting.

If you created a forum topic that has *not yet been made into a proposal*, and you wish to ***change the content*** that would go into that proposal, you are expected to: (1) create a new forum reply (post) in that thread specifying the changes, and (2) wait ***72 hours*** before you can make a proposal about that topic accordingly on the DAO voting platform.

### (2) Proposals (on the DAO Voting Platform)

There will naturally be some forum topics that evolve into new proposals on the DAO platform for voting (<https://dao.projectserum.com>).

We actively discourage editing of Forum topics which define potential proposals. You should make new posts instead. Editing other types of posts is generally accepted. You should emphasize what you changed in your post after editing.

Some discussions will result in longer threads and multiple conceptions of a potential proposal. Sometimes, a single post will receive enough positive affirmation.

#### (A) Creating a Proposal&#x20;

We expect the forum topic to be created and open to discussion for ***at least 7 days*** before the relevant proposal (on the DAO voting platform) is created for voting.

All proposals submitted to the DAO voting platform must link back to a single Forum post (that summarizes all relevant information from that thread).&#x20;

The content of the proposal must abide completely by that Forum post.

#### (B) Changing a Proposal&#x20;

Sometimes, a proposer wants to make changes to a proposal after uploading it onto the DAO voting platform.&#x20;

If you wish to make a change to a proposal (on the DAO voting platform), it is expected that you cancel that proposal and reply with the proposed changes to the Forum topic. There must be **72 hours between the upload of that new reply and the submission of the related proposal.**

You can immediately make your new proposal after submitting the new Forum reply. The new proposal should link back to the same thread.&#x20;

The reply (post) to Forum topic should specify there will be a change to the proposal. You should copy-paste the Forum topic’s Title, plus an amendment that appends “V2, V3, etc", at the top of the post.

### (3) Voting&#x20;

The voting structure is currently: 1 SRM is 1 vote. The DAO Voting Platform UI may be familiar to many, but here is a quick guide to the object level jargon:&#x20;

**realm** — an instance of the DAO&#x20;

**governance** — an address governed by the DAO (e.g. a token account or program upgrade authority)&#x20;

**proposal** — an action to vote on, e.g., transferring tokens or upgrading a program&#x20;

**Governance parameters are as follows:**&#x20;

100,000 SRM to create a “governance”&#x20;

25,000 SRM to create a proposal for the treasury&#x20;

Maximum of 3 days for voting, once a proposal is uploaded.&#x20;

Yes-Vote Threshold: 1.3% (1.3% of 1% of the total supply, or around 1.5 million) Instruction timelock after vote: 0 days

These parameters, such as the current duration of the voting period, may be subject to change via governance.

### (4) Enforcement&#x20;

We expect that the community will veto proposals that do not meet the Serum Governance Guidelines.

If any parameters listed in this post change through the governance process, the contents of this post will be edited to reflect these changes.


# How to Vote

## :ballot\_box:How to Vote

### Go to the DAO Page&#x20;

First, go to [https://dao.projectserum.com](https://dao.projectserum.com/#/) and click on the [Serum Realm](https://dao.projectserum.com/#/realm/3MMDxjv1SzEFQDKryT7csAvaydYtrgMAc3L9xL9CVLCg?programId=AVoAYTs36yB5izAaBkxRG67wL1AMwG3vo41hKtUSb8is).

![](/files/gvkCzhAoF5ch9y2Bqw72)

### Connect your Wallet

On the top right corner of the page you can select and connect your wallet of your preference.

![](/files/ut4XpKlNjuOEU7bKzR73)

### Deposit your Tokens

Once you are connected, you will see a ‘Deposit Governance Tokens’ button. Click it and select "**Deposit**" when prompted. A transaction will appear asking for **all SRM tokens on your account.** Approve the transaction.

{% hint style="info" %}
You cannot decide the amount of SRM tokens to deposit.
{% endhint %}

![](https://lh3.googleusercontent.com/4B7OM1cErVsNuj6rAks2ni_f33ZPV2TRPKIEqaXVgDrHkZqE8aAc_J0k3T-DJcvDv7IwqgSBROdBZPDmPgVivVKUHsQAiEPdGH_rWEcAmWGHHK0ckv6XheUcT_V0VBiGJ9RhSV18)

![](https://lh5.googleusercontent.com/Af3EZphCUK5NWmjQBUOZq5aJMrJaZRzMhiFPzgW27I_TG2uyxktdVEW-xfROSarnWZG0VOPn5DnakGr32G0L1izUedZE8jjPrtMgn8dErsmEaSH3LzLLfxBPPbg_mEpzPXPs8aBT)

![](https://lh5.googleusercontent.com/ByYDuwOGfrvrC_3xgyXC2Y2c739R2G3bMXD1cWywoB6kDyT2S-dPAuXpD14cRI_QO6s-NvOqHRLKckZI1EEQHG8xpMInXtPE7OpuQWePuwySM-PiQjMFbGnHEOj1MU6MUu2Tdqlz)

Once approved, you will be shown a "**Tokens have been deposited**" message and you will see the total amount of tokens deposited. A new button to "**Withdraw Governance Tokens**" will appear.

![](https://lh6.googleusercontent.com/JF3qznfOSW11ImODUksCbZ12bpIhJWbW0HTKIZ4PkRFuSslivAauB755ZD9zvl-2-c9GwIvACpeb0XCJ1u3m33DzV4zmhknoRc9OTgEi05wpV2UoDg2uojPIwHpqGrgR2ADf96PZ)

### Choose the Proposal

Click on the [59Y8FAtjWKHU3HSsESFNnptNyq1NeYBajT9oZCGKCewa Governance](https://dao.projectserum.com/#/governance/7jt7Hw1iypXN3otudBeTPkY2K4yotWMTegWeAxnt1h3c?programId=AVoAYTs36yB5izAaBkxRG67wL1AMwG3vo41hKtUSb8is). Current proposal parameters will appear at the top. You will see a list of proposals, current ones will have a “**Voting**” tag. Click on a proposal you wish to vote on or view.

![](https://lh4.googleusercontent.com/Bk9_QIV8rXeJF_zGwVt3zAubMAZFbiM4ZQ-fNRJ_TjQ9roeNQStmuTYj8t7TRExu-jihYF8iLawEg4ouqyDA7GldtZahOlE9cL6C_zKgQj6hEAYbeONrgXOlhbIWMt8vv3K8ErAN)

### Vote on the Proposal

A proposal page appears containing relative voting stats. If the voting is in session, you will see a timer on the bottom right with the time left, and a "**Yeah**" and "**Nay**" buttons on the top right. To vote just click on your desired vote and approve the transaction.

![](https://lh6.googleusercontent.com/S9K3RQdWiM2_wEqIwhpBTJQDJXMr8lMMcSHKO6VLmcjBhqb4Cq93xFrIKHRV37UBTcCki4lE2qwBy-30AowzwLQfIBpuuVwJME8UZtC70MRen89SpMjjMPLgR00co__O9MSSxNGZ)

And done! You have voted on the proposal. Your tokens are temporarily in the governance system.&#x20;

{% hint style="info" %}
You can withdraw your tokens at any moment, but if the vote is still in process, you will also withdraw your vote. After the timer runs out, you can withdraw your tokens without affecting the vote.
{% endhint %}


# How to Create a Proposal

## 📝 How to Create a Proposal

### Preparation

There will naturally be some forum topics that evolve into new proposals on the DAO platform for voting ([https://dao.projectserum.com](https://dao.projectserum.com/)).&#x20;

{% hint style="info" %}
You can read the Governance Rules and Guidelines [here](https://docs.projectserum.com/guides/governance). The expectations for transforming forum topics into proposals are explained there.
{% endhint %}

To start, please access the **DAO GUI** [here](https://dao.projectserum.com).

Currently, the minimum amount of SRM you need to hold to create a new DAO proposal for voting is 25K SRM.

{% hint style="success" %}
This amount is configurable via voting. The SRM is *not* spent upon creating a new proposal.
{% endhint %}

Select the **governance** you wish to participate in under the relevant **realm**.

![](/files/qf7tGOQ1sjwOBsOxAigJ)

![](/files/3PVQscMxckBue2EzUJ1E)

{% hint style="info" %}
A **governance** is an address governed by the DAO (e.g. a token account or program upgrade authority).

A **realm** is an instance of a DAO.
{% endhint %}

###

### Add a New Proposal

Click on “**Add new proposal**” to get started.

![](/files/UOTf7vA7T99RuN8RJn3k)

Next, you will need to deposit the tokens into the program using the "**Deposit Governance Tokens**" button.

![](/files/eH8KLSbjuZFBvCidC4pk)

{% hint style="warning" %}
Note: You can withdraw the SRM immediately after creating the proposal.
{% endhint %}

If you do not place tokens into the program first, you will not be able to add a new proposal.

![](/files/pm3gY0I3QWxqr9Z9SgnZ)

Next, you will need to ***specify the voters*** for your proposal.&#x20;

For example, you can specify that your proposal is to be voted by the **Community Token Holders**.

![](/files/7QzNzL08emqiQYxK10p8)

### Populating the Proposal

![](/files/TEw8LB1ekVZ4aq225cXl)

To populate the description with text, you can use a [**Github gist**](https://docs.github.com/en/github/writing-on-github/editing-and-sharing-content-with-gists/creating-gists).

You can read the “creating a gist” section of this guide to learn more.

A gist is basically just a little webpage that displays the text. Once you create it, you can paste the link into the DAO UI and the UI will auto-populate with the content.

![Be sure to share the link, not embed it!](/files/GlFOEFkAYXCcLgC2xNRs)

![](/files/MxtvxcAKmBZnD2ArfRZU)

### Adding Instructions to the Proposal

Now, you need to enter instructions, or instruction data associated with the proposal. When you create the proposal, there should be an **instruction page**.

![](/files/nQPjUr1hO9BwIc3NwGnv)

Click the + button on the bottom right next to the "**instruction**" box to add instruction fields.

![](/files/xU5UoCcb5D88QGhhpIRn)

You would need to replace the numbers above with your own, of course.

Under “**spl-token transfer**”, you do not need to add any instructions.

Select “**set-governance-coding**” and change the parameters you want.

{% hint style="info" %}
The yes vote threshold cannot be smaller than 1%. (This is configurable via voting of course!).
{% endhint %}

{% hint style="info" %}
Changing the parameters here does not update these parameters across the DAO. These fields represent the proposal to update the DAO accordingly.
{% endhint %}

For example, if one wanted to change the maximum voting time to X days, they can input X into the relevant field and leave the rest unchanged.

In accordance with the DAO’s [Rules and Guidelines](https://docs.projectserum.com/guides/governance), you must propose what your corresponding forum post says.

### Ship Proposal

It’s now time to ***ship your proposal***.&#x20;

When you click **Sign Off**, the proposal will be out there for people to vote on. There is also a button to add signatories.


# Philosophy

This guide lays out the philosophy and primary objectives of Project Serum.

Serum is an answer to a number of conceptual challenges encountered during DeFi summer of 2020. Among these challenges include driving mass adoption at the scale of *1 billion* users.

## Why Serum?

### Composability

This is not a unique feature to Serum, yet it is essential. Composability means that any application building on DeFi can automatically integrate every other one as if it was native. Every project starts as if it had already built out its own full service financial ecosystem. Builders and users can stitch protocols together to build something greater than the sum of their parts.

### Speed and Usability

DeFi is slow and expensive. Trades are expensive and are slow to clear. Hence, customers prefer the cheaper, faster executions of CEXes. Serum runs on [Solana](https://solana.com) blockchain, however, which brings the ability to process 65k transactions per second at block times of 400ms and at costs of $0.00001 per transaction.&#x20;

Solana has plans to further [scale these specs](https://www.gemini.com/cryptopedia/solana-blockchain). An on-chain orderbook is now possible, paving way for a powerful ecosystem of decentralized financial services on par with TradFi giants.

### Orderbooks

Users will reap the advantages of an on-chain orderbook—the ability to choose the price, size and direction of your trade. Furthermore, the matching of bids and offers is fundamental for all financial transactions.&#x20;

Builders can join the Serum ecosystem and leverage what the Serum DEX can offer. Networks like Ethereum, on the other hand, are currently too expensive and slow to support an orderbook due to operational complexity.&#x20;

### True Decentralization

Most DeFi protocols ultimately rely on a centralized exchange API, tribunal of token holders, or the protocol team itself for oracle data. Serum abides by the principles of decentralization without sacrificing speed or usability:

#### [Open Source](https://github.com/project-serum/awesome-serum)

* On-chain code: <https://github.com/project-serum/serum-dex>
* GUI code: <https://github.com/project-serum/serum-dex-ui>
* Code for interfacing with the DEX: <https://github.com/project-serum/serum-js>

#### Permissionless

Anyone can create SPL tokens, add markets to the DEX, host a GUI, and trade.

#### Fully On-Chain

The orderbook and matching engine are all on-chain, thanks to [Solana](https://solana.com) blockchain. Serum DEX does not rely on a centralized server to match trades.

#### Fully Non-Custodial

Tokens only travel between users' personal wallets and on-chain programs which behave deterministically.

### Bridges

Solana has introduced [Wormhole](https://solana.com/wormhole), a secure, decentral bridge connecting Ethereum to Solana. Wormhole allows existing projects, platforms, and communities to move tokenized assets seamlessly across blockchains to benefit from Solana’s high speed and low cost. Interoperability unlocks network effects and allows for the most efficient use of resources.

Bridging across to Solana negates that friction and still allows for the value to settle back to the Ethereum network if so chosen. Ultimately, teams need not encumber themselves to a single chain if they want to leverage the community of one chain with the performance of another.

## Founders

Project Serum is built by the Serum Foundation, a group of experts in cryptocurrencies, trading, and decentralized finance. While they have built the Serum protocol, it is permissionless–they do not hold special power anymore.&#x20;

> It is up to you, the crypto community, to use it as you will.

## Our Ultimate Vision for Serum

{% embed url="<https://projectserum.medium.com/an-ultimate-vision-for-serum-473a16e77201>" %}

<br>


# Serum Core

An overview of Serum's Asset Agnostic Orderbook

Conceptualized and developed by [Bonfida](https://bonfida.org/#/), Serum Core is an important upgrade to Serum that brings a number of benefits for the DeFi ecosystem on Solana.&#x20;

#### **Motivation**

As the Solana DeFi ecosystem continues to grow, many projects invest a lot of time into designing a bespoke market implementation instead of leveraging the capabilities offered by the Serum orderbook. This is mostly due to the fact that Serum is over-specialized on spl-token assets.&#x20;

**Not all financial assets must be tokenized**&#x20;

Implementing a Perpetual futures exchange on a Serum orderbook (OB) implicitly requires positions to be tokenized, with a common mint for each market pair. This is impossible because a perpetual future position is inherently multi-dimensional: a position is described by its size, its entry price and the collateral it contains. This means that a position isn’t a multiple of a smaller position element, in the same way that an spl-token asset is.

In an OB based perpetual futures market, the OB is a matching engine. Entries in the OB are identical to the current Serum orderbook: they only contain an order size and price. The key difference is what happens when a match occurs between maker and taker: instead of triggering an implicit  transfer of spl-tokens between maker and taker, the matching engine triggers the creation of a position owned by the taker and held with the maker.

#### Modularity

Due to the constraints of the Solana runtime, Serum has had to implement an event queue to create a buffer between the difficult to predict and non-sequential matching engine and writing back into open order accounts. In an asset-agnostic orderbook, Serum’s event queue is the output, and programs which are built on top of Serum have exclusive access to their associated market’s event consumption crank. This means that these programs can themselves be cranked, read into the event queue, pop the processed element from the queue, and then use the resulting matching  information to create and enforce complex contracts between the matched parties.

#### **Fee model**

Serum’s current fee model relies heavily on its specialization with spl-token swaps between different parties. Every transaction extracts a few bps from the transfer. With an asset-agnostic orderbook, fees have to be extracted differently to support the matching of any asset including those outside of the spl-token program.

In addition to this, fees only remain justifiable insofar as the Serum community provides a service on top of the technology itself. We believe that a good example of such a service is cranking the matching engine itself. All asset-agnostic orderbooks share the same matching code which means that any Serum cranker can crank all instances of the asset-agnostic orderbook across all applications.

This means that all programs will have an incentive to use the main Serum program as their core OB, without resorting to a fork. Once this is established, there are a few candidate fee models, including:

* The flat fee mode&#x6C;**:** A flat (USDC or SOL) fee is taken on each transaction. The fee can be specific to each OB primitive.
* The market-driven model: App developers set the amount of fees that they transfer to Serum on each operation. Data about each program’s cranker profitability is directly written into the agnostic market’s on-chain state by keeping track of the number of transactions as well as the total amount of fees collected over its lifetime.
* The average fee model: Each market keeps track of the number of transactions as well as the total amount of fees collected for its lifetime. Program developers then have to ensure that the average fee per transaction doesn’t fall below a defined threshold. This is very similar to the market-driven model.

**Serum Core applications**

Serum Core can be used for a wide range of applications. The first obvious application would be to rebuild Serum DEX on top of Serum Core. The modularity and fee structure of the new Asset Agnostic Order Book will also allow other projects to use it as their backend matching engine for any type of financial product (futures, options etc).

One of these financial products would be an orderbook-based borrow lending protocol. This borrow lending protocol would be very similar to BitFinex and FTX lending:

* Borrow rates determined using an OB
* Different maturities available on different OBs
* Liquidations would happen on Serum public markets
* Any token with a Pyth feed and enough liquidity on its Serum market could be used as collateral

**Developer Resources**

* Smart contract AOB: <https://bonfida.github.io/doc-aob-program/agnostic_orderbook/>
* Smart contract DEX: <https://bonfida.github.io/doc-dex-program/dex_v3/>
* JS Lib for the DEX: <https://bonfida.github.io/doc-dex-js/>

<br>

<br>

<br>


# Fees

This page lists out the fee structure on Serum.

## Fees

<table data-header-hidden><thead><tr><th>Fee Tier</th><th>Requirements</th><th width="150">Taker</th><th>Maker</th></tr></thead><tbody><tr><td>Fee Tier</td><td>Requirements</td><td>Taker</td><td>Maker</td></tr><tr><td>0</td><td>Hold &#x3C;100 SRM</td><td>4 bps</td><td>0 bps</td></tr><tr><td>1</td><td>100 SRM</td><td>3.9 bps</td><td>0 bps</td></tr><tr><td>2</td><td>1,000 SRM</td><td>3.8 bps</td><td>0 bps</td></tr><tr><td>3</td><td>10,000 SRM</td><td>3.6 bps</td><td>0 bps</td></tr><tr><td>4</td><td>100,000 SRM</td><td>3.4 bps</td><td>0 bps</td></tr><tr><td>5</td><td>1m SRM</td><td>3.2 bps</td><td>0 bps</td></tr><tr><td>6</td><td>1 MSRM</td><td>3 bps</td><td>0 bps</td></tr></tbody></table>

Trading fees are incurred when an order is executed.

### Fees in the Serum ecosystem currently work as follows:

* 20% of net fees go to the project or GUI hosting the activity
* 80% of fees go to buy and burn of SRM


# Media

This guide offers a list of informative videos and other media about Serum and its ecosystem.

## Videos and Podcasts <a href="#explainers" id="explainers"></a>

#### An Introduction from SBF

* [Serum Explanation - Part 1](https://youtu.be/ZOGmBpv6Uf8) - by [Project Serum](https://www.youtube.com/channel/UCQ-jrhf6mt2PWa8cqF1-6Mw) ([EN](https://youtu.be/ZOGmBpv6Uf8)/[CN](https://www.bilibili.com/video/BV1Di4y1u7x9?from=search\&seid=12748789334283645776))
* [Serum Explanation - Part 2](https://www.bilibili.com/video/BV1rp4y1Y7NT/?spm_id_from=333.788.videocard.0) - by [Project Serum](https://www.youtube.com/channel/UCQ-jrhf6mt2PWa8cqF1-6Mw) (EN/CN)
* [Serum Explanation - Part 3](https://www.bilibili.com/video/BV1Ha4y1E7Mv) - by [Project Serum](https://www.youtube.com/channel/UCQ-jrhf6mt2PWa8cqF1-6Mw) (EN/CN)

#### Serum

* [Serum - What is it? Why use it? and How to use it](https://www.youtube.com/watch?v=opg_4d2u828) - by [Serum DEX Channel](https://www.youtube.com/channel/UCpX4N04kqZRrubavn113jUA?pbjreload=102)
* [Moving from Ethereum to Serum/Solana and Using Serum on Mobile](https://www.youtube.com/watch?v=LCtc6F-EEPE\&ab_channel=TheSerumist) - by [The Serumist](https://www.youtube.com/channel/UCpX4N04kqZRrubavn113jUA?pbjreload=102)
* [Sam Bankman-Fried and Lennix Lai of OKEx Talk Serum](https://youtu.be/EZRRpi9nr_E) - by [Project Serum](https://www.youtube.com/channel/UCQ-jrhf6mt2PWa8cqF1-6Mw)
* [Serum the Future of DeFi](https://youtu.be/wJx9gOcCs5I) - by [FTX Official](https://www.youtube.com/channel/UC3r0upC_xJ9SvtaCKNUtosA)
* [Fireside Chat: A 1v1 conversation with Sam Bankman-Fried](https://app.livestorm.co/solana/fireside-chat-ftx) - by [Solana](https://solana.com)
* [Layer 1s, DeFi and Crypto Capital Markets](https://www.youtube.com/watch?v=mnsTubape88) - by [The Money Movement](https://www.youtube.com/channel/UCGzF9nOSNKQcMJOII3tl6_w)
* [The Antidote: Serum's Bi-Weekly Converge](https://youtu.be/pW_MeD-tIQ4) - by [Project Serum](https://www.youtube.com/channel/UCQ-jrhf6mt2PWa8cqF1-6Mw)
* [The Antidote: Serum's Convergence - Past, Present and Future of Serum](https://youtu.be/wWjdp3kdM3g) - by [Project Serum](https://www.youtube.com/channel/UCQ-jrhf6mt2PWa8cqF1-6Mw)
* [Project Serum, State of Defi and Crypto Trading](https://youtu.be/2luTWzVvFgQ) - by [Boxmining](https://www.youtube.com/channel/UCxODjeUwZHk3p-7TU-IsDOA)
* [SBF: Arbitrage, A Quant Fund, And Serum’s Ascent](https://www.delphidigital.io/podcasts/sbf-arbitrage-a-quant-fund-and-serums-ascent/) - by [Delphi Digital](https://www.delphidigital.io/)
* [DeGeneration: How Ethereum is Making Finance Weird](https://twitter.com/CoinDesk/status/1314244668260061191) - by [CoinDesk](https://coindesk.com)
* [AMA with Sam Bankman-Fried, CEO and Founder, Alameda Research & FTX, advisor to Project Serum](https://youtu.be/2zNGsMAWjIs) - by [CoinMarketCap](https://coinmarketcap.com/)
* [Can Solana Seize Marketshare From Ethereum With Serum?](https://youtu.be/GU2_Q5yXJpk) - by [Unchained Podcast](https://www.youtube.com/channel/UCWiiMnsnw5Isc2PP1to9nNw)
* [Will DeFi Scale on Layer 1 or 2? - Sam Bankman-Fried, Kain Warwick](https://open.spotify.com/episode/4tBIVfhNDyaiPx2jxWJQBh?si=uBTlL9T9TA2dRTlXVyuwAQ\&nd=1) - by [Blockcrunch: Global Crypto Investors](https://open.spotify.com/show/09k4pnFm6WokaszuoeZ6yf)
* [Le projet SERUM et le Proof of History | Token $SRM](https://www.youtube.com/watch?v=25BnfspIwzA) - by [Hasheur](https://www.youtube.com/channel/UChlTcWDE8gd4tsl_L727NrQ) (FR)
* [Tout savoir sur Serum](https://www.youtube.com/watch?v=nQfLdN4a2S0) - by [Journal du Coin](https://www.youtube.com/channel/UC7qnB0XxzOEwWWn9Q6HPmCw) (FR)

#### Serum Swap

* [Serum Swap, how it compares to Uniswap and Earning Yield on Serum](https://www.youtube.com/watch?v=GS0lbr-_kV4\&ab_channel=TheSerumist) - by [The Serumist](https://www.youtube.com/channel/UCpX4N04kqZRrubavn113jUA?pbjreload=102)

#### Bonfida

* [What is Bonfida, What Bonfida Offers How to Get Started on Bonfida](https://www.youtube.com/watch?v=tAbHRHJo1To) - by [The Serumist](https://www.youtube.com/channel/UCpX4N04kqZRrubavn113jUA?pbjreload=102)
* [How to Create and List Markets on Bonfida](https://www.youtube.com/watch?v=SQvjmS9Dfz0\&t=1s\&ab_channel=TheSerumist) - by [The Serumist](https://www.youtube.com/channel/UCpX4N04kqZRrubavn113jUA?pbjreload=102)
* [How to Buy, Sell and List NFT’s on Bonfida and Market Making Rebates on the DEX](https://www.youtube.com/watch?v=jemTWyV-FQ4\&ab_channel=TheSerumist) - by [The Serumist](https://www.youtube.com/channel/UCpX4N04kqZRrubavn113jUA?pbjreload=102)

#### Solible NFT Marketplace

* [Solible - NFT Platform - the way it should be](https://www.youtube.com/watch?v=XMgJolem6CM\&t=2s\&ab_channel=TheSerumist) - by [The Serumist](https://www.youtube.com/channel/UCpX4N04kqZRrubavn113jUA?pbjreload=102)


