Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
149 changes: 123 additions & 26 deletions infrastructure/config/boltz/backend/dev-boltz.conf
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ network = "bitcoinMainnet"

# Wallet balances - adjusted for testing
minWalletBalance = 100_000 # 0.001 BTC (100k sats)
minChannelBalance = 100_000 # 0.001 BTC (100k sats)
minChannelBalance = 100_000 # 0.001 BTC (100k sats)

# Swap limits
maxSwapAmount = 10_000_000 # 0.1 BTC maximum
Expand Down Expand Up @@ -85,15 +85,13 @@ maxZeroConfAmount = 0 # Disable 0-conf for security
[[pairs]]
base = "BTC"
quote = "BTC"
rate = 1 # 1:1 exchange rate

# Fee configuration (in percent)
fee = 0.5 # 0.5% service fee
swapInFee = 0.25 # 0.25% for submarine swaps (chain -> lightning)
rate = 1
fee = 0.5 # 0.5% service fee
swapInFee = 0.25 # 0.25% for submarine swaps (chain -> lightning)

# Swap amount limits (in satoshis)
maxSwapAmount = 10_000_000 # 0.1 BTC
minSwapAmount = 2_500 # 2,500 sats (pair level)
maxSwapAmount = 10_000_000 # 0.1 BTC
minSwapAmount = 2_500 # 2,500 sats (pair level)

# Submarine Swap specific settings (Chain -> Lightning)
[pairs.submarineSwap]
Expand All @@ -115,36 +113,135 @@ minSwapAmount = 2_500 # 2,500 sats (pair level)
[[pairs]]
base = "BTC"
quote = "RBTC"
rate = 1 # 1:1 peg between BTC and RBTC

# Fee configuration (in percent)
rate = 1
fee = 0.25
swapInFee = 0.1

# Swap amount limits (in satoshis)
maxSwapAmount = 10_000_000 # 0.1 BTC/RBTC
minSwapAmount = 2_500 # 2,500 sats minimum (Rootstock has lower fees)
maxSwapAmount = 10_000_000 # 0.1 BTC/RBTC
minSwapAmount = 2_500 # 2,500 sats minimum (Rootstock has lower fees)

[pairs.timeoutDelta]
chain = 1440 # Chain swap timeout (~24 hours = 144 blocks)
reverse = 1440 # ~24 hours for reverse swaps (lightning -> chain)
swapMinimal = 1440 # Minimum timeout for submarine swaps (~24 hours = 144 blocks)
swapMaximal = 2880 # Maximum timeout (~48 hours = 288 blocks)
swapTaproot = 10080 # 1 week for taproot swaps (10080 blocks)

[[pairs]]
base = "BTC"
quote = "cBTC"
rate = 1
fee = 0.25
swapInFee = 0.1

maxSwapAmount = 10_000_000 # 0.1 BTC/cBTC
minSwapAmount = 2_500 # 2,500 sats minimum (Citrea Testnet has low fees)

[pairs.timeoutDelta]
chain = 60 # Chain swap timeout (~1 hour, due to fast 2s blocks)
reverse = 180 # Reverse swap timeout (Lightning -> cBTC) - increased for CLTV requirements
swapMinimal = 1440 # Minimum timeout (~13.3 hours) - minimum for Lightning CLTV (80 blocks × 10 min)
swapMaximal = 2880 # Maximum timeout (~16.7 hours) - allows 100 Bitcoin blocks CLTV
swapTaproot = 10080 # Taproot timeout (~16.7 hours)

[[pairs]]
base = "USDT_ETH"
quote = "USDT_CITREA"
rate = 1
fee = 0.25
swapInFee = 0.1

maxSwapAmount = 1_000_000_000 # 1000 USDT_ETH/USDT_CITREA
minSwapAmount = 1_000_000 # 1 USDT_ETH/USDT_CITREA

[pairs.timeoutDelta]
chain = 1440 # Chain swap timeout (~24 hours = 144 blocks)
reverse = 1440 # ~24 hours for reverse swaps (lightning -> chain)
swapMinimal = 1440 # Minimum timeout for submarine swaps (~24 hours = 144 blocks)
swapMaximal = 2880 # Maximum timeout (~48 hours = 288 blocks)
swapTaproot = 10080 # 1 week for taproot swaps (10080 blocks)

