npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@uvrn/adapter

v4.0.0

Published

UVRN DRVC3 envelope adapter — wraps core receipts with EIP-191 signatures

Readme

@uvrn/adapter

UVRN DRVC3 envelope adapter — wraps Delta Engine receipts in DRVC3 envelopes with EIP-191 signatures. Use this when you need to attach issuer identity and signing to core receipts without changing their deterministic hash.

Package provides: wrapInDRVC3, validateDRVC3, extractDeltaReceipt; bundled DRVC3 schema; types. EIP-191 signing and validation.

You provide: A DeltaReceipt from @uvrn/core; an ethers signer (e.g. Wallet with private key); issuer and event strings; optional metadata (certificate, extensions, etc.).

Install

npm install @uvrn/adapter

Or with pnpm:

pnpm add @uvrn/adapter

Requires @uvrn/core (peer). Install the core if you do not have it:

npm install @uvrn/core @uvrn/adapter

Usage

  1. Obtain a DeltaReceipt from @uvrn/core (e.g. runDeltaEngine(bundle)).
  2. Use wrapInDRVC3 with an ethers signer and options to produce a DRVC3 envelope.
  3. Use validateDRVC3 / extractDeltaReceipt to validate envelopes and read back the core receipt.
import { runDeltaEngine } from '@uvrn/core';
import { wrapInDRVC3, validateDRVC3, extractDeltaReceipt } from '@uvrn/adapter';
import { Wallet } from 'ethers';

const bundle = { /* ... DeltaBundle ... */ };
const receipt = runDeltaEngine(bundle);

const wallet = new Wallet(process.env.SIGNER_PRIVATE_KEY);
const drvc3 = await wrapInDRVC3(receipt, wallet, {
  issuer: 'my-service',
  event: 'delta-reconciliation',
});

const valid = validateDRVC3(drvc3);
const extracted = extractDeltaReceipt(drvc3);

Use cases

  • Sign receipts with a known identity — Attach EIP-191 signatures so consumers can verify who issued the envelope.
  • Interop with DRVC3 systems — Produce standard DRVC3 envelopes that other tools can validate and parse.
  • Audit and provenance — Keep the core receipt hash unchanged while adding issuer and timestamp in the envelope.

DRVC3 customization

What you can customize

You can set these options when wrapping a receipt (no code changes to this package):

  • issuer — Your service or org name (e.g. 'my-app', 'acme-corp').
  • event — Event type (e.g. 'delta-reconciliation', 'price-attestation').
  • certificate — Version or brand string (default 'DRVC3 v1.01'; you can use e.g. 'MyCorp Receipt v1').
  • description, resource, replay_instructions, tags — Optional metadata.
  • extensions — Arbitrary key-value object for your own metadata (provenance, evidence links, etc.).

Example:

const drvc3 = await wrapInDRVC3(receipt, wallet, {
  issuer: 'acme-corp',
  event: 'price-attestation',
  certificate: 'Acme Receipt v1',
  extensions: { source: 'https://acme.com/feed', region: 'us-east' },
});

What is fixed

The envelope structure is defined by the bundled DRVC3 schema (schemas/drvc3.schema.json). Required fields (e.g. receipt_id, issuer, event, timestamp, integrity, block_state, certificate, validation.checks.delta_receipt) cannot be changed when using validateDRVC3. There is no option to pass a different schema.

Using a different envelope format

If you need a completely different envelope spec:

  • Fork this package — Change the types, schema, wrapper, and validator in your own package and publish under your own scope.
  • Skip DRVC3 — Use @uvrn/core (and optionally @uvrn/sdk) only; build your own envelope format and signing/validation on top of the core receipt.

Links

Open source: Source code and issues: GitHub (uvrn-packages). Project landing: UVRN.

  • Repository — monorepo (this package: uvrn-adapter)
  • @uvrn/core — Delta Engine core (produces the receipts this adapter wraps)