Personal Verifiable Trust Agent

Run your own trust agent.

FirstPerson.dev is a test community for the Verifiable Trust Infrastructure stack. Download the two binaries, walk through the setup, and you'll be joined to the community in about ten minutes.

Downloads

Two binaries, Both architectures

Grab the latest release of pnm and openvtc for your platform.

pnm

Personal Network Manager

CLI for linking your machine to a Verifiable Trust Agent and managing the contexts it exposes. Use pnm setup to connect, pnm health to check status, and pnm contexts list to see what's configured.

openvtc

Verifiable Trust client

Interactive client for creating personas, joining communities, and holding credentials. Each profile lives in its own context, and you can run multiple profiles against the same VTA — useful for testing flows between identities.

Walkthrough

Watch the getting started video.

A ten-minute screen recording that walks through the full setup, from download to your first verifiable credential. It's slightly out of date but still gives you a good sense of the steps — follow the written instructions below for the accurate install steps.

Watch the Video
Setup

From binaries to your first community, end to end.

Plan on about ten minutes. Before you start, make sure you have the two binaries downloaded above and create an account at the VTA Farm. These steps follow the developer tutorial — go there for the full walkthrough.

  1. Gather what you'll need.

    The pnm and openvtc binaries from the section above, a VTA Farm account, and a computer with passkey support (Touch ID or equivalent).

  2. Make the binaries executable.

    From the directory where you downloaded them, run these two commands to mark pnm and openvtc executable and clear the macOS quarantine flag. The binaries are unsigned, but they come directly from us, so it's safe to override the check.

    chmod +x ./pnm ./openvtc
    xattr -d com.apple.quarantine ./pnm ./openvtc # only for macOS

    Confirm with ./pnm help.

  3. Create the VTA in VTA Farm.

    Log in to VTA Farm with your passkey and click Create VTA. Enter a name, leave the default image selected, and click Create session. When the VTA DID appears on the page, copy it — you'll paste it into PNM next and into OpenVTC later.

  4. Connect PNM to your VTA.

    Run ./pnm setup, choose Connect to an existing non-TEE VTA, enter the same name you used in VTA Farm, and paste in the VTA DID. PNM prints a vta import-did --did did:key:… --role admin line — copy the did:key:… value, paste it into the Admin DID box back in the browser, and click Provision agent. Wait for the Agent is online message.

  5. Verify the PNM.

    Run ./pnm health and check the diagnostics against the VTA, the mediator, and the DIDComm/TSP trust pings come back clean.

  6. Set up an OpenVTC profile.

    Run ./openvtc -p alice setup, swapping in any profile name you like — several profiles can share one VTA for testing. Press Enter on Get Started, then on Key Management paste the VTA DID and press Enter. OpenVTC shows a pnm contexts create … --admin-expires 1h command: press F2 to copy it, run it in another terminal with ./pnm (within the hour), then come back and press Enter. Once it reports the VTA bootstrapped, press Enter again, set an unlock code on Profile Security (or skip it for testing), and press Enter on Setup Complete to reach the dashboard. The VTA Service panel should show your VTA DID and an Authenticated did:key.

  7. Create your first persona DID.

    From the dashboard menu select Create Persona DID and press Enter. Give it a label like alice — use one persona per community so identities can't be linked across them. The persona is generated and published to the DID hosting service automatically; save the DID it prints, since that's how the community admin will identify you.

  8. Join your first community.

    Select Communities, press j, paste the community DID from vtc.firstperson.dev, and press Enter. Pick the persona you just created, press Y to confirm, then choose Join without it — send an open request. The community shows as Pending; once the VTC admin approves it, your membership credential (VMC) and role credential (VEC) land under My Credentials.