# Onboarding

Five minutes from zero to a working API key. Each step happens at [truemarkets.co](https://www.truemarkets.co). There's nothing to install on your machine yet.

## 1. Sign up or log in

Go to [**truemarkets.co**](https://www.truemarkets.co) and create an account, or log in if you already have one.

You can sign in with a **passkey**, an **email magic link**, an **email one-time code**, or **Sign in with Apple**, whichever your authenticator supports. The same account works across the iOS app, the web app, and the API.

## 2. Verify your email

Open [**truemarkets.co/login**](https://truemarkets.co/login). If this is your first session, you'll be prompted to verify your email. Open the message we sent and click the link, or enter the 6-digit code.

Verification only happens once
After verification, future logins use whatever method you registered (passkey, magic link, etc.). You can manage methods later from your account settings.

## 3. Complete KYC

To trade CeFi assets like BTC, you must complete identity verification (KYC). Start the flow from the [True Markets iOS app](https://apps.apple.com/us/app/true-markets/id6742667674) or on the web at [**truemarkets.co/kyc**](https://truemarkets.co/kyc). Click **Get Verified** and have a government-issued photo ID handy.

Most submissions clear in a few minutes. You'll get an email when verification completes, and CeFi trading and fiat funding unlock automatically.

NY residents and BTC
Residents of New York are not currently eligible to trade BTC on True Markets. All other assets and venues remain available.

## 4. Deposit funds

Head to [**truemarkets.co/portfolio**](https://truemarkets.co/portfolio) and follow the deposit flow. You can fund the account with:

- **USD** via Coinbase On-Ramp (cards, ACH, Apple Pay, etc.)
- **Crypto** via on-chain transfer to your generated deposit address (Solana, Base, etc.)


USD deposits are auto-converted to a stablecoin (USDC) on settlement so they're tradable across CeFi and DeFi venues.

You can skip this step for read-only API exploration
Public endpoints (quotes, market data, asset catalog) work without funded balances. You only need a deposit when you actually [place an order](/getting-started/quickstart#3-place-the-order).

## 5. Create an API key

Go to [**truemarkets.co/settings/api-keys**](https://truemarkets.co/settings/api-keys). API keys live behind passkey authentication, so the first time you visit the page will prompt you to **Set up passkey** if you don't already have one. Use Touch ID, Face ID, Windows Hello, or a hardware key (YubiKey, Titan, etc.).

Once your passkey is registered, click **+ Create**. The browser will:

1. Generate an **EC P-256 key pair** locally. The private key never leaves your machine.
2. The public key is saved in the True Markets Plaform for reference.
3. Download a JSON bundle containing your `key_id` and the `private_key` (as a JWK).


Save that bundle somewhere safe, typically under `~/.tm/`. Set the environment variable that the [Quick Start](/getting-started/quickstart) and reference snippets expect, replacing the filename below with the bundle you just downloaded (e.g. `api-key-a1b2c3.json`):


```bash
export TM_KEY_FILE="$HOME/.tm/<your-downloaded-bundle>.json"
```

Add it to your `.env`, `~/.zshrc`, or wherever you keep persistent shell config.

Treat the bundle like a password
Anyone with the JSON bundle can mint JWTs against your account. Don't commit it to git, paste it into chat tools, or copy it into shared environments. If it leaks, revoke the key immediately at [settings/api-keys](https://truemarkets.co/settings/api-keys) and create a new one.

## You're done

With `TM_KEY_FILE` set, jump to the **[Quick Start](/getting-started/quickstart)** to sign your first request, fetch a quote, and place an order.

Meet the community
Join the **[True Markets Discord](https://discord.gg/SC92xRUZqw)** to ask questions, share what you're building, and meet other integrators. The team is active there. For account-specific issues, email [support@truemarkets.co](mailto:support@truemarkets.co).