Documentation

L2 Bridge Terms, FAQ & User Responsibilities

Last updated: November 29, 2024

Core Principle

You Choose, You Sign, You Are Responsible

Every action on the KRAY L2 Bridge requires your explicit authorization.

The KRAY L2 Bridge is a trustless, automated system. Validators do not make decisions β€” they only execute what you authorize with your signature.

Important

Your signature on the Bitcoin blockchain is permanent proof of your authorization. It cannot be disputed or reversed.

Responsibilities

πŸ‘€ Your Responsibility

  • Verify destination addresses
  • Choose appropriate fee rates
  • Understand network conditions
  • Accept delays from congestion
  • Secure your private keys
  • Sign transactions carefully

πŸ€– What the Bridge Does

  • Execute your signed instructions
  • Follow automated security rules
  • Verify signatures are valid
  • Process after challenge period
  • Protect from fee spikes
  • Record proof on blockchain
Critical

The bridge cannot help you recover funds sent to wrong addresses. Bitcoin transactions are irreversible. Always triple-check before signing.

Frequently Asked Questions

What happens if I choose a low fee?

This is your responsibility. Lower fees mean slower confirmation β€” potentially hours or days. The bridge shows you current network conditions, but you make the final choice. Your signature is proof that you chose the fee rate.

What if network fees spike after I sign?

The bridge has protection: minor spikes (up to 2x) proceed normally. Major spikes cause the transaction to hold until fees decrease. If fees stay high for 7+ days, the transaction is cancelled and your L2 balance is refunded. However, you accepted this risk when you signed.

Can I cancel after signing?

During the 24-hour challenge period, cancellation may be possible. Once broadcast to Bitcoin, the transaction cannot be cancelled. Bitcoin transactions are irreversible.

What is the 24-hour challenge period?

A security feature that protects against fraud. After you sign, there's a 24-hour waiting period where validators verify everything is correct. If fraud is detected, the withdrawal is cancelled. This is an industry-standard practice.

Why do I provide my own UTXO for fees?

Transparency and control. You see exactly what you're paying, you choose the fee rate, and your signature proves you authorized it. The bridge doesn't need a fee reserve that could be attacked.

What if I send to the wrong address?

Your funds are lost forever. Bitcoin transactions are irreversible. The bridge cannot recover funds sent to wrong addresses. Nobody can. Always verify addresses before signing.

Fee Structure

L2 Operations

  • Transfers: Free with membership, or 1 KRAY
  • Staking: Free
  • DeFi operations: 1 KRAY

Bridge Operations

  • Deposit (L1 β†’ L2): Free (you pay Bitcoin network fee)
  • Withdrawal (L2 β†’ L1): You provide UTXO for Bitcoin fee
Note

For withdrawals, you choose the fee rate. The bridge uses your sats to pay the network fee. Any change is returned to your address.

Security Model

Multi-Layer Protection

  1. Your Signature β€” Only you can authorize transactions
  2. 24-Hour Challenge β€” Time to detect fraud
  3. 2-of-3 Multisig β€” Validators must agree
  4. Fee Protection β€” Hold during fee spikes
  5. Automatic Refund β€” If cancelled, funds return
  6. Blockchain Proof β€” Immutable record

Your Security Responsibilities

  • Never share your seed phrase or private keys
  • Always verify addresses before signing
  • Use hardware wallets for large amounts
  • Check network conditions before withdrawing

πŸ” Cryptographic Security (Schnorr Signatures)

KRAY L2 uses Schnorr signatures (BIP-340) β€” the same cryptographic standard used by Bitcoin Taproot. This ensures maximum security for your transactions.

Your Private Key is ALWAYS Safe

Your private key NEVER leaves your device. When you sign a transaction, only the signature is sent to the server β€” never your private key.

How Signing Works

YOUR DEVICE (KrayWallet Extension) SERVER (Validators) ═══════════════════════════════════ ═══════════════════ 1. Private Key stays HERE ❌ Never sees private key (encrypted in your browser) 2. Creates message: "from:to:amount:nonce:type" 3. Signs with Schnorr: signature = sign(message, privateKey) 4. Sends to server: β†’ 5. Receives: β”œβ”€β”€ signature (64 bytes) β”œβ”€β”€ signature β”œβ”€β”€ public key (32 bytes) β”œβ”€β”€ public key └── ❌ NEVER the private key └── message data 6. Verifies signature using ONLY public key 7. If valid β†’ executes

