Table of Contents

Tradebot — Custodian model

For a side-by-side comparison of the broker and custodian models, see Tradebot overview.

Trading philosophy

The custodian model enables customers to buy and sell crypto, which is held in custody on their behalf and can only be safely accessed by the service provider.

The aim is to limit both crypto price risk and counterparty risk exposure. This is achieved by maintaining a total physical reserve (exchange + hot wallet + cold store) within an acceptable range of the custodian balance — the total crypto being held for customers. Typically the cold store holds most of the customer reserves, while the exchange and hot wallet cover the operational needs of intra-day buy and sell transactions. The crypto on the exchange should be limited to the acceptable counterparty risk but sufficient to trade instantly on custodian wallet changes. The minimum exchange reserve should match the maximum volume of the customers' net buy transactions, also taking into account the time needed to restore the reserve from an exchange or other external sources (typically between 30 and 60 minutes).

WARNING

The usage of the hot wallet in the custodian model is only required when on-chain withdrawals and deposits of customers are supported. Be aware that allowing this feature can complicate the compliance model, since the crypto reserve is not a closed system anymore.

A deviation range called wobble can be set around the desired target value. This prevents excessive trading and unnecessary spread losses when customers buy and sell in the same period. Both target and wobble are defined in the configured client base currency to adapt automatically to changes in crypto price.

Trading rules

  • Keep the amount of crypto on the exchange reserve within the minimum and maximum range. As the range limits are exceeded, a withdraw/deposit from either the hot wallet or cold store can be executed.
  • Keep crypto value in the hot wallet within the minimum and maximum range. Should the range limits be exceeded, the amount will be transferred to the cold store. The operators will be notified when a transfer from the cold store needs to be initiated to the hot wallet or the exchange reserves.
  • Keep the total physical crypto (confirmed, pending and unconfirmed sum of balances in the hot wallet, exchange and optional cold store) within a given range from the custodian balance.

Note: Check cash reserves on the exchange daily. If they exceed operational limits, deposit or withdraw amounts via bank transfer.

Note: Check daily whether cold store transactions need to be initiated to top up exchange or hot wallet reserves.

Typical reserve targets

These are generic recommendations and should be tailored to your business needs.

  • Min exchange reserve: equal to the max amount of net sell transactions in 1 hour when balancing with the hot wallet, or 8–24 hours when balancing directly with cold store, also accounting for the reaction time of the cold store provider.
  • Max exchange reserve: equal to the max acceptable crypto exposure on the exchange.
  • Difference between min and max exchange reserve: should be at least equal to the wobble size.
  • Min/max trade size value: the maximum value should at least equal the wobble value.
  • Min/max transfer value: the minimum transfer value should be smaller than the wobble, but large enough to limit the relative size of the fixed costs of the blockchain transaction.

If the hot wallet service has been enabled, two additional targets are available:

  • Min hot wallet reserve: should match the amount of crypto covering 8–24 hours of net sell transactions (depending on the reaction time of the cold store provider).
  • Max hot wallet reserve: depending on your Nexus agreement, but preferably as low as the operational business allows.

Setup

To configure the Tradebot for each crypto:

  1. Navigate to Traderoom > Tradebot settings
  2. You will see a list of all supported crypto-currencies
  3. Click the edit icon next to each crypto to configure its parameters
  4. Set the values described in the Settings reference section below

For UI screenshots, see Tradebot overview.

Tip: Start by configuring exchange reserves first, then add hot wallet limits if needed. Test with conservative values before adjusting for your specific needs.

Settings reference

Configure the following parameters for each crypto-currency:

Note: Fiat values use the client's configured base currency. EUR is an example only.

