Revenue & Leaderboards
Nibgate provides payment processing, revenue tracking, and competitive leaderboards to help creators understand and grow their earnings.
Nibgate does not custody creator funds. Payments flow directly from the reader to the creator through the Circle Gateway. Nibgate indexes receipts and displays analytics.
Payment flow
The payment flow connects the reader’s wallet to the creator’s wallet through the Circle Gateway:
Reader wallet
-> initiates payment on unlock UI
-> Circle Gateway processes USDC transfer (ARC testnet)
-> Creator wallet receives funds directly
-> Package reports receipt to Nibgate hub
-> Dashboard and leaderboards updateStep by step
Reader initiates unlock
The reader clicks the unlock button on a paid post. The unlock UI displays the price, the creator’s brand, and a connect/pay prompt.
Payment processing
The reader’s wallet signs and submits the USDC payment through the Circle Gateway on ARC testnet. The gateway handles settlement and returns a receipt.
Funds arrive at creator wallet
The USDC is transferred directly to the creator’s configured wallet address. Nibgate never touches the funds.
Receipt indexed
The Nibgate package or Subblog backend reports the payment receipt to the hub. The receipt includes the amount, currency, buyer wallet, content ID, and transaction hash.
Analytics update
The dashboard updates earnings, unlock counts, and leaderboard rankings based on the verified receipt.
Leaderboard system
Nibgate maintains three types of leaderboards:
Ranks creators by total earnings, unlock count, and reputation score.
Creator leaderboardRanks registered sites and Subblogs by content quality, engagement, and earnings.
Site leaderboardRanks individual posts by unlocks, revenue generated, and rating.
Content leaderboardRanking factors
All three boards rank by reputation score first (content/site/creator, 1–100), then unlock count, then views. Content additionally breaks ties by revenue, then newest createdAt. The current sorters are:
- Content:
reputationScore desc→unlocks desc→views desc→revenue desc→createdAt desc - Sites:
reputationScore desc→unlocks desc→views desc - Creators:
reputationScore desc→unlocks desc→views desc
(backend/src/server/routes/hub-routes.js:792, 820, 844)
Leaderboard views
Leaderboards are surfaced in the Nibgate Explore section (frontend/src/app/explore/_components/LeaderboardPreview.tsx). The board UI supports tab switching between content/sites/creators, search, and column sorting — it does not currently filter by time range or content type.
Revenue tracking
The admin dashboard provides detailed revenue tracking:
- Total earnings: Aggregate USDC earned across all content.
- Per-content earnings: Revenue breakdown by individual post.
- Timeline: Earnings charted over time with daily/weekly/monthly granularity.
- Receipt drilldown: Click any earnings entry to view the receipt details (transaction hash, buyer wallet, timestamp).
// Receipt event reported after unlock (the shape the hub indexes)
{
"paymentProvider": "circle-gateway",
"paymentId": "...",
"amount": "0.01",
"revenue": "0.01",
"currency": "USDC",
"payer": "0xBuyerWallet",
"recipient": "0xCreatorWallet",
"txHash": "0x...",
"chainId": "5042002",
"network": "eip155:5042002"
}Note: recipient here is the creator’s wallet (the payment receiver), and payer is the buyer’s wallet — not the other way around.
Reputation scores
Reputation scores are computed from verified interactions:
| Score | Range | Source |
|---|---|---|
| Content reputation | 0.0–5.0 stars | Average rating from wallets that unlocked the content (only on-chain-proofed accepted ratings count) |
| Site reputation | 1–100 | Average content rating × 0.78 + verification bonus + content depth |
| Creator reputation | 1–100 | Average content rating × 0.76 + verified-site depth + content depth |
Higher reputation scores can lead to better leaderboard placement and increased visibility in Explore.
Only verified unlocks (with indexed receipts) count toward reputation and leaderboard rankings. This prevents gaming the system with fake transactions.