Secure Digital Business Cards & Portfolios#
The problem#
An ordinary NFC business card is a static link written into a chip. Anyone who taps it can read the URL, and anyone who has the URL can hand out a card that behaves exactly like yours. The link is also frozen: change agency, change portfolio host, change phone number, and you reprint the whole run.
How EdgeNFC solves it#
The card stops being a link and becomes a credential.
- The tap is signed. Every tap produces a fresh AES-CMAC computed on the card, with a per-tag key derived from your System Master Key and never readable off the chip. A copied URL is not a copied card.
- The tap is unrepeatable. A monotonic counter advances on every genuine tap, so a forwarded or screenshotted URL comes back not authentic with
reason: non_monotonic. - The destination is yours to change. Custom routing lives server-side, so you can re-point the same physical cards at a new site, a new portfolio, or a campaign-specific landing page — as often as you like, without reprinting anything.
- You can see the follow-up signal. On Brand+, aggregate scan counts and country breakdowns tell you which events actually produced taps — counts and ISO-2 country codes only, never a UID or an IP.
How it works here#
One provisioning pass over a pack of cards; after that every tap is verified at the edge.
One tag. A new code every tap — and a fresh proof behind it.
-
1
Provision, once
The app derives a per-tag AES key with AN10922 diversification (your System Master Key + the tag UID), installs it via AuthenticateEV2First + ChangeKey, then writes the SUN URL template mirroring
uid,ctrandmac. - 2 Tap — a new code, every time The chip's SDM engine mints the URL at read time: the SDMReadCtr counter advances and the MAC changes on every single tap. Nothing is reusable.
- 3 Verify at the edge Cloudflare re-derives the tag's key and checks the 8-byte AES-CMAC in microseconds, in the same Rust/WASM core hosted and DIY deployments share.
- 4 Replays rejected A monotonic counter that fails to advance means a captured link is being re-used — it is refused, not redirected. Genuine taps get a 302.
What you need#
| Piece | What to pick |
|---|---|
| Hardware | NTAG 424 DNA tags — no other chip works. CR80 PVC cards are the obvious pick; a 25 mm token if you want to stick one on a laptop or a press kit. Where to buy |
| Plan | Creator for custom dynamic routing — the feature that makes the card re-pointable; Brand if you want a custom verification domain and scan analytics |
| Software | The provisioning app to encode the pack. No backend of your own required |
This is the lowest-effort way into EdgeNFC: a Creator plan plus a ten-pack, and you can be live in an afternoon.
Step by step#
- Create a system for your cards and generate its System Master Key.
- Encode the pack with the provisioning app — a ten-pack is a few minutes of tapping.
- Set the destination with custom routing (Creator+): your site, your portfolio, a scheduling link. Owner-stored config only, so a forged tap can never be redirected anywhere.
- Optionally split by card. With per-tag routing (Enterprise) each card in a team can point somewhere different — one printed design, one system, many destinations.
- Re-point whenever you want. New job, new portfolio, new campaign: change the route, not the cards.
Verify it worked#
- Tap your card on a phone: it opens your destination, and the tap verifies authentic with the counter advanced.
- Copy the URL out of the address bar, then open it again: not authentic,
reason: non_monotonic, and no redirect. That is the difference between a credential and a link. - Change the route, tap again, and confirm you land somewhere new with nothing re-written on the card.
Known limits#
Warning
Some Android phones need the EdgeNFC app to open the card. Android 16+ can't NDEF-dispatch NTAG 424 DNA tags — a Google regression — so on those devices the tap may do nothing until the tag is scanned from inside the EdgeNFC app. iOS and pre-16 Android read these tags natively. Worth knowing before you hand a card to someone at a conference: if nothing happens, it is that bug, not a dead card.
Start free#
Create a system on the free Sandbox plan, encode a card, and try the replay demo before you buy a pack.
Related#
- Hosted Gateway — the no-code path from a blank card to a verified tap.
- E-commerce / Shopify — how routing works and why a forgery never redirects.
- Key management & security — why a copied URL can't become a copied card.
EdgeNFC