MetaMask Agent Wallet trades perpetual futures on Hyperliquid through the mm perps command set. A trader asks their agent for a position in plain language, and the agent routes that request to the commands that deposit collateral, fetch a quote, open the position, attach take profit and stop loss levels, and close or resize it later. The wallet keeps custody; deposits are policy-checked, and the agent only proposes.
That handoff is where agent-driven perps trading differs from tapping through an interface. A single sentence can carry a lot of unstated assumptions about order type, slippage, and size. This piece covers the details worth making explicit, including which parts of that workflow MetaMask's wallet-level controls actually reach and which parts they don't.
This is a trading-mechanics guide, not a perps primer. For what perpetual futures are and how they price, see perps trading for beginners and essential perpetual futures concepts. For the math behind position sizing, see leverage and margin in perpetual futures trading. For the wallet category itself, see what is an agentic wallet and how agentic wallets work.
The perps surface, in one table
These are the commands a perps workflow leans on. Knowing the surface makes it easier to phrase a request that lands the way it's intended.
What you ask your agent | What runs | What it does |
"What perps markets are available" | mm perps markets
| Lists tradable symbols on the venue |
"Fund my perps account with 500 USDC" | mm perps deposit
| Deposits USDC into the venue |
"What would a 5x long on BTC cost" | mm perps quote
| Prices the position without submitting it |
"Open a 5x long on BTC with $100" | mm perps open
| Submits the order |
"Set a stop at 58,000" | mm perps modify
| Attaches take profit, stop loss, or new leverage |
"Show my open positions" | mm perps positions
| Reads current exposure |
"Close my BTC position" | mm perps close
| Closes fully or partially |
"Cancel that resting order" | mm perps cancel
| Cancels by order ID |
"Move 200 USDC back to spot" | mm perps transfer
| Moves collateral between spot and perp balances |
Source: MetaMask Agent Wallet commands reference.
With that basic understanding, here's 9 critical tips for using MetaMask Agent Wallet to trade perps.
1. Fund the perps account before the first ask
The Hyperliquid sub-account is empty on first use. Asking an agent to open a position before any collateral has arrived can fail with HYPERLIQUID_ERROR or ORDER_REJECTED, and the agent has nothing useful to retry.
mm perps deposit sources USDC from Arbitrum by default, so USDC needs to be sitting on Arbitrum, or --source-chain-id needs to point somewhere it is. Collateral that's already in the wallet's spot balance on the venue can be moved across with mm perps transfer --direction spot-to-perp instead of a fresh deposit.
One number worth committing to memory: orders below $10 notional are rejected under INVALID_AMOUNT, with a hint to increase position size or leverage. Small test trades need to clear that floor.
2. Quote before opening, or preview with a dry run
mm perps quote prices a position without submitting it. mm perps open --dry-run goes further and validates the whole order without signing or submitting anything.
Both matter more with an agent than with a manual interface, because the confirmation step a trader would normally read on screen is something the agent can be told to skip. A quote or a dry run puts the numbers back in front of a human before anything is signed.
3. Say "limit" if a limit order is what's wanted
mm perps open takes --type market or --type limit, and a limit order requires --limit-px. An ask phrased as "open a 5x long on ETH with $200" carries no price instruction, so it resolves as a market order.
Market orders cross the spread and can experience slippage, which is the difference between the expected execution price and the price actually received. In thin markets that gap widens. Traders who care about the entry price generally state it, and traders who care more about certainty of fill generally don't.
4. Cap slippage on the way in and the way out
Both mm perps open and mm perps close accept --max-slippage-bps, a ceiling expressed in basis points. The documentation doesn't publish a default, so an order submitted without the flag is running on whatever the CLI applies rather than on a stated number.
Setting the cap explicitly is one of the few instructions that constrains an autonomous open in a way the agent can't reinterpret. It's also easy to forget on the exit, which is the leg where slippage tends to hurt most, because exits cluster around the moments when everyone else is exiting too.
5. Attach take profit and stop loss as a deliberate second step
mm perps open doesn't take take profit or stop loss levels. Those go on with mm perps modify --tp and --sl , which requires at least one of --leverage, --tp, or --sl to be present.
The practical consequence: a position opened by an agent has no exit orders attached until someone asks for them. A prompt that says "open a 5x long on BTC with $100, then set a stop at 4% below entry and take profit at 8% above" describes two commands and gets both. A prompt that stops after the first clause gets a naked position. Setting exit levels in the same breath as the entry is what keeps the gap between those two states from mattering.
6. Know that the deposit, not the order, is what MetaMask checks
Only one step in a perps workflow is an EVM transaction that MetaMask's wallet-level controls actually evaluate: the deposit. It passes through threat scanning in both trading modes. In Guard Mode specifically, it's also metered against the rolling 24-hour outflow limit, which MetaMask's documentation names deposits to Hyperliquid as an included category alongside token transfers and swaps. If the deposit exceeds that limit, or threat scanning flags it in either mode, the job pauses in AWAITING_MFA for 2-factor authentication approval, delivered as a MetaMask Mobile push notification for QR sign-ins or an email link for browser sign-ins, and the agent cannot proceed until someone responds. This applies to server-wallet mode; trading modes don't apply to bring-your-own-wallet setups.
Opening, modifying, and closing a position happen on Hyperliquid itself, not as MetaMask-simulated EVM transactions. Those actions aren't threat-scanned, don't consume the outflow budget, don't get checked against allowlists, and don't trigger 2-factor authentication, regardless of position size. A $2,000 deposit that clears the outflow limit gets scrutinized on the way in; a $50,000 position opened on that same collateral with 25x leverage does not get a second look from the wallet. The outflow limit is a funding-time control, not a position-size control, and sizing discipline for the order itself rests entirely on what the prompt says and what the agent does with it.
The practical habit: fund the account in a deliberate, separate step sized to what's actually intended to be at risk, since that's the one moment MetaMask's guardrails apply. Everything downstream of that deposit is on the trader and the agent.
7. Sign in the same way every time
Google, email passwordless, and MetaMask Mobile QR each resolve to a different server-wallet address, even when the same email address is used for more than one of them. Since the Hyperliquid account is funded from a specific wallet, signing in a different way surfaces a different address with none of that collateral.
The habit that avoids this: pick one sign-in method, use it every time, and run mm wallet address after signing in to confirm the expected address before asking for anything. Funds stay where they were; they just aren't visible from the wrong session.
8. Scope HIP-3 DEXs deliberately
Balance, positions, and orders default to the main Hyperliquid DEX. --dex scopes a query to a specific HIP-3 DEX, and --all-dexes aggregates across them for balance and positions reads.
An agent asked "what are my positions" without qualification reports on the main DEX only. For a portfolio spread across multiple DEXs, that answer is incomplete in a way that isn't obvious from reading it, which makes --all-dexes worth naming in any prompt that's meant to produce a full picture. mm perps dexs lists the available identifiers.
The scoping flags are documented on the read commands rather than on order placement, so --dex is best understood as a visibility control here.
9. Use quotes and dry runs to rehearse, not testnet
mm perps open --dry-run validates a fully specified order, including symbol, side, size, and leverage, without signing or submitting it. Paired with mm perps quote, a strategy prompt can be run end to end against live pricing to confirm what the agent would actually submit, before any collateral is at risk.
--network testnet exists on the read and trading commands, but rehearsing a live strategy there currently isn't practical: Hyperliquid's testnet uses a separate faucet-only USDC variant that isn't available through Agent Wallet's funding path, so a testnet perps account can't be funded the way a mainnet one can. Dry runs and quotes are the more reliable rehearsal tools until that's resolved.
For the live version, --yes skips the interactive confirmation prompt on open, close, modify, and cancel, which is what makes scheduled or scripted flows possible. What --yes doesn't do is switch off the wallet's own controls on the deposit leg described in tip 6. Skipping the confirmation prompt removes the human read of the order; it doesn't change what MetaMask checks.
What Agent Wallet doesn't do for perps
Being clear about the boundary is more useful than implying a wider one.
There is no built-in strategy engine. Agent Wallet exposes the trading surface; the decision logic lives in the agent and whatever the trader tells it. There's no dedicated copy-trading skill, signal feed, or automated rebalancing shipped for perps positions. Traders wanting that kind of custom logic can build it as a plugin, a beta feature that lets an installed npm package add new commands to the CLI under consent-gated read or transaction-submission capabilities, but that's a build-it-yourself path rather than a built-in one.
Funding accrues on a schedule set by the venue, and nothing in the wallet monitors it on a trader's behalf. Holding a leveraged position across multiple funding intervals carries a cost that compounds, as covered in perpetual futures funding mechanics and timing. An agent asked to check funding will check it. An agent not asked will not.
Margin behavior is set by the venue rather than by the wallet. For the difference between the two models and what each implies for liquidation, see cross vs isolated margin in perpetual trading.
Hyperliquid. --venue defaults to hyperliquid on every mm perps command, and mm perps list-venues returns the current list of supported venues.
Not directly. Both are enforced on the deposit into the venue, since that's the step MetaMask processes as an EVM transaction, in server-wallet mode. Opening, modifying, and closing a position happen on Hyperliquid itself and aren't checked against the outflow limit, allowlists, threat scanning, or 2-factor authentication, whatever the position size. Sizing the deposit deliberately is the control point.
The two most common causes are an unfunded venue account and an order below the $10 notional minimum. mm perps deposit fills the first gap and mm perps balance confirms it. For a collateral shortfall on an existing account, mm perps transfer --direction spot-to-perp moves funds from the spot balance.
Through mm perps modify with --tp and --sl, as a separate step from mm perps open. A position opened without that follow-up has no exit orders attached to it.
Yes. --dex <name> scopes mm perps markets, balance, positions, and orders to a specific HIP-3 DEX, and mm perps dexs lists the available identifiers. Balance and positions reads also accept --all-dexes to aggregate across DEXs.
mm perps open --dry-run validates and previews a fully specified order without signing or submitting it, and mm perps quote prices a position against live markets first. Testnet trading is documented but isn't yet a practical rehearsal path, since Agent Wallet can't currently fund a Hyperliquid testnet account.
Not as a built-in feature. Agent Wallet's beta plugin system lets a developer publish an npm package that adds new commands to the CLI, subject to install-time consent over what the plugin can read or submit, which is the extension point for that kind of custom workflow today.