Skip to content

Feat/incentive hardening - #423

Open
kenobijon wants to merge 3 commits into
mainfrom
feat/incentive-hardening
Open

Feat/incentive hardening#423
kenobijon wants to merge 3 commits into
mainfrom
feat/incentive-hardening

Conversation

@kenobijon

@kenobijon kenobijon commented Jul 27, 2026

Copy link
Copy Markdown
Contributor

Note

High Risk
Changes validator challenge parameters, SQLite schema, and core reward multipliers that directly set miner payouts; misconfiguration or pricing bugs would affect the whole subnet economically.

Overview
Release 4.9.6 tightens generator incentives around video length, resolution compliance, and pricing accuracy.

Video duration is now part of challenges and rewards. Validators sample requested lengths (4/6/8s, weighted toward 4s) and pass duration in challenge parameters. Stored miner video gets duration_seconds from metadata probing; outcomes track requested_duration and observed_duration. Video reward multipliers scale with min(delivered, requested) seconds (4s baseline for legacy rows), with a small tolerance for encoder jitter—mirroring the existing resolution “degrade, don’t fail” behavior.

Reward pricing updates Seedance tier USD/s defaults to OpenRouter video-token math and merges live token-derived tier tables at startup. Video multipliers use price × effective seconds in the sqrt cost ratio. Image rewards now apply the same undershoot tier discount as video when delivery is below the requested tier.

OpenRouter miner path honors challenge resolution for images via /api/v1/images, with chat-completions fallback.

Schema migration adds requested_duration on challenge outcomes and duration_seconds on media.

Reviewed by Cursor Bugbot for commit 5bb8858. Bugbot is set up for automated code reviews on this repo. Configure here.

dylanuys added 3 commits July 24, 2026 22:44
…pport

Extend the per-tier undershoot discount (0.6/tier) to images. Without it,
delivering 1K on a 2K/4K request paid the 1K price with no penalty, and
cheap low-tier providers made ignoring the requested tier the better
reward-per-dollar choice. Now a 2K request pays 1.41x for compliance vs
0.60x for a 1K delivery.

Route reference miner image generation through OpenRouter /api/v1/images
when the challenge requests a resolution tier, passing the tier directly
(the endpoint accepts 1K/2K/4K). Falls back to chat completions if the
images endpoint fails. Previously the resolution parameter was ignored,
so reference miners undershot every 2K/4K image challenge.
…oute

Video challenges now request a duration (4s 50% / 6s 30% / 8s 20%). The
reward multiplier scales with total generation cost — sqrt(price/s x
min(delivered, requested) seconds / baseline 4s) — so an 8s delivery
earns sqrt(2)x the 4s multiplier and undershooting duration pays only
what was delivered. Previously duration was never requested and rewards
were duration-invariant, so every miner converged on 4s provider
minimums. Delivered duration comes from ffprobe and is stored on media
(duration_seconds) with the request on outcomes (requested_duration);
pre-feature rows price at the 4s baseline, unchanged.

Reprice Seedance 2.0 at the cheapest acquisition route: OpenRouter sells
it by video token (tokens/s = W x H x 24fps / 1024) with the identical
ByteDance C2PA signature as the direct route, so quoted provider prices
overpaid ~2.7x at 720p. seedance-2-0 is now $0.070/$0.151/$0.340 per
second at 480p/720p/1080p (multiplier 2.25x at 720p, matching Veo) and
fast $0.056/$0.121. Live token rates are fetched from /videos/models
at module load and merged over the static defaults.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants