https://github.com/aswinr24/metacert
Securely issue, store, and verify tamper-proof educational and professional credentials, ensuring trust and authenticity.
https://github.com/aswinr24/metacert
expressjs ipfs nextjs typescript web3
Last synced: 10 months ago
JSON representation
Securely issue, store, and verify tamper-proof educational and professional credentials, ensuring trust and authenticity.
- Host: GitHub
- URL: https://github.com/aswinr24/metacert
- Owner: Aswinr24
- Created: 2024-05-24T11:07:09.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-12-21T07:39:34.000Z (about 1 year ago)
- Last Synced: 2025-04-11T19:23:40.483Z (10 months ago)
- Topics: expressjs, ipfs, nextjs, typescript, web3
- Language: TypeScript
- Homepage: https://meta-cert.vercel.app
- Size: 561 KB
- Stars: 0
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# MetaCert
An application for securely issuing, storing, and verifying tamper-proof digital credentials. By leveraging IPFS and Soulbound Tokens (SBTs), MetaCert ensures trust and authenticity empowering users to manage credentials with unmatched security and transparency.
## Features
- 🔒 **Secure Credential Issuance**: Issue cryptographically secured credentials.
- 🌐 **IPFS Storage**: Store credentials in a decentralized, immutable manner.
- 🎓 **Soulbound Tokens (SBTs)**: Credentials are tokenized as non-transferable SBTs, ensuring authenticity and ownership.
- ✅ **Easy Verification**: Verify credentials seamlessly with blockchain-backed proof.
## Getting Started
### Prerequisites
Ensure you have the following installed:
- Node.js (v16 or higher)
- npm package manager
- A compatible crypto wallet (e.g., MetaMask/Phantom)
### Installation
Clone the repository:
```bash
git clone --recurse-submodules https://github.com/Aswinr24/MetaCert.git
```
Navigate to the project directory:
```bash
cd MetaCert
```
Install dependencies:
```bash
npm i
```
#### Environment Setup
Create a .env file in the root directory and configure the following variables:
```env
NEXT_PUBLIC_OPENSEA_API_KEY=
NEXT_PUBLIC_SMART_CONTRACT_ADDRESS=
JWT_SECRET=
```
#### Run Locally
Start the development server for UI:
```bash
npm run dev
```
#### Build for Production
Build the application for production:
```bash
npm run build
npm start
```
### Smart Contracts Deployment
The contracts directory is included as a Git submodule.
#### Navigate to the Contracts Directory
After cloning the repository with submodules, navigate to the contracts submodule:
```bash
cd contracts
```
Install Dependencies for Hardhat
```bash
npm i
```
#### Environment Setup for Smart Contracts
Create a .env file in the contracts directory and configure the following variables:
```env
NEXT_PUBLIC_ALCHEMY_SEPOLIA_API=
NEXT_PUBLIC_ACCOUNT_PRIVATE_KEY=
```
#### Compile Smart Contracts
Compile the smart contracts using Hardhat:
```bash
npx hardhat compile
```
#### Deploy Smart Contracts
Deploy the contracts to the Sepolia test network:
```
npx hardhat run scripts/deploy-sepolia.js --network sepolia
```
#### Update Contract Address
After deploying the smart contract, note the contract address and update the ```NEXT_PUBLIC_SMART_CONTRACT_ADDRESS``` variable in the .env file of the MetaCert UI directory.
## Contributing
Contributions are welcome! If you find any bugs or have suggestions for improvements, please open an issue or clone the repository and submit a pull request on GitHub.