# onoma

> a library for making web3 addresses more human-readable

Latest version **0.1.2** (published 2025-01-25) · ISC license · 0 weekly downloads

## Install

```sh
npm install onoma
pnpm add onoma
yarn add onoma
bun add onoma
```

## Health

**Score 35/100 (D)** — status: maintenance-mode.

Positive: has types; no vulnerabilities; high quality score.

Warnings: low downloads; no esm support; pre 1.0.

Negative: stale; low maintenance score.

## Facts

| | |
|---|---|
| Version | 0.1.2 |
| Published | 2025-01-25 |
| First published | 2022-04-24 |
| Weekly downloads | 0 |
| License | ISC |
| TypeScript types | bundled |
| Module format | CommonJS |
| Dependencies | 1 |
| Unpacked size | 55.1 KB |
| Known vulnerabilities | 0 (+1 in 1 direct dependencies) |
| Install scripts | no |
| GitHub stars | 16 |
| Author | Brenner Spear |
| Maintainers | metagame-xyz |
| Keywords | Ethereum, ETH, EVM, Polygon, Blockchain, Crypto, Web3 |

## Links

- npm: https://www.npmjs.com/package/onoma
- Repository: https://github.com/the-metagame/onoma
- Homepage: https://github.com/the-metagame/onoma#readme
- Issues: https://github.com/the-metagame/onoma/issues
- npm.io page: https://npm.io/package/onoma

## Dependencies (1)

- [@faker-js/faker](https://npm.io/package/@faker-js/faker.md) ^6.2.0

## Alternatives

- [@gemini-wallet/core](https://npm.io/package/@gemini-wallet/core.md) — 515.6K weekly downloads
- [utility](https://npm.io/package/utility.md) — 416.6K weekly downloads
- [@primno/dpapi](https://npm.io/package/@primno/dpapi.md) — 7.2K weekly downloads
- [pi-readseek](https://npm.io/package/pi-readseek.md) — 3.7K weekly downloads
- [@emilia-protocol/verify](https://npm.io/package/@emilia-protocol/verify.md) — 1.1K weekly downloads

## Recent versions

- 0.1.2 (latest) — 2025-01-25
- 0.1.1 — 2022-04-24

## README

[![GitHub license](https://img.shields.io/github/license/the-metagame/onoma)](https://github.com/the-metagame/onoma/blob/main/LICENSE)

# onoma
a library for deterministically turning web3 addresses into names


# Why?

## Why is it called onoma?

Onomastics is the study of the history and origin of proper names, especially personal names.

(shoutout to [0xmts](https://twitter.com/0xmts) for the name)

## Why did Metagame build this?
During Metagame's work on making transactions more human readable, we found ourselves often using the first 6 characters of an address as the wallet/contract's "name" when it didn't have an ENS associated with it. This is much harder to make an association with than a *real* name, so thought we'd give every wallet a name!



# Installation

```zsh
npm add onoma
```

```zsh
yarn add onoma
```

# Usage

```typescript
import { addressToName, addressToNameObject } from 'onoma'

const address = '0x17A059B6B0C8af433032d554B0392995155452E6'

const name = addressToName(address)

console.log(name)
// Felicita Feeney

const nameObj = addressToNameObject(address)

console.log(nameObj)

/*
 {
    name: 'Felicita Feeney',
    prefix: 'Miss',
    firstName: 'Felicita',
    middleName: 'Micah',
    lastName: 'Feeney'
 }
*/
```

# Notes

Currently only supports 40 char hexidecimal addresses (EVM wallet addresses). Would be great if someone wanted to add support for other types of addresses :)

It can handle addresses with or without the `0x` prefix, and both lowercase and uppercase.

---
_Source: https://npm.io/package/onoma · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