[[pairs]]
base = "USDT_POLYGON"
quote = "USDT_CITREA"
rate = 1
fee = 0.25
swapInFee = 0.1

maxSwapAmount = 1_000_000_000 # 1000 USDT_POLYGON/USDT_CITREA
minSwapAmount = 1_000_000 # 1 USDT_POLYGON/USDT_CITREA

[pairs.timeoutDelta]
chain = 1440 # Chain swap timeout (~24 hours)
reverse = 1440 # Reverse swap timeout (Lightning -> RBTC)
swapMinimal = 1440 # Minimum timeout
swapMaximal = 2880 # Maximum timeout
swapTaproot = 10080
chain = 1440 # Chain swap timeout (~24 hours = 144 blocks)
reverse = 1440 # ~24 hours for reverse swaps (lightning -> chain)
swapMinimal = 1440 # Minimum timeout for submarine swaps (~24 hours = 144 blocks)
swapMaximal = 2880 # Maximum timeout (~48 hours = 288 blocks)
swapTaproot = 10080 # 1 week for taproot swaps (10080 blocks)

# RSK (Rootstock) Configuration
[rsk]
networkName = "RSK Mainnet"
providerEndpoint = "[PROVIDER_ENDPOINT]"

[[rsk.contracts]]
etherSwap = "0x3d9cc5780CA1db78760ad3D35458509178A85A4A"
erc20Swap = "0x7d5a2187CC8EF75f8822daB0E8C9a2DB147BA045"
[[rsk.contracts]]
etherSwap = "0x3d9cc5780CA1db78760ad3D35458509178A85A4A"
erc20Swap = "0x7d5a2187CC8EF75f8822daB0E8C9a2DB147BA045"

[[rsk.tokens]]
symbol = "RBTC"

minWalletBalance = 10_000

# ETH (Ethereum) Configuration
[ethereum]
networkName = "Ethereum Mainnet"
providerEndpoint = "[PROVIDER_ENDPOINT]"

[[ethereum.contracts]]
etherSwap = "0x9ADfB0F1B783486289Fc23f3A3Ad2927cebb17e4"
erc20Swap = "0x2E21F58Da58c391F110467c7484EdfA849C1CB9B"

[[ethereum.tokens]]
symbol = "USDT_ETH"
decimals = 6
contractAddress = "0xdAC17F958D2ee523a2206206994597C13D831ec7"

minWalletBalance = 1_000_000 # 1 USDT_ETH

# POL (Polygon) Configuration
[polygon]
networkName = "Polygon Mainnet"
providerEndpoint = "[PROVIDER_ENDPOINT]"

[[polygon.contracts]]
etherSwap = "0x9ADfB0F1B783486289Fc23f3A3Ad2927cebb17e4"
erc20Swap = "0x2E21F58Da58c391F110467c7484EdfA849C1CB9B"

[[polygon.tokens]]
symbol = "USDT_POLYGON"
decimals = 6
contractAddress = "0xc2132D05D31c914a87C6611C10748AEb04B58e8F"

minWalletBalance = 1_000_000 # 1 USDT_POLYGON

# Citrea Testnet Configuration
[citrea]
networkName = "Citrea Testnet"
providerEndpoint = "https://dev.rpc.testnet.juiceswap.com"

[[citrea.contracts]]
etherSwap = "0xd02731fD8c5FDD53B613A699234FAd5EE8851B65"
erc20Swap = "0xf2e019a371e5Fd32dB2fC564Ad9eAE9E433133cc"

[[citrea.tokens]]
symbol = "cBTC"

[[rsk.tokens]]
symbol = "RBTC"
minWalletBalance = 100_000

maxSwapAmount = 10_000_000
minSwapAmount = 2_500
[[citrea.tokens]]
symbol = "USDT_CITREA"
decimals = 6
contractAddress = "0x1Dd3057888944ff1f914626aB4BD47Dc8b6285Fe"

