Swap.unlimitedLN

swap.unlimitedln.fun
Instant Lightning Network → Crypto Swaps via Lightning Addresses

Lightning Swap Addresses

What are Lightning Swap Addresses?

Swap.unlimitedLN extends the Lightning Address standard to create swap addresses — Lightning Network addresses that automatically swap incoming BTC to any supported cryptocurrency.

Key concept

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.

Simple Addresses

Just use standard Lightning Address format: coin@swap.unlimitedln.fun. No registration, no API keys — just send and swap.

Auto Swap

Your BTC is automatically swapped via FixedFloat at the best available rate. The destination address is specified in the payment comment.

No Registration

Fully permissionless. No account needed. Just send BTC from any Lightning wallet to a swap address with your destination address as the comment.

Many Coins

Support for TRX, POL, USDT, ETH, BTC, and many more. The address prefix determines the output currency.

How is this different from regular Lightning Addresses?

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.

How do Swap Addresses work?

The process is simple and completely automated:

1
Choose a swap address

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.

2
Enter your destination address

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.

3
Send BTC via Lightning

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.

4
Automatic swap & delivery

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.

Important
  • The comment field must contain a valid wallet address for the target cryptocurrency
  • Minimum and maximum amounts are set dynamically from FixedFloat and vary by coin
  • Swap transactions are final and cannot be reversed
  • Always double-check your destination address before sending

Available Cryptocurrencies

You can swap BTC (Lightning) to any of the following cryptocurrencies. Just use the coin code as the address prefix: <coin>@swap.unlimitedln.fun.

TRX POL USDT USDC ETH BTC BNB SOL ADA XRP DOT AVAX LTC DOGE BCH ATOM LINK SUI TON XMR ZEC DASH APT VET

Note: The coin code is case-insensitive. TRX@swap.unlimitedln.fun and trx@swap.unlimitedln.fun both work.

Network details

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.

API

Swap API Reference

Programmatic access to Lightning Swap Addresses

GET
https://swap.unlimitedln.fun/.well-known/lnurlp/{coin}

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)
GET
https://swap.unlimitedln.fun/lnurlpcallback/{coin}?amount={millisats}&comment={address}

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
LNURL-pay Response Format
JSON
{
"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"
}
Callback Response Format
JSON
{
"pr": "lnbc1...",
"routes": []
}
Min / Max Amount Logic

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)
  • Example: min 0.00001835 BTC → 1,835,000 millisats (1,835 sats)
Important: The 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.
EX

Integration Examples

How to use swap addresses in your projects

Manual usage (any Lightning wallet)

Most Lightning wallets support sending to Lightning Addresses:

  1. Open your Lightning wallet
  2. Enter trx@swap.unlimitedln.fun as the recipient
  3. Enter your TRX wallet address in the comment/memo field
  4. Enter the amount and send
  5. Your BTC is swapped to TRX and sent to your wallet automatically
Using with BTCPay Server / self-hosted
PHP
// 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
Python
Python
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
JavaScript (Node.js)
JavaScript
// 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
cURL
Terminal
# 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..."
Tip: The swap address format 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.

Generate Your Personal Swap Address

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.

Your address:
How it works

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.