Skip to main content
Multi-Asset Collateral lets you back your perps account with eligible spot tokens, not just USDG: a set of Stock Tokens plus ETH (see Eligible assets for the live list). The tokens remain in the account with their price exposure while they margin perp positions.
Early access. Multi-Asset Collateral is in early access and is being enabled for accounts in stages. To check in the app, open the perpetuals view and select Margin (top right). If the Margin Account window shows no collateral options other than USDG, access isn’t enabled for your account yet. For rollout timing, eligibility and current limits, see the Multi-Asset Collateral announcement.
This page is conceptual. For a step-by-step walkthrough with code (wrap, deposit, trade on the loan, repay, withdraw), see Use Multi-Asset Collateral. Live per-asset parameters come from GET /v1/spotAssets; your loan and collateral state come from GET /v1/account.

How it works

Your tokens are not converted to USDG. Perp margin, losses, fees and funding are always settled in USDG, and any USDG in the account is used first. When your account needs more USDG than it holds, Arcus lends the difference to you against your tokens. The tokens stay yours, so you keep their price exposure. There is no borrow call or borrow button. The loan is drawn automatically, shrinks automatically as your needs shrink, and can be paid down at any time.
Illustrative: you deposit $10,000 of SPY and no USDG, open a perp, lose $2,000 and close it. The $2,000 paid to your counterparty came from the loan. You still own all your SPY, but you owe $2,000 USDG plus interest until you pay it down.
While positions are open without losses, the loan covers only their margin. It is repaid automatically when they are closed; interest accrues on it while it is outstanding.

What sets the loan

Your USDG need is what your cross-margin positions require in cash. Your USDG balance covers it first, and any remainder is the loan: Unrealized profit counts too. While a position is in profit, that profit offsets its margin, so it reduces the loan before you close anything. Collateral is valued at the mark price of the asset’s price-source perp market (priceSourceMarket on GET /v1/spotAssets), the same price your positions are margined at.

What the loan can and can’t do

  • It backs cross-margin positions only. An isolated position is margined only by the collateral you post to it.
  • It never leaves as cash. You can’t withdraw borrowed USDG, transfer it to another subaccount, or move it onto an isolated position. It exists only to margin your positions.
  • It limits collateral withdrawals. You can withdraw tokens only while the remaining collateral still covers your loan at initial LTV.
  • It has no transfer row. Borrowing is not a transfer. The loan shows only as loanBalance on your account, never as a row on GET /v1/accountTransferUpdates. (A LENDING_DRAW row appears only when a liquidation starts.)
  • It is limited. Loans are subject to per-account and exchange-wide limits. Orders that would push the loan past the per-account limit are rejected.

Moving tokens in and out

Token deposits work only once access is enabled for your account. Buy the tokens on Arcus spot.
  • In the app, open the perpetuals view and select Margin (top right). The Margin Account window moves tokens into your perps account as collateral and back out again.
  • The main Deposit flow is different. The app’s Deposit flow converts whatever you send, ETH included, to USDG. To keep a token and use it as collateral, move it with the Margin button or the on-chain deposit below.
  • Over the API, deposit on-chain and withdraw with POST /v1/withdraw. The guide has working code for every step.

Depositing on-chain

  1. Hold the exact token. Use the token at contractId on GET /v1/spotAssets. For ETH that is WETH on Robinhood Chain. Native ETH isn’t accepted, so wrap it first by calling deposit() on the WETH contract.
  2. Approve the BridgeVault to pull the token. Token deposits go to the BridgeVault directly, not through the USDG deposit proxy. Its address per environment is in the per-environment chainId / verifyingContract table on POST /v1/withdraw; chain IDs are also listed under Environments.
  3. Call initiateDeposit(owner, accountIndex, token, amount) on the BridgeVault. owner must be the wallet that sends the transaction, and amount is in the token’s smallest unit (read the token’s decimals()).
