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.
- Why use it? Quickly deploy VRC-20 tokens for your DataDAO with options for governance, pausable functionality, and vesting, all without deep smart contract development.
- Key features: Creates token clones, manages vesting wallets, offers deterministic address deployment.
- View
DATFactoryImplementation.sol
on GitHub - View
DATFactoryProxy.sol
on GitHub - View
IDATFactory.sol
(Interface) on GitHub
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.
- Why use it? For a straightforward, secure VRC-20 token with the ability to restrict malicious actors via a blocklist.
- Key features: Standard ERC-20, capped supply, burnable, admin-controlled address blocklisting.
- View
DAT.sol
on GitHub - View
IDAT.sol
(Interface) on GitHub
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/
.
Updated 1 day ago