Manage Deposits & Withdrawals

wallet reads and writes need credentials — see API Keys Setup.

Deposit Address

from typed_deribit import Deribit

async with Deribit.new(testnet=True) as client:
  address = await client.http.wallet.address_book.get_current_deposit_address(
    currency='BTC',
  )
  print(address)

create_deposit_address requests a new one instead of reusing the current one.

Deposit History

from typed_deribit import Deribit

async with Deribit.new(testnet=True) as client:
  deposits = await client.http.wallet.deposits.get_deposits(currency='BTC', count=10)
  for deposit in deposits['data']:
    print(deposit['transaction_id'], deposit['amount'], deposit['state'])

Withdraw

The destination address must already be in this account's address book.

from typed_deribit import Deribit

async with Deribit.new(testnet=True) as client:
  withdrawal = await client.http.wallet.withdrawals.withdraw(
    currency='BTC', address='some-address-book-address', amount=0.001,
  )
  print(withdrawal['state'], withdrawal.get('fee'))

Withdrawal History

from typed_deribit import Deribit

async with Deribit.new(testnet=True) as client:
  withdrawals = await client.http.wallet.withdrawals.get_withdrawals(
    currency='BTC', count=10,
  )
  for withdrawal in withdrawals['data']:
    print(withdrawal['amount'], withdrawal['state'])

get_deposits and get_withdrawals both have a _paged sibling — see Paginate Through Results.