-
Notifications
You must be signed in to change notification settings - Fork 20
/
.env.sample
248 lines (203 loc) · 9.96 KB
/
.env.sample
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
######
### BASICS
######
######
### HSM (Hardware Security Module) Support
######
# Enable HSM support for enhanced security during the signing process.
# When set to 'true', sat-hunter will utilize a connected HSM device (e.g., Coldcard) for transaction signing.
# This ensures that private keys are managed within a secure, tamper-resistant hardware environment, offering an additional layer of security.
# To activate HSM support, explicitly set this value to 'true'. Any other value (including leaving it unset) will default to using the software-based signing process or other wallet types as configured.
# Important: If enabling HSM support, ensure the necessary HSM device setup and corresponding software (e.g., ckcc-protocol for Coldcard) are correctly installed and configured.
# Use the 'HSM_WALLET_ADDRESS' field to specify the Bitcoin address associated with the HSM device.
# HSM_CLI_PATH="ckcc" ## Optional
# USE_HSM=false
# Generate a segwit address with: ckcc addr --segwit "m/84'/0'/0'/0/0"
# HSM_WALLET_ADDRESS=bc1p...
# HSM_DERIVATION_PATH="m/84'/0'/0'/0/0"
# Example: ckcc xpub
# HSM_XPUB="xpub661..."
# Example: ckcc xpub "m/84'/0'/0'/0/0"
# HSM_CHILD_XPUB="xpub6GwyiZFH..."
# The address for a wallet dedicated to rare sats only where you'd like your rare sats to be sent to.
RARE_SAT_ADDRESS=bc1p....
# If you're running with bitcoin core:
#BITCOIN_CLI_PATH=/usr/bin/bitcoin-cli
#BITCOIN_WALLET=hunter
# If you don't want to use bitcoin core, you can use a 12 word seed in memory
LOCAL_WALLET_SEED="your twelve word seed phrase here this should be a fresh wallet not used anywhere else"
LOCAL_DERIVATION_PATH="m/86'/0'/0'/0/0"
LOCAL_WALLET_ADDRESS=bc1p...
# Get a deezy API key by emailing [email protected] and ask specifically to enable sat hunting
DEEZY_API_KEY=replace_me
# A block explorer is needed to lookup fee rates, and for transaction and utxo lookup if bitcoin core is not used
# Default mempool.space may get rate limited so this allows for a local server if relevant
#MEMPOOL_URL=https://mempool.space
#MEMPOOL_RETRY_URL=https://yourmempoolinstance.com
#MEMPOOL_RETRY_ATTEMPTS=1
######
### STRATEGY
######
EXCLUDE_TAGS="omega alpha pizza"
EXCLUDE_TAGS_MEDIUM_FEE="omega alpha pizza name_palindrome palindrome 3_digits/palindrome block_286 block_78 nakamoto"
EXCLUDE_TAGS_MEDIUM_FEE_THRESHOLD=30
EXCLUDE_TAGS_HIGH_FEE="omega alpha pizza special_name name_palindrome palindrome 3_digits/palindrome block_286 block_78 nakamoto"
EXCLUDE_TAGS_HIGH_FEE_THRESHOLD=60
# You can also include tags to hunt for alternatively. If you include tags, the script will only hunt for sats with those tags and will overwrite exclude tags.
#INCLUDE_TAGS="uncommon rare block_9"
#INCLUDE_TAGS_MEDIUM_FEE="uncommon rare"
#INCLUDE_TAGS_MEDIUM_FEE_THRESHOLD=30
#INCLUDE_TAGS_HIGH_FEE="rare"
#INCLUDE_TAGS_HIGH_FEE_THRESHOLD=60
# Set a minimum size for sat ranges (e.g. block 78 sats). This is useful if you want to only hunt for sat ranges of a minimum size.
# For example, if you indicate block_78:1000, the script will not sequester a block 78 chunk unless the size is at least 1000 sats
#MIN_TAG_SIZES="vintage_nakamoto:1000 block_78:2000"
#MIN_TAG_SIZES_MEDIUM_FEE_THRESHOLD=20
#MIN_TAG_SIZES_MEDIUM_FEE="vintage_nakamoto:5000 block_78:5000"
#MIN_TAG_SIZES_HIGH_FEE_THRESHOLD=50
#MIN_TAG_SIZES_HIGH_FEE="vintage_nakamoto:10000 block_78:10000"
# Set a maximum age for tags (e.g. alpha, omega).
# The key is the tag name and the value is the maximum year (inclusive) for the tag to be considered. The tag will be included if it is from this year or earlier.
# This is useful if you want to only hunt for tags of a certain age or older.
# For example, if you indicate alpha:2009 omega:2010, the script will only return alphas if they are from the year 2009 or earlier and omegas if they are from the year 2010 or earlier.
# Please note that this filter is applied (sub-filter) before the EXCLUDE_TAGS or INCLUDE_TAGS filters.
#MAX_TAG_AGES="alpha:2009 omega:2010"
#MAX_TAG_AGES_MEDIUM_FEE_THRESHOLD=20
#MAX_TAG_AGES_MEDIUM_FEE="alpha:2008 omega:2009"
#MAX_TAG_AGES_HIGH_FEE_THRESHOLD=50
#MAX_TAG_AGES_HIGH_FEE="alpha:2007 omega:2008"
# It is a configuration option that allows you to map specific tags to Bitcoin addresses.
# This is useful when you want to direct certain types of sats to specific addresses.
# The format for this configuration is an array of tag:address pairs, specified in order of priority.
# The script will use the first matching tag to determine where to send the sat.
# For example, if your configuration is uncommon:address123 omega:address345 and the script finds an uncommon omega sat, it will be sent to address123.
# However, if your configuration is omega:address345 uncommon:address123, the sat would be sent to address345.
# Therefore, the order of the tag:address pairs in your configuration matters.
#TAG_BY_ADDRESS="vintage_nakamoto:bc1p1.... block_78:bc1p2...."
# You can split up the output(s) to your exchange under certain conditions to help shake things up and maybe unlock new coins.
# Valid options are NEVER (never split), NO_SATS (only split if no sats found), or ALWAYS (always split)
#SPLIT_TRIGGER=ALWAYS
# When splitting the outputs to the exchange, it will try to make outputs of this size.
#SPLIT_UTXO_SIZE_SATS=100000000
# Can also set different configs based on fee rates
#SPLIT_TRIGGER_MEDIUM_FEE_THRESHOLD=30
#SPLIT_TRIGGER_MEDIUM_FEE=NO_SATS
#SPLIT_UTXO_SIZE_SATS_MEDIUM_FEE=200000000
#SPLIT_TRIGGER_HIGH_FEE_THRESHOLD=60
#SPLIT_TRIGGER_HIGH_FEE=NO_SATS
#SPLIT_UTXO_SIZE_SATS_HIGH_FEE=500000000
######
### FEES
######
# Maximum sat/vByte you'll pay sending funds back to the exchange
MAX_FEE_RATE=100
# Script automatically adjusts fee rates based on mempool congestion. 1 = enabled, 0 = disabled (1 recommended)
AUTO_RBF=1
# How aggressive to be with transaction fees; only relevant if AUTO_RBF is disabled; options: high, medium, or low
#FEE_PREFERENCE=medium
# Max total fee you'll pay in any given transaction
#MAX_FEE_SATS=5000000
# Amount to increase over recommended fee Increase to be more aggressive with fees
#MIN_FEE_BUFFER=3
# Can only set one of MIN_FEE_BUFFER or MIN_FEE_BUFFER_PERCENT
#MIN_FEE_BUFFER_PERCENT=1.08
# Which of the next block fee slots (https://mempool.space/api/v1/fees/mempool-blocks) to use as the minimum for RBF purposes
# Default is 0. To make it more aggressive, you can set it to 1, 2, 3, etc.
#NEXT_BLOCK_FEE_SLOT=0
######
### NOTIFICATIONS
######
# 3 options for notifications; (i) Telegram, (ii) Pushover, and (iii) do nothing
#TELEGRAM_BOT_TOKEN=
#TELEGRAM_CHAT_ID=
# Enable pushover notifications: (https://pushover.net/)
#PUSHOVER_TOKEN=
#PUSHOVER_USER=
#PUSHOVER_PRIORITY=-2
# Only broadcast notifications of found sats; 1 = only notify when sats found, 0 = always notify
ONLY_NOTIFY_ON_SATS=0
######
### OTHER
######
# Script will not withdraw from the exchange if your exchange balance is below this amount
WITHDRAWAL_THRESHOLD_BTC=0.1
#MAX_WITHDRAWAL_BTC=
# How often the script runs (in seconds). Default is 10 seconds.
LOOP_SECONDS=10
# How often to check for new payment in the case limits are exceeded. Default is 60 seconds.
PAYMENT_LOOP_SECONDS=60
# BANK_RUN + DISABLE_WITHDRAWAL: You can only enable one of these at a time.
# Set this to 1 to disable exchange deposits. Does not do any sat-hunting, withdraw-only mode.
#BANK_RUN=
# Set this to 1 to disable exchange withdrawal. Hunt for sats and deposit to the exchange address only.
#DISABLE_WITHDRAWAL=
# Address book can be configured to utilize the '/withdraw name amount' command
#ADDRESS_BOOK="cold_storage:bc1p1... hot_wallet:bc1p2..."
#IGNORE_UTXOS_BELOW_SATS=1001
# Do not create outputs below this amount to regular funds addresses - instead just merge their value into the previous output.
#MIN_REGULAR_FUNDS_OUTPUT_SIZE_SATS=500000
## Whether to split large chunk of special sats, if it contains another special sats (subset)
#SPLIT_SPECIAL_RANGES=1
######
### EXCHANGES
######
# Options are kraken, coinbase, coinbase_exchange, coinbase_prime, bitfinex, binance, bybit, okx/okcoin
# Make sure you uncomment the corresponding fields
ACTIVE_EXCHANGE=kraken
#KRAKEN_API_KEY="API KEY HERE"
#KRAKEN_API_SECRET="API SECRET HERE"
# Note you need to add your withdrawal address in the Kraken UI and give it a label, which you put here.
#KRAKEN_WITHDRAWAL_ADDRESS_KEY="address label"
#KRAKEN_DEPOSIT_ADDRESS=3EGdfM...
# NOTE: COINBASE vs COINBASE_EXCHANGE - they are two separate APIs. coinbase is the regular account, whereas coinbase_exchange is if you upgraded to that.
#COINBASE_API_KEY=""
#COINBASE_API_SECRET=""
#COINBASE_DEPOSIT_ADDRESS=""
# Note this cannot be a taproot address
#COINBASE_WITHDRAWAL_ADDRESS=""
#COINBASE_EXCHANGE_API_KEY=""
#COINBASE_EXCHANGE_API_SECRET=""
#COINBASE_EXCHANGE_DEPOSIT_ADDRESS=""
# Note this cannot be a taproot address
#COINBASE_EXCHANGE_WITHDRAWAL_ADDRESS=""
#COINBASE_EXCHANGE_API_PASSPHRASE=""
# I think TOTP secret is optional, only required if you have 2fa required on all withdrawals
#COINBASE_EXCHANGE_TOTP_SECRET=
#COINBASE_PRIME_ACCESS_KEY=""
#COINBASE_PRIME_SIGNING_KEY=""
#COINBASE_PRIME_DEPOSIT_ADDRESS=""
# Note this cannot be a taproot address
#COINBASE_PRIME_WITHDRAWAL_ADDRESS=""
#COINBASE_PRIME_API_PASSPHRASE=""
#COINBASE_PRIME_WITHDRAWAL_ADDRESS_NAME=""
# Note: for Gemini you should create a "Primary" (not "Master") API Key - it should start with "account-"
#GEMINI_API_KEY=
#GEMINI_API_SECRET=
#GEMINI_WITHDRAWAL_ADDRESS=
#GEMINI_DEPOSIT_ADDRESS=
#GEMINI_FEE_BUFFER_SATS=100000
#BFX_API_KEY=
#BFX_API_SECRET=
#BFX_DEPOSIT_ADDRESS=bc1p...
#BFX_WITHDRAWAL_ADDRESS=
#BINANCE_API_KEY=
#BINANCE_API_SECRET=
#BINANCE_DEPOSIT_ADDRESS=
#BINANCE_WITHDRAWAL_ADDRESS=
#OKX_API_KEY=
#OKX_API_SECRET=
#OKX_DEPOSIT_ADDRESS=
#OKX_WITHDRAWAL_ADDRESS=
#OKX_API_PASSPHRASE=
# Might need to change this to https://www.okx.com for international OKX exchange
#OKX_BASE_URL=https://www.okcoin.com
#BYBIT_API_KEY
#BYBIT_API_SECRET
# Use the Funding account (not Spot account)
#BYBIT_DEPOSIT_ADDRESS
#BYBIT_WITHDRAWAL_ADDRESS
#KUCOIN_API_KEY
#KUCOIN_API_SECRET
#KUCOIN_API_PASSPHRASE
#KUCOIN_DEPOSIT_ADDRESS
#KUCOIN_WITHDRAWAL_ADDRESS