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

@quickswap-defi/staking-list

v1.0.4

Published

Official Quickswap default staking list (Syrups, LP farms, Dual farms)

Downloads

452

Readme

@quickswap-defi/staking-list

npm version npm downloads License: GPL-3.0 Security

Official QuickSwap staking list for multi-chain DeFi applications. Includes curated Syrup pools, LP farms, and Dual farms metadata for Polygon, Base, and other supported networks.


Migration Notice

Former package name: quickswap-default-staking-list-address (deprecated)
New package name: @quickswap-defi/staking-list


Installation

npm install @quickswap-defi/staking-list

Supported Chains

| Chain | chainId | Status | |---------|---------|--------| | Polygon | 137 | ✅ | | Base | 8453 | ✅ |

Outputs

This package publishes unified JSON files per staking type:

build/
  syrups.json      # All Syrup pools (all chains)
  lpfarms.json     # All LP farms (all chains)
  dualfarms.json   # All Dual farms (all chains)

Each file contains data for all supported chains:

{
  "name": "Quickswap Syrups",
  "timestamp": "2025-01-15T...",
  "version": { "major": 1, "minor": 0, "patch": 2 },
  "chains": {
    "137": {
      "name": "Polygon",
      "chainId": 137,
      "active": [ ... ],
      "closed": [ ... ]
    },
    "8453": {
      "name": "Base",
      "chainId": 8453,
      "active": [ ... ],
      "closed": [ ... ]
    }
  }
}

Usage

// Import the unified staking list
const syrups = require('@quickswap-defi/staking-list/build/syrups.json');
const lpfarms = require('@quickswap-defi/staking-list/build/lpfarms.json');
const dualfarms = require('@quickswap-defi/staking-list/build/dualfarms.json');

// Access by chainId
const polygonSyrups = syrups.chains["137"];
const baseSyrups = syrups.chains["8453"];

console.log(`Active syrups on Polygon: ${polygonSyrups.active.length}`);
console.log(`Closed syrups on Polygon: ${polygonSyrups.closed.length}`);
console.log(`Active syrups on Base: ${baseSyrups.active.length}`);

// Or iterate all chains
for (const [chainId, chainData] of Object.entries(syrups.chains)) {
  console.log(`${chainData.name}: ${chainData.active.length} active pools`);
}

Adding New Staking Data

Directory Structure

All staking data is stored in unified JSON files keyed by chainId:

src/data/
  syrups.json      # All Syrup pools (all chains)
  lpfarms.json     # All LP farms (all chains)
  dualfarms.json   # All Dual farms (all chains)

Data is organized by chainId for easy navigation:

{
  "137": [
    { "stakingRewardAddress": "0x...", "token": "0x...", ... },
    { "stakingRewardAddress": "0x...", "token": "0x...", ... }
  ],
  "8453": [
    { "stakingRewardAddress": "0x...", "token": "0x...", ... }
  ]
}

Syrup Pool Schema

Each syrup entry requires these fields (placed under the appropriate chainId key):

{
  "token": "0x...",               // Reward token address
  "stakingRewardAddress": "0x...", // Staking contract address (unique per chain)
  "name": "Stake QUICK - Earn USDC",
  "stakingToken": "0x...",        // Token users stake
  "baseToken": "0x...",           // Base token for price calculation
  "rate": 0.000002,               // Reward rate per second
  "ending": 1764482107,           // Unix timestamp when pool ends
  "lp": "",                       // LP token address (if applicable)
  "sponsored": false,             // Whether pool is sponsored
  "link": ""                      // External link (optional)
}

How to Add New Pools

Option 1: Sync from deployment file (recommended)

Import data directly from a deployment JSON file:

npm run sync -- --in <path-to-deployment.json> --chain <chain> --type <type>

Example: Import Base syrups from syrup-staking-contract:

npm run sync -- \
  --in ../syrup-staking-contract/deployments/syrup-base.json \
  --chain base \
  --type syrups

npm test
npm run build

Arguments:

| Argument | Description | |----------|-------------| | --in | Path to input deployment JSON file | | --chain | Target chain: polygon, base | | --type | Staking type: syrups, lpfarms, dualfarms | | --merge | Merge with existing data (default: true) |

Input file format (from deployment repos):

{
  "active": [ { ... } ],
  "closed": [ { ... } ]
}

The sync script:

  1. Merges into the unified data file (e.g., src/data/syrups.json)
  2. Preserves items from other chains

Option 2: Edit source files directly

For manual additions:

# Edit the unified data file
vim src/data/syrups.json

# Add items under the appropriate chainId key

# Validate and build
npm test
npm run build

Commit and publish

git add .
git commit -m "feat(base): add QUICK-USDC syrup pool"
git push

Automatic Active/Closed Classification

Items are classified automatically at build time based on the ending timestamp:

| Condition | Classification | |-----------|----------------| | ending < now | closed | | ending >= now | active | | No ending field | active |

You never need to manually move items between active/closed — just set the ending timestamp correctly.

Adding a New Chain

To add support for a new chain:

  1. Add the chain configuration to src/lib/constants.js:
const CHAINS = {
  polygon: { chainId: 137, name: 'Polygon', logoURI: '...' },
  base: { chainId: 8453, name: 'Base', logoURI: '...' },
  newchain: { chainId: 12345, name: 'NewChain', logoURI: '...' }  // Add here
};
  1. Add staking items under the new chainId key in the data files:
{
  "137": [...],
  "8453": [...],
  "12345": [...]  // Add new chain data
}
  1. Run npm test && npm run build to validate

Development

# Install dependencies
npm install

# Run tests
npm test

# Build all lists
npm run build

# Sync from deployment file
npm run sync -- --in <path> --chain <chain> --type <type>

Disclaimer

Note filing an issue does not guarantee addition to this default staking list. We do not review syrup/LP farm/Dual farm addition requests in any particular order, and we do not guarantee that we will review your request to add the syrup/LP farm/Dual farm to the default list.