Skip to main content

Overview

Deposit native assets from Bitcoin, Zcash, or Dogecoin into NEXUS to use smart contracts and DeFi.

Step 1: Get Vault Address

import { NexusClient } from '@nexus/sdk';

const client = new NexusClient('http://localhost:8545');

// Get vault address for your chain
const vault = await client.getVaultAddress('bitcoin'); // or 'zcash', 'dogecoin'
console.log('Deposit to:', vault.vaultAddress);
Or via CLI:
nexus wallet vault-address --chain bitcoin

Step 2: Send to Vault

Bitcoin

bitcoin-cli sendtoaddress <VAULT_ADDRESS> 0.01

Zcash

zcash-cli sendtoaddress <VAULT_ADDRESS> 1.0

Dogecoin

dogecoin-cli sendtoaddress <VAULT_ADDRESS> 1000

Step 3: Wait for Confirmations

ChainConfirmationsTime
Bitcoin6~60 min
Zcash10~25 min
Dogecoin6~6 min

Step 4: Check Balance

const balance = await client.getBalance();
console.log('L2 Balance:', balance);
Or via CLI:
nexus wallet balance

Vault Security

NEXUS vaults maintain 1:1 backing - L1 vault balance always equals L2 balance. If the protocol becomes unresponsive, you can recover your funds after a timelock period via the escape hatch.
Vault Address (P2TR)
├── Protocol Path: L1 balance = L2 balance (1:1 backing)
└── Escape Path: User recovery after timelock

Withdrawal

await client.requestWithdrawal(destinationAddress, amount, 'bitcoin');
Withdrawals are batched for efficiency and processed periodically.