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

staking-tmp

v1.0.0

Published

Chroma Staking SDK

Readme

Staking Program

This repository contains several programs that compose the $PYTH staking smart contract stack. The programs are:

  • Staking Program: This program is responsible for custodying the staked tokens and to track the state of staked tokens (for example which target they are staked to, whether they are active or in warmup or cooldown). There are currently two targets: integrity pool and governance. Additionally users staking to integrity pool have to choose a specific publisher to stake with.
  • Integrity Pool: This program is responsible for distributing rewards to stakers that choose to stake their tokens to integrity pool based on the publisher they chose; it can also slash stakers. The Integrity Pool program reads the state of staked tokens from the Staking Program accounts, in order to distribute the rewards proportionally to each user's stake. Additionally users can only update their stake to integrity pool by calling the Integrity Pool Program which will CPI into the Staking Program. This differs from governance where users can stake and unstake directly from the Staking Program.
  • Publisher Caps: This program is responsible for receiving Publisher Caps Messages from Wormhole. This messages are real-time metrics of the publishers that are consumed by the Integrity Pool program to compute each publisher's rewards.

Additionally, the repo contains two small programs:

  • Wallet Tester: A program that can be used to test smart contract interaction with a wallet.
  • Profile: A program that can be used to map a Solana wallet to wallets on other blockchain networks.

Prerequisites

Before you begin, ensure you have met the following requirements:

  • Node.js v18.19.1
  • Solana CLI v1.18.16
  • Anchor v0.30.1
  • Docker

Building the Project

You can create a verifiable build of the project by running the following command:

./scripts/build_verifiable_staking_program.sh

If you want to create a verifiable build for testing, use the -t option:

./scripts/build_verifiable_staking_program.sh -t

The result of the build will be target folder.

Clone the required programs

To clone the governance and chat programs from the Devnet environment, execute the following command:

npm run dump_governance

Run tests

To run the tests locally use the following command:

npm run test -- tests/*.ts

It's useful sometimes to keep the validator running after the tests are done. To do that, you can use the DETACH environment variable:

DETACH=1 npm run test -- tests/staking.ts

To run the tests with verifiable builds:

npm run test:ci