Skip to content

Latest commit

ย 

History

76 Commits

Folders and files

NameName
Last commit message
Last commit date
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

CertMint logo

CertMint

๐ŸŽ“ Web3 certificate minting and verification on Stellar.

Next.js TypeScript Tailwind CSS Supabase Stellar

Live Production: https://cert-mint.vercel.app

Youtube Demo Video : https://youtu.be/m4fN9fJSC18

โœจ About The Project

CertMint is a certificate minting platform built on the Stellar network. It lets organizations mint, verify, and manage NFT-backed certificates with public proof, transaction history, and a clean reviewer-friendly audit trail.

The project is focused on real certificate workflows, not generic task farming. The value is in proof, transparency, and verification.

๐Ÿ”’ Why It Matters

  • ๐Ÿงพ Certificates are verifiable from IDs or transaction hashes.
  • ๐Ÿ›ฐ๏ธ Stellar testnet transaction history provides public proof.
  • ๐Ÿ›ก๏ธ Verification pages reduce fake credential risk.
  • ๐Ÿ“Š Admin views help track minting, logs, wallets, and system status.
  • ๐Ÿ“ฑ The app is responsive for desktop and mobile review.

๐Ÿ–ผ๏ธ Screenshots

Landing

Landing Web

Auth

Signup Web

Minting And Management

Create Certificate Manage Certificate Mint Success Home Tab

Verification And Admin

Verify Certificate Admin KYC Approve

๐Ÿ“ฑ Mobile Responsive View

Landing Mobile Signup Mobile

๐Ÿงฐ Tech Stack

Layer Technology
Frontend Next.js, React, TypeScript
Styling Tailwind CSS
Wallet Freighter
Blockchain Stellar Testnet
Smart Contracts Soroban (Rust)
Database / Auth Supabase
E2E Testing Playwright
Contract Testing cargo test
Deployment Vercel

๐Ÿ”ง Contract Deployment And Verification

Deployed Contracts

Contract Contract ID Verify Link Status
NFT Certificate Contract CCBM2ZDOU3LUDVWNX6TV55YDLRH2EO6LXYL7SRXYI3HXT422MNSWJSUY Stellar Expert Verified on testnet
Verifier Contract CBUVPMCNQ33YITCLGQGPRXAMS3C3BYCBLREEXRIFVRJ5LUYJXJTM4NGA Stellar Expert Verified on testnet

Deployment Notes

Item Value
Network Stellar Testnet
RPC https://soroban-testnet.stellar.org
Horizon https://horizon-testnet.stellar.org
Env Key NEXT_PUBLIC_NFT_CONTRACT_ID
Env Key NEXT_PUBLIC_VERIFIER_CONTRACT_ID
Env Key NEXT_PUBLIC_SOROBAN_RPC_URL

Manual Contract Deployment

The repository does not currently automate on-chain deployment in CI. Use the Soroban CLI and a funded deploy account to publish contracts after building artifacts.

npm run build:contracts
pwsh ./scripts/deploy-contracts.ps1 -Network testnet -Deploy

If you do not want to deploy immediately, build artifacts only with:

npm run build:contracts

๐Ÿ†• New Smart Contract Feature

  • โœ… On-chain issuer reputation tracking for every issued certificate.
  • โœ… Endorsement support: certificates can receive on-chain endorsements and endorsement history can be queried.
  • โœ… Verifier contract performs cross-contract validation by querying the NFT contract directly.

๐Ÿงช Test Evidence

Automated Checks

  • โœ… npm run build
  • โœ… npm run test:e2e
  • โœ… cargo test

Evidence Images

E2E Test :

E2E Evidence

Contract Test:

Contract Verification Evidence Contract Verification Evidence 2

๐Ÿ” Security And Transparency

CertMint is designed around public proof and controlled access.

  • ๐Ÿ”‘ Wallet-based identity for signed actions.
  • ๐Ÿ‘ฎ Admin approval flow for sensitive access.
  • โœ… Certificate verification by ID or transaction hash.
  • ๐Ÿงพ On-chain records for minting proof.
  • ๐Ÿงช Repeatable test evidence for reviewers.

๐Ÿงญ Features

Area Feature Status
Landing Public product overview Implemented
Auth Sign in / Sign up flow Implemented
Minting Certificate mint wizard Implemented
Approvals Multi-Level Workflows (Standard: Faculty/Issuer โ†’ Admin โ†’ Mint; Academic: Faculty โ†’ HOD โ†’ Registrar โ†’ Mint) Implemented
Endorsements On-chain endorsements for issued certificates Implemented
Reputation Issuer Reputation System (Total Issued, Revoked Count, Reputation Score tracked on-chain) Implemented
Hooks Shared wallet and mint integration logic Added
Verification Search by certificate ID or TX hash Implemented
Admin Logs, wallets, certs, tx pages Implemented
Campaigns Manage Campaign nav item Added

