Contracts

Base mainnet deployment report and verification guide for Syntrophic smart contracts.

Date: March 22-23, 2026 (CDT/UTC)Network: Base Mainnet (Chain ID 8453)Agent ID: 32055

1) What We Built and Deployed

  • ERC8004RegistryAdapter (writes syntrophic metadata)
    Address: 0x63DCE10906BB3D3C8280A3fa578594D261C4b804
  • SRPVault (bonding/staking logic)
    Address: 0xb3E75c11957a23F9A8DF2A2eB59513832c8d1248
  • ERC-8004 Registry: 0x8004A169FB4a3325136EB29fA0ceB6D2e539a432
    BaseScan read proxy: Open Read Contract
  • Bond amount configured in vault: 0.00001 ETH (10000000000000 wei)

2) Mainnet Transactions Executed

Deployment and wiring:
First live bond:
Authorization + metadata backfill:

3) Current On-Chain State (Expected)

Vault:
  • isBonded(32055) = true
  • getBondStatus(32055) shows staker 0x5deb87fF19BBeCFc9928eD5B3801736AfFB4359D, amount 10000000000000, score 100.
ERC-8004 metadata keys:
  • syntrophic.status = 0x424f4e444544 (BONDED)
  • syntrophic.score = 100
  • syntrophic.reviewCount = 0
  • syntrophic.updatedAt = 1774233303 (2026-03-23 02:35:03 UTC)
  • syntrophic.validator = 0xb3E75c11957a23F9A8DF2A2eB59513832c8d1248

4) How to Verify On-Chain (UI)

  1. Open ERC-8004 registry read page: Read Proxy Contract
  2. Run getMetadata(uint256,string) with agentId=32055 for:
    syntrophic.status
    syntrophic.score
    syntrophic.reviewCount
    syntrophic.updatedAt
    syntrophic.validator
  3. Optional vault checks: SRPVault Read Contract and call isBonded(32055) and getBondStatus(32055).

5) How to Verify On-Chain (CLI)

cast call 0x8004A169FB4a3325136EB29fA0ceB6D2e539a432 "getMetadata(uint256,string)(bytes)" 32055 "syntrophic.status" --rpc-url https://mainnet.base.org
cast call 0x8004A169FB4a3325136EB29fA0ceB6D2e539a432 "getMetadata(uint256,string)(bytes)" 32055 "syntrophic.score" --rpc-url https://mainnet.base.org
cast call 0x8004A169FB4a3325136EB29fA0ceB6D2e539a432 "getMetadata(uint256,string)(bytes)" 32055 "syntrophic.reviewCount" --rpc-url https://mainnet.base.org
cast call 0x8004A169FB4a3325136EB29fA0ceB6D2e539a432 "getMetadata(uint256,string)(bytes)" 32055 "syntrophic.updatedAt" --rpc-url https://mainnet.base.org
cast call 0x8004A169FB4a3325136EB29fA0ceB6D2e539a432 "getMetadata(uint256,string)(bytes)" 32055 "syntrophic.validator" --rpc-url https://mainnet.base.org

cast --to-ascii 0x424f4e444544
cast --to-dec 0x0000000000000000000000000000000000000000000000000000000000000064
cast --to-dec 0x0000000000000000000000000000000000000000000000000000000069c0a6d7
cast parse-bytes32-address 0x000000000000000000000000b3e75c11957a23f9a8df2a2eb59513832c8d1248

6) Note on Agent Scanner UI

You may not immediately see syntrophic.* labels rendered in scanner UIs due to indexer/parser timing. BaseScan read calls are the source of truth for on-chain state.