xXTrade

Security

Last updated

xXTrade is a non-custodial interface. Your funds stay in accounts that your own wallet controls. This page sets out what the interface can and cannot do with them, who holds which key, how that is checked, and how to report a security problem.

No third-party audit. No independent security audit of the xXTrade interface, its servers or its deposit relayer has been done. The checks described below are automated tests that run on every change. They are not an audit, and they do not cover the exchanges, bridges, wallets or login provider the interface connects to.

What the interface can and cannot do

The interface canThe interface cannot
Show prices, balances and positions, and prepare an order, transfer or withdrawal for you to review. Withdraw or send your funds. Every withdrawal and send needs a signature from your own wallet, which you see and approve.
Place and cancel orders, change leverage and move funds between your trading balance and a vault in your own name (Earn), with a trading key created in your browser after your wallet approves that key once. Use that trading key to withdraw or send. The exchange (Hyperliquid) does not accept a withdrawal or send signed by an approved trading key, and the interface never builds one.
Submit a gasless USDC deposit for you: a relayer pays the Arbitrum gas and forwards the deposit permit you signed. Send your deposit anywhere else. The relayer can only call the exchange’s deposit bridge (Bridge2, 0x2Df1c51E09aECF9cacB7bc98cB1742757f163dF7), credited to the address that signed the permit.
Create optional mirror wallets in your browser. You are shown their recovery phrase and keys to keep. Move funds out of a mirror wallet to anyone but you. The interface only sends a mirror wallet’s balance back to the wallet you connected.
Block access from restricted regions and check connected addresses against a sanctions list. Freeze, reverse, recover or reset your wallet, your keys or a transaction.

Who holds which key

No xXTrade server holds a key for a user account on any chain. The operator’s own wallets are listed publicly on the wallets page.

The automated checks

These facts are tested on every change, both by running the real signing code against a stubbed network and by checking the source:

  1. The trading key is created on the client; requests carry its address and signatures, never the key. No server file can create or receive a key.
  2. The deposit relayer can only send to Bridge2. A request that names another destination still goes to Bridge2.
  3. Withdrawals and sends are signed by the user’s wallet, never by the trading key and never by a server.
  4. Each withdrawal and send goes in one request straight to the exchange, carrying exactly the destination and amount the user signed. Mirror wallets sign their own sends and only send back to the connected wallet. No server holds a key that could sign for a user.

Read the test itself: non-custody invariant tests (the exact source that runs in the checks).

Sanctions and regions

Access is blocked from restricted regions, and connected addresses are compared in your browser against the public U.S. OFAC list of sanctioned digital-currency addresses. The rules are in section 2 of the Terms (restricted regions and prohibited persons) and in the Privacy Policy (how the region and address checks work).

What stays on your side

Reporting a security problem

If you find a vulnerability in the xXTrade interface, its servers or the deposit relayer, email security@xxtrade.xyz with a description, the steps to reproduce it and the impact you expect. A machine-readable contact is at /.well-known/security.txt.

We aim to acknowledge a report within 5 working days and to tell you what we will do about it. This policy does not offer payment for reports. Problems in the exchanges, bridges, wallets or login provider that xXTrade connects to belong with those projects.