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.