[evm] extra and the Ape framework.
Depositing and withdrawing requires
pip install "tpluspy[evm]". The core
install (pip install tpluspy) is sufficient for order placement and market
data, but not for on-chain vault interactions.Install the EVM extra
Deposit funds
Depositing moves tokens from your on-chain wallet into the T+ vault contract, crediting your exchange balance. Use thetplus deposit CLI command with the token address and the amount in the token’s smallest unit (e.g. wei for 18-decimal tokens).
--amount flag always takes the raw integer amount in the token’s native decimals. For an 18-decimal token, 1000000000000000000 equals 1.0 tokens.
Add --wait to block until the deposit is confirmed on-chain before returning:
Withdraw funds
Withdrawals use a two-step flow: you first submit a signed withdrawal request to the OMS (init), and once the exchange approves it, you execute the on-chain transaction (execute). This design lets the exchange validate your request and collect the necessary signatures before any on-chain gas is spent.
Why two steps?
init— Signs the withdrawal request with your Ape account and submits it to the OMS. No on-chain transaction yet; just a signed request waiting for approval.execute— Polls the OMS for the approval, then submits thewithdrawtransaction to the vault contract on-chain.
Step 1 — Init
| Flag | Purpose |
|---|---|
--network | Ape network specifier, e.g. arbitrum:mainnet:alchemy |
--account | Your Ape account alias (the on-chain signer) |
--asset | Token address in address@chain_id form |
--amount | Integer amount in book-native units |
--nonce N | Optional: override the withdrawal nonce |
--target <addr> | Optional: send funds to a different address |
Step 2 — Execute
execute submits the same signed request as init and then polls the OMS for the approval before sending the on-chain transaction. You can skip init entirely and go straight to execute — it handles both steps in sequence.
| Flag | Default | Purpose |
|---|---|---|
--poll-interval | 2 | Seconds between approval-status polls |
--poll-timeout | 60 | Maximum seconds to wait for approval |
Combined shortcut
If you want to init and execute in a single command, just callexecute directly — it always runs the init step first:
Check withdrawal status
List your pending and completed withdrawal requests at any time:Cancel a withdrawal
If a withdrawal has been submitted but not yet executed on-chain, you can cancel it:You can always withdraw your funds as long as you have no open liabilities on
the exchange (e.g. outstanding borrowings or unsettled obligations). The
exchange will reject a withdrawal request if it would leave your account
insolvent.
Global CLI options for withdrawals
Withdrawal commands route through the OMS, not the clearing engine. Make sure you have the right base URL set:CLI Deposits & Withdrawals
Full CLI reference for deposit and withdrawal subcommands and flags.
Settlement Guide
Learn how to settle T+ trades and finalize asset movement on-chain.