VRC-20 (DAT)

Reference contracts for VRC-20

These contracts offer ready-to-deploy data token implementations compatible with the VRC-20 specification. They're designed for easy creation and management using the DATFactory, providing a solid foundation for your DataDAO's token with built-in features.

The template contracts (DAT, DATVotes, DATPausable) and the DATFactory itself have consistent addresses on both Vana Mainnet and Moksha Testnet:

  • DAT (Template): 0xA706b93ccED89f13340673889e29F0a5cd84212d
  • DATVotes (Template): 0xaE04c8A77E9B27869eb563720524A9aE0baf1831
  • DATPausable (Template): 0xe69FE86f0B95cC2f8416Fe22815c85DC8887e76e
  • DATFactory: 0x40f8bccF35a75ecef63BC3B1B3E06ffEB9220644

DATFactory

The DATFactory is your go-to contract for launching new VRC-20 compliant Data Autonomy Tokens (DATs). It's an upgradeable factory that deploys different DAT contracts (DAT, DATVotes, DATPausable) and can set up initial vesting schedules for token distributions.

📘

Vesting Details: For an in-depth explanation of how vesting parameters (beneficiary, start, cliff, duration, amount) are used by the factory and the underlying VestingWallet logic, go here.


DAT Token

The DAT token is the standard VRC-20 implementation used as a template by the factory. It's an ERC-20 token that's capped, burnable, and includes an address blocklisting feature controlled by the token admin. This is the DEFAULT type created by the factory.


DATVotes Token

The DATVotes token extends the DAT token template by adding ERC20Votes functionality. This enables on-chain governance, allowing token holders to delegate voting power and participate in proposals. This is the VOTES type created by the factory.

  • Why use it? If your DataDAO needs on-chain voting based on token holdings. It integrates blocklisting with standard voting and permit (ERC2612) features.
  • Key features: All DAT features plus on-chain delegation, vote tracking (current and historical), and ERC2612 permit support. Blocklisted accounts have no voting power.
  • View DATVotes.sol on GitHub

DATPausable Token

The DATPausable token builds on the DATVotes template by incorporating PausableUpgradeable functionality. This allows an administrator to temporarily halt all token transfers and many interactions, serving as an emergency stop. This is the PAUSABLE type created by the factory.

  • Why use it? To have an emergency brake for your token ecosystem, providing a way to mitigate unforeseen issues by temporarily pausing token activity.
  • Key features: All DATVotes features plus admin-controlled pause/unpause for token operations.
  • View DATPausable.sol on GitHub

These reference contracts aim to accelerate development and ensure VRC-20 compliance for DataDAOs within the Vana ecosystem. For detailed function specifications, events, and internal logic, please refer to the source code on GitHub: vana-com/vana-smart-contracts/contracts/dat/.