npm hiverewards
is out on @cryptoshots.nft's GitHub as an Open Source library!
https://github.com/Crypto-Shots/Hive-Earnings
A new npm library designed to make it easier for both end users and developers to track HIVE-based earnings and reliably interact with the Hive ecosystem APIs for different purposes.
Have you ever wondered how much you earned from a Hive game or project in the past day/week/month/year?
Have you spent days/months wiring up a Hive app just to later find out that it's misbehaving because of a node issue?
Hive Rewards is here to simplify your life. With a very little coding experience you can now execute some queries to find out your daily/weekly/monthly earnings.
Run such searches in your HTML page, directly in a terminal, or in your NodeJS scripts/backend.
npm hiverewards
takes care of all the plumbing under the hood:
💰 Automatic price lookups and $ conversions, so you always know the dollar value you sent/received in any specific time range.
👨🔧 Retry mechanisms, node switching, smart caching and exponential back-off - meaning for example no surprises when a node hiccups.
🏥 Health checks to ensure the node is available before trying to fetch your data.
Hive Rewards offers two SDKs out of the box:
- Hive Earnings SDK
- Quickly compute how much HIVE and Hive-Engine tokens each target user has sent or received over any time window (hours, days, weeks, or months).
- Handy insights for project owners/maintainers: monitor token distributions for marketing campaigns and/or manage your tokenomics with confidence.
- Rather than (or on top of) storing user data in a database that you maintain, hiverewards allows you to pull player earnings straight from the Hive and Hive-Engine blockchains. No centralized ledger required. Or run it alongside your existing system as an audit tool, comparing your database reward records against the on-chain data to spot any discrepancies or anomalies.
- Hive & Hive-Engine API wrappers with automatic node switching
- Forget manually configuring endpoints or handling flaky RPC calls — our methods like
hiveApiCall()
andhiveEngineApiCall()
will automatically and gracefully rotate and retry using other healthy nodes when one fails. - Extendable to any sidechain — the same pattern applies whether you’re talking to Hive Engine today or a brand-new chain tomorrow.
- Forget manually configuring endpoints or handling flaky RPC calls — our methods like
📑 CONTENTS
- 💸 Hive Rewards usage – NodeJS & Browser
- 😺 Peakd’s Beacon Wrapper and Hive / HiveEngine API Wrappers
- 😺 Usage in Crypto Shots
Hive Rewards
An SDK for Node.js and the browser, and a command‑line tool to scan HIVE and Hive‑Engine token transfers:
- Inbound — sum HIVE & tokens and USD value received by specified accounts, tracking specific sender accounts.
- Outbound — map all recipients, tokens and USD values sent by a given sender.
Usage - NodeJS and Browser
import { hiveRewards } from 'hiverewards';
const analyzer = await hiveRewards({ verbose: true });
const inbound = await analyzer.inbounds({
receivers: ['zillionz', 'obifenom'],
hiveSenders: { PVP_HIVE: 'cryptoshots.tips' },
tokenSenders: { PVP_TOKENS: 'cryptoshots.tips' },
hours: 2,
});
console.log(inbound);
const outbound = await analyzer.outbounds({
senders: ['cryptoshots.tips', 'karina.gpt'],
ignoredReceivers: ['keychain.swap'],
days: 1,
});
console.log(outbound);
Self-hosted bundle
A bundled build can be generated with Webpack:
Clone the project
Build it with
npm run build:web # outputs dist/hiverewards.bundle.js
- Host the generated dist folder on your server
- Import it in your frontend and use it this way:
<script src="dist/hiverewards.bundle.js"></script>
<script>
(async () => {
const analyzer = await window.HiveRewards.hiveRewards();
const result = await analyzer.inbounds({
receivers: ['obifenom'],
hiveSenders: { PVP_GAME_REWARDS: 'cryptoshots.tips' },
days: 7,
});
console.log(result);
})();
</script>
Usage - CLI
git clone <repo>
cd <repo>
npm install
npm start -- --inbound obifenom zillionz --from pvpRewards=cryptoshots.tips pveRewards=cryptoshotsdoom --hours 24

npm start -- --outbound cryptoshots.tips karina.gpt --days 1

Note: append --verbose
for verbose logging
Configuration
Env var | Default |
---|---|
HIVE_PRICE_URL | https://api.coingecko.com/api/v3/simple/price?ids=hive&vs_currencies=usd |
You can also override the initial Hive / Hive Engine node by passing a config object to the hiveRewards()
factory in code.
eg.
const analyzer = await hiveRewards({
hiveNodeUrl: 'https://your.hive.node',
hiveEngineRpcUrl: 'https://your.he.rpc',
hiveEngineHistoryUrl: 'https://your.he.history',
});
Other Overrides:
Constructor Attribute | Description | Default |
---|---|---|
fetch | Fetch API implementation | npm cross-fetch |
hiveJs | pass in another @hiveio/hive-js version, if needed | v2 |
log | custom logger | console |
apiCallsDelay | default wait time for api call retries | 500 (with exp backoff) |
priceCacheMins | how long Hive price is cached for | 10 mins |
hiveHistoryLimit | page size (max account‐history ops per call) | 500 |
heHistoryLimit | page size (max Hive-Engine history records per call) | 250 |
Peakd's Beacon Wrapper
Wrapper for @peakd's Beacon APIs.
Usage:
import { peakdBeaconWrapper } from 'hiverewards';
const { getHealthyHiveNode, getHealthyHeNode, getHealthyHeHistoryNode } = peakdBeaconWrapper;
const hiveUrl = await getHealthyHiveNode();
const heUrl = await getHealthyHeNode();
const hehUrl = await getHealthyHeHistoryNode();
// Now you can configure your client:
hiveApi.api.setOptions({ url: hiveUrl });
...our use our Hive / Hive Engine client wrappers that automatically rotate healthy nodes:
import { healthyApisWrapper } from 'hiverewards';
const { hiveApiCall, hiveEngineApiCall, hiveEngineHistoryApiCall } = healthyApisWrapper;
const history = await hiveApiCall('getAccountHistory', ['cryptoshotsdoom', -1, 10]);
console.log(history);
const metrics = await hiveEngineApiCall({
jsonrpc: '2.0',
method: 'find',
params: {
contract: 'market',
table: 'metrics',
query: { symbol: 'DOOM' },
limit: 1,
offset: 0
},
id: 1
});
console.log(metrics);
const history = await hiveEngineHistoryApiCall('cryptoshotstips', 20);
console.log(history);
Usage in CRYPTO SHOTS
- Earnings report for Daily Tournaments
- Weekly/monthly Top Earners leaderboard

GAME UI: Coming Soon
Coming Next
- Support for additional Hive sidechains
- Porting into Unity as an Open Source plugin
Support us
VOTE for our witness 🙇♂️
- Use the Issues tab to report bugs.
- Create Merge Requests for potential improvements and fixes.