Arcus credits the token after the transaction is picked up from the chain. It stays the asset you deposited and isn’t converted to USDG. There is no separate “enable as collateral” step: a credited token counts as collateral immediately, and borrowHeadroom on your account rises by about its value × ltvInitial. A deposit to a subaccount you have never used activates it, so GET /v1/account for that accountIndex goes from 404 to 200. You don’t need an API key or an order first. The BridgeVault accepts only tokens enabled for deposit, and each has a minimum amount. Read both with the vault’s depositConfig(token) view, which returns (allowed, minAmount). Minimums are set per token and can change, so read minAmount before each deposit. Withdraw with POST /v1/withdraw, setting spotAssetId and signing the SpotAssetWithdraw EIP-712 type. amount is an integer in the asset’s base quantums, that is size ÷ stepSize. For example, "98795" withdraws 0.0098795 WETH at a stepSize of 0.0000001 (read stepSize from GET /v1/spotAssets). The response and transfer rows show the decimal size.

If a deposit fails

A token deposit has two steps. You send it on-chain, and then Arcus credits it to your account. Either step can fail: A token that isn’t credited stays held by the deposit contract, not lost. Every deposit carries an expiry set by the deposit contract. Once it has expired without being credited, the depositing wallet can reclaim it by calling cancelDeposit(inboxIndex) on the contract it deposited into. inboxIndex is returned by the deposit call and emitted in its DepositInitiated event.

Eligible assets and loan-to-value

The eligible assets are a set of Stock Tokens plus ETH, held as WETH. The list, and every parameter below, is subject to change.
GET /v1/spotAssets is the live source of truth for the eligible assets, their LTVs, liquidationFactor, supply caps and token contracts (contractId). The table below is a dated example only. Deposit only the token at contractId; any other token for the same asset isn’t credited.
Example, mainnet as of October 19, 2026:
An asset can appear on GET /v1/spotAssets before the BridgeVault accepts deposits of it. Before depositing any asset, check that depositConfig(token) on the BridgeVault returns allowed: true. On testnet, read the testnet contractId from testnet GET /v1/spotAssets, since testnet addresses change when testnet is reset.
Each asset has two loan-to-value (LTV) ratios, read per asset from GET /v1/spotAssets. The examples on this page assume an initial LTV of 50% and a maintenance LTV of 60%. Your loan capacity is the initial-LTV row: the sum over your deposited tokens of value × initial LTV. borrowHeadroom on your account is the part of it your loan isn’t using yet. The two sides measure different needs. The initial side counts your positions’ initial margin. The maintenance side counts their smaller maintenance margin. So your buffer is bigger than the gap between the two LTVs suggests.
Illustrative, at a 50% initial and 60% maintenance LTV: you hold $10,000 of SPY and no USDG.
  • Initial capacity is $5,000: the most margin plus losses you can take on when opening positions or withdrawing.
  • Maintenance capacity is $6,000: the liquidation line.
  • You open positions needing $4,000 of initial margin and $2,500 of maintenance margin. Your loan need of $4,000 is within $5,000, so the order is accepted.
  • After $1,000 of losses you’re at the initial limit, so no new risk is accepted. You’re still far from liquidation.
  • Liquidation comes when maintenance margin plus losses exceed $6,000. With SPY flat (and maintenance margin held fixed for simplicity), that’s after about $3,500 of losses. A falling SPY lowers the line too.
Risk comes from both sides at once. Losses on your perps raise your loan need, and a fall in your collateral token lowers your capacity. Both push you toward the same liquidation line, and a position that is long the same asset you post as collateral compounds the effect. Stock Token prices can move sharply, including when traditional markets are closed and reopen at a gap. The maintenance threshold applies continuously, so a liquidation can happen at any time.
Parameters can change, so read them from GET /v1/spotAssets rather than hard-coding them: enabled, ltvInitial, ltvMaintenance, liquidationFactor, and the per-asset supply caps userSupplyCap (per account) and globalSupplyCap (exchange-wide), both in token units. A userSupplyCap of 0 means no per-account cap. A globalSupplyCap of 0 means the asset isn’t accepting deposits. Deposits and loans are subject to per-account and exchange-wide limits. Limits and parameters are subject to change; current values are returned by GET /v1/lendingAttributes. A deposit that would breach the exchange-wide deposit limit is rejected with REJECTED_GLOBAL_DEPOSIT_CAP_EXCEEDED, so a deposit can be rejected even when your own account is within its limits. Orders that would push the loan past the per-account loan limit are rejected, and a loan that drifts past it is treated like a maintenance breach. For rollout timing, eligibility and current limits, see the Multi-Asset Collateral announcement.

