OpenViSTAI · Agents · Blockchain · Crypto
Menu
ZK & Privacy

Ecrecover Noir

Ecrecover Noir is an MIT-licensed Noir circuit library for verifying secp256k1 signatures and deriving Ethereum addresses from public keys. It provides an ecrecover-style function that accepts public-key coordinates, a 64-byte signature and a 32-byte message hash, returning an address represented as a Field constrained to 160 bits.

Independent OpenViST project profile, based on linked sources.

Ecrecover Noir — OpenViST project profile in ZK & Privacy.
OpenViST project illustration. See the linked sources for product details.
Understand the project

Practical overview

When it fits

Use it when a Noir circuit needs signature verification or Ethereum address derivation and the public key is available as an input. The README also shows how to derive that key from a signed message with TypeScript and ethers.

Who it is for

  • Noir developers adding Ethereum-compatible signature logic to circuits.
  • ZK application builders prototyping signature verification or signer-address derivation.

Documented uses

  • Check whether a secp256k1 signature matches a message hash and public key.
  • Derive the Ethereum address associated with a public key.
  • Use an ecrecover-style address result as circuit logic.
Before you choose

Requirements & limits

The public GitHub repository identifies the project as MIT-licensed. The README's dependency example specifies tag v1.0.1.

  • The main function requires the full public key as two 32-byte coordinates; the library does not recover that key from the signature.
  • PubKey also accepts a concatenated 64-byte key or a 65-byte uncompressed key with a checked 0x04 prefix.
  • The README calls the implementation naive and unoptimized and says a fully fledged ecrecover circuit could be very large.
  • The README warns that versions before v0.30.0 had a critical underconstraint vulnerability and says the software is unaudited and should not be used in production.

Check current requirements in the official documentation. Source-based guidance does not mean OpenViST has run or independently tested this project.

Source-based practical guide

Add Ecrecover Noir as a Nargo dependency

Declare the library dependency in a Noir project's Nargo.toml.

Before you start

  • A Noir project with a Nargo.toml file

Steps

  1. Add an [dependencies] section to Nargo.toml if one is not already present.

  2. Add ecrecover = { tag = "v1.0.1", git = "https://github.com/colinnielsen/ecrecover-noir" } under that section.

Expected outcome

The project manifest declares the ecrecover library at tag v1.0.1.

Guide limitations

  • This covers dependency declaration only, not compiling or running a circuit.
  • The README warns that the software is unaudited and should not be used in production, and that versions before v0.30.0 must not be used.
Evidence and transparency

Sources & review

Source record details
Source availability
Active
Sources checked
13 October 2026
Original website title
colinnielsen/ecrecover-noir · Official homepage title · retained in its source language