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

@majikah/majik-notary

v0.1.1

Published

Chain-agnostic blockchain notarization library for Majik Signature. Creates independently verifiable proof-of-existence by anchoring sealed file hashes on-chain, with an initial implementation using the Solana blockchain.

Readme

Majik Notary

Chain-agnostic blockchain notarization and proof-of-existence for sealed Majik Signature files.

Developed by Zelijah GitHub Sponsors

npm npm downloads npm bundle size License TypeScript


[!IMPORTANT] Early Access

Majik Notary is currently under active development.

While the core notarization engine is already functional, the public developer APIs and end-user workflows have not yet been officially released.

This documentation focuses on the current architecture and implementation rather than the final public SDK.

Majik Notary provides independently verifiable blockchain proof for files sealed with @majikah/majik-signature.

Its architecture is intentionally blockchain-agnostic, allowing multiple blockchain adapters to exist behind a common notarization model.

The current implementation uses the Solana blockchain via the SPL Memo Program. Solana was selected as the initial blockchain because its combination of high throughput, fast confirmations, and extremely low transaction costs makes it well suited for large-scale document notarization while maintaining independent public verifiability.

The architecture is designed to accommodate additional blockchain adapters without requiring changes to application code or the sealed file format.

Unlike @majikah/majik-signature, this package does not perform cryptographic signing. Its responsibility is solely to create and verify blockchain proof for already sealed files.


Features

  • Chain-agnostic notarization architecture
  • Proof-of-existence for sealed files
  • Independent integrity verification
  • Deterministic blockchain memo generation
  • On-chain verification
  • Solana adapter (current implementation)
  • Supports Solana Devnet and Mainnet
  • Built on @solana/kit
  • Keeps @majikah/majik-signature completely blockchain-independent

Installation

npm install @majikah/majik-notary

Architecture

Majik Signature intentionally separates cryptographic signing from blockchain notarization.

flowchart TD
    A[File]
    B["Majik Signature<br/>(Sign & Seal)"]
    C["Majik Notary"]

    D["Solana Adapter"]
    E["Future Adapters"]

    F["Solana Blockchain"]

    A --> B
    B --> C

    C --> D
    C -.-> E

    D --> F

Majik Notary acts as a blockchain abstraction layer.

Today, Majik Notary includes a Solana adapter. Its architecture allows additional blockchain adapters to be added without requiring changes to @majikah/majik-signature or the sealed file format.

This separation keeps the signing engine portable while allowing blockchain support to evolve independently.


How it works

When a sealed file is notarized:

  1. The file's seal hash is extracted.
  2. A deterministic memo is built.
  3. A Solana transaction containing the memo is created.
  4. The transaction is submitted.
  5. After confirmation, a chain anchor is embedded back into the file.

No file contents are uploaded.

Only a deterministic cryptographic digest is anchored on-chain.


Example API (Subject to Change)

import { MajikNotary } from "@majikah/majik-notary";

const { blob, anchor } = await MajikNotary.notarize(
    sealedFile,
    signer,
    rpc
);

The returned file contains an embedded blockchain anchor that can later be verified independently.


Verifying an Anchor

Verification does not trust the embedded anchor alone.

Instead it:

  • derives the expected memo from the seal hash (SHA3-512)
  • fetches the actual Solana transaction
  • compares the on-chain memo
  • confirms the transaction reached a confirmed or finalized state
const result = await MajikNotary.verifyOnChain(anchor, rpc);

console.log(result.valid);

This allows third parties to independently validate the blockchain proof.


Building Memos

The memo format is owned by @majikah/majik-signature.

Majik Notary simply delegates to it.

const memo = MajikNotary.buildMemo(sealHash);

This guarantees every implementation produces identical deterministic memo strings.


RPC Client

A helper is included for creating Solana RPC clients.

import { createRpcClient } from "@majikah/majik-notary";

const rpc = createRpcClient("devnet");

Security

Majik Notary never stores:

  • file contents
  • signatures
  • encryption keys
  • private keys

Only a deterministic seal hash is anchored onto the blockchain.

Because the original file hash can be recomputed at any time, blockchain verification remains completely independent.


Relationship with Majik Signature

Majik Signature Hero

| Component | Responsibility | | -------------------------- | ----------------------------------------------------------------- | | @majikah/majik-signature | Signs, seals, and verifies files | | @majikah/majik-notary | Provides blockchain notarization and chain adapter infrastructure | | Solana | Current blockchain used for chain anchoring | | Application | Chooses when and where notarization occurs |

This separation keeps blockchain concerns out of the core signing library.


License

Apache-2.0 — free for personal and commercial use.


Author

Developed by Josef Elijah Fabian (Zelijah) | Majikah Solutions OPC

Developer: Josef Elijah Fabian GitHub: https://github.com/Majikah Project Repository: https://github.com/Majikah/majik-notary


Contact