DACSB Standard Overview

The Digital Assets Custodial Standards Board (DACSB) provides a comprehensive framework for compliant digital securities on blockchain. Our standard ensures regulatory adherence while maintaining flexibility for innovation in the digital asset space.

The DACSB standard is fully compatible with the CMTA Token Standard, extending its capabilities with additional compliance features.

Key Benefits

  • Regulatory-compliant tokenization out of the box
  • Investor verification and accreditation support
  • Transfer restrictions and lock-up periods
  • Document anchoring for legal compliance
  • Upgradeable architecture for future requirements
  • Cross-jurisdictional compliance framework

Architecture

The DACSB standard is built on a modular architecture that separates core token functionality from compliance features, allowing for flexible implementation based on specific regulatory requirements.

Getting Started

Implementing the DACSB standard involves integrating our smart contracts with your token architecture and configuring the compliance parameters for your specific use case.

Prerequisites

  • Node.js (v14+) and npm/yarn installed
  • Basic understanding of Solidity and smart contracts
  • Truffle, Hardhat, or similar development framework
  • Access to an Ethereum-compatible blockchain

Installation

Install the DACSB contracts package via npm:

npm install @dacsb/contracts

Basic Implementation

Here's how to create a basic compliant token:

// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; import "@dacsb/contracts/DACSBToken.sol"; contract MyCompliantToken is DACSBToken { constructor( string memory name, string memory symbol, address admin, address complianceService ) DACSBToken(name, symbol, admin, complianceService) { // Additional initialization if needed } }

Technical Specifications

The DACSB standard builds upon ERC-20 with additional compliance-focused functionality.

Core Specifications

Feature Description Standard
Token Standard ERC-20 compatible with extensions ERC-20
Smart Contract Language Solidity 0.8+ -
Upgrade Pattern Transparent Proxy EIP-1967
Compliance Module Separate service contract DACSB
Document Management IPFS hash anchoring DACSB

Compliance Features

  • Investor Verification: On-chain whitelisting with off-chain validation
  • Transfer Restrictions: Configurable rules based on jurisdiction, investor status, and time
  • Document Binding: Legal documents attached to token transfers
  • Regulatory Reporting: Built-in event logging for compliance reporting
  • Governance: Multi-signature control for compliance parameter updates

Smart Contract Reference

The core DACSB smart contract implements the standard token functionality with compliance hooks.

Core Functions

Function Description Parameters
transfer Modified ERC-20 transfer with compliance checks recipient, amount
transferFrom Modified ERC-20 transferFrom with compliance checks sender, recipient, amount
mint Create new tokens (restricted to admin) account, amount
burn Destroy tokens (restricted to admin) account, amount
setComplianceService Update the compliance service address (admin only) newService

Compliance Functions

Function Description Access
verifyInvestor Check if investor is whitelisted Public
addToWhitelist Add investor to whitelist Compliance Officer
removeFromWhitelist Remove investor from whitelist Compliance Officer
setTransferRestriction Configure transfer rules Compliance Officer
attachDocument Link legal document to token Admin

Compliance Features

DACSB implements comprehensive compliance features designed to meet regulatory requirements across jurisdictions.

Investor Verification

The standard supports multiple levels of investor verification:

  • Basic KYC: Identity verification
  • Accreditation: Proof of investor status
  • Jurisdictional: Geographic restrictions
  • Documentation: Required legal agreements
// Example: Checking investor status function canTransfer(address from, address to, uint256 amount) public view returns (bool) { require(complianceService.isWhitelisted(from), "Sender not verified"); require(complianceService.isWhitelisted(to), "Recipient not verified"); require(complianceService.checkJurisdiction(to), "Jurisdictional restriction"); return true; }

Transfer Restrictions

Configurable transfer rules can be set based on:

  • Investor accreditation status
  • Geographic jurisdiction
  • Lock-up periods
  • Maximum transfer amounts
  • Cooling-off periods between transfers
Important: Transfer restrictions must be carefully configured to match your offering's regulatory requirements. Consult legal counsel before deployment.

Integration Guide

Integrate DACSB with your existing systems and third-party services.

KYC/AML Providers

DACSB is compatible with major KYC/AML providers through our standardized interface:

interface IKYCProvider { function verifyInvestor(address investor, bytes calldata data) external returns (bool); function getInvestorStatus(address investor) external view returns (uint8); function updateJurisdiction(address investor, string calldata countryCode) external; }

Custodian Integration

For institutional custody solutions, implement the ICustodian interface:

interface ICustodian { function custodyTransfer(address from, address to, uint256 amount) external; function getCustodiedBalance(address investor) external view returns (uint256); function releaseFromCustody(address investor, uint256 amount) external; }

Regulatory Reporting

DACSB emits comprehensive events for regulatory reporting:

  • Transfer events with compliance metadata
  • Investor status changes
  • Document attachments
  • Compliance rule updates

API Reference

The DACSB standard includes a comprehensive API for integration with frontends and backend systems.

JavaScript SDK

Install the DACSB JavaScript SDK:

npm install @dacsb/sdk

Basic Usage

import { DACSBClient } from '@dacsb/sdk'; const client = new DACSBClient({ network: 'mainnet', // or 'testnet' contractAddress: '0x...', provider: window.ethereum // or other Web3 provider }); // Check investor status const isVerified = await client.checkInvestorStatus('0xInvestorAddress'); // Execute compliant transfer const tx = await client.transfer({ from: '0xSender', to: '0xRecipient', amount: '1000000000000000000', // 1 token documentHash: 'Qm...' // Optional IPFS hash });

REST API

For server-side integration, use the DACSB REST API:

Endpoint Method Description
/api/v1/investors POST Register new investor
/api/v1/investors/{address} GET Get investor status
/api/v1/transfers POST Submit transfer request
/api/v1/compliance/rules GET Get compliance rules

Frequently Asked Questions

General Questions

What is the difference between DACSB and CMTA standards?

DACSB extends the CMTA standard with additional compliance features and a more flexible architecture. While CMTA provides a solid foundation for security tokens, DACSB adds comprehensive transfer controls, document management, and regulatory reporting capabilities.

Is DACSB compatible with ERC-20 wallets and exchanges?

Yes, DACSB tokens are fully ERC-20 compatible at the basic level. However, compliance features may restrict certain operations based on configured rules. Exchanges need to integrate with our compliance API to properly handle DACSB tokens.

Technical Questions

How do upgradeable contracts work in DACSB?

DACSB uses the Transparent Proxy Pattern (EIP-1967) for upgradeability. The logic contract can be updated while maintaining the same storage layout, with upgrades controlled by a multi-signature governance contract.

Can I use DACSB with non-EVM blockchains?

Currently, DACSB is implemented for EVM-compatible blockchains. We're working on implementations for other chains, but for now you'll need to use an EVM-compatible network like Ethereum, Polygon, or Avalanche.

Compliance Questions

Does DACSB ensure my token offering is fully compliant?

While DACSB provides the technical framework for compliance, you must still configure it properly for your specific jurisdiction and security type. We recommend consulting with legal counsel to ensure your implementation meets all regulatory requirements.

How are jurisdictional restrictions implemented?

DACSB supports geographic restrictions through IP-based verification, wallet attestations, or integration with KYC providers that offer jurisdiction verification. The specific implementation depends on your compliance requirements.