Dan Trapp

Open-source infrastructure / Digital identity

VC Inspector

A Rust trust-boundary inspector for W3C Verifiable Credentials and DID proof wiring.

A small CLI tool that parses credential JSON, checks trust-relevant structure, optionally compares issuer DID Documents, and outputs pass/warn/fail reports before deeper cryptographic validation.

Status

Prototype

Timeline

Built as a standards-learning and inspection tool

Domain

Digital identity

Why

Open-source infrastructure

Trust report

Pass / warn / fail

Prototype

Lang

Rust

Boundary

Trust

Output

JSON/MD

Credential structure, DID proof wiring, and verification readiness.

Stack

Languages, services, data sources, and operating pieces behind the build.

RustW3C Verifiable CredentialsDID DocumentsCLIJSON

Code Proof

What The Build Actually Contains

Runtime

Rust

Input

VC JSON

Checks

Trust

Output

JSON/MD

Product proof

Trust report

Pass / warn / fail

Prototype

Lang

Rust

Boundary

Trust

Output

JSON/MD

Credential structure, DID proof wiring, and verification readiness.

Implementation

Code Behind The Surface

Checking the proof boundary

rs

The core move behind the product surface.

let report = inspect_credential(&credential, did_doc);

for check in report.checks {
    println!("[{}] {}", check.status, check.message);
}

Product Model

ts

The useful answer has to be modeled before the UI can make it obvious.

type ProductSurface = {
  input: "Digital identity";
  signal: "Where can a standards-based identity flow fail before full cryptographic verificatio";
  proof: string[];
};

const surface: ProductSurface = {
  input: "Digital identity",
  signal: "Credential structure, DID proof wiring, and verification readiness.",
  proof: [
  "Credential JSON parsing",
  "Issuer and subject inspection",
  "Proof metadata checks",
  "DID Document assertion-method validation"
],
};

Hard Part

ts

Every build has a constraint: data quality, workflow shape, trust, speed, or operational risk.

const constraint = {
  project: "VC Inspector",
  status: "Prototype",
  category: "Open-source infrastructure",
  hardPart: "The value is clear boundaries. It makes the pre-verification structure explicit so integration teams can see w...",
};

shipSurface(constraint);

Project Logic

Why This Exists

The point is not to show another screen. It is to show the gap, the build constraint, and the proof of work.

Mission

Where can a standards-based identity flow fail before full cryptographic verification even starts?

Digital credential systems depend on precise trust boundaries: issuer, holder, verifier, proof metadata, controller relationships, assertion methods, expiration, and revocation status. Those details are easy to misunderstand when the flow is hidden behind libraries.

Build

What Had To Work

I built a Rust inspector that validates credential shape, proof metadata, issuer DID wiring, assertion-method control, expiration, and credential status, then prints human and machine-readable reports.

Why It Matters

Pass / warn / fail

Shows credential trust-boundary failures before a team relies on a verifier flow.

Hard Parts

Make The Signal Useful

Make an opaque trust model easier to inspect so builders can understand credential readiness before relying on a verifier flow.

Turn The Work Into A System

I built a Rust inspector that validates credential shape, proof metadata, issuer DID wiring, assertion-method control, expiration, and credential status, then prints human and machine-readable reports.

Prove The Wedge

The value is clear boundaries. It makes the pre-verification structure explicit so integration teams can see what is missing before deeper validation.

Decisions

Credential JSON parsing
Issuer and subject inspection
Proof metadata checks
DID Document assertion-method validation

Next Move

I would add integrations with standards-aware verification libraries, a small UI for credential review, and CI examples for teams integrating credential issuance or verifier flows.

Tell Me About Your Project

Bring Me The Bottleneck.
I’ll Build The Answer.

Tell me what people are trying to do, where the current path breaks, and what kind of useful answer should exist.

Market Gap

Demand exists, but the answer is missing.

Workflow Drag

The work is still too manual, slow, or scattered.

Product Wedge

A small surface could prove the larger opportunity.

Quick Note