USIC Logo
Loading $USI token data...
Back to Documentation

Smart Contracts

Explore USIC's audited smart contracts deployed on Base network.

Core Contracts

USI Token

ERC-20 token contract for the $USI platform token

0x987603A52d8B966E10FBD29DcB1A574049E25B07View

X402 Payment Processor

Handles micropayment settlements for streaming

0x2345678901234567890123456789012345678901View

USDC Token (Base)

Official USDC token on Base network

0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913View

Uniswap V4 Pool Manager

Uniswap V4 singleton pool manager for token swaps

0x8C4BcBE6b9eF47855f97E675296FA3F6fafa5F1AView

Uniswap V4 State View

Read pool state and liquidity information

0x5d8E2E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8EView

Track Registry

Stores track metadata and ownership information

0x3456789012345678901234567890123456789012View

Token Factory

Deploys new track and profile token contracts for artists

0x4567890123456789012345678901234567890123View

Staking Contract

Handles $USI staking and reward distribution

0x5678901234567890123456789012345678901234View

Contract ABIs

Download the contract ABIs to integrate USIC into your application.

Security & Audits

Audit Reports

All USIC smart contracts have been audited by leading security firms to ensure the safety of user funds.

OpenZeppelin Audit

Core contracts audit - December 2024

View Report

Trail of Bits Audit

X402 protocol audit - January 2025

View Report

Bug Bounty Program

We offer rewards for responsible disclosure of security vulnerabilities. Bounties range from $1,000 to $50,000 depending on severity.

Learn More

Integration Examples

Reading Track Data

import { createPublicClient, http } from 'viem'
import { base } from 'viem/chains'

const client = createPublicClient({
  chain: base,
  transport: http()
})

const trackData = await client.readContract({
  address: '0x3456789012345678901234567890123456789012',
  abi: trackRegistryAbi,
  functionName: 'getTrack',
  args: [trackId]
})

Checking $USI Balance

const balance = await client.readContract({
  address: '0x987603A52d8B966E10FBD29DcB1A574049E25B07',
  abi: erc20Abi,
  functionName: 'balanceOf',
  args: [userAddress]
})

console.log(`Balance: ${formatUnits(balance, 18)} USI`)

Swap Tokens via Uniswap V4

import { executeV4Swap } from '@/lib/web3/uniswap-v4-swap'

const result = await executeV4Swap({
  tokenIn: '0x...', // ETH or USDC
  tokenOut: '0x...', // Profile or track token
  amountIn: parseEther("0.1"),
  slippageTolerance: 0.5, // 0.5%
  walletClient
})

console.log(`Swap complete: ${result.txHash}`)

Check Token Balance for Gating

import { checkTokenBalance } from '@/lib/web3/token-gate'

const hasAccess = await checkTokenBalance(
  userAddress,
  tokenAddress,
  requiredBalance // e.g., 100 tokens
)

if (hasAccess) {
  // Allow free streaming
} else {
  // Require X402 payment
}

Build on USIC

Use our smart contracts to build new features and integrations on top of the USIC platform.