Bitcoin Lightning Network
Overview
The Bitcoin Lightning Network is a second-layer protocol that enables fast, low-cost, and scalable bitcoin payments by conducting transactions off-chain through payment channels. These channels enable participants to transact instantly, without waiting for on-chain block confirmations. The Lightning Network also supports microtransactions, making small payments more feasible. Final balances settle on-chain only when a channel closes, reducing load on the Bitcoin base layer.
Wallets Types
Currently, BitGo offers both custody and self-custody Lightning wallets. However, unlike other wallet types at BitGo, Lightning wallets are single-signature hot wallets.
Ticker Symbols
Mainnet | Testnet |
---|---|
lnbtc | tlntbc |
Units
On the Bitcoin network, bitcoin is divisible by 10-8 and the base unit is a satoshi (sat). However, on the Lightning Network, bitcoin is divisible by 10-12 and the base unit is a millisatoshi (msat):
- 1 bitcoin = 100,000,000 satoshi or 100,000,000,000 millisatoshi
- 1 satoshi = 0.00000001 bitcoin or 1,000 millisatoshis
- 1 millisatoshi = 0.00000000001 bitcoin or 0.001 satoshi
Tokens
The Lightning blockchain doesn't natively support tokens.
Fees
Lightning transactions have no minimum or default fees.
Create Wallet
When you create a Lightning wallet, BitGo creates a Lightning node with a hosting service provider. This process takes approximately 30 minutes to complete. BitGo sends you an email notification when the wallet is ready to use.
Endpoint: Generate Wallet
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
export BITGO_EXPRESS_HOST="<YOUR_LOCALHOST>" export COIN="tlntbc" export ACCESS_TOKEN="<YOUR_ACCESS_TOKEN>" export LABEL="<YOUR_WALLET_NAME>" export PASSPHRASE="<YOUR_BITGO_LOGIN_PASSPHRASE>" export ENTERPRISE_ID="<YOUR_ENTERPRISE_ID>" curl -X POST \ http://$BITGO_EXPRESS_HOST:3080/api/v2/$COIN/wallet/generate \ -H 'Content-Type: application/json' \ -H "Authorization: Bearer $ACCESS_TOKEN" \ -d '{ "label": "'"$LABEL"'", "passphrase": "'"$PASSPHRASE"'", "enterprise": "'"$ENTERPRISE_ID"'" "type": "hot", "subType": "lightningCustody" # required for lightning wallets }'
Create Address
Creating an address is an important step to opening a channel on the Lightning Network, because it prompts the Lightning node to generate a single-signature address for the funding transaction.
Endpoint: Create Address
1 2 3 4 5 6 7 8
export COIN="tlnbtc" export WALLET_ID="<YOUR_WALLET_ID>" export ACCESS_TOKEN="<YOUR_ACCESS_TOKEN>" curl -X POST \ https://app.bitgo-test.com/api/v2/$COIN/wallet/$WALLET_ID/address \ -H 'Content-Type: application/json' \ -H "Authorization: Bearer $ACCESS_TOKEN"