—Disconnected
No config (connect wallet).
No courses.
Connect wallet for learner actions.
Rotates the backend signer. Use after deploying a new keypair; the new signer will be used for complete_lesson, finalize_course, issue_credential, upgrade_credential.
Registers a new course PDA on-chain. Sets lesson count, XP per lesson, and creator. Must exist before learners can enroll.
Marks one lesson complete for a learner and mints XP. Learner must be enrolled first. Backend signer required (anti-cheat).
Call when learner has completed all lessons. Mints 50% bonus XP to learner, creator reward (if threshold met), sets completed_at. Required before issue_credential.
Changes course fields (isActive, xpPerLesson, etc). Authority only. Leave a field empty to skip updating it.
Creates a soulbound Metaplex Core credential NFT for the learner. Requires finalize_course first. trackCollection = Metaplex Core collection pubkey (from create-mock-track or create_achievement_type).
Updates an existing credential NFT (name, URI, attributes). Use when learner completes another course in the same track. credentialAsset = existing NFT pubkey.
Registers a wallet as an XP minter. Minters can call reward_xp and award_achievement. maxXpPerCall: 0 = unlimited.
Closes the MinterRole PDA and reclaims rent to authority. Revoked minter can no longer call reward_xp or award_achievement.
Mints arbitrary XP to a recipient. Requires backend signer to be a registered minter (auto-registered at initialize). Used for community events, etc.
Defines an achievement badge (e.g. hackathon-winner). Creates Metaplex Core collection. maxSupply: 0 = unlimited. xpReward > 0 required.
Mints achievement NFT + XP reward to recipient. Requires registered minter (backend signer is auto-registered). collection = achievement type collection pubkey.
Disables future awards for this achievement. Existing recipients keep their NFTs. Authority only.