Interest

You pay interest on borrowed USDG, and only on that. Posting tokens earns you nothing. If you have no loan, because your USDG covers everything or you have no positions, you pay no interest. The rate is variable, annual, and the same for every borrower. It depends on exchange-wide lending utilization: total loans as a share of the USDG available to lend.
Line chart of borrow rate against utilization from 0% to 100%: flat at SOFR + 1% up to the 80% kink, then rising in a straight line to SOFR + 101% at 100% utilization.

Illustrative borrow-rate curve with a 1% base spread and an 80% kink. The vertical axis is linear, so the flat segment sits just above SOFR.

The rate is SOFR plus a spread. The spread is flat up to a kink in utilization and rises in a straight line above it, so the rate climbs steeply as lending nears full utilization. In the chart’s example, the rate is SOFR + 1% up to 80% utilization and reaches SOFR + 101% at full utilization. The curve’s parameters can change, so read the live rate from the lendingRates channel rather than computing it. Interest accrues continuously, around the clock rather than only during market hours. unsettledInterest on GET /v1/account shows it as it builds. It is settled the next time your account trades, deposits, withdraws or calls settleLoan: it’s debited from your USDG balance, which adds to your USDG need and so to loanBalance.
  • Where to read it: the current rate streams on the lendingRates channel (ratePpm, the annual rate in parts per million). Over REST, GET /v1/lendingAttributes returns the same rate as borrowRatePpm (and borrowApr). Interest accrued since the last settlement shows as unsettledInterest on GET /v1/account. Past settlements are listed by GET /v1/interest, and each one is also an INTEREST_SETTLEMENT row on GET /v1/accountTransferUpdates.

Liquidation

An account is liquidated when its loan need exceeds its maintenance capacity (Σ token value × maintenance LTV), or exceeds the per-user loan cap. Liquidation runs in a fixed order:
  1. All open orders are cancelled.
  2. The account enters wind-down (marginState: inWindDown) and can’t trade or withdraw until liquidation completes.
  3. All perp positions are closed first. If closing them covers the loan, your tokens are left untouched.
  4. Collateral is sold only against any remaining shortfall, credited at a discount to the mark price: liquidationFactor × mark, with liquidationFactor set per asset on GET /v1/spotAssets.
So a liquidation can close your perp positions, sell your deposited collateral, or both, and you can lose some or all of that collateral.
During wind-down, deposits are still accepted but withdrawals are not. A USDG deposit that covers the loan releases the account with its remaining collateral intact.
Tokens that aren’t sold stay in the frozen account until the loan is resolved. Collateral sales appear on GET /v1/spotFills and the spotFills channel. For how perp positions themselves are liquidated, see Liquidations.

Paying down the loan

A loan that remains after you close your positions, from realized losses, fees or interest, stays until you pay it down. You can pay it down in three ways:
  • Realized profits on later trades.
  • Depositing USDG.
  • Selling some tokens with POST /v1/settleLoan.
Illustrative, continuing the earlier example: you owe $2,000 against $10,000 of SPY and never deposit USDG.
  • Nothing is sold automatically while the account is healthy. The loan stays open, and interest keeps adding to what you owe.
  • You can withdraw SPY only down to what still covers the loan at initial LTV. $2,000 ÷ 50% = $4,000 of SPY must stay, so you can withdraw up to about $6,000.
  • To settle, deposit USDG or call settleLoan, which sells some SPY at the mark price minus a small spread set by Arcus.
  • If you do nothing and SPY falls until the loan exceeds 60% of its value, the account is liquidated. With the full holding, that’s below about $3,333 of SPY, a drop of roughly 67%, and accrued interest makes it sooner. SPY is then sold at liquidationFactor × mark, a discount to the mark price. Settling it yourself first lets you set your own minPrice floor.
settleLoan sells up to maxQuantity of one asset (spotAssetId) at the mark price minus a small spread set by Arcus, never below your minPrice. The proceeds pay down the loan and accrued interest. It never sells more than the loan needs, so you can overshoot maxQuantity to settle in full. Fills can be partial, so check executedQuantity and newLoanBalance in the response. It’s rejected if the account has no loan or is being liquidated. In the app, open Margin in the perpetuals view and use the Settle Loan tab of the Margin Account window. It is available while the account has a loan.

