> ## Documentation Index
> Fetch the complete documentation index at: https://docs.0xkey.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Account setup

> Set up your 0xkey organization and API keypair to start making authenticated requests.

<div className="eyebrow">01 / QUICKSTART</div>

Before writing any code, you need an **organization ID** and an API keypair. Every request to 0xkey is cryptographically <em className="accent">stamped</em> with your API private key.

<Note>
  **Phase 1 scope.** Account setup, sub-orgs, passkey/OTP/OAuth auth, signing on EVM and Solana, and the policy engine are all available today. On-chain broadcast (`eth_send_raw_transaction` is mocked; `eth_send_transaction` / `sol_send_transaction` are not yet wired), webhooks, fiat on-ramp, balances, and Company Wallets are still in progress — see the [Roadmap](/0xkey/roadmap) for the full status matrix before designing your integration.
</Note>

## Step 1 — Create your organization

Navigate to the [0xkey Dashboard](https://app.0xkey.io/dashboard/auth/initial) to create an account and set up your root organization.

During sign-up you will register a passkey that becomes the root credential for your organization. Store it securely — it is used to approve subsequent admin actions.

<Note>
  The hosted Dashboard is **Partial** in Phase 1. For local development, the Registrar and Auth Proxy handle org creation automatically when you run the local-dev stack. See the [0xkey local development guide](https://github.com/0xkey-io/0xkey/blob/main/.cursor/skills/0xkey-local-dev/SKILL.md) or run `./local-dev.sh start` from the super-repo root.
</Note>

## Step 2 — Copy your Organization ID

Once logged in, open the user dropdown (top-right). Your **Organization ID** is displayed there. Copy it — you will use it in every API request and environment variable.

```
OXKEY_ORG_ID=<your-organization-id>
```

## Step 3 — Create an API key

API keys authenticate machine-to-machine requests. Each key is a P-256 keypair; you sign request payloads with the private key and 0xkey verifies with the public key.

<Steps>
  <Step title="Navigate to User Details">
    From the Dashboard, open your user profile page.
  </Step>

  <Step title="Click Create API key">
    Select the option to generate a new keypair. Use the in-browser generator or provide your own public key.
  </Step>

  <Step title="Save the private key">
    **The private key is shown only once.** Store it in a secrets manager or environment variable — never commit it to source control.

    ```
    OXKEY_API_PRIVATE_KEY=<your-private-key>
    OXKEY_API_PUBLIC_KEY=<your-public-key>
    ```
  </Step>

  <Step title="Approve and create">
    Authenticate with your passkey to approve the keypair creation. The public key is registered in 0xkey; the private key stays with you.
  </Step>
</Steps>

## Step 4 — Make your first request

With your org ID and API keypair, you can now stamp and send requests.

Install the TypeScript stamper package:

```bash theme={"theme":{"light":"github-light","dark":"github-dark"}}
npm install @0xkey-io/api-key-stamper @0xkey-io/http
```

Stamp and send a `whoami` query:

```typescript theme={"theme":{"light":"github-light","dark":"github-dark"}}
import { ApiKeyStamper } from "@0xkey-io/api-key-stamper";
import { ZeroXKeyClient } from "@0xkey-io/http";

const client = new ZeroXKeyClient(
  { baseUrl: "https://api.0xkey.io" },
  new ApiKeyStamper({
    apiPublicKey: process.env.OXKEY_API_PUBLIC_KEY!,
    apiPrivateKey: process.env.OXKEY_API_PRIVATE_KEY!,
  })
);

const { organizationId, userId, username } = await client.getWhoami({
  organizationId: process.env.OXKEY_ORG_ID!,
});

console.log({ organizationId, userId, username });
```

A successful response confirms your keypair and organization are correctly configured.

## Next steps

<CardGroup>
  <Card title="Embedded Wallet quickstart" href="/getting-started/embedded-wallet-quickstart" icon="wallet" iconType="solid" horizontal>
    Build in-app wallets with the Embedded Wallet Kit
  </Card>

  <Card title="API overview" href="/developer-reference/api-overview/intro" icon="terminal" iconType="solid" horizontal>
    Understand stamps, queries, and activity submissions
  </Card>

  <Card title="Authentication" href="/authentication/overview" icon="lock" iconType="solid" horizontal>
    Passkeys, OTP, OAuth, and email auth
  </Card>
</CardGroup>