minWalletBalance = 10_000
minWalletBalance = 1_000_000 # 1 USDT_CITREA
149 changes: 123 additions & 26 deletions infrastructure/config/boltz/backend/prd-boltz.conf
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ network = "bitcoinMainnet"

# Wallet balances - adjusted for testing
minWalletBalance = 100_000 # 0.001 BTC (100k sats)
minChannelBalance = 100_000 # 0.001 BTC (100k sats)
minChannelBalance = 100_000 # 0.001 BTC (100k sats)

# Swap limits
maxSwapAmount = 10_000_000 # 0.1 BTC maximum
Expand Down Expand Up @@ -85,15 +85,13 @@ maxZeroConfAmount = 0 # Disable 0-conf for security
[[pairs]]
base = "BTC"
quote = "BTC"
rate = 1 # 1:1 exchange rate

# Fee configuration (in percent)
fee = 0.5 # 0.5% service fee
swapInFee = 0.25 # 0.25% for submarine swaps (chain -> lightning)
rate = 1
fee = 0.5 # 0.5% service fee
swapInFee = 0.25 # 0.25% for submarine swaps (chain -> lightning)

# Swap amount limits (in satoshis)
maxSwapAmount = 10_000_000 # 0.1 BTC
minSwapAmount = 2_500 # 2,500 sats (pair level)
maxSwapAmount = 10_000_000 # 0.1 BTC
minSwapAmount = 2_500 # 2,500 sats (pair level)

# Submarine Swap specific settings (Chain -> Lightning)
[pairs.submarineSwap]
Expand All @@ -115,36 +113,135 @@ minSwapAmount = 2_500 # 2,500 sats (pair level)
[[pairs]]
base = "BTC"
quote = "RBTC"
rate = 1 # 1:1 peg between BTC and RBTC

# Fee configuration (in percent)
rate = 1
fee = 0.25
swapInFee = 0.1

# Swap amount limits (in satoshis)
maxSwapAmount = 10_000_000 # 0.1 BTC/RBTC
minSwapAmount = 2_500 # 2,500 sats minimum (Rootstock has lower fees)
maxSwapAmount = 10_000_000 # 0.1 BTC/RBTC
minSwapAmount = 2_500 # 2,500 sats minimum (Rootstock has lower fees)

[pairs.timeoutDelta]
chain = 1440 # Chain swap timeout (~24 hours = 144 blocks)
reverse = 1440 # ~24 hours for reverse swaps (lightning -> chain)
swapMinimal = 1440 # Minimum timeout for submarine swaps (~24 hours = 144 blocks)
swapMaximal = 2880 # Maximum timeout (~48 hours = 288 blocks)
swapTaproot = 10080 # 1 week for taproot swaps (10080 blocks)

[[pairs]]
base = "BTC"
quote = "cBTC"
rate = 1
fee = 0.25
swapInFee = 0.1

maxSwapAmount = 10_000_000 # 0.1 BTC/cBTC
minSwapAmount = 2_500 # 2,500 sats minimum (Citrea Testnet has low fees)

[pairs.timeoutDelta]
chain = 60 # Chain swap timeout (~1 hour, due to fast 2s blocks)
reverse = 180 # Reverse swap timeout (Lightning -> cBTC) - increased for CLTV requirements
swapMinimal = 1440 # Minimum timeout (~13.3 hours) - minimum for Lightning CLTV (80 blocks × 10 min)
swapMaximal = 2880 # Maximum timeout (~16.7 hours) - allows 100 Bitcoin blocks CLTV
swapTaproot = 10080 # Taproot timeout (~16.7 hours)

[[pairs]]
base = "USDT_ETH"
quote = "USDT_CITREA"
rate = 1
fee = 0.25
swapInFee = 0.1

maxSwapAmount = 1_000_000_000 # 1000 USDT_ETH/USDT_CITREA
minSwapAmount = 1_000_000 # 1 USDT_ETH/USDT_CITREA

[pairs.timeoutDelta]
chain = 1440 # Chain swap timeout (~24 hours = 144 blocks)
reverse = 1440 # ~24 hours for reverse swaps (lightning -> chain)
swapMinimal = 1440 # Minimum timeout for submarine swaps (~24 hours = 144 blocks)
swapMaximal = 2880 # Maximum timeout (~48 hours = 288 blocks)
swapTaproot = 10080 # 1 week for taproot swaps (10080 blocks)

