# @mapeo/crypto

> Key management and encryption / decryption functions for Mapeo

Latest version **1.1.0** (published 2026-04-22) · MIT license · 0 weekly downloads

## Install

```sh
npm install @mapeo/crypto
pnpm add @mapeo/crypto
yarn add @mapeo/crypto
bun add @mapeo/crypto
```

## Health

**Score 65/100 (B)** — status: active.

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

Warnings: low downloads.

## Facts

| | |
|---|---|
| Version | 1.1.0 |
| Published | 2026-04-22 |
| First published | 2021-12-20 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | ESM + CommonJS |
| Dependencies | 8 |
| Unpacked size | 56.1 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Provenance | attested (GitHub Actions) |
| Author | Digital Democracy |
| Maintainers | gmaclennan, andrew_chou, digidem-admin |

## Links

- npm: https://www.npmjs.com/package/@mapeo/crypto
- Repository: https://github.com/digidem/mapeo-crypto
- Homepage: https://github.com/digidem/mapeo-crypto#readme
- Issues: https://github.com/digidem/mapeo-crypto/issues
- npm.io page: https://npm.io/package/@mapeo/crypto

## Dependencies (8)

- [crc](https://npm.io/package/crc.md) ^3.8.0
- [z32](https://npm.io/package/z32.md) ^1.0.0
- [base-x](https://npm.io/package/base-x.md) ^3.0.9
- [base32.js](https://npm.io/package/base32.js.md) ^0.1.0
- [compact-encoding](https://npm.io/package/compact-encoding.md) ^2.19.2
- [sodium-universal](https://npm.io/package/sodium-universal.md) ^4.0.0
- [compact-encoding-net](https://npm.io/package/compact-encoding-net.md) ^1.0.1
- [compact-encoding-struct](https://npm.io/package/compact-encoding-struct.md) ^1.2.0

## Recent versions

- 1.1.0 (latest) — 2026-04-22
- 1.0.0-alpha.10 (alpha) — 2023-10-10
- 1.0.1 — 2026-04-22
- 1.0.0 — 2026-04-22
- 1.0.0-alpha.9 — 2023-10-09
- 1.0.0-alpha.8 — 2023-08-31
- 1.0.0-alpha.7 — 2023-08-24
- 1.0.0-alpha.6 — 2023-08-23
- 1.0.0-alpha.5 — 2023-08-17
- 1.0.0-alpha.4 — 2023-01-17
- 1.0.0-alpha.3 — 2023-01-17
- 1.0.0-alpha.2 — 2022-01-11
- 1.0.0-alpha.1 — 2021-12-20

## README

## @mapeo/crypto

[![Node.js CI](https://github.com/digidem/mapeo-crypto/workflows/Node.js%20CI/badge.svg)](https://github.com/digidem/mapeo-crypto/actions/workflows/node.js.yml)
[![Npm package version](https://img.shields.io/npm/v/@mapeo/crypto)](https://npmjs.com/package/@mapeo/crypto)

Key management and encryption / decryption functions for Mapeo.

## Table of Contents

*   [KeyManager](#keymanager)
    *   [Parameters](#parameters)
    *   [`km.getIdentityKeypair()`](#kmgetidentitykeypair)
    *   [`km.getIdentityBackupCode()`](#kmgetidentitybackupcode)
    *   [`km.getHypercoreKeypair(name, namespace)`](#kmgethypercorekeypairname-namespace)
        *   [Parameters](#parameters-1)
    *   [`km.getDerivedKey(name, namespace)`](#kmgetderivedkeyname-namespace)
        *   [Parameters](#parameters-2)
    *   [`km.decryptLocalMessage(cypherText, nonce)`](#kmdecryptlocalmessagecyphertext-projectid)
        *   [Parameters](#parameters-3)
    *   [`km.encryptLocalMessage(msg, nonce)`](#kmencryptlocalmessagemsg-projectid)
        *   [Parameters](#parameters-4)
    *   [`KeyManager.generateRootKey()`](#keymanagergeneraterootkey)
    *   [`KeyManager.decodeBackupCode(backupCode)`](#keymanagerdecodebackupcodebackupcode)
        *   [Parameters](#parameters-5)
    *   [`KeyManager.generateProjectKeypair()`](#keymanagergenerateprojectkeypair)
*   [Project Invites](#project-invites)
    *   [`invites.encodeJoinRequest(joinRequest, options)`](#invitesencodejoinrequestjoinrequest-options)
        *   [Parameters](#parameters-6)
    *   [`invites.decodeJoinRequest(str, options)`](#invitesdecodejoinrequeststr-options)
        *   [Parameters](#parameters-7)
    *   [`invites.generateInvite(joinRequest, options)`](#invitesgenerateinvitejoinrequest-options)
        *   [Parameters](#parameters-8)
    *   [`invites.decodeInviteSecretMessage(invite, identityPublicKey, identitySecretKey, options)`](#invitesdecodeinvitesecretmessageinvite-identitypublickey-identitysecretkey-options)
        *   [Parameters](#parameters-9)
*   [`sign(message, secretKey)`](#signmessage-secretkey)
    *   [Parameters](#parameters-10)
*   [`verify(message, signature, publicKey)`](#verifymessage-signature-publickey)
    *   [Parameters](#parameters-11)
*   [`keyToPublicId(key)`](#keytopublicidkey)
    *   [Parameters](#parameters-12)
*   [Type `JoinRequest`](#type-joinrequest)

## API

<!-- Generated by documentation.js. Update this documentation by updating the source code. -->

### Table of Contents

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