An open source NFT marketplace built on Reservoir.
Reservoir Market is an open source marketplace that enables communities to easily launch their own NFT marketplace, accessing instant liquidity aggregated from other major marketplaces.
The marketplace supports 3 different modes:
-
Single collection (e.g. Crypto Coven)
-
Multi collection community (e.g. BAYC)
-
All collections (example)
With each deployment, communities are given full control over their marketplace from designing their look and feel to setting their own marketplace fees.
We currently offer hosted and self hosted deployment options. For self hosted deployments you can simply fork this repository and follow the instructions below to configure and deploy your marketplace. For hosted deployments please submit your request and we will be in touch.
Submit your request for a Hosted Deployment here.
- Install Node.js and NPM
- Install Yarn
- Request free Reservoir API key
Fork this repo and follow these instructions to install dependancies.
With yarn:
$ yarn install
With NPM:
$ npm install
Reservoir Market is built to be fully configurable using environment variables. To preview your configuration locally you can copy the values you want to use from env.development
or env.production
into a new file called .env.local
Note: Environment variables can also be added during deployment via deployment platforms like vercel.
Admin Configuration
Environment Variable | Required | Description | Example |
---|---|---|---|
NEXT_PUBLIC_RESERVOIR_API_BASE | true |
The Reservoir API base URL. Available on Mainnet and Rinkeby. | https://api-rinkeby.reservoir.tools/ https://api.reservoir.tools/ |
NEXT_PUBLIC_CHAIN_ID | true |
The Ethereum network to be used. 1 for Etherem Mainnet and 4 for Rinkeby Testnet. | 1 4 |
NEXT_PUBLIC_PROXY_API_BASE | true |
The proxy API used to pass the Reservoir API key without exposing it to the client. | /api/reservoir |
RESERVOIR_API_KEY | true |
Reservoir API key provided by the Reservoir Protocol. Get your own API key. | 123e4567-e89b-12d3-a456-426614174000 |
NEXT_PUBLIC_ALCHEMY_ID | true |
Alchemy API key required for buying items on mobile. Get your own API key here. | 123e4567-e89b-12d3-a456-426614174000 |
NEXT_PUBLIC_DATADOG_CLIENT_TOKEN | false |
Datadog client token for configuring analytics. | pub4bec8e12715ec3458fe1acced2bidb361 |
NEXT_PUBLIC_DATADOG_APPLICATION_ID | false |
Datadog application id for configuring analytics. | 1dabcdadaad-3577-125a-b412-815faf31sfsd190 |
Marketplace Configuration
Environment Variable | Required | Description | Example |
---|---|---|---|
NEXT_PUBLIC_SOURCE_ID | true |
The source ID used to attribute listings and offers from your marketplace. | Reservoir Market |
NEXT_PUBLIC_ORDER_KIND | false |
The default order kind to the be used when listing or making offers on your marketplace. | zeroex-v4 wyvern-v2.3 |
NEXT_PUBLIC_FEE_BPS | false |
The marketplace fee that will be earned from native listings and offers on your marketplace. Configured as basis points - eg. 100 = 1%, 1000 = 10% and 10000 = 100%. | 100 |
NEXT_PUBLIC_FEE_RECIPIENT | The address that will receive marketplace fee. | 0xff9c1b15b16263c61d017ee9f65c50e4ae0113d7 | |
NEXT_PUBLIC_COLLECTION | false |
Use this to configure a single collection marketplace or set the default collection for your community marketplace. | 0xff9c1b15b16263c61d017ee9f65c50e4ae0113d7 |
NEXT_PUBLIC_COLLECTION_SET_ID | false |
Use this to configure a community marketplace. Generate your collection set ID here. Note: NEXT_PUBLIC_COLLECTION must also be set when creating community marketplaces. | f566ba09c14f56aedeed3f77e3ae7f5ff28b9177714d3827a87b7a182f8f90ff |
NEXT_PUBLIC_OPENSEA_CROSS_POST | false |
When enabled users will have the ability to cross post listings to OpenSea. | true |
NEXT_PUBLIC_EXTERNAL_LINKS | false |
External links to be displayed in the top navigation bar. | Blog::https://blog.com,Docs::https://docs.com |
NEXT_PUBLIC_COLLECTION_DESCRIPTIONS | false |
Customize descriptions on a per collection basis. | 0xb74bf94049d2c01f8805b8b15db0909168cabf46::`test description`,0xc751c84678d8e229e361f9b04c080256516f4a0a::`another description` |
NEXT_PUBLIC_NAVBAR_LOGO_LINK | false |
Customize the marketplace navabar logo's link. | https://blog.com |
Design Configuration
Environment Variable | Required | Description | Example |
---|---|---|---|
NEXT_PUBLIC_NAVBAR_LOGO | false |
The logo of your marketplace that appears on mobile. | https://www.reservoir.market/reservoir.svg |
NEXT_PUBLIC_DESKTOP_NAVBAR_LOGO | false |
The logo of your marketplace that appears on desktop. | https://www.reservoir.market/reservoir-desktop.svg |
NEXT_PUBLIC_FAVICON | false |
The favicon for your marketplace. | https://www.reservoir.market/reservoir.svg |
NEXT_PUBLIC_DISABLE_POWERED_BY_RESERVOIR | false |
Use this to disable the Powered by Reservoir tag on modals. | |
NEXT_PUBLIC_DARK_MODE | false |
Use this to enable dark mode theme. | true |
NEXT_PUBLIC_THEME_SWITCHING_ENABLED | false |
Use this to allow users to toggle between the dark and light theme. If NEXT_PUBLIC_DARK_MODE is enabled then that will be the default theme selected. |
true |
NEXT_PUBLIC_PRIMARY_COLOR | false |
Use this to select your primary color. | default red orange lime green blue |
NEXT_PUBLIC_FONT_FAMILY | false |
Primary sans font used in your marketplace. | Options: Inter, Montserrat, Open Sans, Playfair Display, Roboto, Druk, Nunito Sans, Lucida Grande, Gazpacho, Frank Ruh Libre, Chalkboard, Gothicus Roman, Styrene B Black, Montserrat Uppercase Bold Italic |
NEXT_PUBLIC_BODY_FONT_FAMILY | false |
Secondary font family used in your marketplace. | Options: Inter, Montserrat, Open Sans, Playfair Display, Roboto, Druk, Nunito Sans, Lucida Grande, Gazpacho, Frank Ruh Libre, Chalkboard, Gothicus Roman, Styrene B Black, Montserrat Uppercase Bold Italic |
NEXT_PUBLIC_FONT_URLS | false |
Use in conjunction with NEXT_PUBLIC_FONT_FAMILY and NEXT_PUBLIC_BODY_FONT_FAMILY to pull in a remote font, using services like google fonts, adobe fonts etc. |
https://fonts.googleapis.com/css2?family=Blaka&display=swap,https://fonts.googleapis.com/css2?family=Bebas+Neue&display=swap |
NEXT_PUBLIC_BANNER_IMAGE | false |
The background banner image used on collection pages. If not set this will use the default collection banner. | /banner.png |
NEXT_PUBLIC_DISABLE_COLLECTION_BG | false |
Use this to hide the background banners on collection pages. | true |
NEXT_PUBLIC_TAGLINE | false |
A tagline to be displayed in the homepage. Only available if NEXT_PUBLIC_COLLECTION and NEXT_PUBLIC_COMMUNITY are unset. | Buy, sell and collect NFTs! |
SEO Configuration
Environment Variable | Required | Description | Example |
---|---|---|---|
NEXT_PUBLIC_META_TITLE | false |
The text used in the <title> tag. | Reservoir Market | Open Source NFT Marketplace |
NEXT_PUBLIC_META_DESCRIPTION | false |
The text used in the meta description | Reservoir Market is an open source NFT marketplace built with Reservoir. |
NEXT_PUBLIC_META_OG_IMAGE | false |
The image used in the meta og images . | https://www.reservoir.market/og.png |
Once you have your setup ready, run:
With yarn:
$ yarn dev
With npm:
$ npm run dev
This is a Next.js app that can be easily deployed using Vercel. For more information on how to deploy your Github reposistory with Vercel visit their docs.
Twitter: @reservoir0x Discord: Reservoir Protocol Project Link: Reservoir Protocol