How do I provide access to my data?

If you’re running a DataDAO and someone wants to access your dataset — great. This guide walks you through how to approve that request securely, by granting data access and approving their compute job on-chain.


🧠 You Approve Two Things

When someone wants to access your DataDAO's data, you’ll typically get:

  1. What data they want (a schema, table, or column in the specific refinerId)
  2. How they plan to process it (a Docker-based compute job — by computeInstructionId)

You’ll approve both with two on-chain calls.

⚠️

Note:

Be thoughtful about who you give access to. You're responsible for protecting your data contributors — especially for sensitive datasets.



📣 Step 1: Make It Easy to Reach You

Don’t forget to share how data consumers can contact you — Telegram, Twitter, Discord handle, etc. This makes it easier for builders and researchers to request access.

You can publish this in your DataDAO’s metadata, on your website, or directly in your schema descriptions.



🪪 Step 2: Grant Access to Your Data

Call this function on the QueryEngine contract:

function addPermission(
  address grantee,
  uint256 refinerId,
  string calldata tableName,
  string calldata columnName,
  uint256 price
)
  • grantee — the wallet address of the data consumer
  • refinerId — your published schema ID
  • tableName / columnName — leave blank for broader access
  • price — amount in $VANA charged per query

Contract: QueryEngine -> 0xd25Eb66EA2452cf3238A2eC6C1FD1B7F5B320490



⚙️ Step 3: Approve Their Compute Job

Each compute job (aka instruction) must also be approved to run on your data — even the default one. You only need to approve each compute job once.

Call this function on the ComputeInstructionRegistry:

function updateComputeInstruction(
  uint256 instructionId,
  uint256 dlpId,
  bool approved
)
  • instructionId — provided by the data consumer
  • dlpId — your DataDAO ID
  • approved — set to true to allow

Contract: ComputeInstructionRegistry -> 0x5786B12b4c6Ba2bFAF0e77Ed30Bf6d32805563A5

💡

Tip

If they’re using the default compute job with instructionId = 1, you still need to approve it once like any other.



✅ That’s It

Once both approvals are on-chain, the data consumer can securely run compute jobs against your dataset using the permissions and logic you’ve approved.

In the current version (v0), you’ll earn $VANA from every query — 80% of the access fee goes directly to your DataDAO treasury. In future versions, that same share will be used to purchase your DataDAO token on-chain, tying revenue directly to your token’s demand.

Have questions or want help setting up default flows? Ping the Vana team in our Builders Discord.