Documentation Index
Fetch the complete documentation index at: https://docs.vana.org/llms.txt
Use this file to discover all available pages before exploring further.
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.
| Contract | Purpose | Address |
|---|
| DAT | Base Data Access Token implementation (ERC-20 compatible, upgradeable) | 0xA706b93ccED89f13340673889e29F0a5cd84212d |
| DATFactory | Deploys new DAT instances (and optional DATVotes/DATPausable) | 0x40f8bccF35a75ecef63BC3B1B3E06ffEB9220644 |
| DATPausable | Template for pausable DAT extensions | 0xe69FE86f0B95cC2f8416Fe22815c85DC8887e76e |
| DATVotes | Template for vote-delegation (governance) extensions | 0xaE04c8A77E9B27869eb563720524A9aE0baf1831 |
Registries and data access
| Contract | Address |
|---|
| DataRegistry | 0x8C8788f98385F6ba1adD4234e551ABba0f82Cb7C |
| DataRefinerRegistry | 0x93c3EF89369fDcf08Be159D9DeF0F18AB6Be008c |
| QueryEngine | 0xd25Eb66EA2452cf3238A2eC6C1FD1B7F5B320490 |
| VanaTreasury | 0x94a1E56e555ac48d092f490fB10CDFaB434915eD |
Compute and Proof of Contribution
| Contract | Address |
|---|
| ComputeInstructionRegistry | 0x5786B12b4c6Ba2bFAF0e77Ed30Bf6d32805563A5 |
| ComputeEngine | 0xb2BFe33FA420c45F1Cf1287542ad81ae935447bd |
| TeePool (deprecated) | 0x3c92fD91639b41f13338CE62f19131e7d19eaa0D |
| TeePoolPhala | 0xE8EC6BD73b23Ad40E6B9a6f4bD343FAc411bD99A |
| 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:
- 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.
- 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.