Concepts
Collections
A group of related units - a product line, drop, or release. Create a
collection first; it defines the namespace your units share.
Units
The unique digital record for a single physical item. Each unit belongs to
exactly one collection and maps one-to-one with a physical product.
Chips & verification
A real, physical NFC chip (NTAG 424 DNA) on the item. Pairing a chip to a
unit links hardware to its digital record. Each tap produces a one-time
credential used to verify authenticity.
Session tokens
Short-lived proof that a specific chip was just tapped. Scoped to one chip,
unit, and organization - safe to use from a client without exposing your API
key.
Tap redirects
Control where a user lands after a tap - set a destination per unit, per
collection, or org-wide. The most specific redirect wins.
Claims
Hand a verified unit to its first owner, authorized by the session token
from a recent tap of that unit’s chip. Endstate can submit it for you.
Transfers
Move a unit between owners - tap-authorized like a claim, but the current
owner submits the transfer from their own wallet.
How they fit together
The concepts follow a single chain from setup to verification at the point of tap. 1. Create a collection A collection groups related physical items under one namespace. You create it first (POST /v1/collections) and poll until it is ready before adding units to it. The collection defines the serial-number space that all of its units will share.
2. Create a unit
For each physical item, you create a unit inside the collection (POST /v1/units). The unit is the item’s digital record - you can attach a name, an external ID that maps to your own systems, and free-form attributes. At this point the unit exists but has no serial number yet; that comes when a chip is paired.
3. Pair a chip
You pair an NFC chip to the unit (POST /v1/chips) to link the physical tag on the product to its digital record. Pairing triggers issuance: the unit receives a serial number within its collection and its issuance status moves from pending to active. A chip is permanently bound to one unit and cannot be re-paired.
4. User taps
When a user taps the product, the NFC chip delivers a chip_id and a one-time credential (an e value) - either via a tap URL in your application or through a redirect. The e value is single-use and is never logged. You can control where a tap lands - your own page or Endstate’s hosted flow - with tap redirects.
5. Verify
Your server sends the chip_id and e value to POST /v1/taps. The API validates the credential, records the tap against the chip’s scan count, and returns the unit’s full metadata plus a session token. A successful response is confirmation the product is authentic. The same endpoint also accepts a publishable key, so a page with no backend behind it can record the tap itself - see Host your own verify page.
6. Use the session token
The session token is short-lived proof that the tap just happened. You can pass it to GET /v1/session-tokens/current from a client to confirm its scope - which chip, which unit, and which organization it is bound to - without exposing your API key. A session token can also fetch the unit it was issued for via GET /v1/units/{unit_id}, and authorizes the unit’s ownership actions: claiming it via the Claims API and transferring it between owners via the Transfers API.
The complete flow in one line:
Next steps
- Follow the Quickstart to run a complete verification flow end to end.
- Read Collections for a detailed look at creating and provisioning a collection.