[[pairs]]
base = "USDT_POLYGON"
quote = "USDT_CITREA"
rate = 1
fee = 0.25
swapInFee = 0.1

maxSwapAmount = 1_000_000_000 # 1000 USDT_POLYGON/USDT_CITREA
minSwapAmount = 1_000_000 # 1 USDT_POLYGON/USDT_CITREA

[pairs.timeoutDelta]
chain = 1440 # Chain swap timeout (~24 hours)
reverse = 1440 # Reverse swap timeout (Lightning -> RBTC)
swapMinimal = 1440 # Minimum timeout
swapMaximal = 2880 # Maximum timeout
swapTaproot = 10080
chain = 1440 # Chain swap timeout (~24 hours = 144 blocks)
reverse = 1440 # ~24 hours for reverse swaps (lightning -> chain)
swapMinimal = 1440 # Minimum timeout for submarine swaps (~24 hours = 144 blocks)
swapMaximal = 2880 # Maximum timeout (~48 hours = 288 blocks)
swapTaproot = 10080 # 1 week for taproot swaps (10080 blocks)

# RSK (Rootstock) Configuration
[rsk]
networkName = "RSK Mainnet"
providerEndpoint = "[PROVIDER_ENDPOINT]"

[[rsk.contracts]]
etherSwap = "0x3d9cc5780CA1db78760ad3D35458509178A85A4A"
erc20Swap = "0x7d5a2187CC8EF75f8822daB0E8C9a2DB147BA045"
[[rsk.contracts]]
etherSwap = "0x3d9cc5780CA1db78760ad3D35458509178A85A4A"
erc20Swap = "0x7d5a2187CC8EF75f8822daB0E8C9a2DB147BA045"

[[rsk.tokens]]
symbol = "RBTC"

minWalletBalance = 10_000

# ETH (Ethereum) Configuration
[ethereum]
networkName = "Ethereum Mainnet"
providerEndpoint = "[PROVIDER_ENDPOINT]"

[[ethereum.contracts]]
etherSwap = "0x9ADfB0F1B783486289Fc23f3A3Ad2927cebb17e4"
erc20Swap = "0x2E21F58Da58c391F110467c7484EdfA849C1CB9B"

[[ethereum.tokens]]
symbol = "USDT_ETH"
decimals = 6
contractAddress = "0xdAC17F958D2ee523a2206206994597C13D831ec7"

minWalletBalance = 1_000_000 # 1 USDT_ETH

# POL (Polygon) Configuration
[polygon]
networkName = "Polygon Mainnet"
providerEndpoint = "[PROVIDER_ENDPOINT]"

[[polygon.contracts]]
etherSwap = "0x9ADfB0F1B783486289Fc23f3A3Ad2927cebb17e4"
erc20Swap = "0x2E21F58Da58c391F110467c7484EdfA849C1CB9B"

[[polygon.tokens]]
symbol = "USDT_POLYGON"
decimals = 6
contractAddress = "0xc2132D05D31c914a87C6611C10748AEb04B58e8F"

minWalletBalance = 1_000_000 # 1 USDT_POLYGON

# Citrea Testnet Configuration
[citrea]
networkName = "Citrea Testnet"
providerEndpoint = "https://dev.rpc.testnet.juiceswap.com"

[[citrea.contracts]]
etherSwap = "0xd02731fD8c5FDD53B613A699234FAd5EE8851B65"
erc20Swap = "0xf2e019a371e5Fd32dB2fC564Ad9eAE9E433133cc"

[[citrea.tokens]]
symbol = "cBTC"

[[rsk.tokens]]
symbol = "RBTC"
minWalletBalance = 100_000

maxSwapAmount = 10_000_000
minSwapAmount = 2_500
[[citrea.tokens]]
symbol = "USDT_CITREA"
decimals = 6
contractAddress = "0x1Dd3057888944ff1f914626aB4BD47Dc8b6285Fe"

minWalletBalance = 10_000
minWalletBalance = 1_000_000 # 1 USDT_CITREA