Skip to Content
⚠️ Alert: Sylan is under active development—only trust contract/wallet addresses announced on our official channels; we will never DM you, ask for funds, or run surprise airdrops/presales.
ArchitectureAddresses & ABIs

Addresses & ABIs

This page is the source of truth for contract addresses and the minimal ABIs your dashboards/SDKs need. Addresses are grouped by network; ABIs are stable across networks. Full admin surfaces live in the Contracts section.

⚠️ Always verify checksummed addresses on the official explorer and announcements. Core contracts are UUPS‑upgradeableuse the proxy address (listed here), not the implementation.


Networks

NetworkChain IDExplorer
Local (Anvil/Hardhat)31337
Polygon Amoy (Testnet)80002https://amoy.polygonscan.com 
Polygon Mainnet137https://polygonscan.com 

We’ll update addresses below as deployments happen (Testnet → Mainnet). If a value is , it has not been published yet.


Addresses

Polygon Amoy (80002)

ContractAddress
AccessRegistry (proxy)0xda70c416Ef9fbc86719AfD9aEDb0EE43263aCd97
APIEscrow (proxy)0xfd685eFeeB6E69358Cf87c9c5Bf41E56154461B1
APIConsensus (proxy)0x81B78B79775C04F5c30DfBC17d9710EA5C3CB166
NodeRegistry (proxy)0x4253705abB8026dB083afCC032993BdfF852e09C
EventLogger (proxy)0x6AF18184985b9e7B255dc63A6D256d155618bF96
SylanToken (ERC‑20)0xCF922Aa372c087006cd2739689450bE4cc226bB7
SylanStaking (proxy)0x4aB06cCD3B87A21452E39b626529737Cf1a0bC1D
SylanVesting (non‑upgradeable)
PresaleContract (proxy)

Amoy admin notes: Deployer/owner: 0xA39333C781d3CE1f1c7C257B21DCB834d110F02F. Treasury: 0xd0ea998198a3b40308c65fbbbd5bec7f9442e62e. Token: Sylan Test Token (SYLt), 100,000,000 initial supply.

Polygon Mainnet (137)

ContractAddress
AccessRegistry (proxy)
APIEscrow (proxy)
APIConsensus (proxy)
NodeRegistry (proxy)
EventLogger (proxy)
SylanToken (ERC‑20)0xB9fFd177aea2Adb02ec26937734877A1Ab27e14B
SylanStaking (proxy)
SylanVesting (non‑upgradeable)0xdFF3643975E51E8D56DF91899c423c71e630BD23
PresaleContract (proxy)0x89b47d19000A96Cf15ad4ACF3158F9f77C7fBC76

Mainnet notes: Owner/DEFAULT_ADMIN_ROLE: 0x34889585E2CEb652419BB8424894e0072E375Ee1 (OWNER Safe). SylanToken logic: 0x3378c86d9fD137F2dB7a428e794e6Fbe96d1D5eF; MINTER_ROLE granted to PresaleContract proxy. PresaleContract logic: 0x23CE77a90Ff43Dfa627275997ed4FBd6Cb38d579; payment token USDC 0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359; sale token 0xB9fFd177aea2Adb02ec26937734877A1Ab27e14B; mintOnClaim = true. SylanVesting owner: same OWNER Safe.

Tip: When verifying a proxy, look for the EIP‑1967 implementation slot on the explorer to view the current logic address. Your dapp should call the proxy address.


Minimal ABIs (for dapps/SDKs)

These ABIs cover the common read/write calls used by the marketplace UI. Admin/governance methods are documented on each contract’s page under Contracts.

ERC‑20 (SYL)

[ {"type":"function","stateMutability":"view","name":"decimals","inputs":[],"outputs":[{"type":"uint8"}]}, {"type":"function","stateMutability":"view","name":"symbol","inputs":[],"outputs":[{"type":"string"}]}, {"type":"function","stateMutability":"view","name":"balanceOf","inputs":[{"name":"account","type":"address"}],"outputs":[{"type":"uint256"}]}, {"type":"function","stateMutability":"view","name":"allowance","inputs":[{"name":"owner","type":"address"},{"name":"spender","type":"address"}],"outputs":[{"type":"uint256"}]}, {"type":"function","stateMutability":"nonpayable","name":"approve","inputs":[{"name":"spender","type":"address"},{"name":"value","type":"uint256"}],"outputs":[{"type":"bool"}]} ]

AccessRegistry (reads used by clients)

