User interface for the ProofStell decentralized document verification platform built on Stellar.
The ProofStell Frontend is the primary entry point into the ProofStell ecosystem. It enables users, institutions, and verifiers to interact with on-chain document credentials in a simple and secure way.
It abstracts blockchain complexity into a smooth user experience for:
- π Document upload & verification
- π§Ύ Credential issuance & management
- π« Institutional credential signing
- π Wallet-based authentication (no passwords required)
All verification logic is anchored on the Stellar blockchain via Soroban smart contracts.
Users can verify the authenticity of documents in seconds.
Flow:
- Upload a document (PDF, image, or text file)
- File is hashed using SHA-256 (client-side)
- Hash is sent to backend / Soroban contract
- On-chain record is checked for integrity match
- Verification result is displayed instantly
Benefits:
- Tamper-proof verification
- Instant authenticity check
- Fully auditable on-chain history
A unified dashboard for all wallet-linked credentials.
Includes:
- All issued documents tied to wallet address
- Verification status (valid / revoked / expired)
- Issuer identity (institution or organization)
- Timestamped issuance history
- On-chain transaction references
Users can easily track their digital identity footprint in the ecosystem.
For verified organizations issuing credentials.
Capabilities:
- Issue digital certificates or documents
- Link credentials to wallet addresses
- Revoke or update credentials (if authorized)
- View issuance history and analytics
- Batch issue credentials for multiple users
This transforms institutions into on-chain trusted issuers.
Authentication is fully decentralized.
Supported Wallets:
- Freighter Wallet
- Stellar xBull (optional extension support)
Features:
- No email/password system
- Signature-based login (SEP-0010 standard)
- Session validation via wallet signature
- Secure wallet identity binding
Each credential includes:
- Document hash
- Issuer information
- Issuance timestamp
- Verification status
- Blockchain transaction reference
- Optional metadata (course, institution, certification type)
Public-facing verification tool:
- Paste document hash or upload file
- Instantly check blockchain record
- View issuer authenticity
- Audit credential lifecycle
| Layer | Technology |
|---|---|
| Framework | Next.js (App Router) |
| Styling | TailwindCSS |
| UI System | ShadCN UI |
| Blockchain | Stellar / Soroban |
| Wallet Auth | Stellar Wallet Kit (Freighter) |
| State Mgmt | React Query / Zustand (optional) |
| File Handling | Client-side hashing (SHA-256) |
src/
βββ app/
β βββ dashboard/ # User credential dashboard
β βββ verify/ # Document verification page
β βββ issuer/ # Institution issuance portal
β βββ documents/ # Credential detail views
β βββ layout.tsx
β
βββ components/
β βββ auth/ # Wallet authentication components
β βββ dashboard/ # Stats, cards, lists
β βββ verify/ # Upload + verification UI
β βββ issuer/ # Issuer tools
β βββ shared/ # Reusable UI components
β
βββ hooks/ # Custom React hooks
βββ lib/ # API clients, helpers, blockchain utils
βββ utils/ # Hashing, formatting, validators
βββ ui/ # Base UI components (ShadCN)User
β
βΌ
Frontend (Next.js)
β - File upload
β - SHA-256 hashing
β
βΌ
Backend API
β - Validates request
β - Queries Stellar / Soroban
β
βΌ
Stellar Blockchain
β - Stores document hashes
β - Verifies credential integrity
β
βΌ
Response returned
β
βΌ
Frontend displays verification result
- User uploads a document
- Frontend generates cryptographic hash
- Hash is sent to backend API
- Backend checks Soroban smart contract
- Contract returns match / mismatch
- UI displays verification result
- Institution logs in via wallet
- Uploads credential metadata
- Backend stores IPFS / metadata hash
- Soroban contract records issuance
- Credential becomes publicly verifiable
npm installnpm run devhttp://localhost:3000
Copy .env.example to .env.local and fill in the values. The app validates environment variables at startup but does not crash when required values are missing β it starts in a degraded state with console warnings.
| Variable | Description |
|---|---|
NEXT_PUBLIC_SOROBAN_RPC_URL |
Soroban RPC endpoint (e.g. https://soroban-testnet.stellar.org) |
NEXT_PUBLIC_SOROBAN_NETWORK_PASSPHRASE |
Stellar network passphrase |
NEXT_PUBLIC_STELLAR_HORIZON_URL |
Stellar Horizon endpoint |
NEXT_PUBLIC_PROOFSTELL_CONTRACT_ID |
ProofStell contract address |
Missing any of these will log a warning and disable blockchain features.
| Variable | Default / Fallback |
|---|---|
NEXT_PUBLIC_ISSUER_CONTRACT_ID |
undefined |
NEXT_PUBLIC_WALLET_PROVIDERS |
Empty (no wallet providers) |
NEXT_PUBLIC_API_BASE_URL |
Falls back to mock data |
NEXT_PUBLIC_API_KEY |
None |
NEXT_PUBLIC_APP_ENV |
undefined |
NEXT_PUBLIC_LOG_LEVEL |
undefined |
NEXT_PUBLIC_ENABLE_MOCK_DATA |
false |
Example:
# copy .env.example -> .env.local and edit- Make blockchain verification invisible to users
- Provide a simple Web2-like UX for Web3 credentials
- Enable institutions to issue tamper-proof digital documents
- Build a global verification layer for credentials
- β‘ Fast UX β instant verification feedback
- π Trustless β no centralized authority for validation
- π Accessible β usable by non-technical users
- π± Responsive β works on mobile & desktop
- π§© Modular β easy to extend with new credential types
We welcome contributions from developers, designers, and blockchain enthusiasts.
git checkout -b feature/your-feature
npm install
npm run dev- Follow consistent component structure
- Keep UI reusable and modular
- Ensure all blockchain calls are tested
- Link PRs to issues
MIT License β open-source and community-driven.
Simple access to decentralized verification. Built for trust. Powered by Stellar.