Bitcoin and Tether on Arkade
Send and receive Bitcoin over Arkade (offchain), onchain (via onboard/offboard), and Lightning. Swap USDC/USDT stablecoins.
技能说明
name: arkade description: Send and receive Bitcoin over Arkade (offchain), onchain (via onboard/offboard), and Lightning. Swap USDC/USDT stablecoins. read_when:
- user wants to send or receive Bitcoin
- user mentions Arkade, Ark, or offchain Bitcoin
- user wants to use Lightning Network
- user wants to swap BTC for stablecoins (USDC, USDT)
- user wants to on-ramp or off-ramp Bitcoin
- user wants to get paid onchain or pay someone onchain
- user mentions boarding address or VTXOs
- user wants instant Bitcoin payments requires: [] metadata: emoji: "₿"
Arkade Skill
Send and receive Bitcoin over Arkade (offchain), onchain (via onboard/offboard), and Lightning Network. Swap between BTC and stablecoins (USDC/USDT) via LendaSwap.
Payment methods:
- Offchain (Arkade): Instant transactions between Arkade wallets
- Onchain: Get paid onchain via boarding address (onboard), pay onchain via offboard
- Lightning: Pay and receive via Boltz submarine swaps
Default Server: https://arkade.computer
Installation
Quick Start (no install required)
# Using pnpm (recommended)
pnpm dlx @arkade-os/skill init
pnpm dlx @arkade-os/skill address
# Using npx
npx -y -p @arkade-os/skill arkade init
npx -y -p @arkade-os/skill arkade address
Global Install
# Install globally
npm install -g @arkade-os/skill
# or
pnpm add -g @arkade-os/skill
# Then use directly
arkade init
arkade address
As a dependency
npm install @arkade-os/skill
# or
pnpm add @arkade-os/skill
CLI Commands
Note: Examples below use
arkadedirectly (assumes global install). For pnpm:pnpm dlx @arkade-os/skill <command>For npx:npx -y -p @arkade-os/skill arkade <command>
Wallet Management
# Initialize wallet (auto-generates private key, default server: arkade.computer)
arkade init
# Initialize with custom server
arkade init https://custom-server.com
# Show Ark address (for receiving offchain Bitcoin)
arkade address
# Show boarding address (for onchain deposits)
arkade boarding-address
# Show balance breakdown
arkade balance
Bitcoin Transactions
# Send sats to an Ark address
arkade send <ark-address> <amount-sats>
# Example: Send 50,000 sats
arkade send ark1qxyz... 50000
# View transaction history
arkade history
Onchain Payments (Onboard/Offboard)
# Get paid onchain: Receive BTC to your boarding address, then onboard to Arkade
# Step 1: Get your boarding address
arkade boarding-address
# Step 2: Have someone send BTC to your boarding address
# Step 3: Onboard the received BTC to make it available offchain
arkade onboard
# Pay onchain: Send offchain BTC to any onchain Bitcoin address
arkade offboard <btc-address>
# Example: Pay someone at bc1 address
arkade offboard bc1qxyz...
Lightning Network
# Create a Lightning invoice to receive payment
arkade ln-invoice <amount-sats> [description]
# Example: Create invoice for 25,000 sats
arkade ln-invoice 25000 "Coffee payment"
# Pay a Lightning invoice
arkade ln-pay <bolt11-invoice>
# Show swap fees
arkade ln-fees
# Show swap limits
arkade ln-limits
# Show pending swaps
arkade ln-pending
Stablecoin Swaps (LendaSwap)
# Get quote for BTC to stablecoin swap
arkade swap-quote <amount-sats> <from> <to>
# Example: Quote 100,000 sats to USDC on Polygon
arkade swap-quote 100000 btc_arkade usdc_pol
# Show available trading pairs
arkade swap-pairs
Supported Tokens:
btc_arkade- Bitcoin on Arkadeusdc_pol- USDC on Polygonusdc_eth- USDC on Ethereumusdc_arb- USDC on Arbitrumusdt_pol- USDT on Polygonusdt_eth- USDT on Ethereumusdt_arb- USDT on Arbitrum
SDK Usage
import { Wallet, SingleKey } from "@arkade-os/sdk";
import {
ArkadeBitcoinSkill,
ArkaLightningSkill,
LendaSwapSkill,
} from "@arkade-os/skill";
// Create wallet (default server: arkade.computer)
const wallet = await Wallet.create({
identity: SingleKey.fromHex(privateKeyHex),
arkServerUrl: "https://arkade.computer",
});
// === Bitcoin Operations ===
const bitcoin = new ArkadeBitcoinSkill(wallet);
// Get addresses
const arkAddress = await bitcoin.getArkAddress();
const boardingAddress = await bitcoin.getBoardingAddress();
// Check balance
const balance = await bitcoin.getBalance();
console.log("Total:", balance.total, "sats");
console.log("Offchain available:", balance.offchain.available, "sats");
console.log("Onchain pending:", balance.onchain.total, "sats");
// Send Bitcoin
const result = await bitcoin.send({
address: recipientArkAddress,
amount: 50000,
});
console.log("Sent! TX:", result.txid);
// === Lightning Operations ===
const lightning = new ArkaLightningSkill({
wallet,
network: "bitcoin",
});
// Create invoice
const invoice = await lightning.createInvoice({
amount: 25000,
description: "Coffee payment",
});
console.log("Invoice:", invoice.bolt11);
// Pay invoice
const payment = await lightning.payInvoice({
bolt11: "lnbc...",
});
console.log("Paid! Preimage:", payment.preimage);
// === Stablecoin Swaps ===
const lendaswap = new LendaSwapSkill({ wallet });
// Get quote
const quote = await lendaswap.getQuoteBtcToStablecoin(100000, "usdc_pol");
console.log("You'll receive:", quote.targetAmount, "USDC");
// Execute swap
const swap = await lendaswap.swapBtcToStablecoin({
targetAddress: "0x...", // EVM address
targetToken: "usdc_pol",
targetChain: "polygon",
sourceAmount: 100000,
});
console.log("Swap ID:", swap.swapId);
Configuration
Data Storage: ~/.arkade-wallet/config.json
Private keys are auto-generated on first use and stored locally. They are never exposed via CLI arguments or stdout. No environment variables required. The LendaSwap API is publicly accessible.
Skill Interfaces
ArkadeBitcoinSkill
getArkAddress()- Get Ark address for receiving offchain paymentsgetBoardingAddress()- Get boarding address for receiving onchain paymentsgetBalance()- Get balance breakdownsend(params)- Send Bitcoin to Ark address (offchain)getTransactionHistory()- Get transaction historyonboard(params)- Get paid onchain: convert onchain BTC to offchainoffboard(params)- Pay onchain: send offchain BTC to any onchain addresswaitForIncomingFunds(timeout?)- Wait for incoming funds
ArkaLightningSkill
createInvoice(params)- Create Lightning invoicepayInvoice(params)- Pay Lightning invoicegetFees()- Get swap feesgetLimits()- Get swap limitsgetPendingSwaps()- Get pending swapsgetSwapHistory()- Get swap historyisAvailable()- Check if Lightning is available
LendaSwapSkill
getQuoteBtcToStablecoin(amount, token)- Quote BTC to stablecoingetQuoteStablecoinToBtc(amount, token)- Quote stablecoin to BTCswapBtcToStablecoin(params)- Swap BTC to stablecoinswapStablecoinToBtc(params)- Swap stablecoin to BTCgetSwapStatus(swapId)- Get swap statusgetPendingSwaps()- Get pending swapsgetSwapHistory()- Get swap historygetAvailablePairs()- Get available trading pairsclaimSwap(swapId)- Claim completed swaprefundSwap(swapId)- Refund expired swap
Networks
Arkade supports multiple networks:
bitcoin- Bitcoin mainnettestnet- Bitcoin testnetsignet- Bitcoin signetregtest- Local regtestmutinynet- Mutiny signet
Support
- GitHub: https://github.com/arkade-os/skill
- Documentation: https://docs.arkadeos.com
如何使用「Bitcoin and Tether on Arkade」?
- 打开小龙虾AI(Web 或 iOS App)
- 点击上方「立即使用」按钮,或在对话框中输入任务描述
- 小龙虾AI 会自动匹配并调用「Bitcoin and Tether on Arkade」技能完成任务
- 结果即时呈现,支持继续对话优化