Skip to content

KutraCorporation/certwallet-contracts

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CertWallet

Sui Network Move Language License: Apache 2.0

CertWallet is a decentralized protocol and Soulbound Token (SBT) implementation built on the Sui Network, designed for the secure, permanent, and non-transferable storage of educational credentials such as diplomas, certificates, and awards.

Leveraging Sui's object-centric architecture, CertWallet ensures that once a "Certificate" is issued by an authorized institution (verified via a unique AdminCap), it belongs exclusively to the recipient and cannot be transferred, sold, or tampered with. The system features a modular design where dynamic fields allow for flexible data expansion—enabling the inclusion of transcripts, GPA, and honors over time. Every issuance and update is recorded as an on-chain event, providing a transparent, immutable, and easily verifiable audit trail that eliminates the risk of fraudulent documentation.


Key Features

  • Documents cannot be transferred or sold thanks to Soulbound Token (SBT) technology
  • AdminCap based authorization system (only authorized institutions can print documents)
  • Flexible data expansion with Dynamic Fields (transcript, GPA, additional achievements, etc.)
  • Event-driven architecture (all important transactions are recorded)
  • Ready infrastructure for IPFS integration (metadata links)
  • High security and modular structure for easy future upgrades

Project Structure

certwallet-contracts/
├── sources/
│   ├── certwallet.move            # Main contract logic
│   ├── types.move                 # Data structures (Certificate, AdminCap, Transcript)
│   └── errors.move                # Centralized error management
├── Move.toml
├── README.md
└── tests/
   └── certwallet_tests.move      # Unit tests

Technology Stack

  • Blockchain: Sui Network
  • Language: Move (Sui 2024 Edition)
  • Authorization Model: Capability Pattern (AdminCap)
  • Data Storage: Dynamic Fields + Object-centric model

Installation and Compilation

Prerequisites

Steps

  1. Clone the repository:
git clone https://github.com/KutraCorporation/certwallet-contracts.git
cd certwallet-contracts
  1. Compile the contracts:
sui move build
  1. Run the tests:
sui move test
  1. Publish to the testnet:
sui move publish --gas-budget 50000000

Usage Examples

  1. Create Certificate:
issue_certificate(
   &admin_cap,
   student_name,
   institution,
   major,
   graduation_date,
   recipient_address,
   ctx
);
  1. Adding a Transcript
add_transcript(&admin_cap, &mut certificate, gpa, honors, credits);

Security Features

  • Certificates cannot be transferred thanks to soulbound design.
  • Only organizations with AdminCap can issue certificates.
  • All transactions are recorded as events.
  • Error management is centralized and consistent.

Contribute

We welcome your contributions!

  • Fork
  • Create a Feature branch (git checkout -b feature/amazing-feature)
  • Commit your changes (git commit -m 'Add amazing feature')
  • Push your branch (git push origin feature/amazing-feature)
  • Create a Pull Request

License

This project is licensed under the Apache-2.0 License.

Releases

No releases published

Packages

 
 
 

Contributors

Languages