Skip to main content
This page lists contract addresses for DLP and data application contracts. The same addresses apply on Moksha (testnet) and Mainnet. For data portability, staking, chain utilities (e.g. Multicall3), ABIs, and chain details, see Core contracts.

DLP template contracts (DAT)

Use these templates to deploy VRC-20–compatible data tokens (DATs). DATFactory deploys new token instances from the DAT implementation. Optional extensions (DATPausable, DATVotes) exist as separate templates.
ContractPurposeAddress
DATBase Data Access Token implementation (ERC-20 compatible, upgradeable)0xA706b93ccED89f13340673889e29F0a5cd84212d
DATFactoryDeploys new DAT instances (and optional DATVotes/DATPausable)0x40f8bccF35a75ecef63BC3B1B3E06ffEB9220644
DATPausableTemplate for pausable DAT extensions0xe69FE86f0B95cC2f8416Fe22815c85DC8887e76e
DATVotesTemplate for vote-delegation (governance) extensions0xaE04c8A77E9B27869eb563720524A9aE0baf1831

Registries and data access

ContractAddress
DataRegistry0x8C8788f98385F6ba1adD4234e551ABba0f82Cb7C
DataRefinerRegistry0x93c3EF89369fDcf08Be159D9DeF0F18AB6Be008c
QueryEngine0xd25Eb66EA2452cf3238A2eC6C1FD1B7F5B320490
VanaTreasury0x94a1E56e555ac48d092f490fB10CDFaB434915eD

Compute and Proof of Contribution

ContractAddress
ComputeInstructionRegistry0x5786B12b4c6Ba2bFAF0e77Ed30Bf6d32805563A5
ComputeEngine0xb2BFe33FA420c45F1Cf1287542ad81ae935447bd
TeePool (deprecated)0x3c92fD91639b41f13338CE62f19131e7d19eaa0D
TeePoolPhala0xE8EC6BD73b23Ad40E6B9a6f4bD343FAc411bD99A
TeePool (ephemeral-standard)0xe124bae846D5ec157f75Bd9e68ca87C4d2AB835A
TeePool (persistent-standard)0xe8bB8d0629651Cf33e0845d743976Dc1f0971d76
TeePool (persistent-gpu)0x1c346Cd74f8551f8fa13f3F4b6b8dAE22338E6a9
TeePool (dedicated-standard)0xf024b7ac5E8417416f53B41ecfa58C8e9396687d
TeePool (dedicated-gpu)0xB1686FA9620bBf851714d1cB47b8a4Bf4664644E

Using these contracts

Deploy a token via DATFactory

Deploy a new VRC-20 token for your DataDAO by calling DATFactory’s createToken(params) from the block explorer—no local setup required. One transaction deploys the token, creates vesting wallets for each schedule, and mints tokens. Parameters: datType (0 = default with blocklisting, 1 = governance/Votes, 2 = Pausable; use 1 for DataDAOs), name, symbol, owner, cap (max supply, 18 decimals), schedules (array of vesting params), salt (use 0x00...00 unless you need a specific address). Per vesting schedule: beneficiary (address), start (Unix timestamp), cliff and duration (seconds), amount (tokens, 18 decimals). Example schedules:
[
  { "beneficiary": "0x...", "start": 1717977600, "cliff": 15778463, "duration": 31556926, "amount": "500000000000000000000000" },
  { "beneficiary": "0x...", "start": 1717977600, "cliff": 15778463, "duration": 63113852, "amount": "250000000000000000000000" }
]
Steps: In the block explorer, open DATFactory at the address above, go to Write as Proxy, connect your wallet, and call createToken with your params. In the transaction logs, find DATCreated for the new token address and VestingWalletCreated for each vesting contract. Then associate the token with your DataDAO (DLP quickstart).

Grant data access

To let a developer or researcher query your dataset, grant two on-chain permissions:
  1. Data permission — On QueryEngine, call addPermission(grantee, refinerId, tableName, columnName, price). Use the consumer’s wallet as grantee, your dataset’s refinerId, and leave tableName and columnName blank for full-dataset access. Set price in $VANA per query.
  2. Compute permission — On ComputeInstructionRegistry, call updateComputeInstruction(instructionId, dlpId, true) with the consumer’s computeInstructionId and your DataDAO’s dlpId. You approve each instruction once per DataDAO; after that, any user with data permission can use it. The default instruction (e.g. mainnet 3, Moksha 40) must also be approved once.
Under the current model, 80% of the query fee goes to your DataDAO treasury.

Notes

  • Only the DLP template contracts (DAT) section above uses shared templates and a factory; those addresses are not individual pool tokens. For a specific DataDAO’s token address, use that DataDAO’s configuration or the block explorer. The registries, QueryEngine, ComputeEngine, TeePools, and other addresses are live contract deployments.
  • Fetch current ABIs from the block explorer or the official Vana deployment repository.
  • Default computeInstructionId values differ by chain (e.g. mainnet 3, Moksha 40). For full query and compute flows, see Proof of Contribution.