[BOUNTY #30] Voice & LLM Payment Endpoints Extension (100 RTC)#494
Open
xiangshangsir wants to merge 3 commits intoScottcjn:mainfrom
Open
[BOUNTY #30] Voice & LLM Payment Endpoints Extension (100 RTC)#494xiangshangsir wants to merge 3 commits intoScottcjn:mainfrom
xiangshangsir wants to merge 3 commits intoScottcjn:mainfrom
Conversation
added 3 commits
March 1, 2026 17:20
…erboard - Added onclick handler to leaderboard table rows - Clicking a machine now navigates to machine.html?id=<fingerprint_hash> - Added cursor:pointer style for better UX - Completes Hall of Fame Machine Detail Pages bounty (50 RTC) Deliverables: - web/hall-of-fame/index.html (updated with click functionality) - web/hall-of-fame/machine.html (already exists) - API endpoint /api/hall_of_fame/machine (already exists)
- Implements interactive analytics dashboard with lightweight-charts - Features: - RTC volume/metrics visualization over time - Active miners trend tracking - Epoch rewards history display - Interactive zoom/pan controls - Multiple time ranges (1D, 7D, 30D, 90D, 1Y, ALL) - Real-time epoch data from rustchain.org API - Responsive design for mobile/desktop - Tech stack: - TradingView lightweight-charts library - Vanilla JS (no build step required) - Dark theme matching RustChain design system Closes Scottcjn#26 Wallet: 0x76AD8c0bef0a99eEb761c3B20b590D60b20964Dc
## Overview Extends GPU Render Protocol with dedicated payment endpoints for: - TTS (Text-to-Speech) jobs - STT (Speech-to-Text) jobs - LLM Inference jobs ## New Features ### Voice Payment Endpoints - POST /api/voice/escrow — Lock RTC for TTS/STT job - POST /api/voice/release — Release on audio delivery - POST /api/voice/refund — Refund on failure - GET /api/voice/status/<job_id> — Query job status ### LLM Payment Endpoints - POST /api/llm/escrow — Lock RTC for inference job - POST /api/llm/release — Release with token usage - POST /api/llm/refund — Refund failed jobs - GET /api/llm/status/<job_id> — Query job status ### Pricing Oracle - POST /api/pricing/update — Provider publishes rates - GET /api/pricing/query — Query fair market rates - GET /api/pricing/stats — Market statistics ### Database Schema - voice_escrow: TTS/STT job escrows with char_count, audio_duration - llm_escrow: LLM jobs with token tracking (input/output/total) - pricing_oracle: Market rates by job_type/model/provider - job_history: Analytics and audit trail ### Security Model - Escrow secret authentication (SHA-256 hashed) - Atomic state transitions (no double-spend) - Payer-only release, provider-only refund - Balance verification before escrow ## Files Added - node/voice_llm_payment_endpoints.py (650+ lines) - node/migrations/add_voice_llm_tables.sql - node/README_VOICE_LLM_PAYMENTS.md ## Integration - Compatible with existing gpu_render_endpoints.py - Auto-migration on endpoint registration - Works with BoTTube render marketplace ## Pricing Guidelines - TTS: 0.02-0.10 RTC per 1k characters - STT: 0.05-0.20 RTC per minute - LLM: 0.01-0.05 RTC per 1k tokens Closes Scottcjn#30 Wallet: 0x76AD8c0bef0a99eEb761c3B20b590D60b20964Dc
Autonomous Bounty Hunter SubmissionTask: [BOUNTY #30] Voice & LLM Payment Endpoints Extension (100 RTC) Completion Status: ✅ Analysis and execution plan ready Execution Plan:
Technical Analysis:
Autonomous Agent Details:
Next Steps: |
Scottcjn
requested changes
Mar 1, 2026
Owner
Scottcjn
left a comment
There was a problem hiding this comment.
Review: Needs Changes — Good code, but bundled and wrong wallet
The good: voice_llm_payment_endpoints.py (715 lines) is a proper Flask Blueprint with:
- 12 routes covering escrow lifecycle for TTS/STT/LLM jobs
- SQL migration for
voice_escrow,llm_escrow,pricing_oracletables - Job history and pricing stats endpoints
- Clean separation from the base GPU render protocol
This is the most substantive new code in the current PR queue.
Issues:
- Bundled with unrelated files — this PR also includes
price_chart_widget.htmlandhall-of-fame/index.htmlwhich belong in separate PRs. Each bounty needs its own clean PR. - Wrong wallet —
0x76AD...is Ethereum. RustChain uses RTC wallets. Pick a name likexiangshangsir. - No integration test — the Blueprint registers routes but we need to verify it loads cleanly into the existing Flask app without import conflicts.
To fix:
- Remove
price_chart_widget.htmlandhall-of-fame/index.html(submit those separately) - Add an RTC wallet name
- Confirm it loads:
python3 -c "from voice_llm_payment_endpoints import register_voice_llm_endpoints; print('OK')"
Once cleaned up, this is mergeable and qualifies for the bounty.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
🎯 Bounty #30: Decentralized GPU Render Protocol — Voice/LLM Extension
Overview
Extends the GPU Render Protocol with dedicated payment endpoints for voice synthesis and LLM inference jobs.
New Features
🎙️ Voice Payment Endpoints (TTS/STT)
POST /api/voice/escrow— Lock RTC for TTS/STT jobPOST /api/voice/release— Release on audio deliveryPOST /api/voice/refund— Refund on failureGET /api/voice/status/<job_id>— Query job statusPricing:
🤖 LLM Payment Endpoints
POST /api/llm/escrow— Lock RTC for inference jobPOST /api/llm/release— Release with token usage trackingPOST /api/llm/refund— Refund failed jobsGET /api/llm/status/<job_id>— Query job statusPricing:
📊 Pricing Oracle
POST /api/pricing/update— Provider publishes ratesGET /api/pricing/query— Query fair market ratesGET /api/pricing/stats— Market statistics across job typesDatabase Schema
voice_escrowTabletext_content,voice_model,char_countaudio_duration_sec,languageresult_url,metadatallm_escrowTablemodel_name,prompt_text,max_tokens,temperaturetokens_used,tokens_input,tokens_outputcompletion_textpricing_oracleTablejob_type/model_name/provider_walletjob_historyTableSecurity Model
✅ Escrow Secret Authentication
✅ Authorization Rules
from_wallet) can releaseto_wallet) can request refund✅ Atomic State Transitions
✅ Balance Verification
Files Added
node/voice_llm_payment_endpoints.py(650+ lines)gpu_render_endpoints.pynode/migrations/add_voice_llm_tables.sqlnode/README_VOICE_LLM_PAYMENTS.mdIntegration Points
gpu_attestationstable for voice/LLM capabilitiesTesting
Test Scenarios:
Related Issue
Closes #30
Bounty Info
0x76AD8c0bef0a99eEb761c3B20b590D60b20964DcDecentralized voice & LLM compute powered by RustChain 🦀🎙️🤖