Swap.unlimitedLN extends the Lightning Address standard to create swap addresses — Lightning Network addresses that automatically swap incoming BTC to any supported cryptocurrency.
Send Bitcoin via Lightning Network to an address like trx@swap.unlimitedln.fun,
put your destination wallet address in the comment, and the swap happens automatically.
You receive the target cryptocurrency directly in your wallet.
Just use standard Lightning Address format: coin@swap.unlimitedln.fun.
No registration, no API keys — just send and swap.
Your BTC is automatically swapped via FixedFloat at the best available rate. The destination address is specified in the payment comment.
Fully permissionless. No account needed. Just send BTC from any Lightning wallet to a swap address with your destination address as the comment.
Support for TRX, POL, USDT, ETH, BTC, and many more. The address prefix determines the output currency.
A regular Lightning Address receives BTC that stays as BTC. A swap address
(coin@swap.unlimitedln.fun) receives BTC but instantly swaps it
to the specified cryptocurrency and sends it to the wallet address you provide in the comment field.
This is powered by FixedFloat instant exchange.
The process is simple and completely automated:
Pick the cryptocurrency you want to receive. For TRX, use trx@swap.unlimitedln.fun.
For POL, use pol@swap.unlimitedln.fun. The format is always
<coin>@swap.unlimitedln.fun.
In your Lightning wallet's payment comment/memo field, enter the wallet address where you want to receive the swapped coins. For example, your TRX wallet address when swapping to TRX, or your POL wallet address when swapping to POL.
Your wallet will resolve the LNURL-pay address, show you the exchange rate and limits, and let you send BTC. Your wallet pays a BOLT11 invoice that includes the swap.
Once your payment is confirmed on Lightning Network, FixedFloat automatically swaps your BTC to the target cryptocurrency and sends it to your destination address. The whole process takes just a few minutes.
You can swap BTC (Lightning) to any of the following cryptocurrencies.
Just use the coin code as the address prefix: <coin>@swap.unlimitedln.fun.
Note: The coin code is case-insensitive. TRX@swap.unlimitedln.fun
and trx@swap.unlimitedln.fun both work.
For coins available on multiple networks (like USDT on TRC20, ERC20, BEP20),
use the specific currency code. Example: USDTTRC@swap.unlimitedln.fun for USDT on TRC20,
USDT@swap.unlimitedln.fun for USDT on ERC20.
Programmatic access to Lightning Swap Addresses
LNURL-pay endpoint. Returns the swap parameters for a given coin. This is the standard LNURL-pay resolution endpoint that Lightning wallets call automatically.
| Parameter | Type | Description |
|---|---|---|
coin |
string | Currency code (e.g., TRX, POL, USDT) |
Callback endpoint. Generates a BOLT11 invoice for the swap.
The comment parameter must contain the destination wallet address.
| Parameter | Type | Description |
|---|---|---|
coin |
string | Currency code (e.g., TRX) |
amount |
integer | Amount in millisats (1000 = 1 sat) |
comment |
string | Destination wallet address for the swap output |
{
"callback": "https://swap.unlimitedln.fun/lnurlpcallback/TRX",
"maxSendable": 20000000000,
"minSendable": 1835000,
"metadata": [[\"text/plain\",\"Swap BTC (Lightning) to TRX\"],[\"text/identifier\",\"trx@swap.unlimitedln.fun\"]],
"commentAllowed": 255,
"tag": "payRequest"
}
{
"pr": "lnbc1...",
"routes": []
}
The minSendable and maxSendable values are fetched dynamically
from the FixedFloat API price endpoint for each currency pair (BTCLN → coin).
minSendable = FixedFloat minimum BTC amount × 100,000,000 (sats) × 1000 (millisats)maxSendable = FixedFloat maximum BTC amount × 100,000,000 (sats) × 1000 (millisats)comment field in the callback is used as the
destination address for the swap. If no comment is provided, the callback will
return an error. The comment length is limited to 255 characters.
How to use swap addresses in your projects
Most Lightning wallets support sending to Lightning Addresses:
trx@swap.unlimitedln.fun as the recipient
// Fetch LNURL-pay parameters
$coin = 'TRX';
$url = "https://swap.unlimitedln.fun/.well-known/lnurlp/{$coin}";
$lnurlp = json_decode(file_get_contents($url), true);
// Get min/max in sats
$minSats = $lnurlp['minSendable'] / 1000;
$maxSats = $lnurlp['maxSendable'] / 1000;
// Callback to get invoice
$amountMsats = 5000000; // 5000 sats
$destAddress = 'TXYZ...'; // TRX wallet address
$callbackUrl = $lnurlp['callback']
. '?amount=' . $amountMsats
. '&comment=' . urlencode($destAddress);
$invoice = json_decode(file_get_contents($callbackUrl), true);
// $invoice['pr'] contains the BOLT11 invoice
import requests
# Get swap parameters
coin = "TRX"
resp = requests.get(f"https://swap.unlimitedln.fun/.well-known/lnurlp/{coin}")
lnurlp = resp.json()
# Generate invoice
amount_msats = 5000000 # 5000 sats
dest_address = "TXYZ..." # TRX wallet
callback_url = (f"{lnurlp['callback']}?amount={amount_msats}"
f"&comment={dest_address}")
invoice = requests.get(callback_url).json()
# invoice['pr'] is the BOLT11 invoice string
// Get swap parameters
const coin = 'TRX';
const lnurlp = await (await fetch(`https://swap.unlimitedln.fun/.well-known/lnurlp/${coin}`)).json();
// Generate invoice
const amountMsats = 5000000; // 5000 sats
const destAddress = 'TXYZ...'; // TRX wallet
const callbackUrl = `${lnurlp.callback}?amount=${amountMsats}&comment=${encodeURIComponent(destAddress)}`;
const invoice = await (await fetch(callbackUrl)).json();
// invoice.pr is the BOLT11 invoice
# Step 1: Get swap parameters
curl -s https://swap.unlimitedln.fun/.well-known/lnurlp/TRX
# Step 2: Generate invoice (5000 sats to TRX address TXYZ...)
curl -s "https://swap.unlimitedln.fun/lnurlpcallback/TRX?amount=5000000&comment=TXYZ..."
coin@swap.unlimitedln.fun
works in any Lightning wallet that supports Lightning Addresses (like Wallet of Satoshi,
Phoenix, Breez, Zeus, and many more).
Just enter the swap address as the recipient and put your destination wallet address in the comment field.
Create a personal Lightning swap address that automatically delivers to your wallet. No need to provide a destination address every time — set it once and share your unique address.
Once generated, anyone can send BTC to your personal address — and the swap will automatically deliver your chosen coin to your wallet. No comment needed — your destination address is pre-configured.