UVerify makes blockchain technology accessible to everyone, regardless of prior experience. Effortlessly secure your file or text hashes on the Cardano blockchain. Want to try it out before diving into the code? Visit app.uverify.io to explore the app.
To get started, clone the repository and run the following commands:
npm install
npm run devTo run the application, you need to set up the following environment variables in a .env file:
VITE_BACKEND_URL=http://localhost:9090
VITE_CARDANO_NETWORK=preprod| Variable Name | Description | Default Value |
|---|---|---|
VITE_BACKEND_URL |
URL of the UVerify backend service | http://localhost:9090 |
VITE_CARDANO_NETWORK |
Cardano network to connect to (e.g., preprod, preview, mainnet) |
preprod |
ADDITIONAL_TEMPLATES_FILE |
Path to an alternative additional-templates.json file. Supports ~, absolute, and relative paths (relative to uverify-ui). Set this to load a custom template list without modifying the committed additional-templates.json. |
./additional-templates.json |
Add it to your .env to load a local templates file during development:
ADDITIONAL_TEMPLATES_FILE=../uverify-examples/sandbox/vin-additional-templates.jsonPass it as a build argument so templates are baked in at image build time:
# docker-compose.override.yml
services:
uverify-ui:
build:
args:
ADDITIONAL_TEMPLATES_FILE: ./my-additional-templates.jsonThe corresponding Dockerfile must declare the arg and export it as an env var before running npm run build:
ARG ADDITIONAL_TEMPLATES_FILE=./additional-templates.json
ENV ADDITIONAL_TEMPLATES_FILE=${ADDITIONAL_TEMPLATES_FILE}
RUN npm run build- Blockchain-Backed Notary Service: Securely store file or text hashes on the Cardano blockchain for tamper-proof verification.
- Intuitive User Interface: Simple and user-friendly design to streamline the notarization process.
- Customizable Metadata: Add metadata to your hashes to enrich certificate details and personalize their appearance.
- Flexible Certificate Templates: Tailor the look and feel of certificates using predefined or custom templates.
- Web3 Partnership System: Contribute new templates or restrict access to specific templates for your users.
- External Custom UI Templates: Integrate private or external templates from separate repositories for enhanced flexibility.
Use the uverify_template_id metadata field to customize the appearance of your certificates. This field allows you to select or define a template that matches your branding or use case.
You can create and contribute new certificate templates or restrict them to specific users via the Web3 Partnership System. Follow these steps to get started:
- Generate a Template:
Use the UVerify CLI tool to initialize a new template:
npx @uverify/cli init my-template
- Customize the Template:
Modify the
Certificate.tsxfile in the generated template to suit your needs. - Register the Template:
Add an entry to
additional-templates.jsonin the project root.
This file is the primary way to register additional certificate templates. It is read at build time by config.js and supports two entry types.
Local file β a template located relative to the uverify-ui directory:
[
{
"type": "file",
"name": "MyCertificate",
"path": "../path/to/my-template/src/Certificate.tsx"
}
]External repository β a template fetched from a git repository at a pinned commit (cloned into .template-cache/ during the build):
[
{
"type": "repository",
"name": "PartnerTemplate",
"url": "https://github.com/some-org/partner-template",
"commit": "a3f1c2d4e5b6...",
"path": "src/Certificate.tsx"
}
]Security note: The
commitfield pins the exact revision that will be used. This makes external templates fully auditable and prevents unexpected upstream changes from affecting your build. To update an external template, change thecommithash and open a pull request for review.
additional-templates.json is committed to this repository. To have your template included in the standard deployment at app.uverify.io, open a pull request adding a repository entry. All proposed templates undergo a security review before being merged.
For detailed instructions on creating and managing templates, visit the uverify-ui-template repository.
We welcome all contributions! Please read our Contributing Guidelines before getting started.
- Use semantic commits for all contributions.
- Sign the Contributor License Agreement (CLA) before committing. You can review the CLA here and sign it via CLA Assistant. The CLA bot will guide you through the process when you open a pull request.
- For feature requests or tasks, please open an issue first to align with the project goals.
This project is licensed under the AGPL. If this license does not match your use case, feel free to reach out to us at hello@uverify.io to discuss alternative licensing options.