API Reference

Sub Accounts

What is a sub-account

Sub-accounts permit you to delegate trading permissions to other wallets, allowing you to divide responsibilities and manage deposited funds more securely.

A Sub-account is a wallet address that has been given permission to trade on the Parent Account’s position in certain markets.

Because of the nature of DeFi, each wallet has its own funds and position on chain. A Sub-Account is a wallet that has permission to sign Trade actions on a Parent’s Wallet in certain Markets, but not to Withdraw from, or deposit to, a Parent’s wallet.

Who should use sub-accounts

Sub-accounts allow you to delegate trading permissions on your wallet addresses, without delegating functions like withdraw or deposit. They are suitable if you have a trading team, and need to provide trading permissions without revealing your private keys or putting funds at risk of unauthorized withdrawal out of the exchange.

How do sub-accounts work

Any wallet address (Parent) may whitelist another wallet address (sub-account) to be able to trade on it’s positions. This gives the sub-account wallet address permission to sign certain contract interactions on behalf of the Parent’s wallet using their own private key; the parent never needs to share their private key. These permissions are limited to trading interactions - such as create order - and exclude the ability to deposit or withdraw funds from the parent account.

It’s important to note that Sub Accounts are not a newly generated account specific to this parent account, rather they are just another account in the protocol that has all the regular permissions to deposit, withdraw and trade on their personal account. They have just received an additional permission to place trades on a parent account as well. This permission may be revoked at any time as well.

How should I set up sub-accounts

A key factor to remember when using a Decentralized Exchange like Bluefin, is that Bluefin has no custody of any of the assets on the exchange. Instead, each wallet has its own positions, balances, and PnL held on-chain.

As such sub-accounts do not function like a subset of accounts under the control of a Parent - as they would on a centralized exchange. Instead, a sub-account is a wallet address with restricted permissions to trade on a parents wallet, or account.

To create a sub-set of accounts that you can provide to your trading team, while still retaining control of the funds, you can:

  1. Create a set of wallets you control (Parent Wallets)
  2. Deposit funds into each of these wallets as per your requirements
  3. Whitelist a wallet address that your trader controls to each of these Parent Wallets (1 to 1) using the method described here

Your team may now trade on each of the Parent Wallets, using the sub-account wallet they control, without having access to the private keys of the parent wallet, nor the permission to withdraw funds from the parent wallet.

How do I manage sub-accounts

The sub-account feature is only currently available to API-based trading through our client library.

For every API call, you may add a parent wallet address that you wish the action to be performed on. If your wallet address has been whitelisted by the Parent o that particular Market, your API request will be approved and actioned (excluding withdraw and deposit requests).