[ {"type":"function","stateMutability":"view","name":"descriptorOf","inputs":[{"name":"apiId","type":"bytes32"}],"outputs":[{"type":"tuple","components":[ {"name":"uri","type":"string"}, {"name":"contentHash","type":"bytes32"}, {"name":"updatedAt","type":"uint64"}, {"name":"version","type":"uint32"} ]}]}, {"type":"function","stateMutability":"view","name":"apiPlan","inputs":[{"name":"apiId","type":"bytes32"}],"outputs":[{"type":"tuple","components":[ {"name":"accessType","type":"uint8"}, {"name":"price","type":"uint256"}, {"name":"duration","type":"uint256"}, {"name":"callLimit","type":"uint256"}, {"name":"active","type":"bool"} ]}]}, {"type":"function","stateMutability":"view","name":"consensusParams","inputs":[{"name":"apiId","type":"bytes32"}],"outputs":[{"type":"tuple","components":[ {"name":"seqMonotonic","type":"bool"}, {"name":"maxSkewMs","type":"uint64"}, {"name":"maxTtlMs","type":"uint64"}, {"name":"providerSigner","type":"address"} ]}]}, {"type":"function","stateMutability":"view","name":"providerSignerOf","inputs":[{"name":"apiId","type":"bytes32"}],"outputs":[{"type":"address"}]}, {"type":"function","stateMutability":"view","name":"seqMonotonic","inputs":[{"name":"apiId","type":"bytes32"}],"outputs":[{"type":"bool"}]}, {"type":"function","stateMutability":"view","name":"maxSkewMs","inputs":[{"name":"apiId","type":"bytes32"}],"outputs":[{"type":"uint64"}]}, {"type":"function","stateMutability":"view","name":"maxTtlMs","inputs":[{"name":"apiId","type":"bytes32"}],"outputs":[{"type":"uint64"}]}, {"type":"function","stateMutability":"view","name":"isApiActive","inputs":[{"name":"apiId","type":"bytes32"}],"outputs":[{"type":"bool"}]}, {"type":"function","stateMutability":"view","name":"consumerNonce","inputs":[{"name":"consumer","type":"address"},{"name":"apiId","type":"bytes32"}],"outputs":[{"type":"uint256"}]} ]

APIEscrow (PPC & Subscription surface)

[ {"type":"function","stateMutability":"nonpayable","name":"lockForCall","inputs":[ {"name":"apiId","type":"bytes32"}, {"name":"requestHash","type":"bytes32"}, {"name":"expiresAtMs","type":"uint64"} ],"outputs":[{"type":"bytes32"}]}, {"type":"function","stateMutability":"nonpayable","name":"purchaseSubscription","inputs":[{"name":"apiId","type":"bytes32"}],"outputs":[]}, {"type":"function","stateMutability":"view","name":"withdrawableOf","inputs":[{"name":"account","type":"address"}],"outputs":[{"type":"uint256"}]}, {"type":"function","stateMutability":"nonpayable","name":"withdraw","inputs":[],"outputs":[]} ]

APIConsensus (submit & finalize)

[ {"type":"function","stateMutability":"nonpayable","name":"submitSnapshot","inputs":[ {"name":"requestId","type":"bytes32"}, {"name":"snapshot","type":"tuple","components":[ {"name":"apiId","type":"bytes32"}, {"name":"seqNo","type":"uint256"}, {"name":"providerTs","type":"uint64"}, {"name":"ttl","type":"uint64"}, {"name":"contentHash","type":"bytes32"} ]}, {"name":"providerSig","type":"bytes"}, {"name":"pointerURI","type":"string"} ],"outputs":[]}, {"type":"function","stateMutability":"nonpayable","name":"finalize","inputs":[{"name":"requestId","type":"bytes32"}],"outputs":[]} ]

NodeRegistry (essentials)

[ {"type":"function","stateMutability":"view","name":"isActive","inputs":[{"name":"node","type":"address"}],"outputs":[{"type":"bool"}]}, {"type":"function","stateMutability":"nonpayable","name":"stake","inputs":[{"name":"amount","type":"uint256"}],"outputs":[]}, {"type":"function","stateMutability":"nonpayable","name":"unstake","inputs":[{"name":"amount","type":"uint256"}],"outputs":[]} ]

EventLogger (read surface)

[ {"type":"event","name":"Logged","inputs":[ {"name":"tag","type":"bytes32","indexed":true}, {"name":"emitter","type":"address","indexed":true}, {"name":"data","type":"bytes","indexed":false} ]} ]

Importing in viem/Wagmi (example)

import type { Address } from 'viem' import { erc20Abi } from 'viem' import accessRegistryAbi from './abis/accessRegistry.min.json' import apiEscrowAbi from './abis/apiEscrow.min.json' import apiConsensusAbi from './abis/apiConsensus.min.json' export const addresses = { 80002: { // Polygon Amoy AccessRegistry: '0xda70c416Ef9fbc86719AfD9aEDb0EE43263aCd97', APIEscrow: '0xfd685eFeeB6E69358Cf87c9c5Bf41E56154461B1', APIConsensus: '0x81B78B79775C04F5c30DfBC17d9710EA5C3CB166', NodeRegistry: '0x4253705abB8026dB083afCC032993BdfF852e09C', EventLogger: '0x6AF18184985b9e7B255dc63A6D256d155618bF96', SylanToken: '0xCF922Aa372c087006cd2739689450bE4cc226bB7', SylanStaking: '0x4aB06cCD3B87A21452E39b626529737Cf1a0bC1D', }, 137: { // Polygon Mainnet SylanToken: '0xB9fFd177aea2Adb02ec26937734877A1Ab27e14B', PresaleContract: '0x89b47d19000A96Cf15ad4ACF3158F9f77C7fBC76', SylanVesting: '0xdFF3643975E51E8D56DF91899c423c71e630BD23', }, } satisfies Record<number, Record<string, Address>>

Verification checklist (before publishing)

  • Addresses are checksummed and match explorer pages.
  • Proxies verified; implementation address visible via EIP‑1967 slot.
  • ABI JSONs match deployed bytecode (no stale build).
  • Networks table updated (Testnet → Mainnet).
  • Changelog entry created in Deploy → Verifications.

Out of scope for this page

  • Event signatures → Architecture → Events
  • Admin/governance methods → Contracts pages per contract
  • How to deploy/verify → Deploy section
Last updated on