> For the complete documentation index, see [llms.txt](https://velocity-1.gitbook.io/velocity-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://velocity-1.gitbook.io/velocity-docs/features/wallet-and-security.md).

# Wallet and security

A short read on what holds your funds, what signs your trades, and what we can and can't do.

## Custody

Velocity holds no keys. Every wallet on your account is custodied by [Privy](https://privy.io) inside a TEE with multi-party computation. Privy is the same custody provider used by Coinbase Wallet, Plaid, and many consumer crypto apps.

Two wallets per user:

* **Main wallet**: tied to your sign-in. Signs deposits, withdrawals, fee approvals, agent approval, and strategy fee settlement.
* **Agent wallet**: created on first trade. Authorised by your main wallet to place orders silently. Cannot move funds.

## Margin protection

Your positions are isolated by wallet, so trouble in one place can't spill into the rest of your account. Spot, perps, prediction markets, and strategies each sit in their own wallet with their own margin. If a perp position is liquidated, your spot holdings, prediction market positions, and any running strategies are untouched.

High-volume traders can push this further. Once you pass $100K of volume on Hyperliquid, Velocity supports multiple perp wallets, so you can ring-fence margin between books and keep one liquidation from reaching another.

## Why an agent

Without one, you'd see a confirmation popup on every order, every cancel, every TP/SL update. That kills the experience.

Each venue we route to has its own way to authorise silent order signing, and the principle is the same everywhere: the agent can only trade, never move funds.

On Hyperliquid, this is the on-chain `approveAgent` action. You authorise a specific address to place, cancel, and modify orders on your behalf. The agent cannot withdraw, transfer, or touch funds, and Hyperliquid enforces this in the contract. On Ostium, the agent acts as a delegate that can open and close your positions but never holds or moves your USDC.

## What an agent can do

* Place market, limit, and trigger orders.
* Cancel or modify existing orders.
* Update leverage and margin mode.

## What an agent can't do

* Withdraw or deposit USDC.
* Send USDC to other wallets.
* Approve token spends.
* Change any of the approvals above.

If our infrastructure was compromised tomorrow, the worst case is an attacker placing trades on your account. They cannot drain it.

## Fee approval

A separate on-chain approval, capped on-chain by the venue. It gives Velocity permission to attach our fee to your orders. On Hyperliquid this is the builder-code approval. Revoke any time from Settings → Builder fee.

## Withdrawals

Always signed by your main wallet. The agent has no withdraw permission. The venue settles to your destination chain within a few minutes. On Hyperliquid there's a flat $1 fee.

## Revoking the agent

Settings → Agent wallet → Revoke. Sign with your main wallet. After revocation, every trade falls back to a main-wallet signature. You can re-authorise the agent any time with one signature.

## What we log

We log trades, order metadata, and account-level events for fee accounting and strategy execution. We do not log seed phrases (Privy holds them) and do not associate trading data with anything beyond your wallet address.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://velocity-1.gitbook.io/velocity-docs/features/wallet-and-security.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
