Skip to content

solanabr/solana-stablecoin-standard

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

48 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Solana Stablecoin Standard (SSS)

A complete, production-grade toolkit for deploying and managing stablecoins on Solana using Token-2022 extensions.

The project defines two compliance presets — SSS-1 (minimal) and SSS-2 (compliant with blacklist enforcement) — and provides everything needed to go from zero to a fully operational stablecoin: a CLI for operators, a TypeScript SDK for integrators, a REST backend for infrastructure, an on-chain Anchor program for transfer-hook compliance, and a React demo that ties it all together.

Live Demo & On-Chain References

  • Video Demo — Full walkthrough of the CLI, SDK, backend, and React demo

Programs deployed (devnet):

On-chain examples (devnet):

Repository Structure

solana-stablecoin-standard/
├── programs/sss-core/          Anchor program — stablecoin config, RBAC, quotas, seize
├── transfer_hooks/blacklist/   Anchor program — transfer-hook blacklist (SSS-2)
├── tests-litesvm/              LiteSVM Rust-native fuzz & integration tests
├── cli/                        Command-line interface for deploying & managing stablecoins
├── sdk/                        TypeScript SDK wrapping all on-chain operations
├── backend/                    REST API service (mint/burn lifecycle, webhooks, event listener)
├── demo/                       React + Phantom wallet demo app
└── docs/                       Full documentation

Standards

Standard What it provides Token-2022 Extensions
SSS-1 Minimal stablecoin — mint/burn, freeze, on-mint metadata Metadata Pointer
SSS-2 SSS-1 + compliance — blacklist enforcement via transfer hook, KYC-gated accounts Metadata Pointer, Transfer Hook, DefaultAccountState::Frozen

SSS-Core features: RBAC roles, per-minter quotas, supply cap, triple-layer pause (Token-2022 + SSS-Core + hook), metadata updates, compliance toggle, burn-from-any-account, and reserve attestation (proof-of-reserve for GENIUS Act compliance) — with a feature-gated module system (compliance, quotas, supply-cap) that lets issuers strip modules they don't need at compile time.

See docs/SSS-1.md and docs/SSS-2.md for the full specifications.

Quick Start

1. Deploy a stablecoin (CLI)

cd cli && npm install && npm run build

# Generate a starter config
npx solana-stable init --preset sss-1

# Edit sss-token.config.toml (set authorities, name, symbol)
# Then deploy
npx solana-stable init --custom sss-token.config.toml

# Mint tokens
npx solana-stable operate mint <recipient-wallet> 1000000
# or (flat, backward-compatible):
npx solana-stable mint <recipient-wallet> 1000000

The CLI organizes commands into groups: operate (mint/burn/transfer), admin (freeze/thaw/pause/set-authority), compliance (blacklist management), and inspect (status/supply/balance/audit-log). Flat commands still work for backward compatibility.

2. Integrate programmatically (SDK)

import { SolanaStablecoin, Presets } from "sss-token-sdk";

const stable = await SolanaStablecoin.create(connection, {
  preset: Presets.SSS_1,
  name: "My Dollar",
  symbol: "MUSD",
  decimals: 6,
  authority: adminKeypair,
});

await stable.mintTokens({ recipient: walletPubkey, amount: 1_000_000n, minter: adminKeypair });
const supply = await stable.getSupply();

3. Run the backend

cd backend && npm install
cp .env.example .env
# Edit .env with your mint address and keypair
npm run dev

4. Launch the demo

cd demo && npm install
npm run dev
# Open http://localhost:5173, connect Phantom, enter your mint address in Settings

Documentation

Document Contents
docs/SSS-SPEC.md Formal specification — SSS-1, SSS-2, SSS-Core, SDK/CLI interface
docs/README.md Overview, quick start, preset comparison, architecture diagram
docs/ARCHITECTURE.md Layer model, data flows, security model
docs/SDK.md Presets, custom configs, TypeScript examples
docs/OPERATIONS.md Operator runbook (mint, freeze, blacklist, etc.)
docs/SSS-1.md Minimal stablecoin standard specification
docs/SSS-2.md Compliant stablecoin standard specification
docs/COMPLIANCE.md Regulatory considerations, audit trail format
docs/API.md Backend REST API reference

Each component also has its own README:

Tech Stack

  • On-chain: Solana, Token-2022, Anchor Framework (Rust)
  • CLI: TypeScript, Commander, TOML config
  • SDK: TypeScript, @solana/web3.js, @solana/spl-token
  • Backend: Express, Pino, Docker
  • Demo: React, Vite, Tailwind CSS, Solana Wallet Adapter

Screenshots

The React demo provides a full management UI with Phantom wallet integration.

Settings

Configure the RPC endpoint, mint address, token program, and transfer hook program ID.

Settings

Dashboard

Live view of supply, decimals, your wallet balance, and on-chain authorities.

Dashboard

Mint & Burn

Mint tokens to any wallet or burn from your own — every action triggers a Phantom signature prompt.

Mint & Burn

Account Management

Freeze, thaw, check balances, and update authorities.

Accounts

Compliance (SSS-2)

Add or remove wallets from the on-chain blacklist and check status in real time.

Compliance

License

MIT

About

Solana Token2022 stablecoin standard. Presets with Anchor programs, transfer hook, RBAC, compliance (blacklist/freeze/seize), minter quotas, supply cap, and reserve attestation.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors