> For the complete documentation index, see [llms.txt](https://berinis-organization.gitbook.io/ono/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://berinis-organization.gitbook.io/ono/guides/create-a-wallet.md).

# Create a wallet

The easiest way to get an ONO wallet is the web wallet at [wallet.ono.gg](https://wallet.ono.gg).

## What a wallet is on ONO

An ONO wallet is a standard **BIP39 mnemonic** — 12 English words. From that mnemonic your keys are derived deterministically (BIP32, path `m/44'/2909'/0'/0/<index>`), so the words are all you need to restore the wallet anywhere.

Your **address is your public key**: the compressed secp256k1 public key as 66 hex characters, starting with `02` or `03`. For example:

```
03f6a0311a72ef5ec7267f2d60e1c241a19fe87ca247f16d614d9adb83e2d5e575
```

There is no separate address encoding — you share your public key, and people send ONO to it.

## Creating a wallet

1. Open [wallet.ono.gg](https://wallet.ono.gg) and create a new wallet.
2. Write down the mnemonic phrase and store it somewhere safe and offline.
3. Your address is shown in the wallet — share it to receive ONO.

{% hint style="danger" %}
**Anyone who knows your mnemonic (or seed) fully controls your funds.** There is no recovery service. Never type the phrase into a website other than your wallet, and never share it.
{% endhint %}

## Restoring a wallet

Enter your 12-word mnemonic in the wallet's restore flow. Because keys are derived deterministically, the same words always produce the same addresses.

## For developers

Wallets can also be created programmatically with the [`ono-web`](/ono/developers/quickstart.md) npm package:

```js
const { wallet } = require('ono-web');

const { mnemonic, seed } = await wallet.newWalletData();
const hdWallet = wallet.hdWallet(seed);
const keyPair = wallet.generateKeyPair(hdWallet, 0);

console.log('address:', keyPair.publicKey.toString('hex'));
```
