https://github.com/uverify-io/uverify-ui
UVerify makes blockchain technology accessible to everyone, regardless of prior experience. Effortlessly secure your file or text hashes on the Cardano blockchain.
https://github.com/uverify-io/uverify-ui
cardano cryptography notarytool react tailwindcss
Last synced: about 1 month ago
JSON representation
UVerify makes blockchain technology accessible to everyone, regardless of prior experience. Effortlessly secure your file or text hashes on the Cardano blockchain.
- Host: GitHub
- URL: https://github.com/uverify-io/uverify-ui
- Owner: UVerify-io
- License: agpl-3.0
- Created: 2024-10-01T19:15:59.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2026-02-28T17:43:10.000Z (4 months ago)
- Last Synced: 2026-02-28T20:07:21.700Z (4 months ago)
- Topics: cardano, cryptography, notarytool, react, tailwindcss
- Language: TypeScript
- Homepage: https://app.uverify.io
- Size: 3.66 MB
- Stars: 4
- Watchers: 1
- Forks: 1
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Security: SECURITY.md
- Cla: CLA.md
Awesome Lists containing this project
README
# 💎 Welcome to UVerify: Your Gateway to Blockchain Simplicity
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](app.uverify.io) to explore the app.
## 🚀 Getting Started
To get started, clone the repository and run the following commands:
```zsh
npm install
npm run dev
```
### 🌻 Environment Variables
To run the application, you need to set up the following environment variables in a `.env` file:
```env
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` |
#### Using `ADDITIONAL_TEMPLATES_FILE` locally
Add it to your `.env` to load a local templates file during development:
```env
ADDITIONAL_TEMPLATES_FILE=../uverify-examples/sandbox/vin-additional-templates.json
```
#### Using `ADDITIONAL_TEMPLATES_FILE` in Docker
Pass it as a build argument so templates are baked in at image build time:
```yaml
# docker-compose.override.yml
services:
uverify-ui:
build:
args:
ADDITIONAL_TEMPLATES_FILE: ./my-additional-templates.json
```
The corresponding `Dockerfile` must declare the arg and export it as an env var before running `npm run build`:
```dockerfile
ARG ADDITIONAL_TEMPLATES_FILE=./additional-templates.json
ENV ADDITIONAL_TEMPLATES_FILE=${ADDITIONAL_TEMPLATES_FILE}
RUN npm run build
```
## 🚀 Features
- **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.
## 🛠️ Key Configuration Options
### `uverify_template_id`
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.
### Creating Custom Templates
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:
1. **Generate a Template**:
Use the UVerify CLI tool to initialize a new template:
```zsh
npx @uverify/cli init my-template
```
2. **Customize the Template**:
Modify the `Certificate.tsx` file in the generated template to suit your needs.
3. **Register the Template**:
Add an entry to `additional-templates.json` in the project root.
#### `additional-templates.json`
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:
```json
[
{
"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):
```json
[
{
"type": "repository",
"name": "PartnerTemplate",
"url": "https://github.com/some-org/partner-template",
"commit": "a3f1c2d4e5b6...",
"path": "src/Certificate.tsx"
}
]
```
> **Security note**: The `commit` field 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 the `commit` hash 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](https://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](https://github.com/UVerify-io/uverify-ui-template).
## 💙 Contributing
We welcome all contributions! Please read our [Contributing Guidelines](CONTRIBUTING.md) before getting started.
### Important Notes:
- Use **semantic commits** for all contributions.
- Sign the **Contributor License Agreement (CLA)** before committing. You can review the CLA [here](./CLA.md) and sign it via **[CLA Assistant](https://cla-assistant.io/)**. 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.
## 📚 Additional Documents
- [Code of Conduct](CODE_OF_CONDUCT.md)
- [Security](SECURITY.md)
- [Contributor License Agreement (CLA)](./CLA.md)
## 📜 License
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](mailto:hello@uverify.io)** to discuss alternative licensing options.