Skip to content

MAGICGrants/autoforward-autoconvert

Repository files navigation

autoforward-autoconvert

Programs to auto-forward BTC, LTC, LTC-MWEB, and XMR wallets to Kraken, and then auto-convert to your preferred settlement currency (e.g. USD, USDT, BTC).

Requirements

  • Docker
  • Docker Compose

Configuration

Create a .env file as a copy of .env.example and set the values for the empty variables.

Environment variables

Variable name Required Default Description
BITCOIN_WALLET_SEED Yes - Your BIP39 Bitcoin mnemonic seed. Used for all Bitcoin-like assets.
LITECOIN_WALLET_SEED Yes - Your BIP39 Litecoin mnemonic seed.
LITECOIN_MWEB_WALLET_SEED Yes - Your Electrum-format Litecoin MWEB mnemonic seed.
MONERO_WALLET_SEED Yes - Your 25 word Monero mnemonic seed.
MONERO_WALLET_HEIGHT Yes - The restore height of your Monero wallet.
ELECTRUM_RPC_PASSWORD Yes - A new strong password for your Electrum RPCs.
MONERO_RPC_PASSWORD Yes - A new strong password for your Monero RPC.
MONERO_WALLET_PASSWORD Yes - A new strong password for your Monero Wallet.
KRAKEN_API_KEY Yes - Your API key from Kraken.
KRAKEN_API_SECRET Yes - Your API secret from Kraken.
MONERO_DAEMON_ADDRESS Yes - The address of a Monero daemon you own or trust.
BITCOIN_ELECTRUM_SERVER_ADDRESS No - The address of a Bitcoin Electrum server you own or trust. E.g.: localhost:50001:t (no SSL) or my.electrum.server:50001:s (SSL). By leaving this blank you're letting Electrum select a random server for you, which may be a privacy concern.
LITECOIN_ELECTRUM_SERVER_ADDRESS No - The address of a Litecoin Electrum server you own or trust. E.g.: localhost:50001:t (no SSL) or my.electrum.server:50001:s (SSL). By leaving this blank you're letting Electrum select a random server for you, which may be a privacy concern.
MAX_NETWORK_FEE_PERCENT No 5 The maximum accepted miner fee percent when auto-forwarding. Not applied to XMR.
MAX_SLIPPAGE_PERCENT No 0.5 The maximum accepted slippage percent when auto-converting.
SETTLEMENT_CURRENCY No USD The currency you wish to convert to. If there isn't a direct trading pair, it attempts to trade through USD first, e.g. XMR->USD->DAI.
BITCOIN_FEE_SOURCE No https://mempool.space/api/v1/fees/recommended The fee API source to use for Bitcoin transactions.
BITCOIN_FEE_RATE No halfHourFee The fee rate to use in the Bitcoin fee source API response.
LITECOIN_FEE_SOURCE No https://litecoinspace.org/api/v1/fees/recommended The fee API source to use for Litecoin transactions.
LITECOIN_FEE_RATE No halfHourFee The fee rate to use in the Litecoin fee source API response.

Running

After setting the required environment variable values, you can run the containers:

$ docker-compose --env-file .env up -d

Changing seeds

If you wish to change any of the wallet seeds in the future, first you have to take down all Docker Compose services and delete the volumes:

$ docker-compose down -v

Change the seeds in the .env file and start all services again:

$ docker-compose --env-file .env up -d

Trading Strategy

The trading strategy utilized in this program is as follows:

  • Fetch the current balance to sell.
  • First try to sell with one trade, e.g. XMR->USD.
  • If that fails, try to sell via USD, e.g. XMR->USD->DAI.
  • Sell by taking as many maarket trades as possible to not move the price down more than 0.5% from the calculated mid price.
  • Wait a random amount of time before trying again between 30-90 seconds.

We strongly recommend running this program with a dedicated Kraken account to ensure that it does not interfere with any of your other activities.

This trading stategy may not be optimal for your needs. You can configure the MAX_NETWORK_FEE_PERCENT environment variable. For illiquid trading pairs that regularly have bid-ask spreads exceeding 1%, consider a higher value than 0.5%. You should consider a different trading strategy if you are sensitive to taker fees.

Contributing

Pull requests welcome! Thanks for supporting MAGIC Grants.

License

MIT

About

Programs to auto-forward BTC, LTC, XMR wallets to Kraken, and then auto-convert to USD

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •