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

erc721nes

v1.0.4

Published

ERC-721 NES, or Non Escrow Staking, is a novel implementation of a staking model that does not require the owner of a token to lock it into an escrow contract.

Downloads

3

Readme

About this project

ERC-721 NES, or Non Escrow Staking, is a novel implementation of a staking model that does not require the owner of a token to lock it into an escrow contract. What that means is the token never moves during the staking process, unlike traditional protocols where you receive a coupon to then redeem later for your staked tokens. Instead, the token is flagged as non transferrable for the entire staking duration. In this way, the owner of a token has zero exposure to the risk of a staking protocol being compromised and their tokens stolen.

If a protocol is not using your token to create some sort of financial derivative, it has no business in having the permission of ownership over it.

Our hypothesis is that this distinction is an important one for blockchain gaming. As a token grows in value, the token owner is inversely incentivized for engagement: their token is locked in an escrow contract that could potentially lose their token in the case of faulty code.

NES also offers other ancillary advantages, like being able to receive purchase offers on tokens from various marketplaces or being able to easily prove ownership of a token for things like Collab.Land, Premint or Twitter.

Implementation

ERC-721 NES provides an interface to staking protocols by decorating the prototypical ERC-721 contract with a few additional methods and maintaining one new piece of state. Now, instead of a custodial approach where the owner relinquishes all the power over their token, a signal based locking mechanism can be employed.

_stake(uint256 tokenId)
// locks the token

_unstake(uint256 tokenId)
// unlocks the token

isStaked(uint256 tokenId)
// returns a boolean indicating the staked status of the token

address stakingController
// address of the staking contract

Getting Started

Integrate

  • Install ERC-721 NES as a dependency via NPM

npm install erc721nes

  • Extend your ERC-721 contract using ERC721NES
import "erc721nes/ERC721NES.sol";

contract MyNFT is ERC721NES {
  // your ERC-721 code here
}

Building and Installing Locally

  1. Fork the repo
  2. git clone [your fork url]
  3. Star the project ;-)
  4. Run these command locally:
npm install
npx hardhat test

Contribute

We are always eager to improve and adopt new ideas, please feel free to make suggestions by raising a pull request.

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

Other Non Custodial Staking Implementations

LockRegistry

  • Author
    OwlOfMoistness
  • Description
    Provides a really cool abstraction for non-custodial staking with multiple staking instances. It also paves the way for Owl's on-chain "2FA" concept, which is potentially groundbreaking for improving user security.
  • Source
    https://github.com/OwlOfMoistness/erc721-lock-registry

SmolSchool

  • Author
    SmolVerse
  • Description
    AFAIK, one of the first implementations of a "non-custodial staking" that we've found. This pattern continues to be adopted across the Treasure Ecosystem, and can be found in Bridgeworld's Legions as well.
  • Source
    https://arbiscan.io/address/0x6325439389e0797ab35752b4f43a14c004f22a9c#code