# bittorrent-peerid

> Map a BitTorrent peer ID to a human-readable client name and version

Latest version **2.0.2** (published 2026-05-25) · MIT license · 0 weekly downloads

## Install

```sh
npm install bittorrent-peerid
pnpm add bittorrent-peerid
yarn add bittorrent-peerid
bun add bittorrent-peerid
```

## Health

**Score 60/100 (C)** — status: active.

Positive: esm support; no vulnerabilities; has provenance; high maintenance score.

Warnings: low downloads; no types.

## Facts

| | |
|---|---|
| Version | 2.0.2 |
| Published | 2026-05-25 |
| First published | 2014-05-28 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | ESM |
| Node | >=12.20.0 |
| Dependencies | 0 |
| Unpacked size | 27.2 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Provenance | attested (GitHub Actions) |
| GitHub stars | 71 |
| Author | WebTorrent LLC |
| Maintainers | feross, mafintosh, flet, watson, diegorbaquero, hicom150, jhiesey, webtorrent-bot, alxhotel, fisch0920 |
| Keywords | .torrent, bittorrent, peer, peer-to-peer, torrent, webtorrent |

## Links

- npm: https://www.npmjs.com/package/bittorrent-peerid
- Repository: https://github.com/webtorrent/bittorrent-peerid
- Homepage: https://github.com/webtorrent/bittorrent-peerid#readme
- Issues: https://github.com/webtorrent/bittorrent-peerid/issues
- Funding: https://github.com/sponsors/feross
- npm.io page: https://npm.io/package/bittorrent-peerid

## Recent versions

- 2.0.2 (latest) — 2026-05-25
- 2.0.1 — 2026-05-25
- 1.3.6 — 2022-12-06
- 2.0.0 — 2022-12-05
- 1.3.5 — 2022-12-04
- 1.3.4 — 2021-07-23
- 1.3.3 — 2020-07-17
- 1.3.2 — 2019-09-10
- 1.3.1 — 2019-09-10
- 1.3.0 — 2018-07-26
- 1.2.0 — 2017-04-22
- 1.1.1 — 2016-07-30
- 1.0.2 — 2015-12-08
- 1.0.1 — 2014-11-10
- 1.0.0 — 2014-05-28

## README

# bittorrent-peerid [![ci][ci-image]][ci-url] [![npm][npm-image]][npm-url] [![downloads][downloads-image]][downloads-url] [![javascript style guide][standard-image]][standard-url]

[ci-image]: https://github.com/webtorrent/bittorrent-peerid/actions/workflows/ci.yml/badge.svg
[ci-url]: https://github.com/webtorrent/bittorrent-peerid/actions/workflows/ci.yml
[npm-image]: https://img.shields.io/npm/v/bittorrent-peerid.svg
[npm-url]: https://npmjs.org/package/bittorrent-peerid
[downloads-image]: https://img.shields.io/npm/dm/bittorrent-peerid.svg
[downloads-url]: https://npmjs.org/package/bittorrent-peerid
[standard-image]: https://img.shields.io/badge/code_style-standard-brightgreen.svg
[standard-url]: https://standardjs.com

### Map a BitTorrent peer ID to a human-readable client name and version

Also works in the browser with [browserify](http://browserify.org/)!

This module is used by [WebTorrent](https://webtorrent.io).

## install

```
npm install bittorrent-peerid
```

## usage

```js
import peerid from 'bittorrent-peerid'
const parsed = peerid('-AZ2200-6wfG2wk6wWLc')

console.log(parsed.client, parsed.version)
```

The `parsed` peerid object looks like this:

```js
{
  client: 'Vuze',
  version: '2.2.0.0'
}
```

bittorrent-peerid can parse peer ids encoded in the following formats:
* a 20-byte Buffer
* a 40-character hex string
* an arbitrarily-sized human-readable utf8 string (must decode to a 20-byte Buffer)

If an unknown peer id is passed in, the returned client will be `unknown`.

## todo

* ~~Support known Azureus-style clients.~~
* ~~Support known Shadow-style clients.~~
* ~~Support known Mainline-style clients.~~
* ~~Support known Custom-style clients.~~
* ~~Recognize BitComet/Lord/Spirit spoofing.~~
* Full support for client version parsing.
* Full support for customized client version schemes.
* Support unknown clients that conform to either the Azureus or Shadow-style conventions.

## credit

This module is based heavily on the BTPeerIDByteDecoderDefinitions class from [Azureus](http://sourceforge.net/projects/azureus/) (Vuze). Related resources include:
* [BitTorrent Specification](http://wiki.theory.org/BitTorrentSpecification)
* [Transmission](http://transmission.m0k.org/trac/browser/trunk/libtransmission/clients.c)
* [g3peerid](http://rufus.cvs.sourceforge.net/rufus/Rufus/g3peerid.py?view=log)
* [Shareaza](http://shareaza.svn.sourceforge.net/viewvc/shareaza/trunk/shareaza/BTClient.cpp?view=markup)
* [libtorrent](http://libtorrent.rakshasa.no/browser/trunk/libtorrent/src/torrent/peer/client_list.cc)

## license

MIT. Copyright (c) Travis Fischer and [WebTorrent, LLC](https://webtorrent.io).

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