White paper · v1.0 · HSK Chain testnet

Your agent has a passport.
You stamp the visas.

Passport Agent Protocol · Ethereum Builders Tour, Cali · 2026

Abstract

AI agents need to pay and to use credentials, but a private key in an environment file is unlimited, permanent authority. PAP gives each agent an on-chain identity (ERC-8004) and scoped, expiring visas. Payments and secret reads are approved from the owner's phone with a passkey and enforced by a contract, not by the app.

Watch the 3-minute demo · a real agent on HashKey Chain testnet

Detail after Michelangelo's Creation of Adam: a robotic hand reaching toward a human hand.
Figure 1. The agent reaches out; the human grants the reach.
Claude Code Cursor Claude Desktop MCP Agent Skills JSON-RPC 2.0 EIP-1193 EIP-712
cast viem ethers web3.py ERC-8004 x402-style gate Web Push HSK Chain

1  Problem

A key in .env is a blank check.

PRIVATE_KEY=0x4c0883a6…

Full access, forever, one prompt injection away.

2  Design

Five properties, one per screen.

  1. 2.1  Passport

    Your agent gets an identity, not a key.

    Registered on HSK Chain as ERC-8004. You own it.

    Connect agent

    Claude Code @ laptop

    wants to connect

    ERC-8004agent #8
    Owneryou
    Connect with Face ID
  2. 2.2  Visa

    You decide how much, and until when.

    Scope, limit and expiry live in the contract.

    Visa

    Claude Code @ laptop

    100 demoUSDT

    35 used7 days

    Secret: openai

    3 of 10 reads, until Oct 3

    Enforced by AgentPassport on HSK Chain

  3. 2.3  Face ID

    Anything sensitive goes through your phone.

    The agent asks. You read it. Face ID.

    Approve action

    Approved

    Claude Code @ laptop

    wants to

    Send 10 demoUSDT

    ToMaría
    Memodataset
    Approve with Face ID
    Reject
  4. 2.4  Secrets

    Your API keys, sealed with two signatures.

    Its signature plus your Face ID. The server only sees ciphertext.

    Approve action

    Released

    Claude Code @ laptop

    wants to

    Read “openai”

    Reason given by the agent

    “Run the integration tests”

    Unlocks your layer only.

    Face ID to allow
  5. 2.5  On-chain

    The contract says no. Not the app.

    Over the limit, it reverts. Every action is stamped.

    Passport stamps

    • Pay 10 demoUSDT to María0xe152…
    • Read “openai”0x7a41…
    • Pay 25 demoUSDT to API0x629d…
    • Pay 500 demoUSDTLimitExceeded()

    Read from HSK Chain

3  Protocol

Who signs what.

  1. 01

    Agent

    signs the request

  2. 02

    Relay

    carries it; holds no keys

  3. 03

    Your phone

    Face ID, signs pay()

  4. 04

    HSK Chain

    enforces limit and expiry

4  Integration

Install it in your agent.

One command for Claude Code; a single bundled file for any other MCP client or language.

Add the marketplace

/plugin marketplace add DevCristobalvc/ethereum-builders-tour-cali

Install the plugin (MCP server + skills)

/plugin install pap@pap

Then ask: “connect to PAP”. A QR code appears; scan it with your phone.

  1. 01

    Install

  2. 02

    Scan the QR

  3. 03

    Done

›

5  Sealed credentials

Hand over a key without handing it over.

  1. Paste it on your laptop

    pap seal openai: a hidden prompt, never in a chat.

  2. Pick the agent and the limits

    Max reads and days. Approve once on your phone.

  3. Sealed

    It opens only with the agent’s signature and your Face ID.

$ node mcp/dist/pap-cli.mjs seal openai --max-reads 10 --days 7
Secret value (hidden, Enter to finish): ••••••••••••
Sealed “openai” for Claude Code: only opens with its signature + yours.
Approve on your phone to activate it (10 reads, 7 days)

Once released, the agent has the value, so seal short-lived, limited keys. What it protects, and what it doesn’t

6  Service verification

Services check the visa, not you.

An x402-style 402, a signed challenge, one on-chain check. No human prompt.

$

7  Deployment

Live on HSK Chain.

Agents registered
—
Passport stamps
—
demoUSDT moved
—
Gas per visa
< 0.001 HSK

Live from HSK Chain testnet, refreshed every 20 s

Table 1. Verified contracts on HSK Chain testnet (chainId 133).

ContractAddress
AgentPassport0xCE112F…9A6e7B
IdentityRegistry0x9a074B…F2e50F
DemoUSDT0xdD8FB4…97Cd84
ReputationRegistry0xf935f3…6B7c6C
PassportRegistry0x4bB579…90f10C
Groth16Verifier0xEBB0A2…44B229

Explorer: testnet-explorer.hskchain.net