Course · Learn & earn
A student's path from committing to an assignment to claiming a course credential.
A student enrolls by committing to an assignment, revises their evidence, has a teacher assess it, and — once accepted — claims a verifiable credential NFT and recovers their deposit.
Course · Learn & earn
A student enrolls by committing to an assignment, revises their evidence, has a teacher assess it, and — once all commitments are accepted — claims a credential NFT and recovers their deposit.
Step 1
Commit to Assignment
- Actor
- Student
- On-chain effect
Validator action.
course_state: CommitAssignmentToken Δ. On first commit, mints the student's course-state token (enrollment) and records the assignment commitment in one step; later commits add an assignment without re-minting. A recoverable course-state deposit is locked.
- Resulting state
- Student is enrolled in the course; the assignment commitment with its evidence hash is on-chain.
- Build endpoint
POST /api/v2/tx/course/student/assignment/commit
Step 1
Commit to Assignment
- Actor
- Student
- On-chain effect
Validator action.
course_state: CommitAssignmentToken Δ. On first commit, mints the student's course-state token (enrollment) and records the assignment commitment in one step; later commits add an assignment without re-minting. A recoverable course-state deposit is locked.
- Resulting state
- Student is enrolled in the course; the assignment commitment with its evidence hash is on-chain.
- Build endpoint
POST /api/v2/tx/course/student/assignment/commit
Step 2
Update Assignment
- Actor
- Student
- On-chain effect
Validator action.
assignment_validator: StudentActionToken Δ. No mint or burn — updates the on-chain assignment datum with revised evidence (optionally committing to a new module in the same transaction).
- Resulting state
- The assignment commitment carries the student's revised evidence, ready for teacher assessment.
- Build endpoint
POST /api/v2/tx/course/student/assignment/update
Step 3
Assess Assignments
- Actor
- Teacher
- On-chain effect
Validator action.
assignment_validator: AcceptToken Δ. No mint or burn — records an accept or refuse decision per student in the on-chain assignment state (decisions can be batched).
- Resulting state
- Each assessed commitment is marked accepted or refused on-chain. Refused work can be revised and resubmitted; accepted work counts toward the credential.
- Build endpoint
POST /api/v2/tx/course/teacher/assignments/assess
Step 4
Claim Course Credential
- Actor
- Student
- On-chain effect
Validator action.
course_state: BurnCourseStateToken Δ. Mints a course credential NFT directly to the student's wallet, burns the course-state (enrollment) token, and refunds the enrollment deposit — a net ADA gain for the student.
- Resulting state
- The student holds a verifiable course-credential NFT on-chain; the enrollment deposit is returned.
- Build endpoint
POST /api/v2/tx/course/student/credential/claim