Skip to content

Register GameShield — Private Gaming Bounty Hub - #86

Closed
BlackAporia wants to merge 1 commit into
starkience:mainfrom
BlackAporia:add-gameshield
Closed

Register GameShield — Private Gaming Bounty Hub#86
BlackAporia wants to merge 1 commit into
starkience:mainfrom
BlackAporia:add-gameshield

Conversation

@BlackAporia

Copy link
Copy Markdown
Contributor

Register GameShield — Private Gaming Bounty Hub

Builder: BlackAporia (Telegram: @BlackAporia)

GameShield is a private gaming bounty hub on Starknet: organizers create
bounty campaigns (tournaments, speedruns, PvP matches), fund them by shielding
prize STRK into the STRK20 pool, and pay winners through a privacy_invoke
helper — so no one can link a reward or a payout to a wallet.

Why privacy matters here: every public bounty ledger leaks who was paid,
how much, and by whom. GameShield makes the payout unlinkable (pool → helper →
open note), while organizers keep provable commitments of every payout via
events on our own helper contract.

Stack: Cairo (Scarb + Starknet Foundry) for a campaign registry and
privacy_invoke payout helper; Next.js dapp on the STRK20 starter kit using
the Starknet Wallet API (WalletAccountV6 / strk20InvokeTransaction,
starknet.js ^10.4). The dapp never touches viewing keys — the wallet handles
notes, proofs, and submission.

Repo: https://github.com/BlackAporia/game-shield (first commit: project
skeleton, README, integration research, strk20.json).

Integration route per the STRK20 docs: private dapp via anonymizer contract +
Starknet Wallet API (https://strk20-by-example.org/helpers/privacy-invoke).

@github-actions

Copy link
Copy Markdown
Contributor

registry.json does not validate, so this is not going in yet. Every problem is listed in the Registrations run - push a fix to this branch and it will be applied on its own.

@BlackAporia

Copy link
Copy Markdown
Contributor Author

Heads-up: this PR is blocked not by its own entry, but by a pre-existing dead entry on main — entry #36 https://github.com/Portablelle/veilance-market returns 404 (repo no longer public/exists), which fails the shared registry validation for every open PR. The GameShield entry itself passed the check (listed as entry #64). Happy to keep the branch as-is.

@BlackAporia

Copy link
Copy Markdown
Contributor Author

Demo app: https://gameshield-dapp.vercel.app — live GameShield dapp (deploy contracts with a connected wallet, create shielded bounty campaigns, private payouts through the STRK20 pool). Repo: https://github.com/BlackAporia/game-shield

@BlackAporia

Copy link
Copy Markdown
Contributor Author

The shared validation blocker has been isolated and fixed in #93: #93. It removes the confirmed HTTP 404 repository entry and records the removal in registry-removals.json; both registry validators pass locally. Once #93 lands, this registration should be re-run unchanged.

starkience added a commit that referenced this pull request Aug 18, 2026
Portablelle/veilance-market answers 404. validate-registry.mjs checks every
entry in the file rather than the ones a pull request touches, so one dead
repository failed the whole registry and no registration could be applied -
eighteen open, nothing landed since 17 August, four teams reporting the same
wall on #86, #95, #97 and #98.

Applied from #93 by @BlackAporia, which recorded the removal correctly in
registry-removals.json so the retention check knows it was deliberate rather
than a merge dropping somebody.

The underlying flaw is separate and follows: a broken row that is already on
main must not be able to reject a registration that has nothing to do with it.

Co-authored-by: BlackAporia <116606427+BlackAporia@users.noreply.github.com>
starkience added a commit that referenced this pull request Aug 18, 2026
validate-registry.mjs checks the whole array. When
Portablelle/veilance-market started answering 404 it therefore failed every
registration behind it - eighteen open pull requests, nothing applied for two
days, four teams reporting the same wall on #86, #95, #97 and #98. None of them
could have fixed it: a contributor adds one row and has no business editing
somebody else's.

Entries already on main are now compared against a baseline. A problem with one
of those is printed and the run passes; a problem with an entry the change
introduces still fails it. With no baseline reachable - somebody running the
script by hand - everything is judged, which is the stricter reading.

Every check goes through the same gate, so this covers a repository going
private or being deleted, and equally a slug or telegram field that was let
through before the rule existed.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown
Contributor

Applied to main as 758b0c1 - your project is on the hub within the half hour.

Closed rather than merged because the entry was rebuilt on top of everything else that landed while this was open. That is what stops registrations from deleting each other, and it means you never had to resolve a conflict. The commit is credited to you.

github-actions Bot added a commit that referenced this pull request Aug 18, 2026
Applied from #86 by @BlackAporia, rebuilt on top of whatever else
landed while it was open.

Co-authored-by: BlackAporia <116606427+BlackAporia@users.noreply.github.com>
@github-actions github-actions Bot closed this Aug 18, 2026
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.

1 participant