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

Contract Addresses

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

Polygon Mainnet Contracts

The following contracts are deployed on Polygon Mainnet and are ready for production use:

Contract Name Address Description
ProductRegistry 0x1234567890abcdef1234567890abcdef12345678 Core registry for product authentication and metadata storage
TransferManager 0x2345678901abcdef2345678901abcdef23456789 Handles ownership transfers and transfer history tracking
TokenContract 0x3456789012abcdef3456789012abcdef34567890 TAG utility token for platform fees and governance
DAOGovernance 0x4567890123abcdef4567890123abcdef45678901 Decentralized governance for protocol upgrades and proposals

Amoy Testnet Contracts

Use these contracts for development and testing. Testnet tokens have no real value.

Contract Name Address Description
ProductRegistry 0xabcdef1234567890abcdef1234567890abcdef12 Core registry for product authentication and metadata storage
TransferManager 0xbcdef1234567890abcdef1234567890abcdef123 Handles ownership transfers and transfer history tracking
TokenContract 0xcdef1234567890abcdef1234567890abcdef1234 TAG utility token for platform fees and governance
DAOGovernance 0xdef1234567890abcdef1234567890abcdef12345 Decentralized governance for protocol upgrades and proposals
Getting Testnet Tokens

To interact with testnet contracts, you'll need testnet MATIC. Get free tokens from the Polygon Amoy Faucet.

Contract Verification

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

For testnet contracts, use Amoy Polygonscan.

Deprecated Contracts

The following contracts are from previous versions and are no longer actively maintained. They are listed here for reference and migration purposes:

Contract Name Address Version Status
ProductRegistry (v1) 0x9876543210fedcba9876543210fedcba98765432 v1.0.0 Deprecated - Migrate to v2
TransferManager (v1) 0x8765432109fedcba8765432109fedcba87654321 v1.0.0 Deprecated - Migrate to v2
Migration Required

If you are using deprecated contracts, please migrate to the latest versions. Deprecated contracts may be paused or have limited functionality. See our migration guide for assistance.

Integrating with Contracts

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

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

// Import contract ABIs (see ABI Reference for full ABIs)
import ProductRegistryABI from './abis/ProductRegistry.json';
import TransferManagerABI from './abis/TransferManager.json';

// Contract addresses (Polygon Mainnet)
const CONTRACTS = {
  productRegistry: '0x1234567890abcdef1234567890abcdef12345678',
  transferManager: '0x2345678901abcdef2345678901abcdef23456789',
  tokenContract: '0x3456789012abcdef3456789012abcdef34567890',
  daoGovernance: '0x4567890123abcdef4567890123abcdef45678901'
};

// Connect to Polygon network
const provider = new ethers.JsonRpcProvider('https://polygon-rpc.com');

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

// For write operations (requires wallet)
const signer = await provider.getSigner();
const productRegistryWithSigner = productRegistry.connect(signer);

// Example: Verify a product
async function verifyProduct(tagId) {
  const productData = await productRegistry.getProduct(tagId);

  return {
    exists: productData.exists,
    owner: productData.owner,
    metadata: productData.metadataURI,
    registrationTime: productData.timestamp
  };
}

// Example: Register a new product (requires signer)
async function registerProduct(tagId, metadataURI) {
  const tx = await productRegistryWithSigner.registerProduct(
    tagId,
    metadataURI
  );

  // Wait for transaction confirmation
  const receipt = await tx.wait();
  console.log('Product registered in block:', receipt.blockNumber);

  return receipt;
}
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...