Skip to main content
This guide explains how to withdraw funds from Oumla addresses. Withdrawal behavior differs significantly between Bitcoin and Ethereum networks.
Two Ways to Use Oumla: This guide uses the TypeScript SDK. You can also accomplish the same tasks using direct REST API calls - see the API Reference for endpoint details.

Overview

Withdrawals work differently depending on the network:
  • Bitcoin (BTC/tBTC): Multi-address withdrawal - can withdraw from multiple addresses in one transaction
  • Ethereum (ETH/tETH): Single-address withdrawal - withdraws from one address at a time
Withdrawals are async operations that return a status immediately. Check transaction status on the blockchain explorer for final confirmation.

Prerequisites

Before starting, ensure you have:
  • An initialized SDK client
  • Addresses with sufficient balance
  • Your client share (for signing transactions)
  • Recipient address ready

Bitcoin Withdrawal (BTC/tBTC)

Bitcoin withdrawals support multi-address withdrawal, meaning you can withdraw from multiple addresses in a single transaction.

Step 1: Create Bitcoin Withdrawal

Bitcoin Withdrawal Response

Bitcoin withdrawals return:
Bitcoin withdrawals return a withdrawal ID immediately. The transaction is processed asynchronously. Check the blockchain explorer or transaction status for final confirmation.

Ethereum Withdrawal (ETH/tETH)

Ethereum withdrawals work with single addresses only. To withdraw from multiple addresses, make separate withdrawal requests.

Step 1: Create Ethereum Withdrawal

Ethereum Withdrawal Response

Ethereum withdrawals return:
For Ethereum withdrawals, data.id contains the transaction hash.
Ethereum Limitation: You can only withdraw from one address per withdrawal request. If you need to withdraw from multiple addresses, make separate requests.

Network-Specific Considerations

Bitcoin Networks (BTC/tBTC)

Multi-Address Support:
  • Can combine funds from multiple addresses
  • More efficient for consolidating funds
  • Uses UTXO (Unspent Transaction Output) model
Requirements:
  • All addresses must belong to your organization
  • Sufficient balance across all addresses
  • Network fees deducted from total
Example:

Ethereum Networks (ETH/tETH)

Single-Address Only:
  • One address per withdrawal
  • Simpler transaction model
  • Account-based model
Requirements:
  • Address must have sufficient balance
  • Gas fees deducted from balance
  • Recipient address must be valid Ethereum address
Example:

Complete Examples

Bitcoin Withdrawal Example

Ethereum Withdrawal Example

Checking Withdrawal Status

Bitcoin Withdrawals

Bitcoin withdrawals return a withdrawal ID. Check status by:
  1. Blockchain Explorer: Use the withdrawal ID or check addresses on blockchain explorer
  2. Transaction Monitoring: Monitor the from addresses for outgoing transactions

Ethereum Withdrawals

Ethereum withdrawals return a transaction hash. Check status:

Common Issues

Insufficient Balance

Error: ERR_236 - Not enough balance Causes:
  • Address doesn’t have sufficient funds
  • Balance doesn’t cover amount + fees
Solutions:
  • Check address balance before withdrawal
  • Account for network fees in calculations
  • For Bitcoin: Ensure total across all addresses is sufficient

Invalid Address Format

Error: ERR_176 - Invalid contract address or validation error Causes:
  • Invalid recipient address format
  • Address doesn’t match network
Solutions:
  • Verify address format matches network (Bitcoin vs Ethereum)
  • Use valid blockchain addresses
  • Test addresses on testnet first

Bitcoin: No Unspent Transactions

Error: ERR_226 - No unspent transactions Causes:
  • Address has no UTXOs
  • All funds already spent
Solutions:
  • Ensure address has received funds
  • Wait for transaction confirmations
  • Check address balance

Ethereum: Single Address Limitation

Issue: Trying to withdraw from multiple addresses Solution:
  • Make separate withdrawal requests for each address
  • Or consolidate funds to one address first

Best Practices

  1. Check balances before withdrawal
  2. Account for fees - network fees are deducted automatically
  3. Use testnet first to test withdrawal flow
  4. Verify addresses before sending
  5. Monitor transactions on blockchain explorer
  6. Handle errors gracefully - withdrawals can fail
  7. For Bitcoin: Leverage multi-address withdrawal for efficiency
  8. For Ethereum: Make separate requests for multiple addresses

Network Comparison

FeatureBitcoin (BTC/tBTC)Ethereum (ETH/tETH)
Multi-address✅ Yes❌ No (single address only)
ResponseWithdrawal IDTransaction Hash
ModelUTXO-basedAccount-based
Fee ModelDeducted from totalDeducted from balance
ConfirmationCheck blockchainCheck transaction hash

Next Steps