> ## Documentation Index
> Fetch the complete documentation index at: https://betterdatainc.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Signal tags

# Signal Tags (OSS)

**Signal Tags** are an open schema and protocol story for **verifiable** physical product identity. Published packages use the **`@signal-tags`** scope on npm (see [tagd.sh](https://tagd.sh)).

## `@signal-tags/sdk`

```bash theme={null}
npm install @signal-tags/sdk
```

The SDK is the primary install surface. It bundles the developer workflow for schema-backed tags, verification helpers, and related tooling.

## `@signal-tags/schema`

For **schema-only** use (JSON Schema draft-07 artifacts and TypeScript types without the full SDK surface):

```bash theme={null}
npm install @signal-tags/schema
```

```typescript theme={null}
import { SignalTagSchema } from '@signal-tags/schema'
```

Point validators (for example Ajv) at the JSON files under `node_modules/@signal-tags/schema/schemas/` (or copy schemas into your repo) and validate incoming verification payloads.

## Other published modules

* **`@signal-tags/verify`** — verification client for calling verify endpoints consistently
* **`@signal-tags/generate`** — tag ID generation utilities

Exact exports evolve with releases; see [tagd.sh](https://tagd.sh) and npm org [signal-tags](https://www.npmjs.com/org/signal-tags).

## Verification client

Call your verification HTTP API (hosted at **verify.betterdata.co** or self-managed). Validate responses with **`@signal-tags/schema`** (or types from **`@signal-tags/sdk`**) where applicable.

```typescript theme={null}
// Conceptual — replace with your contracted path and auth
const res = await fetch(`https://verify.betterdata.co/v1/verify/${tagId}`, {
  headers: { Authorization: `Bearer ${process.env.SIGNAL_TAGS_TOKEN}` },
});
const payload = await res.json();
// payload.status: 'authentic' | 'tampered' | 'expired' | 'recalled' (per contract)
```

## Loop Engine integration

Verification outcomes should feed the **Loop Engine** — for example opening a **quarantine** loop on `recalled` or **investigation** on `tampered`.

→ [Signal Tags (platform)](/platform/signal-tags)\
→ [Signal Tags integration](/integrations/signal-tags)\
→ [tagd.sh](https://tagd.sh)
