# @bitgo-beta/blake2b-wasm

> Blake2b implemented in WASM

Latest version **3.0.3** (published 2022-09-29) · MIT license · 85.1K weekly downloads

## Install

```sh
npm install @bitgo-beta/blake2b-wasm
pnpm add @bitgo-beta/blake2b-wasm
yarn add @bitgo-beta/blake2b-wasm
bun add @bitgo-beta/blake2b-wasm
```

## Health

**Score 40/100 (D)** — status: abandoned.

Positive: no vulnerabilities; high maintenance score.

Warnings: no types; no esm support.

Negative: abandoned.

## Facts

| | |
|---|---|
| Version | 3.0.3 |
| Published | 2022-09-29 |
| First published | 2022-09-29 |
| Weekly downloads | 85.1K |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 1 |
| Unpacked size | 131.5 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 395 |
| Author | Mathias Buus |
| Maintainers | bitgoaaron |

## Links

- npm: https://www.npmjs.com/package/@bitgo-beta/blake2b-wasm
- Repository: https://github.com/BitGo/BitGoJS
- Homepage: https://github.com/mafintosh/blake2b-wasm
- Issues: https://github.com/mafintosh/blake2b-wasm/issues
- npm.io page: https://npm.io/package/@bitgo-beta/blake2b-wasm

## Dependencies (1)

- [nanoassert](https://npm.io/package/nanoassert.md) ^1.0.0

## Recent versions

- 3.0.3 (latest) — 2022-09-29
- 3.0.4-beta.2395 (beta) — 2026-10-22
- 3.2.1-alpha.514 (alpha) — 2026-08-05
- 3.0.4-beta.2394 — 2026-10-21
- 3.0.4-beta.2392 — 2026-10-21
- 3.0.4-beta.2393 — 2026-10-21
- 3.0.4-beta.2391 — 2026-10-21
- 3.0.4-beta.2390 — 2026-10-21
- 3.0.4-beta.2389 — 2026-10-21
- 3.0.4-beta.2388 — 2026-10-21
- 3.0.4-beta.2387 — 2026-10-21
- 3.0.4-beta.2386 — 2026-10-19
- 3.0.4-beta.2385 — 2026-10-19
- 3.0.4-beta.2384 — 2026-10-17
- 3.0.4-beta.2383 — 2026-10-17
- … 2902 more at https://npm.io/package/@bitgo-beta/blake2b-wasm/versions

## README

# blake2b-wasm

Blake2b implemented in WASM

```
npm install @bitgo/blake2b-wasm
```

Works in browsers that support WASM and Node.js 8+.

## Usage

``` js
var blake2b = require('@bitgo/blake2b-wasm')

if (!blake2b.SUPPORTED) {
  console.log('WebAssembly not supported by your runtime')
}

blake2b.ready(function (err) {
  if (err) throw err

  var hash = blake2b()
    .update(Buffer.from('hello')) // pass in a buffer or uint8array
    .update(Buffer.from(' '))
    .update(Buffer.from('world'))
    .digest('hex')

  console.log('Blake2b hash of "hello world" is %s', hash)
})
```

## API

#### `var hash = blake2b([digestLength], [key], [salt], [personal])`

Create a new hash instance. `digestLength` defaults to `32`.

#### `hash.update(data)`

Update the hash with a new piece of data. `data` should be a buffer or uint8array.

#### `var digest = hash.digest([enc])`

Digest the hash.

#### `var promise = blake2b.ready([cb])`

Wait for the WASM code to load. Returns the WebAssembly instance promise as well for convenience.
You have to call this at least once before instantiating the hash.

## Browser demo

There is a browser example included in [example.html](example.html) and [example.js](example.js).

## Contributing

The bulk of this module is implemented in WebAssembly in the [blake2b.wat](blake2b.wat) file.
The format of this file is S-Expressions that can be compiled to their binary WASM representation by doing

```
wat2wasm blake2b.wat -o blake2b.wasm
```

To build the thin JavaScript wrapper for the WASM module use `wat2js`:

```
# also available as `npm run compile`
wat2js blake2b.wat -o blake2b.js
```

If you do not have `wat2wasm` installed follow the instructions here, https://github.com/WebAssembly/wabt

## License

MIT

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