Contract Addresses
All deployed contracts on Ethereum Sepolia (V4.3) with Etherscan links.
Sepolia Contracts
All contracts are verified on Etherscan. Chain ID: 11155111
ConfidentialUSDC
ERC-7984Confidential USDC wrapper — wrap, transfer, unwrap
X402PaymentVerifier
x402Nonce registry — payment verification, batch prepayment
AgenticCommerceProtocol
ERC-8183Job escrow — create, fund, submit, complete
AgentIdentityRegistry
ERC-8004Agent registration and wallet linking
AgentReputationRegistry
ERC-8004Proof-of-payment reputation and feedback
Treasury
Protocol fee treasury:
SDK Configuration
config.tstypescript
export const MARC_CONTRACTS = {
chainId: 11155111,
network: "eip155:11155111",
scheme: "fhe-confidential-v1",
// Core
confidentialUSDC: "0xE944754aa70d4924dc5d8E57774CDf21Df5e592D",
x402PaymentVerifier: "0x4503A7aee235aBD10e6064BBa8E14235fdF041f4",
mockUSDC: "0xc89e913676B034f8b38E49f7508803d1cDEC9F4f",
// ERC-8183
agenticCommerceProtocol: "0xBCA8d5ce6D57f36c7aF71954e9F7f86773a02F22",
// ERC-8004
agentIdentityRegistry: "0xf4609D5DB3153717827703C795acb00867b69567",
agentReputationRegistry: "0xd1Dd10990f317802c79077834c75742388959668",
// Treasury
treasury: "0xF505e2E71df58D7244189072008f25f6b6aaE5ae",
} as const;ABIs
Contract ABIs are included in the SDK and also available from Etherscan. Key ABI fragments for direct use:
abi-fragments.tstypescript
// ConfidentialUSDC - minimal ABI
export const CUSDC_ABI = [
"function wrap(address to, uint256 amount)",
"function confidentialTransfer(address to, bytes32 encAmount, bytes inputProof)",
"function confidentialBalanceOf(address) view returns (bytes32)",
"function setOperator(address operator, uint48 until)",
"function isOperator(address holder, address spender) view returns (bool)",
"event ConfidentialTransfer(address indexed from, address indexed to, bytes32 indexed amount)",
];
// X402PaymentVerifier - minimal ABI
export const VERIFIER_ABI = [
"function recordPayment(address server, bytes32 nonce, uint64 minPrice)",
"function recordBatchPayment(address server, bytes32 nonce, uint32 requestCount, uint64 pricePerRequest)",
"function usedNonces(bytes32) view returns (bool)",
"event PaymentVerified(address indexed payer, address indexed server, bytes32 indexed nonce, uint64 minPrice)",
];
// AgentIdentityRegistry - minimal ABI
export const IDENTITY_ABI = [
"function register(string agentURI) returns (uint256)",
"function getAgent(uint256) view returns (string, address, address)",
"function agentOf(address) view returns (uint256)",
"function setAgentWallet(uint256, address)",
];Block Explorer
All contracts are verified and source code is readable on Etherscan:
- Sepolia Etherscan — Contract source, events, read/write functions
- GitHub Repository — Full source code, tests, deployment scripts