Setting Description
Exchange/currency tradepair The exchange and fiat currency (typically the client's base currency) that the Tradebot uses for this crypto.
Min/max exchange value The minimum and maximum amounts in the client's base currency of crypto-currency to keep on the exchange reserve. Used to balance counterparty risk versus operational liquidity.
Min/max hot wallet value The minimum and maximum amounts in the client's base currency of crypto-currency to keep on the hot wallet. If both are set to 0, all transfers occur directly between exchange and cold store.
Balance wobble value The acceptable deviation range around target values (for example, `+/-10` in base currency). This allows buy and sell transactions to offset internally without triggering exchange trades, monetizing the spread. The Tradebot only executes exchange trades when balances exceed the wobble boundaries.
Min/max trading value The minimum and maximum amounts in the client's base currency per exchange order. The minimum should match your exchange's minimum order size.
Min/max transfer value The minimum and maximum amounts in the client's base currency per transfer between reserves. Use this to optimize blockchain fees and dust amounts.

Automated behavior

The Tradebot executes up to six automated actions (in sequence) to keep your reserves balanced. This section explains when and how each action triggers, considering different reserve configurations.

Key definitions

Before reading the action descriptions, familiarize yourself with these terms:

Reserve types:

  • Physical Crypto Balance: total exchange + hot wallet + cold store reserves (less proprietary amounts and delayed crypto)
  • Custodian Crypto Balance: the total crypto held for customers
  • Exchange reserve: available + locked crypto on the exchange
  • Hot wallet reserve: measured confirmed reserve visible in the Traderoom
  • Cold store reserve: total crypto held in cold storage

Value conversions:

  • Base-currency settings are automatically converted to crypto units based on current price
  • MidExchangeCryptoValue: the midpoint between min and max exchange reserve in crypto
  • MidHotWalletCryptoValue: the midpoint between min and max hot wallet reserve in crypto

Delayed amounts:

  • Delayed crypto: already subtracted from the custodian balance but not yet sent from hot wallet
  • Proprietary Amount: internal reserves excluded from balance calculations

Note: If wobble is lower than minimum trading value, Tradebot automatically uses minimum trading value.

Setup scenarios

The Tradebot adapts its behavior to your reserve configuration:

  • Exchange + Hot wallet + Cold store: Most flexible - transfers flow between all three
  • Exchange + Hot wallet (no cold store): Requires manual cold store management
  • Exchange + Cold store (no hot wallet): More efficient for large holdings; requires manual approval for hot wallet fills
  • Exchange only: Simplest setup; requires manual cold store and hot wallet management

Action 1: Exchange reserve is too low

TRANSFER into exchange

Condition: Total exchange reserve is below the minimum threshold AND there is crypto available to transfer.

Trigger: When Physical Crypto Balance > (Custodian Balance - wobble), indicating we are holding excess crypto.

Behavior by setup:

  • With hot wallet: Transfer from hot wallet to exchange
  • With hot wallet + cold store: Prioritize hot wallet transfer; cold store requires manual request
  • With cold store only: Send manual request to transfer from cold store
  • Exchange only: No action (requires manual intervention)

Calculation: Transfer amount is calculated to bring exchange to mid-point, capped at max transfer value.

Action 2: Exchange reserve is too high

TRANSFER out of exchange

Condition: Total exchange reserve is above the maximum threshold AND the Physical Crypto Balance is not fully deployed.

Trigger: When Physical Crypto Balance < (Custodian Balance + wobble), indicating we should move crypto to safer storage.

Behavior by setup:

  • With hot wallet: Transfer to hot wallet first (faster access for trading)
  • With hot wallet + cold store: Prioritize hot wallet; if full, move to cold store
  • With cold store only: Transfer to cold store
  • Exchange only: No action

Calculation: Transfer amount brings exchange to mid-point, capped at max transfer value.

Action 3: Physical crypto balance is too high

SELL exchange order

Condition: Physical Crypto Balance > (Custodian Balance + wobble).

Trigger: More crypto held than customer balances require.

Behavior: Execute a sell on the exchange to rebalance. This applies regardless of reserve setup.

Calculation: Sell amount starts at Physical Balance - Custodian Balance, capped at available exchange crypto and max trade value. Only executes if >= min trade value.

Action 4: Physical crypto balance is too low

BUY exchange order

Condition: Physical Crypto Balance < (Custodian Balance - wobble).

Trigger: Not enough crypto held to cover customer balances.

Behavior: Execute a buy on the exchange to rebalance. This applies regardless of reserve setup.

Calculation: Buy amount starts at Custodian Balance - Physical Balance, capped at 99% of available exchange fiat (reserve 1% for fees) and max trade value. Only executes if >= min trade value.

Action 5: Hot wallet reserve is too high

TRANSFER out of hot wallet

Condition: Confirmed hot wallet reserve > max hot wallet threshold (only if hot wallet is configured).

Trigger: Too much crypto sitting in the hot wallet.

Behavior by setup:

  • With hot wallet + cold store available: First attempt to move to exchange; if exchange is full, move to cold store
  • With hot wallet only: Transfer to exchange
  • Without hot wallet setup: No action

Calculation: Transfer amount starts at reserve - max, capped at max transfer value, and limited by available space in the target reserve.

Action 6: Hot wallet reserve is too low

TRANSFER into hot wallet

Condition: Confirmed hot wallet reserve < min hot wallet threshold (only if hot wallet is configured).

Trigger: Hot wallet depleted below operational needs.

Behavior by setup:

  • With hot wallet + exchange: First attempt to pull from exchange
  • With hot wallet + cold store (if exchange empty): Send manual request to transfer from cold store
  • With hot wallet only: Transfer from exchange
  • Without hot wallet setup: No action

Calculation: Transfer amount brings hot wallet to mid-point, with fallback calculations if primary reserve is insufficient. Requires sufficient available crypto to meet the minimum hot wallet target.

Troubleshooting

Possible reasons why the Tradebot is not executing actions

The Tradebot pauses automated actions if any of these conditions are detected:

Configuration or state issues:

  • Tradebot is not set to active for this crypto
  • Bad parameters: Min exchange value > max exchange value, or either = 0
  • Bad parameters: Min hot wallet > max hot wallet, or max < min + min transfer value
  • Bad parameters: Max trading or max transfer value = 0, or max < min

Recent activity:

  • There are still open active orders or pending withdrawals in Nexus
  • The previous exchange order finished less than 1 minute ago (cooldown period)
  • There are missing deposits in Nexus (withdraw without corresponding deposit)

Price or data issues:

  • Exchange price is unknown or zero
  • Internal price is unknown or zero
  • Exchange price and internal price differ by more than 25%

Wallet inconsistencies (indicates a data sync issue):

  • Confirmed reserve, confirmed balance, total balance, or delayed crypto is negative
  • Total administrative balance is less than confirmed balance
  • Confirmed reserve is less than 99% of confirmed balance (indicates discrepancy between calculated and measured reserves)
  • Exchange or currency reserves are negative or out of date
  • Cold store balance is negative or out of date
  • Custodian wallet balance is negative or out of date

Exchange state issues:

  • Available exchange crypto is less than total exchange crypto (still open orders or transfers)
  • Available exchange currency is less than total exchange currency (still open orders or transfers)