UVerify opens up blockchain technology to everyone, no matter your background. Anchor file or text hashes on the Cardano blockchain, issue verifiable certificates, and build trust into any workflow — without deep blockchain expertise. Want to try it before diving into the code? Head over to app.uverify.io.
| Repository | Description |
|---|---|
| uverify-ui | Main dApp — the React frontend at app.uverify.io |
| uverify-backend | Java Spring Boot API at api.uverify.io |
| uverify-sdks | Official SDKs for TypeScript, Python, and Java |
| uverify-examples | Runnable end-to-end examples for all supported languages |
| uverify-docs | Documentation site at docs.uverify.io |
| uverify-ui-template | CLI + core types for building custom certificate UI templates |
| uverify-additional-templates | Community-contributed certificate UI templates |
| uverify-discovery | Landing page at uverify.io |
📖 Full documentation at docs.uverify.io
With UVerify you can store and retrieve data on the Cardano blockchain through a clean API and a customizable UI. Deploy your own instance or use the hosted version — whatever fits your needs. UVerify is designed to integrate into existing projects without requiring blockchain expertise. It is an open platform, not just a tool.
UVerify includes its own scoped chain indexer, a Web3 API key management system, on-chain metadata support, and extension points for both the backend and frontend. The frontend is built with React, while the backend is a Java Spring Boot application that leverages Yaci Store.
The fastest way to explore UVerify is app.uverify.io. No setup required. If you want to experiment without spending real ADA, use the preprod deployment at app.preprod.uverify.io.
Grab the docker-compose file and fire off:
docker compose upThe uverify-examples repository ships a full local devnet — UVerify UI, backend, chain indexer, and a Cardano devnet node — all in Docker:
git clone https://github.com/UVerify-io/uverify-examples
cd uverify-examples
uv run sandbox.py startThe sandbox faucet funds wallets instantly, so you can run every example without spending real ADA or touching a testnet.
Install the SDK for your language and start issuing certificates in minutes:
# TypeScript / JavaScript
npm install @uverify/sdk
# Python
pip install uverify-sdk
# Java (Maven / Gradle)
# io.uverify:uverify-sdkQuick verify example (TypeScript):
import { UVerifyClient } from '@uverify/sdk';
const client = new UVerifyClient();
// Check whether a hash has a certificate on-chain
const certificates = await client.verify('your-sha256-hex-hash');
console.log(certificates);Quick issue example (TypeScript):
import { UVerifyClient } from '@uverify/sdk';
import { sha256 } from 'js-sha256';
const client = new UVerifyClient({
signTx: (unsignedTx) => wallet.signTx(unsignedTx, true),
signMessage: (msg) => wallet.signData(address, msg),
});
const hash = sha256('Hello, UVerify!');
const txHash = await client.issueCertificates(address, [
{
hash,
algorithm: 'SHA-256',
metadata: { issuer: 'Acme Corp', description: 'Proof of existence' },
},
]);
console.log('Certificate anchored! TxHash:', txHash);See the SDK docs or the uverify-examples repository for complete runnable examples in TypeScript, Python, and Java, including diplomas, product passports, lab reports, and more.
UVerify lets you build use cases in a snap. For most things, it feels more like calling an API than wrestling with a full-blown blockchain solution:
| Use Case | Description |
|---|---|
| Notary Service | Store file or text hashes on the Cardano blockchain |
| Diplomas & Credentials | Batch-issue verifiable academic certificates |
| Digital Product Passports | EU DPP-compliant product traceability on-chain |
| Lab Reports | GDPR-safe laboratory results with measured values |
| Certificates of Insurance | Tamper-evident policy proof anchored on-chain |
| Lost-pet necklaces | Privacy-preserving owner data for pet identification |
| Document Integrity | Tamper-evident anchoring of any document |
| Tokenizable Certificates | Certificates that can be redeemed as on-chain NFTs |
| Agent Receipts | Immutable receipts for AI agent transactions with LCP-compliant terms |
| Identity Credentials | KERI-backed credentials with on-chain issuance and revocation |
| ...and much more | Browse all examples in uverify-examples |
Pass uverify_template_id in your certificate's metadata to control how it renders in the UI:
const metadata = {
uverify_template_id: 'diploma',
issuer: 'Acme University',
recipient: 'Jane Doe',
};UVerify ships several built-in templates you can use today:
| Template ID | Use case |
|---|---|
diploma |
Academic certificates and credentials |
digitalProductPassport |
EU DPP product traceability |
laboratoryReport |
Lab results with measured values |
certificateOfInsurance |
Policy proof documents |
tokenizableCertificate |
Certificates redeemable as NFTs |
agentReceipt |
AI agent transaction receipts with LCP-compliant terms |
identityAuth |
KERI-backed identity credential issuance and revocation |
petNecklace |
Pet owner identification via QR necklace |
productVerification |
Product authenticity certificates |
documentIntegrity |
General-purpose tamper-evident documents |
monochrome |
Clean, minimal black-and-white layout |
There are two ways to add more:
Use or contribute a community template — Browse the uverify-additional-templates repository or add your own by implementing the abstract template. Contributions are welcome.
Build your own private template — Use the uverify-ui-template CLI to scaffold a new template and keep your branding exclusive to your deployment:
npx @uverify/cli init my-templateThe Diploma template is a clean starting point for single-purpose certificates.
| 📖 docs.uverify.io | Full documentation, guides, and platform concepts |
| 🔌 API Reference | Interactive Swagger docs |
| 💬 Discord | Get help and join the community |
| 🗺️ Roadmap | See what's coming next |