> For the complete documentation index, see [llms.txt](https://docs.usewire.xyz/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.usewire.xyz/accounts/security.md).

# Security

Wire is a terminal in front of accounts you hold elsewhere. The security model follows from that: the question is never "is my money safe with Wire" — Wire never has it — but "what can Wire do with my account, and how do I stop it".

The two venues answer that differently, and the difference is worth understanding.

## Hyperliquid: signed in your browser

Orders are signed locally by a **session key** that Wire generates in your browser and you approve once from your wallet.

* The key is stored **only in that browser tab's session storage**. It is never sent to Wire's backend, never logged, and never written to disk.
* It **cannot move funds** — it places and cancels orders and nothing else. Withdrawal and transfer are outside what the approval grants.
* It **expires after 7 days**.
* Separately, the **builder fee approval** caps what Wire can charge at 0.1%, enforced by Hyperliquid rather than by Wire's own code.

Wire's backend never holds anything that can trade your Hyperliquid account.

### Revoking

Signing out clears this browser's copy of the key. That is the right first step and it is **half a revocation** — it removes your copy, not Hyperliquid's approval of the key. A copy extracted from session storage beforehand would keep working until the approval lapses.

To revoke fully, revoke the agent at Hyperliquid directly. To stop fee collection, approve a maximum builder fee of 0%. Both are done at the protocol and neither depends on Wire being reachable or cooperative.

## Alpaca: held by the backend

Options orders are placed by Wire's backend calling Alpaca's API, so your **API keys are held by Wire**, encrypted at rest, and never returned to the browser after linking.

This is a genuinely different trust position from the Hyperliquid path, and it is worth being deliberate about:

* Issue keys **specifically for Wire** rather than reusing an existing set.
* **Revoke them from your Alpaca dashboard** whenever you want. It is immediate and independent of Wire.

## Support will never ask you to prove who you are by telling us

Support is the softest route into an account that trades real money, and we treat it that way.

When you open support **from inside the app while signed in**, your identity is carried by a signed token and the conversation is attributed to your real account. When you arrive any other way — signed out, from the marketing site, a lapsed session — anything you type about who you are is **unverified**, and we treat it as a hint for triage and nothing more.

On an unverified conversation we will not disclose balances, positions or account details, and we will not change anything. Not because we doubt you, but because "I'm 0xabc…, I'm locked out, please disconnect my session" costs an attacker nothing to attempt.

If you need something done and cannot get into the app, expect to prove control out of band — a signed message from the wallet, or confirmation from the email on your account.

**We will never ask you for your Alpaca secret key, your wallet's seed phrase, or a private key.** Nobody at Wire needs any of them, and any message that asks for one is not from us.

## Reporting something

If you believe you have found a vulnerability, tell us through the [support chat](https://support.usewire.xyz) and we will pick it up. Please do not post it publicly before we have had a chance to look.


---

# 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://docs.usewire.xyz/accounts/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.
