Skip to content

easy1staking-com/uplc-link

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

28 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

UPLC Link - Cardano Smart Contract Verification

Don't trust, verify. Open-source registry and verification system for Cardano smart contracts.

License Cardano Aiken

πŸš€ What is UPLC Link?

UPLC Link is an open-source platform that enables developers and users to verify Cardano smart contracts against their source code. Similar to Etherscan's verification for Ethereum, UPLC Link provides transparency and trust in the Cardano ecosystem.

Key Features

  • βœ… Source Code Verification - Build and verify Aiken smart contracts directly from Git repositories
  • πŸ” Public Registry - Search and explore verified contracts with full source code
  • πŸ”— On-Chain Registration - Submit verified contracts to the blockchain using metadata label 1984
  • 🌐 Browser-Based - No installation required, verify contracts in your browser
  • πŸ“– Open Source - Fully transparent, community-driven development

🎯 Quick Start

For Users - Verify a Contract

  1. Go to uplc.link
  2. Enter the GitHub repository URL and commit hash
  3. Select the Aiken compiler version
  4. Click "Verify" to build and compare hashes
  5. (Optional) Register verified contracts to the public registry

For Developers - API Integration

# Search for verified contracts
curl "https://api.uplc.link/api/v1/scripts/search?urlPattern=sundae-labs"

# Get scripts by hash
curl "https://api.uplc.link/api/v1/scripts/by-hash/{scriptHash}"

# Check verification status
curl "https://api.uplc.link/api/v1/verification-requests?sourceUrl=https://github.com/org/repo&commit=abc123"

πŸ“š Full API documentation: https://api.uplc.link/swagger-ui.html

πŸ—οΈ Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                    UPLC Link Platform                        β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚                    β”‚                                         β”‚
β”‚   Frontend         β”‚   Backend                              β”‚
β”‚   (Next.js 15)     β”‚   (Spring Boot 3)                      β”‚
β”‚                    β”‚                                         β”‚
β”‚   - Browser UI     β”‚   - REST API                           β”‚
β”‚   - Wallet Connect β”‚   - Contract Registry                  β”‚
β”‚   - TX Builder     β”‚   - Blockchain Listener                β”‚
β”‚                    β”‚   - PostgreSQL Database                β”‚
β”‚                    β”‚                                         β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                                 β”‚
                     β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                     β”‚   Cardano Blockchain   β”‚
                     β”‚   (Metadata Label 1984)β”‚
                     β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Technology Stack

Frontend:

  • Next.js 15 (App Router)
  • React 18
  • TailwindCSS
  • MeshSDK (Cardano wallet integration)
  • Aiken WASM (browser-based compilation)

Backend:

  • Spring Boot 3.3
  • Java 21
  • PostgreSQL
  • Yaci Store (Cardano indexer)
  • Bloxbean Cardano Client

Blockchain:

  • Cardano Mainnet
  • Metadata label 1984 for verification requests

πŸ“¦ Repository Structure

uplc-scan/
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ frontend/          # Next.js frontend application
β”‚   β”‚   β”œβ”€β”€ app/           # Next.js app router pages
β”‚   β”‚   β”œβ”€β”€ components/    # React components
β”‚   β”‚   β”œβ”€β”€ lib/           # Utilities and hooks
β”‚   β”‚   └── public/        # Static assets
β”‚   β”‚
β”‚   └── backend/           # Spring Boot backend API
β”‚       β”œβ”€β”€ src/main/      # Java source code
β”‚       β”œβ”€β”€ build.gradle   # Gradle build configuration
β”‚       └── Dockerfile     # Backend container image
β”‚
β”œβ”€β”€ README.md              # This file
└── LICENSE                # Apache 2.0 license

πŸ› οΈ Development

Prerequisites

  • Node.js 20+ (for frontend)
  • Java 21+ (for backend)
  • PostgreSQL 14+ (for backend database)
  • Docker (optional, for containerized deployment)

Running Locally

Frontend

cd src/frontend
npm install
npm run dev
# Visit http://localhost:3000

See frontend/README.md for detailed setup.

Backend

cd src/backend
./gradlew bootRun
# API available at http://localhost:8080

See backend/README.md for detailed setup.

πŸ“š Documentation

🀝 Contributing

We welcome contributions! Whether it's:

  • πŸ› Bug reports
  • πŸ’‘ Feature requests
  • πŸ“ Documentation improvements
  • πŸ”§ Code contributions

Please open an issue or pull request on GitHub.

Development Workflow

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

πŸ“– How It Works

1. Verification Process

  1. User Input: Provide Git repo URL, commit hash, and Aiken version
  2. Clone & Build: Frontend clones the repo and builds with Aiken (WASM)
  3. Hash Comparison: Compare built script hashes with on-chain hashes
  4. Result: Display verification status for each validator

2. Registration Process

  1. Connect Wallet: Use a Cardano wallet (Eternl, Nami, Flint)
  2. Build Transaction: Create transaction with metadata label 1984
  3. Sign & Submit: Sign with wallet and submit to blockchain
  4. Backend Processing: Backend detects transaction and indexes the verification

3. Registry Exploration

  • Search by URL pattern (e.g., "sundae-labs")
  • Query by script hash or Cardano address
  • View source code and verification details
  • Track all validators from a project

🌟 Use Cases

  • Protocol Transparency: Prove your smart contracts match published source code
  • Security Audits: Verify contracts before interacting with them
  • Developer Trust: Build confidence in the Cardano ecosystem
  • Regulatory Compliance: Demonstrate code provenance

πŸ™ Credits

Sponsored By

EASY1 Stake Pool - Supporting Cardano decentralization

Maintainers

Built With

  • Aiken - Smart contract language
  • Cardano - Blockchain platform
  • MeshSDK - Cardano wallet integration
  • Yaci - Cardano indexer

Special Thanks

Made with ❀️ for the Cardano community β€’ Built with Claude

πŸ“„ License

This project is licensed under the Apache License 2.0 - see the LICENSE file for details.

πŸ”— Links


⭐ Star this repository if you find it useful!

πŸ“’ Share with the community to help build transparency in Cardano!

About

Like etherscan but for cardano

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages