Skip to content

fix: add proof-of-skill on-chain verification oracle - #1169

Merged
chinweobtagaz merged 7 commits into
OpenKnight-Foundation:mainfrom
rotimitimilehinsamuel-ops:fix/issue-1151-sc-51-proof-of-skill-on-chain-verification
Aug 30, 2026
Merged

fix: add proof-of-skill on-chain verification oracle#1169
chinweobtagaz merged 7 commits into
OpenKnight-Foundation:mainfrom
rotimitimilehinsamuel-ops:fix/issue-1151-sc-51-proof-of-skill-on-chain-verification

Conversation

@rotimitimilehinsamuel-ops

Copy link
Copy Markdown
Contributor

Overview

This PR adds a Soroban-based Proof-of-Skill On-Chain Verification Oracle that verifies official FIDE and national chess titles (GM, IM, FM, CM) through trusted oracle nodes, records attested credentials bound to Stellar public keys, and mints non-transferable Soulbound Title Badges — with multi-oracle threshold signature verification (2-of-3) and a revocation path for fair-play violations or FIDE sanctions.

Related Issue

Changes

🏆 On-Chain Title Verification Oracle

  • [ADD] contracts/title_badge/src/lib.rs

    • Soroban contract exposing submit_proof, verify_title, mint_badge, revoke_badge, and get_title_record.
    • Requires 2-of-3 trusted verifier Ed25519 signatures before any FIDE title (GM/IM/FM/CM) is accepted on-chain.
    • Soulbound badge logic — no transfer or sell entry points; badge permanently bound to the owner's Stellar public key.
  • [ADD] contracts/title_badge/src/storage.rs + contracts/title_badge/src/error.rs

    • Persistent storage for verifier keys, threshold configuration, verified title metadata, badge ownership, and revocation flags.
    • Typed error codes for unauthorized verifier, insufficient threshold signatures, duplicate proof, revoked title, and already-minted badge.
  • [ADD/MODIFY] contracts/Cargo.toml + contracts/title_badge/Cargo.toml

    • Adds soroban-sdk dependencies and package metadata for building, testing, and deploying the title badge contract.
  • [MODIFY] .github/workflows/soroban-deploy.yml

    • CI/CD workflow that runs cargo test -p title_badge, enforces cargo clippy -- -D warnings, and deploys the verified contract to Stellar testnet.

Verification Results

cargo test -p title_badge
✅ 15/15 passed

cargo clippy -p title_badge -- -D warnings
✅ No warnings

Live acceptance check:
✅ 2-of-3 oracle threshold signature verification passing
✅ Soulbound badge minted; transfer/sale entry points absent
✅ Revocation function clears badge and flags title record
✅ Contract deployed to Stellar testnet
Acceptance Criteria Status
Multi-oracle threshold signature verification (2 of 3 trusted verifiers) ✅ 2-of-3 Ed25519 threshold enforced before title mint
Soulbound token logic preventing transfer or sale of title badges ✅ No transfer/sale entry points; badge permanently bound to owner
Revocation function in case of fair-play violations or FIDE sanctions revoke_badge clears badge and sets revoked status
FIDE title credentials recorded and attested on-chain ✅ GM/IM/FM/CM titles stored with FIDE ID proof and oracle attestations

Closes #1151

@drips-wave

drips-wave Bot commented Aug 29, 2026

Copy link
Copy Markdown

@rotimitimilehinsamuel-ops Great news! 🎉 Based on an automated assessment of this PR, the linked Wave issue(s) no longer count against your application limits.

You can now already apply to more issues while waiting for a review of this PR. Keep up the great work! 🚀

Learn more about application limits

@chinweobtagaz
chinweobtagaz merged commit ecd8e95 into OpenKnight-Foundation:main Aug 30, 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.

SC-51: Proof-of-Skill On-Chain Verification Oracle for Grandmaster Title Badges

2 participants