Why This is Mathematically Secure

  • One-way function: It's mathematically impossible to derive the private key from a signature
  • secp256k1 curve: Same elliptic curve used by Bitcoin since 2009
  • 128-bit security: Would take longer than the age of the universe to crack
  • BIP-340 standard: Audited and battle-tested by the entire Bitcoin ecosystem

What Gets Sent Over the Network

βœ… Sent (Safe)

  • Your public address
  • Transaction details
  • Signature (64 bytes)
  • Public key (32 bytes)
  • Nonce (replay protection)

❌ Never Sent

  • Private key
  • Seed phrase
  • Wallet password
  • Any data that could sign other transactions

Protection Against Attacks

  • Intercept signature: Useless β€” each signature only works for that specific transaction
  • Replay attack: Impossible β€” nonce increments with each transaction
  • Modify transaction: Invalid β€” any change breaks the signature
  • Brute force: Impossible β€” 2¹²⁸ attempts needed (more than atoms in the universe)
  • Man-in-the-middle: Protected β€” HTTPS + signature verification
Same Standard as Bitcoin

We use the exact same cryptographic standards as Bitcoin Taproot, Lightning Network, and all major cryptocurrency wallets. Your security is guaranteed by the same mathematics that protects billions of dollars in Bitcoin.

πŸ—οΈ Complete Security Architecture

Here's everything we do to keep your funds safe. Full transparency β€” no hidden mechanisms.

1. Wallet Security (Your Device)

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ YOUR KRAYWALLET EXTENSION β”‚ β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€ β”‚ β”‚ β”‚ πŸ” SEED PHRASE β”‚ β”‚ β”œβ”€β”€ Generated using BIP-39 standard (2048 words) β”‚ β”‚ β”œβ”€β”€ 128-256 bits of entropy (cryptographically random) β”‚ β”‚ β”œβ”€β”€ Created LOCALLY in your browser β”‚ β”‚ └── NEVER sent anywhere β€” stays on your device only β”‚ β”‚ β”‚ β”‚ πŸ”‘ PRIVATE KEY β”‚ β”‚ β”œβ”€β”€ Derived from seed using BIP-32/BIP-44/BIP-86 β”‚ β”‚ β”œβ”€β”€ Encrypted with YOUR password (AES-256) β”‚ β”‚ β”œβ”€β”€ Stored in browser's localStorage (encrypted) β”‚ β”‚ └── Decrypted ONLY when you enter password β”‚ β”‚ β”‚ β”‚ πŸ“ ADDRESS DERIVATION β”‚ β”‚ β”œβ”€β”€ Path: m/86'/0'/0'/0/0 (BIP-86 Taproot) β”‚ β”‚ β”œβ”€β”€ Creates bc1p... addresses (Taproot/P2TR) β”‚ β”‚ └── Same standard as Bitcoin Core, Sparrow, etc. β”‚ β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

