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.
Who does what
| Party | Responsibility | Cannot claim |
|---|---|---|
| Collector | Creates/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 store | Physically 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. |
| HaloVault | Controls 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 platform | Chooses 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
- Create a HaloVault business vault and make sure the operator has owner access.
- Submit the verifier profile: display name, shop type, public contact, website, supported categories, and a plain-language description of your inspection practice.
- Wait for HaloVault approval. The profile must be both
approvedandactivebefore the store can issue a Store-Verified mint. - Keep staff memberships current. Only store owners/staff can see the verifier queue and complete an inspection.
Collector preparation
- 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.
- 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.
- Upload clear front and back photographs. Detail photos are useful for serial numbers, stamps, holo patterns, signatures, damage, or other distinguishing features.
- 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.
- 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.
- 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.
- 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. - 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.
- Describe observed condition without assigning a grade. Note visible whitening, bends, creases, surface marks, print lines, centering concerns, alterations, or holder damage.
- 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.
Issue the Store-Verified mint
- Open the store's verifier queue in the Passport Desk.
- Confirm the request is in
consentedstate and names your verifier vault. - Enter the inspector's name, the exact attestation, condition observations, front/back evidence references, and any agreed verification fee.
- If using a HaloVault NFC tag, enter it now. Leave it blank when no physical tag is wanted.
- Submit once. HaloVault locks the request, seals a
verified_mintHaloCert on the collector's item, records fee allocation, optionally binds the NFC tag, and marks the request complete. - 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:
| Field | Example | Guidance |
|---|---|---|
game_namespace | pokemon, mtg, lorcana | Stable lowercase integration key; letters, numbers, dot, dash, and underscore. |
publisher | The Pokemon Company | Rights holder or issuing publisher shown on/referenceable for the card. |
game_name | Pokemon Trading Card Game | Human-readable game name. |
card_name | Charizard ex | Exact printed/catalog card name. |
set_name / set_code | Obsidian Flames / OBF | Use the publisher's canonical set identity. |
collector_number | 125/197 | Preserve punctuation and leading zeros. |
printing | 2023 first printing | Release/year/edition language needed to distinguish printings. |
variant / finish | Double Rare / holo | Record parallel, alternate art, foil, reverse holo, stamped, serialized, etc. |
language | en, ja | Lowercase 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
- No NFC: Nothing else is required. The Passport ID, HaloCert ID, QR link, and public API provide the online verification path.
- Basic UID tag: Useful as a tap-to-open convenience. Treat it as a lookup identifier, not clone-resistant authentication.
- NTAG 424 DNA SUN: Adds cryptographic dynamic-message validation and replay tracking when provisioned through an issued HaloVault batch.
- Place the sticker on the sleeve, toploader, slab accessory, or tamper-evident holder—not directly on a collectible card.
- Show the collector exactly where it is placed and what changing the holder does to the physical-link claim.
Optional blockchain token
- Open the Passport and copy its canonical token manifest URL:
https://halovault.ai/api/open-card-passports/v1/passports/HV-CARD-…/manifest/ - Use that exact URL as the ERC-721
tokenURIwhen minting through the compatible contract/provider chosen by the collector. Mint directly to the collector's non-custodial wallet whenever possible. - Do not request, copy, store, photograph, or type the collector's seed phrase or private key. The store should never need either.
- After the transaction confirms, record the CAIP-2 chain (
eip155:8453for Base mainnet, for example), network label, contract address, token ID, and mint transaction hash. - Run chain sync. On a configured EVM network, HaloVault reads
ownerOfandtokenURI. The controller becomesconfirmed; the binding becomesverifiedonly when token metadata resolves to the exact Passport manifest. - 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.
Collector handoff checklist
- Return the exact physical card and holder; have the collector confirm receipt.
- Give the collector the
HV-CARD-…Passport ID and public Passport URL. - Show the authentication tier and the store's public audit entry.
- If NFC was added, test one tap in front of the collector and explain whether it is basic UID or cryptographic SUN.
- 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.
- 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.
- 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
- Wrong identity before token binding: correct the Passport. Its metadata version, hash, and commitment advance.
- Wrong identity after token binding: mark the binding
superseded, correct the identity, then mint/register a corrected token. Do not mutate a token's meaning silently. - Mint transaction failed: do not register a binding until a real chain asset exists. The HaloCert/Passport remain usable without it.
- Token transferred: run chain sync. The controller address changes; the physical authentication record does not.
- Physical card sold without token: the parties must coordinate the token transfer separately. HaloVault never assumes one proves the other happened.
- Suspected counterfeit or compromised evidence: stop processing, preserve evidence, and escalate. HaloVault administration can mark the Passport disputed/revoked and the certificate can be revoked.
- Lost/damaged NFC tag: void that tag. Do not revoke the Passport solely because an optional tag failed.
- RPC outage or stale controller: the public API says
errororstale. Do not relabel it confirmed.
Approved plain-language claims
You may say
- “We physically inspected and identified this card and attached a Store-Verified HaloCert.”
- “This Passport gives games a free way to check the mint and our store attestation.”
- “The optional token currently reports this wallet as controller; the game must still verify a fresh wallet signature.”
- “NFC is optional and is primarily a physical lookup/security layer.”
Do not say
- “The blockchain proves you legally own the physical card.”
- “HaloVault guarantees this grade/value or guarantees the card can never be counterfeit.”
- “Every online TCG accepts this Passport.”
- “A basic NFC UID cannot be copied.”
- “A Store-Verified mint proves continuous custody after the inspection.”
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
HaloVault