# BIP39 Mnemonic API
> Work with BIP39 mnemonic seed phrases — the 12-to-24-word recovery phrases used by crypto wallets. Generate a phrase at a chosen strength (128–256 bits) in any of 9 wordlist languages, validate a phrase, convert between a phrase and its raw entropy in both directions, and derive the 512-bit BIP39 seed (with an optional passphrase) used for HD-wallet key derivation. Pure local computation — no key, no third-party service. Note: intended for development, testing and education; generate seeds for real funds offline / client-side, never trust a remote API with production keys. Live, nothing stored. 7 endpoints. Distinct from market-data, password and 2FA tools.

## Authentication
All requests require your oanor API key in the `x-oanor-key` header. Get one at https://www.oanor.com/developer/keys.

```bash
curl -H "x-oanor-key: oanor_live_…" "https://api.oanor.com/bip39-api/..."
```

## Pricing
- **Free** (Free) — 1,200 calls/Mo, 2 req/s
- **Starter** ($4/Mo) — 13,000 calls/Mo, 8 req/s
- **Pro** ($23/Mo) — 152,000 calls/Mo, 20 req/s
- **Mega** ($59/Mo) — 780,000 calls/Mo, 50 req/s

## Endpoints

### Mnemonic

#### `GET /v1/from-entropy` — Entropy to mnemonic

**Parameters:**
- `entropy` (query, required, string) — Hex entropy (16-32 bytes) Example: `00000000000000000000000000000000`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/bip39-api/v1/from-entropy?entropy=00000000000000000000000000000000"
```

**Response:**
```json
{
    "data": {
        "entropy": "00000000000000000000000000000000",
        "language": "english",
        "mnemonic": "abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon about"
    },
    "meta": {
        "timestamp": "2026-06-02T16:51:52.955Z",
        "request_id": "a033fb51-4501-4a5c-aaec-e961fba44fb9"
    },
    "status": "ok",
    "message": "Entropy to mnemonic",
    "success": true
}
```

#### `GET /v1/generate` — Generate a mnemonic

**Parameters:**
- `strength` (query, optional, string) — 128|160|192|224|256 (default 128) Example: `128`
- `language` (query, optional, string) — english|spanish|french|… (default english)

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/bip39-api/v1/generate?strength=128"
```

**Response:**
```json
{
    "data": {
        "note": "For development/testing. Generate production wallet seeds offline/client-side.",
        "entropy": "252f518239d9a8fd0104cf714503b485",
        "language": "english",
        "mnemonic": "cement kind gauge inhale once leader advice okay image chimney unfold anxiety",
        "strength": 128,
        "word_count": 12
    },
    "meta": {
        "timestamp": "2026-06-02T16:51:53.070Z",
        "request_id": "714b3720-3c0c-4103-95e2-551ab5c48d1d"
    },
    "status": "ok",
    "message": "Generate a mnemonic",
    "success": true
}
```

#### `GET /v1/to-entropy` — Mnemonic to entropy

**Parameters:**
- `mnemonic` (query, required, string) — Mnemonic phrase Example: `abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon about`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/bip39-api/v1/to-entropy?mnemonic=abandon+abandon+abandon+abandon+abandon+abandon+abandon+abandon+abandon+abandon+abandon+about"
```

**Response:**
```json
{
    "data": {
        "entropy": "00000000000000000000000000000000"
    },
    "meta": {
        "timestamp": "2026-06-02T16:51:53.171Z",
        "request_id": "8d2b63f1-cce1-4cfb-8b6d-0c2123a5c74d"
    },
    "status": "ok",
    "message": "Mnemonic to entropy",
    "success": true
}
```

#### `GET /v1/to-seed` — Mnemonic to BIP39 seed

**Parameters:**
- `mnemonic` (query, required, string) — Mnemonic phrase Example: `abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon about`
- `passphrase` (query, optional, string) — Optional passphrase

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/bip39-api/v1/to-seed?mnemonic=abandon+abandon+abandon+abandon+abandon+abandon+abandon+abandon+abandon+abandon+abandon+about"
```

**Response:**
```json
{
    "data": {
        "seed": "5eb00bbddcf069084889a8ab9155568165f5c453ccb85e70811aaed6f6da5fc19a5ac40b389cd370d086206dec8aa6c43daea6690f20ad3d8d48b2d2ce9e38e4",
        "passphrase_used": false,
        "seed_length_bytes": 64
    },
    "meta": {
        "timestamp": "2026-06-02T16:51:53.341Z",
        "request_id": "fd028976-ebfc-4005-9ef7-a96401c1d98d"
    },
    "status": "ok",
    "message": "Mnemonic to BIP39 seed",
    "success": true
}
```

#### `GET /v1/validate` — Validate a mnemonic

**Parameters:**
- `mnemonic` (query, required, string) — Mnemonic phrase Example: `abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon about`
- `language` (query, optional, string) — Wordlist language

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/bip39-api/v1/validate?mnemonic=abandon+abandon+abandon+abandon+abandon+abandon+abandon+abandon+abandon+abandon+abandon+about"
```

**Response:**
```json
{
    "data": {
        "valid": true,
        "language": "english",
        "word_count": 12
    },
    "meta": {
        "timestamp": "2026-06-02T16:51:53.447Z",
        "request_id": "cecf11fd-4edb-452b-b920-d903a9624943"
    },
    "status": "ok",
    "message": "Validate a mnemonic",
    "success": true
}
```

### Reference

#### `GET /v1/languages` — Supported wordlists

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/bip39-api/v1/languages"
```

**Response:**
```json
{
    "data": {
        "count": 10,
        "languages": [
            "czech",
            "chinese_simplified",
            "chinese_traditional",
            "korean",
            "french",
            "italian",
            "spanish",
            "japanese",
            "portuguese",
            "english"
        ]
    },
    "meta": {
        "timestamp": "2026-06-02T16:51:53.552Z",
        "request_id": "6f1b55f6-1ee4-4944-b017-a73ff953a124"
    },
    "status": "ok",
    "message": "Supported wordlists",
    "success": true
}
```

### Meta

#### `GET /v1/meta` — Spec

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/bip39-api/v1/meta"
```

**Response:**
```json
{
    "data": {
        "auth": "none upstream; this gateway requires x-api-key",
        "name": "BIP39 Mnemonic API",
        "note": "BIP39 mnemonic seed phrases. /v1/generate?strength=128..256&language=english (12-24 words), /v1/validate, /v1/to-entropy, /v1/from-entropy?entropy=hex, /v1/to-seed?mnemonic=&passphrase=, /v1/languages. For development, testing and education — generate production wallet seeds offline/client-side, never trust a remote API with real funds. Instant, nothing stored.",
        "source": "Local BIP39 (bip39) — no key, no upstream",
        "endpoints": 7
    },
    "meta": {
        "timestamp": "2026-06-02T16:51:53.633Z",
        "request_id": "a1c8257f-b8c1-4865-96ed-63a26e1a9003"
    },
    "status": "ok",
    "message": "Meta",
    "success": true
}
```


---
Marketplace page: https://www.oanor.com/api/bip39-api
OpenAPI spec: https://www.oanor.com/api/bip39-api/openapi.json
