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.

Registries and data access

Compute and Proof of Contribution

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:
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.