AttentionPool is a micropayment system that verifies real engagement and automatically distributes rewards β starting with music on Navidrome and expanding to all forms of open content.
Built for the Lepton Agents Hackathon (RFB 06 β Creator & Publisher Monetization).
Today's creator economy has a major problem:
- Artists receive only tiny fractions of platform revenue.
- Platforms monetize attention, not creators.
- Users create value but receive nothing in return.
- Bots can artificially inflate engagement metrics.
As a result, attention is measured, but not rewarded.
AttentionPool turns engagement into a verifiable economic signal.
When a listener genuinely consumes content:
- Engagement is verified.
- Anti-bot filters validate authenticity.
- Micropayments are automatically distributed.
- Both creators and listeners are rewarded.
Every reward is settled instantly on Arc.
Traditional blockchains struggle with sub-cent transactions because fees often exceed the value transferred.
AttentionPool demonstrates that Arc can enable:
- Near-instant settlement
- Extremely low transaction costs
- Real-time micropayments
- New creator monetization models
During testing:
β 20+ real transactions successfully settled on Arc Testnet
β Verified listening events triggered on-chain rewards
β Creator and listener payments distributed automatically
This proves that sub-cent payments are economically viable.
| Feature | Description |
|---|---|
| π΅ Verified Listening | Only completed listens (β₯90%) qualify for rewards |
| π° Split Payment | 70% royalty to creators, 30% incentive to listeners |
| π Open Registry | Artists and listeners self-register wallets |
| π₯ Multi-User Support | Independent state, cooldowns, and rewards per user |
| β‘ Real-Time Settlement | Instant payments on Arc |
| π‘οΈ Anti-Bot System | Completion checks, cooldowns, seek detection, daily limits |
| π Gitcoin Passport Ready | Optional Sybil resistance layer |
flowchart LR
A[Listener] -->|Plays Track| B[Navidrome]
B -->|Subsonic API| C[AttentionPool]
C -->|Validate| D{Anti-Bot Checks}
D -->|Pass| E[Split Payment]
E --> F[Artist 70%]
E --> G[Listener 30%]
D -->|Fail| H[Ignore Play]
- User plays a track in Navidrome.
- AttentionPool detects the playback event via the Subsonic API.
- Anti-bot filters validate the listening activity.
- Verified engagement triggers a reward.
- Arc settles payments automatically.
- Creator receives 70%.
- Listener receives 30%.
AttentionPool includes multiple protection layers:
β Track must reach at least 90% completion
β Minimum listening duration
β 30-second cooldown between rewards
β Maximum 100 rewards per day
β Maximum 2 rewards per track per day
β Seek / fast-forward detection
β Gitcoin Passport integration ready
Only verified attention generates rewards.
Successfully demonstrated:
- 20+ successful Arc Testnet transactions
- Real-time creator royalties
- Real-time listener incentives
- Anti-bot verified engagement
- Fully automated payment flow
- Multi-user reward distribution
flowchart LR
A[Navidrome]
B[AttentionPool Sidecar]
C[Verification Layer]
D[Arc Blockchain]
A -->|Playback Events| B
B -->|Validate Engagement| C
C -->|Reward Distribution| D
Provides music streaming and playback information.
Monitors listening activity and coordinates rewards.
Applies anti-bot and engagement validation rules.
Handles settlement and reward distribution.
| Requirement | Details |
|---|---|
| Node.js | v20 or higher |
| Navidrome | Running locally or on a reachable host |
| Arc Wallet | Testnet wallet with tokens |
| Circle CLI | Optional |
Clone the repository:
git clone https://github.com/jaguard2021/attentionpool.git
cd attentionpool
npm installcp .env.example .env| Variable | Description |
|---|---|
| PRIVATE_KEY | Arc testnet wallet private key |
| RECEIVER_ADDRESS | Default creator wallet |
| LISTENER_ADDRESS | Default listener wallet |
| NAVI_USER | Navidrome username |
| NAVI_PASS | Navidrome password |
Example:
PRIVATE_KEY=your_private_key
RECEIVER_ADDRESS=0x123...
LISTENER_ADDRESS=0x456...
NAVI_USER=admin
NAVI_PASS=password[
{
"artist": "Example Artist",
"wallet": "0x123..."
}
][
{
"username": "listener1",
"wallet": "0x456..."
}
]navidrome.exe --datafolder "C:\navidrome_data" --port 4534node registry-server.jsWebsite:
http://localhost:3001
node server.jsOpen Navidrome and start listening.
Verified plays automatically trigger Arc micropayments.
attentionpool/
βββ server.js
βββ botFilters.js
βββ registry-server.js
βββ artists.json
βββ listeners.json
βββ plays.json
βββ plays_full.json
βββ public/
β βββ index.html
βββ .env.example
βββ package.json
βββ README.md
| Technology | Purpose |
|---|---|
| Node.js | Backend runtime |
| Express | API server |
| ethers.js | Arc blockchain interaction |
| Navidrome API | Playback monitoring |
| dotenv | Configuration management |
| Gitcoin Passport | Sybil resistance |
| Arc Testnet | Settlement layer |
AttentionPool is not just a music royalty engine.
Music is the first implementation of a broader concept:
Future integrations:
- ποΈ Podcasts
- π Audiobooks
- πΊ Video Platforms
- π‘ Livestreams
- π Mastodon Creators
- π° Open Publishing Networks
- π΅ MusicBrainz Payee Registry
Any content with measurable engagement can become monetizable.
- Enable Gitcoin Passport verification
- Multiple creators per track
- Analytics dashboard
- Mainnet Arc deployment
- MusicBrainz integration
- Mastodon creator rewards
- Podcast monetization
- Audiobook rewards
-
Demo Video: Click here to watch
-
Live Website: Click here to visit
GitHub Repository: https://github.com/jaguard2021/attentionpool
Contributions are welcome.
- Fork the repository
- Create a feature branch
git checkout -b feature/amazing-feature- Commit your changes
git commit -m "Add amazing feature"- Push to your branch
git push origin feature/amazing-feature- Open a Pull Request
This is a hackathon prototype. The following are intentional trade-offs:
- File-based storage β
artists.json,listeners.json,plays_full.jsonare read/written synchronously. For production, a database is recommended. - No authentication β Anyone can register an artist or listener. In production, wallet signature verification (e.g.,
personal_sign) should be added. - History grows indefinitely β
plays_full.jsonaccumulates all transactions. For long-term use, partition by month or use a database. - Race conditions β Concurrent writes to JSON files can cause data loss. For demo purposes, this is acceptable.
This project is licensed under the MIT License.
See the LICENSE file for details.
For questions, issues, or suggestions, please open a GitHub Issue.
Built with β€οΈ for creators, listeners, and the future of verified attention.