Authorized verifier playbook

Mint a real TCG card for open online verification.

A Store-Verified Card Passport connects a card physically presented across your counter to a durable HaloCert, a game-neutral identity, and—when the collector wants it—an externally minted token they control.

NFC and blockchain are optional. The store's physical inspection and HaloCert mint work on their own. Add NFC for an in-person physical link; add a token only when an online game or collector workflow needs wallet control.

Who does what

PartyResponsibilityCannot claim
CollectorCreates/owns the vault record, presents the card, authorizes a named store to attach an inspection, checks the card identity, and controls any wallet.Cannot self-label a mint as Store-Verified.
Authorized storePhysically inspects and identifies the card, captures evidence, records condition observations, and issues the Store-Verified attestation.Cannot guarantee grade, value, legal title, continuous custody, or acceptance by a game.
HaloVaultControls write permissions, seals the HaloCert, issues the stable Passport ID, exposes public verification, and reads configured public chain state.Does not host gameplay, hold the player's private key, or determine deck legality.
Game / tournament platformChooses accepted evidence tiers, maps the card to its catalog, challenges the wallet, and applies all rules.Should not treat a typed wallet address or an unverified token reference as proof.

Before the appointment

Store onboarding

  1. Create a HaloVault business vault and make sure the operator has owner access.
  2. Submit the verifier profile: display name, shop type, public contact, website, supported categories, and a plain-language description of your inspection practice.
  3. Wait for HaloVault approval. The profile must be both approved and active before the store can issue a Store-Verified mint.
  4. Keep staff memberships current. Only store owners/staff can see the verifier queue and complete an inspection.

Collector preparation

  1. Add the card to the collector's own HaloVault vault. Use one inventory item for one physical card, even when the printing is identical to another copy.
  2. Enter as much identity as known: game, card name, publisher/brand, set, set code, collector number, printing/year, variant, language, finish, grading company, and slab certificate when applicable.
  3. Upload clear front and back photographs. Detail photos are useful for serial numbers, stamps, holo patterns, signatures, damage, or other distinguishing features.
  4. From that card, choose the approved store and explicitly consent to the store's inspection. HaloVault will not let a store attach a cross-vault verification without this consent.

At the counter: inspection standard

The verifier is attesting to an actual physical inspection. Use a repeatable process and record uncertainty rather than forcing a confident answer.

  1. Match the presented card to the collector record. Compare card name, artwork, set symbol/code, collector number, copyright line, language, finish, variant, and any serial numbering.
  2. Inspect front and back under good light. Look for print/stock inconsistencies, altered edges, rebacking, trimming, surface replacement, counterfeit holo/foil behavior, and holder or label anomalies.
  3. Check known references. Use publisher checklists, trusted catalog sources, and grading-company certificate lookup when relevant. Record source identifiers in the Passport's catalog_ids.
  4. Capture current evidence. Photograph the complete front and back at the counter. Add close-ups for distinguishing marks or concerns. Store SHA-256 values when evidence is supplied outside HaloVault.
  5. Describe observed condition without assigning a grade. Note visible whitening, bends, creases, surface marks, print lines, centering concerns, alterations, or holder damage.
  6. Stop when uncertain. Do not issue a positive authenticity attestation when the item cannot be reliably identified. Decline, document why, and recommend specialist/grader review.
Store-Verified is not a grading service. You may record a grade already printed on a holder, but do not represent HaloVault's inspection as a PSA/BGS/SGC/CGC grade or guarantee.

Issue the Store-Verified mint

  1. Open the store's verifier queue in the Passport Desk.
  2. Confirm the request is in consented state and names your verifier vault.
  3. Enter the inspector's name, the exact attestation, condition observations, front/back evidence references, and any agreed verification fee.
  4. If using a HaloVault NFC tag, enter it now. Leave it blank when no physical tag is wanted.
  5. Submit once. HaloVault locks the request, seals a verified_mint HaloCert on the collector's item, records fee allocation, optionally binds the NFC tag, and marks the request complete.
  6. For a card, HaloVault automatically creates—or reuses—the stable HV-CARD-… Passport. A later Store-Verified attestation upgrades the authentication shown by the same Passport instead of producing a second identity.

The public certificate and Passport expose the store name, inspection tier, evidence claim, and limitations. Internal notes, vault location, purchase cost, and collector account data stay private.

Complete the cross-TCG identity

Before any token is attached, the collector or authorized vault staff should review these fields:

FieldExampleGuidance
game_namespacepokemon, mtg, lorcanaStable lowercase integration key; letters, numbers, dot, dash, and underscore.
publisherThe Pokemon CompanyRights holder or issuing publisher shown on/referenceable for the card.
game_namePokemon Trading Card GameHuman-readable game name.
card_nameCharizard exExact printed/catalog card name.
set_name / set_codeObsidian Flames / OBFUse the publisher's canonical set identity.
collector_number125/197Preserve punctuation and leading zeros.
printing2023 first printingRelease/year/edition language needed to distinguish printings.
variant / finishDouble Rare / holoRecord parallel, alternate art, foil, reverse holo, stamped, serialized, etc.
languageen, jaLowercase language or locale code.
catalog_ids{"publisher":"…"}Namespaced identifiers that help a game map to its own catalog.

