Protocol
Architecture
TAG IT Network runs on the ORACULS stack — Oracle-Augmented Chain for Universal Logistics Security. It is a four-layer architecture that takes a physical NFC tap all the way to a settled, queryable on-chain fact: applications on top, a service gateway in the middle, an L2 execution layer where the contract suite lives, and Ethereum L1 underneath as the settlement anchor.
The ORACULS stack
Every request moves down the same four layers, and every verification result moves back up them. There are no side doors: applications never talk to the chain around the gateway's policy checks, and the gateway never asserts a verification verdict that the execution layer can't back with state.
┌──────────────────────────────────────────────────────────┐
│ 1 · APPLICATIONS │
│ ORACULAR scanner · Admin console · Partner APIs │
├──────────────────────────────────────────────────────────┤
│ 2 · GATEWAY — tagit-services │
│ Auth · Orchestration · Agent gateway │
│ api.tagit.network — A2A · MCP · REST /api/v1 · x402 │
├──────────────────────────────────────────────────────────┤
│ 3 · EXECUTION — Base L2 (Base Sepolia, chainId 84532) │
│ TAGITCore · TAGITAccess · TAGITRecovery │
│ TAGITGovernor · TAGITTreasury · TAGITPrograms │
│ 25 contracts + 4 libraries │
├──────────────────────────────────────────────────────────┤
│ 4 · SETTLEMENT — Ethereum L1 │
│ Security backstop · Escrow · Timelocks │
│ Chainlink CCIP — cross-chain messaging │
└──────────────────────────────────────────────────────────┘| Layer | Components | Responsibility |
|---|---|---|
| 1 · Applications | ORACULAR scanner, admin console, partner APIs | Scan/verify UX, asset management, partner integrations |
| 2 · Gateway | tagit-services at api.tagit.network | Auth, orchestration, and the agent gateway — A2A, MCP, REST /api/v1, x402 payments |
| 3 · Execution | Base L2 — Base Sepolia, chainId 84532 today | Asset identity, lifecycle state machine, access control, governance. Data availability via Ethereum blobs today; EigenDA arrives with the dedicated TAGIT L2 (2028 roadmap) |
| 4 · Settlement | Ethereum L1 + Chainlink CCIP | Security backstop, escrow, timelocks; CCIP for cross-chain messaging |
Layer 1 — Applications
The ORACULAR scanner is the consumer-facing app: tap a tag, get a verdict and the asset's provenance timeline. The admin console is where manufacturers and partners mint, bind, and manage assets. Partner APIs let existing POS, ERP, and logistics systems drive the same flows programmatically — including autonomous agents that speak A2A or MCP through the gateway.
Layer 2 — Gateway
tagit-services is the single front door. It authenticates callers, verifies NFC signatures, orchestrates multi-step flows, and exposes the agent gateway at api.tagit.network: A2A for agent-to-agent tasks, MCP for tool-calling clients, REST under /api/v1, and x402 for machine-payable requests. Anything the gateway attests, it derives from chain state — it holds no verification authority of its own.
Layer 3 — Execution
The contract suite — 25 contracts and 4 libraries — is deployed to Base Sepolia (chainId 84532). The six core modules are TAGITCore (ERC-721 digital twins and the 7-state lifecycle machine), TAGITAccess (BIDGES badges and capability gates), TAGITRecovery (lost/stolen recovery), TAGITGovernor, TAGITTreasury, and TAGITPrograms, built on the LifecycleLib, AccessLib, CryptoLib, and EventLib libraries.
Layer 4 — Settlement
As an optimistic rollup, Base settles to Ethereum L1, which acts as the security backstop and hosts escrow and timelock logic. Chainlink CCIP handles cross-chain messaging, so asset state can be attested to other chains without trusting a bespoke bridge.
Network today
| Parameter | Value |
|---|---|
| Network | Base Sepolia (testnet) |
| Chain ID | 84532 |
| Explorer | sepolia.basescan.org |
| Block time | ~2 s |
| Settlement | Ethereum Sepolia (optimistic rollup, ~7-day challenge window) |
Repositories
The platform is developed across 12 repositories in the TAG-IT-NETWORK organization — 6 core and 6 support.
| Repository | Type | Purpose |
|---|---|---|
tagit-contracts | Core | Solidity contract suite (Foundry) — 25 contracts + 4 libraries |
tagit-services | Core | Gateway: auth, orchestration, agent gateway (A2A/MCP/REST/x402) |
tagit-indexer | Core | Goldsky subgraph — event indexing and GraphQL queries |
tagit-bridge | Core | Chainlink CCIP cross-chain adapters |
tagit-security | Core | Audit tooling, Slither configuration, formal verification |
tagit-l2 | Core | Dedicated TAGIT L2 infrastructure (OP Stack) — 2028 roadmap |
tagit-dashboard | Support | Admin console (React/TypeScript) |
tagit-mobile | Support | ORACULAR scanner app |
tagit-sdk | Support | @tagit/sdk — TypeScript SDK |
tagit-hardware | Support | NFC provisioning tools and chip specifications (NTAG 424 DNA) |
tagit-docs | Support | Technical documentation and wiki exports |
tagit-governance | Support | DAO proposal templates, SOPs, policies |
Data flow: anatomy of a verification scan
The core loop of the whole system is a single tap. Here is what happens between the phone touching the tag and the verdict appearing on screen:
NFC tap ──► SUN message ──► gateway verify ──► TAGITCore read/write
──► events ──► Goldsky subgraph ──► app / agent response- NFC scan. The ORACULAR scanner taps an NTAG 424 DNA tag. Each tap produces a fresh SUN (Secure Unique NFC) message — tag UID, a monotonically increasing tap counter, and an AES-128 CMAC — so a captured scan can never be replayed.
- Signature verification. The gateway validates the CMAC against the tag's registered key and rejects any message whose counter does not advance. A cloned tag fails here: copying the tag's static data does not copy the secret key inside the chip.
- On-chain state read/write. The gateway (or a client directly, via viem/ethers) reads
TAGITCoreon Base Sepolia — does the tag hash match the bound asset, what lifecycle state is it in, who owns it? State-changing operations such asclaim(),transferAsset(), orflag()are submitted as transactions, gated by BIDGES capability checks inTAGITAccess. - Indexing. Events emitted by the contracts —
AssetMinted,TagBound,StateChanged— are picked up by the Goldsky subgraph within seconds, keeping provenance history queryable without hammering the RPC. - App response. The verdict and the asset's provenance timeline flow back to the scanner or console. Agents receive the same result over A2A, MCP, or REST through the gateway.
Roadmap: dedicated TAGIT L2
Next steps
- Asset Lifecycle — the 7-state machine in depth
- Smart Contracts — modules, libraries, and interfaces
- Agent API — A2A, MCP, REST, and x402 at
api.tagit.network - NFC Hardware — NTAG 424 DNA and the chip tiers