Skip to main content

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.

01 / QUICKSTART
Before writing any code, you need an organization ID and an API keypair. Every request to 0xkey is cryptographically stamped with your API private key.
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 for the full status matrix before designing your integration.

Step 1 — Create your organization

Navigate to the 0xkey Dashboard 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.
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 your internal docs/local-dev.md.

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.
1

Navigate to User Details

From the Dashboard, open your user profile page.
2

Click Create API key

Select the option to generate a new keypair. Use the in-browser generator or provide your own public key.
3

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>
4

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 4 — Make your first request

With your org ID and API keypair, you can now stamp and send requests. Install the TypeScript stamper package:
npm install @0xkey-io/api-key-stamper @0xkey-io/http
Stamp and send a whoami query:
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

Embedded Wallet quickstart

Build in-app wallets with the Embedded Wallet Kit

API overview

Understand stamps, queries, and activity submissions

Authentication

Passkeys, OTP, OAuth, and email auth