Reading your account

When your account holds collateral tokens or has a loan, GET /v1/account (and the account channel) adds a lending section. On these accounts, equity includes the tokens’ value minus unsettledInterest.
Judge your room with borrowHeadroom and marginState, not freeCollateral. freeCollateral is perp-side cash only and excludes your tokens’ value. Right after a token deposit it stays at 0 while borrowHeadroom rises, and once the loan is drawn it goes negative while marginState stays healthy. marginState is the health signal.
Token deposits and withdrawals appear on GET /v1/accountTransferUpdates as DEPOSIT and WITHDRAWAL rows. These rows carry spotAssetId and spotAssetDisplayName, the size in token units as amount, and a terminal status such as APPLIED. Each change to a holding also streams on the spotPositions channel with a reason (DEPOSIT, WITHDRAWAL, and so on). GET /v1/spotPositions returns {} for an account that has never held collateral, and can return null for one that has history but holds nothing now. Treat both as empty.

Why use Multi-Asset Collateral

Perp trading without selling your tokens

Example: an account holds only SPY tokens. Without Multi-Asset Collateral, trading perps requires selling SPY for USDG. With it, the SPY can be moved into the perps account and used as collateral.

Hedging

Example: an account holds a Stock Token and hedges broad-market exposure by shorting SPY perps. Instead of selling the token for USDG, the token can be moved into the perps account to margin the short. The same applies to holding a token and shorting the perp on the same asset. A hedge may not fully offset losses, and you still pay funding on the perp, interest on any loan, and carry liquidation risk.

Basis trading

A basis trade takes opposite positions in a token and a perp on the same underlying, usually to collect funding. For example, you buy $100 of NVDA token and short $100 of NVDA perp at 20x leverage.
  • With USDG only, the short needs at least $5 of separate margin (5% at 20x). With only $5 behind it, a rise in NVDA of under 2% can make the perp leg liquidatable, even though the token leg gains just as much.
  • With Multi-Asset Collateral, the NVDA token backs the short. As NVDA rises, the token’s value rises with it, which offsets the perp’s losses. At a 60% maintenance LTV, NVDA would need to reach about 2.3× its entry price (about +131%) before the account became liquidatable.
Illustrative assumptions: 5% initial and ~3.33% maintenance margin on the NVDA perp, a 60% maintenance LTV on the token, no USDG deposited, and fees, funding and interest ignored. Let NVDA rise by a factor k.With USDG only: the perp leg has $5 of margin and loses $100 × (k − 1). It is liquidatable once 5 − 100(k − 1) falls below the maintenance margin of 3.33k, at k ≈ 1.016, a rise of about 1.6%.With Multi-Asset Collateral: the maintenance loan need is the perp’s maintenance margin plus its loss, 3.33k + 100(k − 1). Maintenance capacity is 60% of the token’s value, 60k. The need exceeds capacity once 43.33k > 100, at k ≈ 2.31, a rise of about 131%.

Common questions

  • Do I earn interest on my tokens? No. Posting tokens earns nothing. You only pay interest on borrowed USDG.
  • Do I still own the tokens and keep their price exposure? Yes. They’re never converted to USDG unless you sell them with settleLoan or the account is liquidated.
  • When do I pay interest? Only while you have a loan, meaning your USDG need is larger than your USDG balance.
  • What if I deposit tokens and don’t trade? With no positions and no losses there is no loan, so you pay no interest.
  • Why can’t I withdraw borrowed USDG? The loan exists only to margin your positions, so it can’t leave the account as cash.
  • Can I deposit native ETH? No. Wrap it to WETH first. If you send ETH through the app’s main Deposit flow instead, it is converted to USDG and isn’t held as ETH collateral.
  • Do I need to enable a token as collateral? No. A credited token is collateral as soon as it lands.
  • Can I withdraw tokens that back a loan? Yes, as long as the tokens left still cover your loan at initial LTV. A withdrawal that would break that is rejected with REJECTED_INSUFFICIENT_COLLATERAL. Withdrawing lowers your capacity, and the app shows what is withdrawable.
  • Why are there no token options under Margin in the app? Access has not been enabled for the account yet. Multi-Asset Collateral is being enabled for accounts in stages.
To try it end to end, follow Use Multi-Asset Collateral.