The Passport metadata hash and commitment are recalculated when identity is corrected before token binding. Once a non-rejected chain binding exists, identity is locked so an already-minted token cannot silently point at changed card data.

Optional NFC setup

Optional blockchain token

  1. Open the Passport and copy its canonical token manifest URL:
    https://halovault.ai/api/open-card-passports/v1/passports/HV-CARD-…/manifest/
  2. Use that exact URL as the ERC-721 tokenURI when minting through the compatible contract/provider chosen by the collector. Mint directly to the collector's non-custodial wallet whenever possible.
  3. Do not request, copy, store, photograph, or type the collector's seed phrase or private key. The store should never need either.
  4. After the transaction confirms, record the CAIP-2 chain (eip155:8453 for Base mainnet, for example), network label, contract address, token ID, and mint transaction hash.
  5. Run chain sync. On a configured EVM network, HaloVault reads ownerOf and tokenURI. The controller becomes confirmed; the binding becomes verified only when token metadata resolves to the exact Passport manifest.
  6. If a game needs ownership proof, it must issue the player a fresh nonce to sign. A transaction receipt, typed address, screenshot, or stale RPC value is not enough.
No forced chain. A Passport can record other chain namespaces and standards. Automated single-controller verification currently covers ERC-721 on configured EVM networks; unsupported assets remain clearly labeled rather than receiving a false green check.

Collector handoff checklist

  1. Return the exact physical card and holder; have the collector confirm receipt.
  2. Give the collector the HV-CARD-… Passport ID and public Passport URL.
  3. Show the authentication tier and the store's public audit entry.
  4. If NFC was added, test one tap in front of the collector and explain whether it is basic UID or cryptographic SUN.
  5. If a token was added, have the collector open their own wallet and confirm chain, contract, token ID, and address. Never rely solely on a store screenshot.
  6. Repeat the limits: this is not a grade, appraisal, guarantee of legal title, proof of continuous custody, or promise that a particular TCG accepts the card.
  7. Direct game developers to the free integration guide.

Exact authenticated API workflow

The Passport Desk performs these calls. These examples are for approved internal integrations using an authenticated HaloVault session and a valid Django CSRF token on mutation requests.

1. Apply as a verifier

POST /api/tenants/{store_slug}/verifier-profile/
{
  "display_name": "Example Card Shop",
  "shop_type": "Local TCG and collectibles store",
  "supported_categories": ["pokemon", "mtg", "lorcana"],
  "bio": "In-person card identification and evidence capture.",
  "website_url": "https://store.example",
  "public_contact": "[email protected]"
}

2. Collector grants consent

POST /api/tenants/{collector_slug}/inventory/{item_id}/verification-requests/
{
  "verifier_tenant_slug": "example-card-shop",
  "collector_consent": true,
  "consent_statement": "I authorize Example Card Shop to physically inspect this card and attach its attestation to my HaloCert."
}

3. Store completes the verified mint

POST /api/tenants/{store_slug}/verifier-queue/{request_id}/verified-mint/
{
  "inspector_name": "Avery Inspector",
  "attestation_text": "Physically inspected and identified; authenticity attested based on this inspection.",
  "condition_notes": "Front/back/corners photographed; light edge whitening noted.",
  "verification_fee": "20.00",
  "photos": [
    {"url": "https://evidence.example/front.jpg", "sha256": "…"},
    {"url": "https://evidence.example/back.jpg", "sha256": "…"}
  ],
  "nfc_uid": ""
}

4. Complete or correct Passport identity

POST /api/tenants/{collector_slug}/inventory/{item_id}/card-passport/
{
  "identity": {
    "game_namespace": "pokemon",
    "publisher": "The Pokemon Company",
    "game_name": "Pokemon Trading Card Game",
    "card_name": "Charizard ex",
    "set_name": "Obsidian Flames",
    "set_code": "OBF",
    "collector_number": "125/197",
    "printing": "2023",
    "variant": "Double Rare",
    "language": "en",
    "finish": "holo",
    "catalog_ids": {}
  }
}

5. Record a token

POST /api/tenants/{collector_slug}/card-passports/{passport_id}/chain-bindings/
{
  "chain_namespace": "eip155",
  "chain_reference": "8453",
  "network_name": "Base",
  "contract_address": "0x0123456789abcdef0123456789abcdef01234567",
  "token_standard": "erc721",
  "token_id": "42",
  "mint_tx_hash": "0x…",
  "owner_address": "0x…"
}

The submitted binding starts as recorded; a submitted owner address starts as recorded, never confirmed.

6. Sync public chain state

POST /api/tenants/{collector_slug}/card-passports/{passport_id}/chain-bindings/{binding_id}/sync/

Corrections, failed mints, transfers, and disputes

Approved plain-language claims

You may say

Do not say

Ready at the counter.

Use the Passport Desk for collector consent, the verifier queue, Card Passport identity, token registration, and chain-status checks.

Open the Passport Desk