—Disconnected
- Backend (.env): BACKEND_API_TOKEN, ADMIN_SECRET, ADMIN_PASSWORD, ACADEMY_AUTHORITY_KEYPAIR, ACADEMY_BACKEND_SIGNER_KEYPAIR, SOLANA_RPC, CORS_ALLOWED_ORIGINS
- App (.env): BACKEND_URL, BACKEND_API_TOKEN, NEXT_PUBLIC_*
- Generate secrets:
openssl rand -base64 24 - Run:
backend: pnpm dev,app: pnpm dev
Loading config…
No courses.
Connect wallet for learner actions.
Requires login. New keys can call academy endpoints. Store securely.
Login first to generate API keys.
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.