2. L2 Transaction Security

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ L2 TRANSFER FLOW β”‚ β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€ β”‚ β”‚ β”‚ STEP 1: Create Transaction β”‚ β”‚ β”œβ”€β”€ You enter: recipient address + amount β”‚ β”‚ β”œβ”€β”€ Extension fetches your current nonce from server β”‚ β”‚ └── Creates message: "from:to:amount:nonce:type" β”‚ β”‚ β”‚ β”‚ STEP 2: Sign Locally (YOUR DEVICE) β”‚ β”‚ β”œβ”€β”€ Message is hashed with SHA-256 β”‚ β”‚ β”œβ”€β”€ Hash is signed with YOUR private key (Schnorr) β”‚ β”‚ β”œβ”€β”€ Creates 64-byte signature β”‚ β”‚ └── Private key NEVER leaves your device β”‚ β”‚ β”‚ β”‚ STEP 3: Send to Server β”‚ β”‚ β”œβ”€β”€ Sends: signature + public key + transaction data β”‚ β”‚ β”œβ”€β”€ Does NOT send: private key, seed phrase, password β”‚ β”‚ └── All over HTTPS (TLS 1.3 encrypted) β”‚ β”‚ β”‚ β”‚ STEP 4: Server Verification β”‚ β”‚ β”œβ”€β”€ Recreates the same message hash β”‚ β”‚ β”œβ”€β”€ Verifies signature using YOUR public key β”‚ β”‚ β”œβ”€β”€ Checks nonce matches (prevents replay attacks) β”‚ β”‚ β”œβ”€β”€ Checks you have sufficient balance β”‚ β”‚ └── If ALL checks pass β†’ executes transaction β”‚ β”‚ β”‚ β”‚ STEP 5: Confirmation β”‚ β”‚ β”œβ”€β”€ Transaction recorded in Supabase database β”‚ β”‚ β”œβ”€β”€ Nonce incremented (can't reuse signature) β”‚ β”‚ β”œβ”€β”€ Balance updated atomically β”‚ β”‚ └── βœ… INSTANT confirmation returned β”‚ β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

3. Bridge Security (L1 ↔ L2)

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ BRIDGE MULTISIG ARCHITECTURE β”‚ β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€ β”‚ β”‚ β”‚ 🏦 BRIDGE WALLET: 2-of-3 Taproot Multisig β”‚ β”‚ β”œβ”€β”€ Requires 2 out of 3 validators to sign β”‚ β”‚ β”œβ”€β”€ No single point of failure β”‚ β”‚ β”œβ”€β”€ Uses MuSig2 aggregated signatures β”‚ β”‚ └── Address: bc1p... (same Taproot standard) β”‚ β”‚ β”‚ β”‚ πŸ‘₯ VALIDATORS (3 Independent Servers) β”‚ β”‚ β”œβ”€β”€ Each has unique private key β”‚ β”‚ β”œβ”€β”€ Keys stored in secure environment variables β”‚ β”‚ β”œβ”€β”€ Never exposed in code or logs β”‚ β”‚ └── Geographically distributed β”‚ β”‚ β”‚ β”‚ πŸ“₯ DEPOSIT (L1 β†’ L2) β”‚ β”‚ β”œβ”€β”€ You send KRAY to bridge multisig address β”‚ β”‚ β”œβ”€β”€ QuickNode monitors for incoming transactions β”‚ β”‚ β”œβ”€β”€ After 1 confirmation β†’ L2 balance credited β”‚ β”‚ β”œβ”€β”€ Automatic, trustless, no manual intervention β”‚ β”‚ └── 1:1 mapping (1 KRAY L1 = 1 KRAY L2) β”‚ β”‚ β”‚ β”‚ πŸ“€ WITHDRAWAL (L2 β†’ L1) β”‚ β”‚ β”œβ”€β”€ You sign withdrawal request with YOUR key β”‚ β”‚ β”œβ”€β”€ 24-hour challenge period (fraud protection) β”‚ β”‚ β”œβ”€β”€ You provide UTXO for Bitcoin network fee β”‚ β”‚ β”œβ”€β”€ 2-of-3 validators sign the PSBT β”‚ β”‚ β”œβ”€β”€ Transaction broadcast to Bitcoin network β”‚ β”‚ └── KRAY sent to YOUR L1 address β”‚ β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

4. Database Security

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ SUPABASE DATABASE β”‚ β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€ β”‚ β”‚ β”‚ πŸ—„οΈ WHAT WE STORE β”‚ β”‚ β”œβ”€β”€ L2 account IDs (derived from your address) β”‚ β”‚ β”œβ”€β”€ L2 balances β”‚ β”‚ β”œβ”€β”€ Transaction history β”‚ β”‚ β”œβ”€β”€ Public keys (for signature verification) β”‚ β”‚ └── Nonces (for replay protection) β”‚ β”‚ β”‚ β”‚ ❌ WHAT WE NEVER STORE β”‚ β”‚ β”œβ”€β”€ Private keys β”‚ β”‚ β”œβ”€β”€ Seed phrases β”‚ β”‚ β”œβ”€β”€ Passwords β”‚ β”‚ └── Any data that could access your funds β”‚ β”‚ β”‚ β”‚ πŸ”’ DATABASE SECURITY β”‚ β”‚ β”œβ”€β”€ Hosted on Supabase (enterprise-grade) β”‚ β”‚ β”œβ”€β”€ Row-level security policies β”‚ β”‚ β”œβ”€β”€ Encrypted at rest and in transit β”‚ β”‚ β”œβ”€β”€ Regular automated backups β”‚ β”‚ └── Access only via authenticated API β”‚ β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

5. Anti-Fraud Protections

βœ… Built-in Protections

  • Nonce system: Each tx has unique number, can't replay
  • Signature verification: Cryptographic proof required
  • 24h challenge period: Time to detect fraud
  • Rate limiting: Prevents spam attacks
  • Balance checks: Can't spend more than you have
  • Fee spike protection: Holds tx if fees too high

πŸ›‘οΈ Additional Safeguards

  • Membership tiers: Free tx for card holders
  • Minimum balance: Prevents dust spam
  • Auto-refund: If withdrawal cancelled
  • Clean UTXO check: No inscriptions in fee input
  • Address validation: Must be valid bc1p...
  • Amount validation: Must be positive integer

6. Open Standards We Use

  • BIP-39: Mnemonic seed phrases (same as all Bitcoin wallets)
  • BIP-32: Hierarchical deterministic wallets
  • BIP-44: Multi-account hierarchy
  • BIP-86: Taproot derivation paths
  • BIP-340: Schnorr signatures
  • BIP-341: Taproot spending rules
  • secp256k1: Elliptic curve (Bitcoin standard)
  • SHA-256: Hashing algorithm
  • AES-256: Encryption for stored data
  • TLS 1.3: Network encryption (HTTPS)
100% Open Standards

We don't use any proprietary or custom cryptography. Everything is based on Bitcoin's battle-tested standards that secure over $1 trillion in value. Your wallet is compatible with any BIP-86 compliant software.

7. What Happens If...

What if the KRAY L2 servers go offline?

Your L1 funds (on Bitcoin blockchain) are always safe β€” they're secured by Bitcoin itself. L2 balances are backed 1:1 by KRAY in the bridge multisig. If servers go offline temporarily, you just wait. If permanently, the multisig keys can be used to return all funds to users.

What if someone hacks the database?

They can't steal funds. The database only contains public information (addresses, balances, public keys). To move funds, you need to sign with your private key β€” which is ONLY on your device, never on our servers.

What if a validator is compromised?

One compromised validator can't steal funds. The bridge requires 2-of-3 signatures. An attacker would need to compromise at least 2 independent validators simultaneously, which are geographically distributed and use different security measures.

What if I lose my seed phrase?

Your funds are lost forever. We cannot recover them β€” we don't have your seed phrase. This is the tradeoff of true self-custody: you have complete control, but also complete responsibility. Always backup your seed phrase securely (offline, multiple copies, never digital photos).

πŸ”

Your Keys, Your Coins

We built KRAY L2 so that YOU always control your funds. Not us, not validators, not anyone else. This is true self-custody on Bitcoin.

Terms of Use

1. Acceptance

By using the KRAY L2 Bridge, you agree to these terms. If you do not agree, do not use the bridge.

2. User Responsibility

You are solely responsible for:

  • Verifying all transaction details before signing
  • Choosing appropriate fee rates
  • Understanding Bitcoin network conditions
  • Securing your private keys and seed phrases
  • Any losses resulting from your errors

3. No Liability

The KRAY L2 Bridge, its operators, and validators are not liable for:

  • Delays caused by low fee selection
  • Delays caused by network congestion
  • Transactions stuck in mempool
  • Funds sent to wrong addresses
  • Losses due to user error
  • Any indirect or consequential damages

4. Automated Execution

Validators are automated systems that execute transactions based on your signed authorization. They follow predefined rules and do not make subjective decisions. They cannot reverse or modify transactions.

5. Blockchain Finality

Once a transaction is broadcast to the Bitcoin network, it cannot be reversed or cancelled. Your signature is permanent proof of authorization.

6. No Refunds

There are no refunds for user errors including wrong addresses, low fees, or misunderstanding how the system works. The bridge protects you from fee spikes, but not from your own mistakes.

Agreement

By using the KRAY L2 Bridge, you acknowledge that you have read, understood, and agree to these terms. Your use of the bridge constitutes acceptance.