Skip to content

reservoirprotocol/reservoir-discord-bot

 
 

Repository files navigation

Reservoir Discord Bot

An open source Discord bot built using Reservoir

About The Project

Reservoir Discord Bot provides communities easy to use commands and alerts for their Discord server, which can be expanded and customized to their liking. Come test the bot out now in the Reservoir discord server!

The Discord bot ships with the following functionality:

  • Automated alerts for new listings, sales, floor listings, and top collection bids

  • Collection search to view stats, current top bid, and current floor price
/collection [name: collection name to search for (ex. forgotten runes)] [limit: number of collections to return]

Getting Started

Prerequisites

  1. Install Node.js and NPM
  2. Request a free Reservoir API Key
  3. Setup a Discord application and bot

Built With

Installation

Method 1: Docker Setup (Recommended)

  1. Install Docker
  2. Fork this repository, and follow these instructions to get your Discord bot running
# Copy env vars sample file
cp .env.sample .env

# Set env vars in editor of your choice
vim .env

# Set constants in editor of your choice
vim src/utils/constants.ts

# Create and start the docker container
docker compose up -d

Method 2: Manual Setup

  1. Install Redis and start the server on the default port (6379)
  2. Fork this repository, and follow these instructions to get your Discord bot running
# Copy env vars sample file
cp .env.sample .env

# Set env vars in editor of your choice
vim .env

# Set constants in editor of your choice
vim src/utils/constants.ts

# Download dependencies
npm install

# Start the Discord bot
npm run start

Configuration

Environment Variables

Environment Variable Description Example
TOKEN Your Discord bot's token NzkyNzE1NDU0MTk2MDg4ODQy.X-hvzA.Ovy4MCQywSkoMRRclStW4xAYK7I
RESERVOIR_API_KEY Reservoir API key provided by the Reservoir Protocol. Get your own API key. 123e4567-e89b-12d3-a456-426614174000

Constants

Constant Description Default
ALERT_COOLDOWN Number of seconds to wait before sending a new floor price or top bid alert 60 * 30 (30 minutes)
PRICE_CHANGE_OVERRIDE Percentage change in floor price to override alert cooldown 0.1 (10%)
ALERT_ENABLED Enable/disable new listings, sales, floor price, and top bid alerts listings: false, sales: false, floor: true, bid: true
APPLICATION_ID Your Discord application id 5736050287834562
CHANNEL_IDS The Discord channels you want the bot active in 123456789098765432
ALERT_CONTRACT The contract address of the collection you want to be alerted of floor price and top bid changes 0xb47e3cd837ddf8e4c57f05d70ab865de6e193bbb
TRACKED_CONTRACTS The contract address(es) of the collection(s) you want to be alerted of new listings and sales [0xb47e3cd837ddf8e4c57f05d70ab865de6e193bbb]
REDIS_HOST Redis host to connect to (For Docker set to "redis") 127.0.0.1
REDIS_PORT Redis port to connect to (For Docker set to "6379") 6379

Contact

Twitter: @reservoir0x Discord: Reservoir Protocol Project Link: Reservoir Protocol

About

An open source Discord bot built using Reservoir

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 99.6%
  • Dockerfile 0.4%