๐Ÿงฉ Contract Features

Contract Capability Purpose
nft_certificate mint Create certificate NFTs & increments issuer reputation score
nft_certificate transfer Move ownership
nft_certificate burn / revoke path Invalidate issued credentials & decrements issuer reputation score
nft_certificate get_issuer Query issuer reputation data (total issued, revoked, reputation score)
nft_certificate endorse_certificate Add on-chain endorsements to a certificate
nft_certificate get_endorsements Query certificate endorsement history
verifier verify by token Validate a certificate record
verifier verify by wallet Check ownership-related proof

๐Ÿ› ๏ธ Error Handling

Error Type Where It Appears User Response
Invalid reference Verify page "Certificate not found" message
Missing contract config Mint flow Clear configuration error
Role / access mismatch Protected routes Redirect or block
Contract call failure Blockchain actions Retry-friendly feedback

๐Ÿ“ Clean File Architecture

app/
  (minter)/
    dashboard/
    manage-campaign/
    manage-minted/
    mint/
    profile-settings/
  admin/
  auth/
  certificate/[id]/
  collection/[wallet]/
hooks/
  use-integration.ts
  verify/
components/
  admin/
  landing/
  minter/
contracts/
  nft_certificate/
  verifier/
lib/
  auth/
  supabase/
public/
assets/
tests/
  e2e/

๐Ÿ” User Workflow

flowchart TD
  A[Open CertMint] --> B[Connect Wallet]
  B --> C[Sign In or Sign Up]
  C --> D[Create Certificate Proposal]
  D --> E{Select Workflow}
  E -->|Standard| F[Pending Admin Approval]
  F --> G[Admin Approves]
  E -->|Academic| H[Pending HOD Approval]
  H --> I[HOD Approves]
  I --> J[Pending Registrar Approval]
  J --> K[Registrar Approves]
  G --> L[Mint Certificate NFT via Freighter]
  K --> L
  L --> M[Update Issuer Reputation on Stellar]
  M --> N[Verify by ID or TX Hash]
  N --> O[View Public Result & On-Chain Reputation]
Loading

๐Ÿ—๏ธ Project Architecture

flowchart LR
  UI[Next.js UI] --> SA[Server Actions]
  UI --> W[Freighter Wallet]
  UI --> HK[Shared Hooks]
  SA --> DB[Supabase: approval state, roles & audit logs]
  SA --> SC[Soroban Contracts: NFT Certificate & Verifier]
  SC --> ST[Stellar Testnet: on-chain proof & issuer reputation]
  DB --> AD[Admin / Approvals Queue Dashboard]
  HK --> W
  HK --> SA
Loading

๐Ÿš€ Setup Guide

1) Install

npm install

2) Configure Environment

Copy .env.example to .env.local and fill the values.

3) Run Locally

npm run dev

4) Run Validation

npm run lint
npm run build
npm run test:e2e
cd contracts
cargo test --all
cargo build --release --target wasm32v1-none

5) Run with Docker (Recommended)

Ensure you have Docker and Docker Compose installed, then follow these steps:

  1. Configure environment variables inside your .env file (copied from .env.example).
  2. Build and start the container using Docker Compose:
    docker compose up --build -d
    Note: Next.js public environment variables (NEXT_PUBLIC_*) are read from .env and baked in at build time.
  3. Access the application at http://localhost:3000.
  4. Stop the container:
    docker compose down

๐Ÿงญ Future Improvements

  • ๐Ÿ“ฆ IPFS-backed image certificate storage
  • ๐Ÿ‘ฉโ€๐ŸŽ“ Student dashboard for certificate history
  • ๐Ÿซ Institution onboarding and issuer collaboration
  • ๐Ÿชช Stronger identity verification integration
  • ๐Ÿ“ˆ Better analytics for certificate usage and trust
  • ๐Ÿ”” Email / webhook verification notifications

๐Ÿ™Œ Salutation

Love doing this amazing project on stellar ecosystem! โค๏ธ Built for verifiable credentials, public trust, and a cleaner certificate workflow on Stellar.

About

CertMint is a certificate minting platform built on the Stellar network. It lets organizations mint, verify, and manage NFT-backed certificates with public proof, transaction history, and a clean reviewer-friendly audit trail.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Contributors

Languages