SINAI STANDARD

Compliance Guides

Common compliance patterns using the Sinai Standard SDK

Compliance Guides

Step-by-step guides for common regulatory patterns. Each guide shows how to configure the SDK for a specific compliance scenario.

Patterns

PatternUse Case
KYC-Only TokenOnly verified investors can hold or transfer
Taxed TokenCollect a fee on every transfer
Hold PeriodMandatory lock-up before transfers
Max BalancePer-wallet balance caps for concentration limits
Confidential TransfersPrivacy-preserving transfers with auditor access
Full ComplianceKYC + Tax + Hold + Max Balance via Router Hook
DenylistBlock sanctioned addresses
Pause & FreezeEmergency controls

Initialization Order

When setting up a new compliant token, follow this order:

  1. Create token via AksumKit.createToken()
  2. Initialize hook configs (AllowlistRegistry, TaxConfig, HoldConfig, MaxBalanceConfig, RouterConfig)
  3. Initialize ExtraAccountMetas for each hook (required for TransferHook CPI)
  4. Configure hooks (add wallets, set rates, record acquisitions)
  5. Mint supply and distribute to investor ATAs

Critical: ExtraAccountMetas must be initialized before any transfer_checked call, or the transaction will fail.

Limits

LimitValueNotes
Wallets per addWallets batch20Multiple batches supported
Total wallets in AllowlistRegistry~300CPI 10KB account limit
Tax rate maxConfigurable via maxTaxBpsHard cap set at creation
Hold periodAny positive i64 secondsTypically 30–365 days
Exempt wallets per TaxConfig~300Same 10KB limit

On this page