BBBUDS

Batch-Based Bud Safety

Authenticity tags

BBBUDS packages can carry a tap-to-verify NFC tag. Hold any phone to the tag and this site opens the package record with a cryptographic check: the tag proves it was issued for that exact package, not just that a web page says so.

NTAG 424 DNA Per-package keys Tap to verify QR fallback
Verify endpoint: /nfc/t
QR fallback: /verify/<id>

Verify a batch or package

Enter a batch number (medical) or a source/package identifier (adult-use) to open the public verification page.

Opens /verify/<id> on this site. Tip: you can paste a full URL too.
Adult-use: if your “source tag” is the batch/package ID, this fits perfectly. Medical: you can use internal batch numbers — no METRC required.

How tap verification works

Each package gets an NTAG 424 DNA tag with a key derived for that package alone. The tag's chip signs a response when tapped; the verifier checks the signature against the package's key in real time. The key never leaves the tag, so the signature cannot be copied from one package to another.

  • Secure Dynamic Messaging (SDM) keeps the tap payload encrypted
  • Server validates a live cryptographic signature per tap
  • Tag's NDEF record points at https://bbbuds.com/nfc/t
  • No app needed, any NFC phone works

What the verifier shows

The verification page is a record, not a poster. It shows the package identity, what is claimed about it, and the evidence behind each claim, marked by type: firsthand, attributed, or machine-recorded. The green verdict appears only where the math checks out.

Recall status is checked at the same time, so a recalled batch is flagged the moment the record opens.

For producers

Provisioning writes a per-package bundle of keys to each tag before it ships. The provisioning API is tenant-scoped and bearer-token authenticated, so one service can issue tags without exposing other tenants' keys.

  • Tenant-scoped key profiles
  • Provisioning API under /api/v1
  • Public verify endpoint per tenant

QR-seeded Conway preview

This box starts as a QR-seeded pattern for one minute, then evolves slowly using Conway’s Game of Life. If it becomes stable for 30 seconds, it reseeds automatically.

Mode: mirror · Live mirror of background

QR fallback

Every package also carries a QR that opens the same record at /verify/<id>. Tap when you can, scan when you can't.

Check a package

Hold your phone to the tag on the package, or scan the QR. The record opens with the verification result and the recall status. No app to install, no account to create.

Background Controls
Cell size
Speed (ms/tick)
Seed density
Blur
Opacity
Stable timeout (sec)
Running stats
Frames0
Ticks0
FPS0
Live cells0
Grid0×0
Last reseed
Stable for0.0s
ModeLife