Skip to main content
Getting money out takes two steps. First exit the position, which returns the tokens to the product account. Then move them from the account to the user’s wallet with the product’s transfer endpoint and action: "WITHDRAW". This works the same way in Earn, Credit and Tokenized Assets. For Perpetual Trading, withdraw USDC from Hyperliquid instead.

1. Exit the position

For example, take 75 USDC out of a vault in the Earn Account:
Most exits settle in the same transaction. Two settle later, so wait for them before step 2:
  • Equity sell orders fill asynchronously. Poll the order status until it’s filled.
  • IXS vault redemptions are settled by the vault operator. Poll /v2/tokenized_assets/redemptions until the request is finalized.

2. Send tokens to the wallet

Send 100 USDC from the Earn Account back to the user’s wallet:
Either way, the owner signs the instruction to their account. The account only follows its owner’s signature, so nobody else (including Compass) can withdraw.

Good to know

  • Only tokens sitting in the account can move. If the account holds less than amount, the call returns 400 Insufficient balance. Read the amount from balances first.
  • Pay out a loan while it’s open. Borrowed tokens land in the Credit Account. Send them to the user’s wallet with transfer and WITHDRAW; this works while the loan is open. Collateral stays in the lending protocol until you withdraw it with repay or bundle.
  • Credit and Tokenized Assets always pay the owner. Only Earn takes a recipient.
  • Exit and withdraw with one signature. In Earn and Credit, a bundle can combine the exit with a V2_TRANSFER_TO_EOA action, so the user signs once.

Next

Gas Sponsorship

Pay gas for your users, so they never need ETH.

Embedded Fees

Earn a fee on deposits, withdrawals, loans and trades.