Check provides the following 4 core services:
- ☑️ Verification Service: Verifies the authenticity of a web shop or any other web site by discovering the Decentralized Identifier and retrieving publicly linked Verifiable Credentials. Verifiable credentials allow any third party to determine the authenticity of the personal or legal identity that stands behind the visited web site.
- 🔍 Verification Service Interface: Visualizes the data from the Verification Service and provides an interactive query interface.
- ✨ Embedded Verification Inferace: Visualizes the data from the Verification Service as an trust mark that is embedded inside a web shop.
- 🔁 Verifiable Data Service: Verifies the authenticity of ecommerce customers by receiving Verifiable Credentials from customer wallets and providing the verified data to the web shop.
- 🔍 Verification Service Interface
- ✨🔁 Demo Shop: A demo web shop with a verifiable identity.
- ✨🔁 Evil Demo Shop: An evil demo web shop tries to claim the identity of Demo Shop by referencing its identity.
- Technical explanation: Shop has it's own DID but the Well-Known DID Configuration has been copied straight from the Demo Shop.
- ✨🔁 Evil2 Demo Shop: A second evil demo web shop tries to claim the identity of Demo Shop by copying its the credentials.
- Technical explanation: Shop has it's own DID and the Well-Known DID Configuration has been self-issued by that DID. Also the Linked Verifiable Presentation has been self-issued by that DID, however the included credentials have been copied from the Demo Shop.
- ✨🔁 Evil3 Demo Shop: A third evil demo web shop tries to claim the identity of Demo Shop by referencing its identity in a similar but different way than the first Evil Demo Shop.
- Technical explanation: Shop has it's own DID and the Well-Known DID Configuration has been self-issued. However, the
credentialSubject.id
points to the Demo Shop's DID.
- Technical explanation: Shop has it's own DID and the Well-Known DID Configuration has been self-issued. However, the
- ☑️ Verification Service
- 🔁 Verifiable Data Service - Demo Shop
- 🔁 Verifiable Data Service - Evil Demo Shop
- 🔁 Verifiable Data Service - Evil2 Demo Shop
- 🔁 Verifiable Data Service - Evil3 Demo Shop
- Ensure services that bind IPv6 addresses are also bound to IPv4 addresses.
sysctl net.ipv6.bindv6only
must returnnet.ipv6.bindv6only = 0
.- Add
net.ipv6.bindv6only = 0
to/etc/sysctl.conf
if a different value is returned.
- Add
- Clone this repository, including submodules:
git clone --recurse-submodules https://github.com/identinet/check.git
- Install all depedencies
- On Nix/NixOS: direnv installs all dependencies automatically via:
direnv allow
directory and the service directories viewdirenv allow
- On Nix/NixOS: direnv installs all dependencies automatically via:
- Integrate direnv with your shell and grant it access to the root directory of the repository and all serivce directories
- INFO: If you don't use Nix/NixOS, you'll receive get an error that
use flake
doesn't work. Direnv will still load the necessary environment variables. To silence the error, you can safely remove the line starting withuse flake
in the.envrc
files.
- INFO: If you don't use Nix/NixOS, you'll receive get an error that
- Install a develpoment CA and register it in your browser via mkcert
- (Optional) Request a cloudflare tunnel configuration so that services like the Verifiable Data Service can be developed locally while being accessible from the Internet and communicate with mobile wallets.
- Store the configuration in the root of the repository at
.cloudflared/tunnel.json
. - Set the tunnel user in file
.env.local
:
- Store the configuration in the root of the repository at
TUNNEL_USER=<your_username>
- (CI) Nix
- (CI) Skopeo
- (CI) git-cliff
- (CI) Github CLI
- Caddy reverse proxy
- Deno
- Docker
- Just task runnner
- Nodejs 22
- Nushell
- Rust toolchain
- direnv environment loader
- mkcert development CA
- Start caddy reverse proxy:
just dev
- (Optional) Start cloudflare tunnel:
just tunnel
- Start services, e.g.
cd ./services/demo-shop; just dev
- Access services (At the start, caddy prints all available URLs)
This project has received funding from the European Union's Horizon 2020 research and innovation program within the framework of the TRUSTCHAIN Project funded under grant agreement 101093274.