This project was made to actively notify when a trade is executed on a crypto-exchange. Also this will save balance snapshots if a database is connected. This is a very modular project so depending on the environment settings set the program will preform different operations. Hybrid configurations are supported as well.
- Poloniex
- BitFinex
Additional Exchanges can be added at request
Api Documentation: https://api.slack.com/incoming-webhooks
Slack Integration App: https://slack.com/apps/A0F7XDUAZ-incoming-webhooks
All you need is a SMTP server or relay.
Requires Java 7+ as well as differing environment variables depending on the notification type.
Notification type will be configured based off of the environment variables set to the container. One notification type can be configured per instance. Only the additional variables for the notification type requested should be set.
- exchange (String) - This is the exchange name that should be used to query
- api_key (String) - This is the api key needed to view the exchange trade history
- secret_key (String) - This is the secret needed to pair with the key
- notification_test (Boolean) - OPTIONAL This will send a test notification when the program is started. (Default: false)
- monitor_interval (Cron String) - OPTIONAL This is a cron that will be how often your account will be polled for new trades. (Default: 0 1/1 * * * *)
- summary_interval (Cron String) - OPTIONAL The interval at which a wallet summary will be compiled and sent as a notification. (Default: 0 30 7 * * MON)
- snapshot_interval (Cron String) - OPTIONAL The interval at which a snapshot will be taken of your current crypto currency balances. This functionality requires a database connection. (Default: 0 0 0 1/1 * *)
- slack_url (String) - The Slack Webhook Url needed for notification
- email_address (String) - The email address where the notification should be sent
- email_server_username (String) - The SMTP email server username for authentication
- email_server_password (String) - The paired password for the SMTP email server username
- email_server_host (String) - The host for where the SMTP email server is located
- email_server_port (Integer) - OPTIONAL This is the port to use for the SMTP email server. (Default: 25)
A database is not required. If a database is connected then a snapshot of balances will be saved in the snapshot collection. Otherwise no snapshot data will be saved off.
- instance_id (String) - OPTIONAL This is the instance id for this container. This is used to allow for multiple container to connect to the same mongo database. (Default: default)
- mongo_database_host (String) - OPTIONAL The host for where a mongo database is connected. (Default: mongo)
- mongo_database_port (Integer) - OPTIONAL The port on which to communicate with mongo on. (Default: 27017)
Docker Hub link: https://hub.docker.com/r/seanprobb/exchange-monitor/
docker run \
--name={container name} \
-e exchange={exchange name} \
-e api_key={api key} \
-e secret_key={api key secret} \
-e slack_url={slack url} \
-d seanprobb/exchange-monitor
docker run \
--name={container name} \
-e exchange={exchange name} \
-e api_key={api key} \
-e secret_key={api key secret} \
-e email_server_host={SMTP Server Hostname} \
-e email_server_username={SMTP Server Username} \
-e email_server_password={SMTP Server Password} \
-e email_address={Notification Email Address} \
-d seanprobb/exchange-monitor
docker run \
--name={container name} \
-e exchange={exchange name} \
-e mongo_database_host={mongo database host} \
-e mongo_database_port={mongo database port} \
-d seanprobb/exchange-monitor
docker run \
--name={container name} \
-e exchange={exchange name} \
--link {mongo container name}:{mongo database host} \
-d seanprobb/exchange-monitor
Bitcoin Wallet Address: 1NJhd7rNLZLjmNd2FouRwQB9Fqf5Zv3qzC
NEM Wallet Address: NA6BOK-GRSWFV-BVOX2P-YMSDIQ-MNZC6A-QT7OMG-KHWA