Skip to main content
Three packages, covering an Endstate integration: talking to the API, reading a physical tap, and running in the browser. Everything they produce speaks the same vocabulary as the REST API - chips, units, taps, session tokens - so the concepts pages apply whichever you use. SDK objects carry camelCase keys (chipId, externalId, sessionToken); the wire keeps the API’s snake_case names.

Core SDK

The Endstate API in TypeScript - typed operations, typed errors, retries derived from the spec, and tap sessions. Runs in Node, edge, and the browser. @endstate-sdk/core

Reader SDK

Read Endstate chips from your own application - desktop USB readers and Android phone NFC behind one interface. @endstate-sdk/reader

Web SDK

Endstate in the browser - capture taps from redirects and Web NFC, and provision a customer wallet, on pages that hold only a publishable key. @endstate-sdk/web
All are TypeScript-first, ship zero runtime dependencies, and are licensed Apache-2.0. Each is versioned on its own - upgrading one never forces you to upgrade the other - and follows semantic versioning, so a patch or minor release will not break your build.

Which do I need?

  • Calling the API from TypeScript, on a server or in a browser? Start with the Core SDK quickstart. It covers every operation in the spec, so you rarely need anything else.
  • Pairing or verifying physical chips from a browser app an operator uses? Add the Reader SDK for the tap itself, then follow Pair chips from your own application for the full operator flow. The two compose: the reader produces chipId and e, and Core’s verify() turns them into a session.
  • Not using TypeScript? Call the API directly; see the guides for end-to-end flows.

How they fit together

Core is the foundation and has no dependency on the reader. The reader is standalone too, so an operator tool that only encodes chips does not pull in an API client. Used together, the reader captures the tap and Core exchanges it for a session:

Working with AI tools

Every SDK package ships an AGENTS.md for AI coding agents, and these docs are agent-readable - see Use Endstate with AI tools.