# Spark Documentation > Spark is a Bitcoin Layer 2 for instant, free, self-custodial Bitcoin and stablecoin payments. Build wallets, issue tokens, and scale Bitcoin applications. Spark enables developers to build financial applications on Bitcoin with instant settlements, zero fees, Lightning Network compatibility, and the ability to issue stablecoins and tokens natively on Bitcoin. ## Key Differentiators - **Self-Custody**: Users always control their Bitcoin with unilateral exit to L1 - **Instant Finality**: Transfers settle in under 1 second - **Zero Fees**: Spark-to-Spark transfers are free - **Lightning Compatible**: Native send/receive over Lightning Network - **Bitcoin-Native Stablecoins**: Issue regulated stablecoins directly on Bitcoin - **No Smart Contracts**: Payments-focused architecture, not a VM - **0-Conf Deposits**: Credit deposits before L1 confirmation ## Getting Started - [Overview](https://docs.spark.money/start/overview): Introduction to Spark - the fastest way to build on Bitcoin - [Features](https://docs.spark.money/start/features): Instant settlements, zero fees, unilateral exits, Lightning compatibility, stablecoins - [Use Cases](https://docs.spark.money/start/use-cases): P2P wallets, cross-border payments, stablecoins, DeFi, rewards - [Products](https://docs.spark.money/start/products): Spark product suite overview ## Quickstart Guides - [Create a Wallet](https://docs.spark.money/quickstart/create-wallet): Build your first self-custody Bitcoin wallet on Spark - [Launch a Token](https://docs.spark.money/quickstart/launch-token): Issue a stablecoin or token on Bitcoin in minutes ## Technical Architecture (Learn) ### Introduction - [TLDR](https://docs.spark.money/learn/tldr): How Spark works - Statechains, FROST signing, off-chain scaling - [Sovereignty](https://docs.spark.money/learn/sovereignty): Self-custody and unilateral exit guarantees - [Scalability](https://docs.spark.money/learn/scalability): How Spark achieves unlimited throughput - [Trust Model](https://docs.spark.money/learn/trust-model): 1-of-n trust assumptions and perfect forward security - [Limitations](https://docs.spark.money/learn/limitations): Current constraints and trade-offs - [FAQ](https://docs.spark.money/learn/faq): Common questions about Spark ### Design - [Core Concepts](https://docs.spark.money/learn/core-concepts): Leaves, transfers, deposits, withdrawals - [Technical Definitions](https://docs.spark.money/learn/technical-definitions): Glossary of Spark terminology - [FROST Signing](https://docs.spark.money/learn/frost-signing): Threshold signatures for Bitcoin ### Transaction Lifecycles - [Deposits](https://docs.spark.money/learn/deposits): Bitcoin L1 to Spark deposits, including 0-conf - [Withdrawals](https://docs.spark.money/learn/withdrawals): Cooperative and unilateral exits to L1 - [Transfers](https://docs.spark.money/learn/transfers): Instant Spark-to-Spark transfers - [Lightning](https://docs.spark.money/learn/lightning): Send and receive over Lightning Network - [Unilateral Exits](https://docs.spark.money/learn/unilateral-exits): Exit to L1 without operator cooperation ### Deep Dives - [Spark vs Liquid](https://docs.spark.money/learn/spark-vs-liquid): Bitcoin L2 comparison - self-custody vs federated model - [Spark vs Others](https://docs.spark.money/learn/spark-vs-others): Comparison with other Bitcoin L2s - [Self-Custody Lightning](https://docs.spark.money/learn/self-custody-lightning): Lightning payments without channels or liquidity management - [Issue a Stablecoin](https://docs.spark.money/learn/issue-stablecoin): Complete guide to Bitcoin-native stablecoin issuance - [0-Conf Deposits](https://docs.spark.money/learn/zero-conf-deposits): Instant Bitcoin deposits before L1 confirmation - [Privacy](https://docs.spark.money/learn/privacy): Privacy features and guarantees - [Why Build on Bitcoin](https://docs.spark.money/learn/why-on-bitcoin): The case for Bitcoin as a settlement layer - [What to Build](https://docs.spark.money/learn/what-to-build): Application ideas and opportunities ### Tokens (BTKN Standard) - [Hello BTKN](https://docs.spark.money/learn/tokens/hello-btkn): Introduction to the BTKN token standard - [Token Core Concepts](https://docs.spark.money/learn/tokens/core-concepts): Token architecture and design - [Broadcast Lifecycle](https://docs.spark.money/learn/tokens/broadcast-lifecycle): How token broadcasts work - [Minting Tokens](https://docs.spark.money/learn/tokens/minting): Creating new token supply - [Transferring Tokens](https://docs.spark.money/learn/tokens/transferring): Sending tokens between users - [Freezing Tokens](https://docs.spark.money/learn/tokens/freezing): Compliance controls - [Burning Tokens](https://docs.spark.money/learn/tokens/burning): Reducing token supply - [Token Glossary](https://docs.spark.money/learn/tokens/glossary): Token terminology reference ## Wallet SDK ### Introduction - [Wallet Overview](https://docs.spark.money/wallets/overview): Build self-custody wallets on Spark ### Installation - [TypeScript SDK](https://docs.spark.money/wallets/typescript): JavaScript/TypeScript integration - [React Native](https://docs.spark.money/wallets/react-native): Mobile wallet development ### Wallet Operations - [Create Wallet](https://docs.spark.money/wallets/create-wallet): Initialize a new Spark wallet - [Addressing](https://docs.spark.money/wallets/addressing): Spark address format and handling - [Balances](https://docs.spark.money/wallets/balances): Query wallet balances - [Privacy](https://docs.spark.money/wallets/privacy): Privacy settings and features ### Transfers - [Transfer Bitcoin](https://docs.spark.money/wallets/transfer-bitcoin): Send Bitcoin on Spark - [Transfer Tokens](https://docs.spark.money/wallets/transfer-tokens): Send tokens to other users - [Spark Invoices](https://docs.spark.money/wallets/spark-invoices): Create and fulfill payment requests ### Deposits - [Deposit from L1](https://docs.spark.money/wallets/deposit-from-l1): Bitcoin L1 deposits - [Deposit from Lightning](https://docs.spark.money/wallets/deposit-from-lightning): Lightning Network deposits - [0-Conf Deposits](https://docs.spark.money/wallets/0-conf): Instant deposit crediting ### Withdrawals - [Withdraw to L1](https://docs.spark.money/wallets/withdraw-to-l1): Exit to Bitcoin L1 - [Withdraw to Lightning](https://docs.spark.money/wallets/withdraw-to-lightning): Exit via Lightning - [Unilateral Exit](https://docs.spark.money/wallets/unilateral-exit): Self-sovereign exit without cooperation ### Advanced - [Estimate Fees](https://docs.spark.money/wallets/estimate-fees): Fee estimation for transactions - [Spark Signer](https://docs.spark.money/wallets/spark-signer): Custom signing interface - [Identity Key Derivation](https://docs.spark.money/wallets/identity-key-derivation): Key derivation paths - [Testing Guide](https://docs.spark.money/wallets/testing-guide): Testing your wallet integration - [Wallet FAQ](https://docs.spark.money/wallets/faq): Common wallet questions ## Token Issuance SDK ### Introduction - [Issuance Overview](https://docs.spark.money/issuance/overview): Issue stablecoins and tokens on Bitcoin ### Installation - [TypeScript SDK](https://docs.spark.money/issuance/typescript): Issuer SDK setup ### Issuer Operations - [Issuer Wallet](https://docs.spark.money/issuance/issuer-wallet): Managing issuer wallets - [Create Token](https://docs.spark.money/issuance/create-token): Define token name, supply, and properties - [Mint Tokens](https://docs.spark.money/issuance/mint-tokens): Issue new token supply - [Transfer Tokens](https://docs.spark.money/issuance/transfer-tokens): Send tokens to users - [Freeze Tokens](https://docs.spark.money/issuance/freeze-tokens): Compliance controls for regulated assets - [Burn Tokens](https://docs.spark.money/issuance/burn-tokens): Reduce token supply ### Data & Analytics - [Token Analytics](https://docs.spark.money/issuance/token-analytics): Token metrics and statistics - [Token Holders](https://docs.spark.money/issuance/token-holders): Query token holder information ### Advanced - [Testing Guide](https://docs.spark.money/issuance/testing-guide): Testing token issuance - [Issuance FAQ](https://docs.spark.money/issuance/faq): Common issuance questions - [Issuer CLI](https://docs.spark.money/issuance/tools/cli): Command-line tools for issuers ## Integrations - [Grid](https://docs.spark.money/integrations/grid): Global fiat on/off ramps - [Privy](https://docs.spark.money/integrations/privy): Authentication and embedded wallets - [Brale](https://docs.spark.money/integrations/brale): Stablecoin issuance as a service - [Flashnet](https://docs.spark.money/integrations/flashnet): Instant token swaps and AMM - [Breez](https://docs.spark.money/integrations/breez): Lightning SDK integration - [Garden](https://docs.spark.money/integrations/garden): Cross-chain Bitcoin bridge - [Tether WDK](https://docs.spark.money/integrations/tether-wdk): Tether Wallet Development Kit - [Sparkscan](https://docs.spark.money/integrations/sparkscan): Spark block explorer ## Developer Tools - [Faucet](https://docs.spark.money/tools/faucet): Get testnet Bitcoin and tokens - [Explorer](https://docs.spark.money/tools/explorer): Browse Spark transactions - [CLI](https://docs.spark.money/tools/cli): Command-line interface - [Test Wallet](https://docs.spark.money/tools/test-wallet): Web-based test wallet - [Token Lists](https://docs.spark.money/tools/token-lists): Curated token registries - [Wallet CLI](https://docs.spark.money/wallets/tools/cli): Wallet-specific CLI tools ## Guides - [Guides Overview](https://docs.spark.money/guides/overview): Step-by-step tutorials - [Issue a Stablecoin](https://docs.spark.money/guides/issue-stablecoin): Complete stablecoin issuance guide - [Lightning Payments](https://docs.spark.money/guides/lightning-payments): Implement Lightning send/receive - [Fiat On-Ramps](https://docs.spark.money/guides/fiat-onramps): Add fiat deposit flows - [Fiat Off-Ramps](https://docs.spark.money/guides/fiat-offramps): Add fiat withdrawal flows - [Embedded Wallets](https://docs.spark.money/guides/embedded-wallets): Build non-custodial embedded wallets - [Social Authentication](https://docs.spark.money/guides/social-authentication): Add social login - [Layer 1 Operations](https://docs.spark.money/guides/layer-1): L1 deposit and withdrawal flows - [ETH Bridge](https://docs.spark.money/guides/eth-bridge): Bridge assets from Ethereum - [SOL Bridge](https://docs.spark.money/guides/sol-bridge): Bridge assets from Solana - [On-Chain Swaps](https://docs.spark.money/guides/onchain-swaps): Token swap functionality - [Token Lists](https://docs.spark.money/guides/token-lists): Working with token registries - [Code Repositories](https://docs.spark.money/guides/repos): SDK and example code repos - [Prompt Library](https://docs.spark.money/guides/prompt-library): AI prompts for building on Spark ## API Reference ### Overview - [API Overview](https://docs.spark.money/api-reference/overview): API introduction and conventions ### Wallet API - [Wallet SDK Reference](https://docs.spark.money/api-reference/wallet-overview): Complete wallet SDK documentation #### Core Operations - [initialize](https://docs.spark.money/api-reference/wallet/initialize): Initialize wallet instance - [getIdentityPublicKey](https://docs.spark.money/api-reference/wallet/get-identity-public-key): Get wallet identity key - [getSparkAddress](https://docs.spark.money/api-reference/wallet/get-spark-address): Get Spark address - [getBalance](https://docs.spark.money/api-reference/wallet/get-balance): Query wallet balance - [getTransfers](https://docs.spark.money/api-reference/wallet/get-transfers): List transfers - [getTransfer](https://docs.spark.money/api-reference/wallet/get-transfer): Get transfer details - [cleanupConnections](https://docs.spark.money/api-reference/wallet/cleanup-connections): Clean up connections #### Spark Invoices - [createSatsInvoice](https://docs.spark.money/api-reference/wallet/create-sats-invoice): Create Bitcoin invoice - [createTokensInvoice](https://docs.spark.money/api-reference/wallet/create-tokens-invoice): Create token invoice - [fulfillSparkInvoice](https://docs.spark.money/api-reference/wallet/fulfill-spark-invoice): Pay Spark invoice - [querySparkInvoices](https://docs.spark.money/api-reference/wallet/query-spark-invoices): Query invoices #### Transfers - [transfer](https://docs.spark.money/api-reference/wallet/transfer): Send Bitcoin - [transferTokens](https://docs.spark.money/api-reference/wallet/transfer-tokens): Send tokens - [batchTransferTokens](https://docs.spark.money/api-reference/wallet/batch-transfer-tokens): Batch token transfers #### Bitcoin Deposits - [getSingleUseDepositAddress](https://docs.spark.money/api-reference/wallet/get-single-use-deposit-address): Get deposit address - [getStaticDepositAddress](https://docs.spark.money/api-reference/wallet/get-static-deposit-address): Get reusable deposit address - [claimDeposit](https://docs.spark.money/api-reference/wallet/claim-deposit): Claim a deposit - [claimStaticDeposit](https://docs.spark.money/api-reference/wallet/claim-static-deposit): Claim static deposit - [advancedDeposit](https://docs.spark.money/api-reference/wallet/advanced-deposit): Advanced deposit options #### Bitcoin Withdrawals - [withdraw](https://docs.spark.money/api-reference/wallet/withdraw): Withdraw to L1 - [getWithdrawalFeeQuote](https://docs.spark.money/api-reference/wallet/get-withdrawal-fee-quote): Get withdrawal fee - [getCoopExitRequest](https://docs.spark.money/api-reference/wallet/get-coop-exit-request): Cooperative exit #### Lightning - [payLightningInvoice](https://docs.spark.money/api-reference/wallet/pay-lightning-invoice): Pay Lightning invoice - [createLightningInvoice](https://docs.spark.money/api-reference/wallet/create-lightning-invoice): Create Lightning invoice - [getLightningSendFeeEstimate](https://docs.spark.money/api-reference/wallet/get-lightning-send-fee-estimate): Estimate Lightning fees #### Tokens - [queryTokenTransactions](https://docs.spark.money/api-reference/wallet/query-token-transactions): Query token transactions - [getTokenL1Address](https://docs.spark.money/api-reference/wallet/get-token-l1-address): Get token L1 address #### Events - [eventEmitter](https://docs.spark.money/api-reference/wallet/event-emitter): Subscribe to wallet events #### Advanced: HTLC - [createHtlc](https://docs.spark.money/api-reference/wallet/create-htlc): Create HTLC - [claimHtlc](https://docs.spark.money/api-reference/wallet/claim-htlc): Claim HTLC - [queryHtlc](https://docs.spark.money/api-reference/wallet/query-htlc): Query HTLCs #### Advanced: Optimization - [optimizeLeaves](https://docs.spark.money/api-reference/wallet/optimize-leaves): Consolidate leaves - [optimizeTokenOutputs](https://docs.spark.money/api-reference/wallet/optimize-token-outputs): Consolidate tokens #### Advanced: Signing - [signMessageWithIdentityKey](https://docs.spark.money/api-reference/wallet/sign-message-with-identity-key): Sign messages - [validateMessageWithIdentityKey](https://docs.spark.money/api-reference/wallet/validate-message-with-identity-key): Verify signatures - [signTransaction](https://docs.spark.money/api-reference/wallet/sign-transaction): Sign transactions ### Issuer API - [Issuer SDK Reference](https://docs.spark.money/api-reference/issuer-overview): Complete issuer SDK documentation #### Core Operations - [initialize](https://docs.spark.money/api-reference/issuer/initialize): Initialize issuer - [getIdentityPublicKey](https://docs.spark.money/api-reference/issuer/get-identity-public-key): Get issuer identity key - [getSparkAddress](https://docs.spark.money/api-reference/issuer/get-spark-address): Get issuer address - [createToken](https://docs.spark.money/api-reference/issuer/create-token): Create a new token #### Token Management - [mintTokens](https://docs.spark.money/api-reference/issuer/mint-tokens): Mint new tokens - [transferTokens](https://docs.spark.money/api-reference/issuer/transfer-tokens): Transfer tokens - [batchTransferTokens](https://docs.spark.money/api-reference/issuer/batch-transfer-tokens): Batch transfers - [burnTokens](https://docs.spark.money/api-reference/issuer/burn-tokens): Burn tokens - [freezeTokens](https://docs.spark.money/api-reference/issuer/freeze-tokens): Freeze tokens - [unfreezeTokens](https://docs.spark.money/api-reference/issuer/unfreeze-tokens): Unfreeze tokens #### Token Information - [getIssuerTokenBalances](https://docs.spark.money/api-reference/issuer/get-issuer-token-balances): Get all token balances - [getIssuerTokenBalance](https://docs.spark.money/api-reference/issuer/get-issuer-token-balance): Get single token balance - [getIssuerTokensMetadata](https://docs.spark.money/api-reference/issuer/get-issuer-tokens-metadata): Get all token metadata - [getIssuerTokenMetadata](https://docs.spark.money/api-reference/issuer/get-issuer-token-metadata): Get single token metadata - [getIssuerTokenDistribution](https://docs.spark.money/api-reference/issuer/get-issuer-token-distribution): Get token distribution - [queryTokenTransactions](https://docs.spark.money/api-reference/issuer/query-token-transactions): Query token transactions ### Utilities - [verifySignatureReadonly](https://docs.spark.money/api-reference/utilities/verify-signature-readonly): Verify signatures without wallet ## Links - Website: https://spark.money - GitHub: https://github.com/buildonspark - Status: https://spark.money/status - Explorer: https://sparkscan.io - X/Twitter: https://x.com/spark