Features Solutions Technology Tokenomics Docs About Launch App
Docs / Smart Contracts / Contract Addresses

Contract Addresses

All TAG IT smart contracts are verified and open source. Find the official addresses below.

Base Sepolia Testnet Contracts

TAG IT Network's smart contracts are live on Base Sepolia (chainId 84532). The addresses below are the upgradeable proxies that consumers should interact with. All contracts are verified on BaseScan.

Contract Name Address Description
TAGITCore 0x3aDc7EFDb58Ae85483eFf5D4966D916185f31d1D Core Digital Twin NFT — manages the asset lifecycle, NFC binding, and verification
TAGITAccess 0xb56A1D91995C212342FaA843468F03521340A1D6 BIDGES access control — identity badges and per-capability permissions
IdentityBadge 0xebdAC9A0663c02a7297681b078aaD893EF345030 Soulbound identity badges (KYC, manufacturer, gov/mil)
CapabilityBadge 0xb05d22706B08A3F6409601de520cf7A6dbCB573d Per-capability permission badges
TAGITToken 0x5f98B83cD7Aef769cc51D2FB739BA49D561170DE TAGIT utility token (ERC-20 + ERC20Votes) for fees and governance
TAGITStaking 0xB22F5688559D07e3a12DBB89f0481b967407F267 Token staking for enterprise features and network security
TAGITGovernor 0xCF67DF870EccBB7838c3ab7876467c89d84dce89 DAO governance for protocol upgrades and proposals
TAGITTreasury 0xa4a3720d705334f409DD24836CC75d642125f759 Protocol treasury
TimelockController 0xfdA2478dB73064eF770f4e5E5b97BC83801126e1 Owner of upgradeable proxies — enforces a governance delay on upgrades
TAGITRecovery 0x6BC3C69367E586810A3B317fA9F0406504e95866 Asset Identity Recovery Protocol (flag, quarantine, resolve)
TAGITPaymaster 0x6fFFa92efb419E812d5c9C9D0c1B1a0f5c6fFd1C ERC-4337 paymaster for gasless transactions
Getting Testnet Tokens

To interact with the testnet contracts, you'll need Base Sepolia ETH for gas. Get free tokens from the Base Sepolia Faucet.

Base Mainnet

Base Mainnet (chainId 8453) deployment is planned for after the DAO launch and is not yet live. Production addresses will be published here once deployed and audited.

Contract Verification

All TAG IT contracts are verified on BaseScan. You can view the source code, read contract state, and interact with contracts directly:

Archived Deployments

TAG IT previously deployed to OP Sepolia and Arbitrum Sepolia. Those deployments were deprecated on 2026-06-27 when Base Sepolia became the canonical home. The historical addresses are retained in the tagit-contracts repository for reference; do not use them for new integrations.

Use Base Sepolia

If you are still pointing at the deprecated OP Sepolia or Arbitrum Sepolia deployments, migrate to the Base Sepolia addresses above. The OP/Arbitrum contracts are no longer maintained.

Integrating with Contracts

Here's how to connect to TAG IT contracts on Base Sepolia using ethers.js:

// Import ethers.js
import { ethers } from 'ethers';

// Import contract ABIs (see ABI Reference for full ABIs)
import TAGITCoreABI from './abis/TAGITCore.json';
import TAGITAccessABI from './abis/TAGITAccess.json';

// Contract addresses (Base Sepolia, chainId 84532)
const CONTRACTS = {
  tagitCore: '0x3aDc7EFDb58Ae85483eFf5D4966D916185f31d1D',
  tagitAccess: '0xb56A1D91995C212342FaA843468F03521340A1D6',
  tagitToken: '0x5f98B83cD7Aef769cc51D2FB739BA49D561170DE',
  tagitGovernor: '0xCF67DF870EccBB7838c3ab7876467c89d84dce89'
};

// Connect to Base Sepolia
const provider = new ethers.JsonRpcProvider('https://sepolia.base.org');

// For read-only operations
const tagitCore = new ethers.Contract(
  CONTRACTS.tagitCore,
  TAGITCoreABI,
  provider
);

// Example: read an asset's owner, timestamp and lifecycle state.
// getAsset returns a 5-field tuple; state is the lifecycle enum 0-6.
async function readAsset(tokenId) {
  const [assetOwner, timestamp, state, flags, reserved] =
    await tagitCore.getAsset(tokenId);

  return { assetOwner, timestamp, state, flags, reserved };
}

// Example: resolve a physical tag to its token.
// tagHash is keccak256 of the chip's raw 7-byte UID.
async function tokenForTag(tagHash) {
  return await tagitCore.getTokenByTag(tagHash);
}
Reads are open, writes are not

Every call above is a free view read over any public Base Sepolia RPC — no key, no wallet, no signup. State-changing functions (mint, bindTag, activate, claim, flag, resolve, recycle) are gated on a BIDGES capability badge and are not callable by arbitrary addresses; transferAsset is owner-gated instead. See the ABI Reference for the full surface.

Using the SDK

For a simpler integration experience, consider using our JavaScript SDK which handles contract interactions, error handling, and event subscriptions automatically.

Edit this page on GitHub
Type to search documentation...