Contract Addresses
Where the XnY Protocol contracts are deployed on Base and Base Sepolia, which of them are live on each network, and what each one holds.
These are the addresses the deploy scripts wrote and the off-chain stack reads. They are generated from the deployment manifests in the protocol repository, so a redeployment moves this page rather than leaving it behind.
Not every contract is live on every network. Base has three — DidRegistry, FrontierRegistry and ContributionFingerprintRegistry — and six that are not deployed there: DidBoundAccountRegistry, DidBoundAccount, DatasetVersionRegistry, OwnershipRegistry, RoyaltyEngine and GrantAnchorRegistry. Base Sepolia has all nine. A contract with no deployment is marked as such below rather than shown as an address, and the zero address is never a contract you can call.
Base
Chain ID 8453. 3 of 9 deployed.
| Contract | Address |
|---|---|
| DidRegistry | 0xf73eD23b998b3987503F4F4Ba4eAb85386ebfCC4 |
| DidBoundAccountRegistry | Not deployed |
| DidBoundAccount beacon | Not deployed |
| FrontierRegistry | 0x7Bc9DCBd6a0fdc7C8d69581d973eBD970cdBD7Fe |
| ContributionFingerprintRegistry | 0x13ba76AF87406884ab9E35cd01cA9D69958f9D49 |
| DatasetVersionRegistry | Not deployed |
| OwnershipRegistry | Not deployed |
| RoyaltyEngine | Not deployed |
| GrantAnchorRegistry | Not deployed |
Base Sepolia
Chain ID 84532. 9 of 9 deployed.
| Contract | Address |
|---|---|
| DidRegistry | 0x49bc9d93B52367b9Fc173C5bA206d0202A89643a |
| DidBoundAccountRegistry | 0xB3855ab28E36208A00ba957b4148EEEe9Ea7E783 |
| DidBoundAccount beacon | 0xD77A6F2f7f6c3446Efa37A79DB2B20d066854Af9 |
| FrontierRegistry | 0x7E4a5835bb3C4eca7850850A8B91F933ae96E43E |
| ContributionFingerprintRegistry | 0x807baCABEDFF64313F86EE41a00C566462C8b6Fc |
| DatasetVersionRegistry | 0x901a624FA56c2168e2D370d0F0Aa5BbA5a22dC13 |
| OwnershipRegistry | 0xf994bb70f4F038227592EfdC89046c0cfa381897 |
| RoyaltyEngine | 0x726F93FFdCc757519644DE6eE72607b0D680f078 |
| GrantAnchorRegistry | 0x6631BD982a85DA2a2ECd3b5C2a60E03e2E5a673A |
What each one holds
| Contract | What it holds |
|---|---|
| DidRegistry | Identity records every other contract resolves a DID against. |
| DidBoundAccountRegistry | Creates and tracks the account bound to a DID. |
| DidBoundAccount beacon | The upgradeable beacon every DID-bound account reads its implementation from. |
| FrontierRegistry | Frontiers, campaigns and tasks — the hierarchy work is submitted against. |
| ContributionFingerprintRegistry | Anchors a contribution fingerprint to a task and a contributor DID. |
| DatasetVersionRegistry | Assembled dataset versions and the fingerprints each one drew on. |
| OwnershipRegistry | ERC-1155 ownership shares in a dataset version. |
| RoyaltyEngine | Takes a deposit in an admitted currency and accounts it against those shares. |
| GrantAnchorRegistry | On-chain record of an access grant and its revocation. |
Reading an address
Each contract above has one address per network where it is deployed, and that address is a stable entry point rather than a snapshot of code. Seven of the nine are UUPS proxies: the address survives an upgrade while the implementation behind it changes, so follow the proxy on the block explorer to reach the implementation currently in use. DidBoundAccount is the exception in shape — that address is the upgradeable beacon every DID-bound account reads its implementation from, so it is neither an account nor the implementation itself.
DidRegistry is deployed outside this protocol's repository, which holds only its interface. The address is the one the other contracts resolve DIDs against, and its upgrade and ownership arrangements are not governed by the rules the rest of this page describes.
Transactions against any of these are paid in ETH, as on any EVM chain. None of
them charges $XNY — see Token Utility
for what the token does and does not do, and
Architecture for how the contracts fit
together.
Copy an address from this page rather than from a search result or a message.
Last updated