Solana Stablecoin Standard
Solana Token2022 stablecoin standard. Presets with Anchor programs, transfer hook, RBAC, compliance (blacklist/freeze/seize), minter quotas, supply cap, and reserve attestation.
Install / Use
npx skills add solanabr/solana-stablecoin-standardInstalls into whichever agent you are using.
README
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):
- SSS-Core Program — Stablecoin config, RBAC, quotas, seize
- Blacklist Transfer Hook Program — Transfer-hook blacklist enforcement
On-chain examples (devnet):
- SSS-2 Stablecoin Deployment — Deployed token with blacklist transfer hook
- Mint Transaction — Minting tokens to a recipient
- Blacklist Transaction — Adding a wallet to the blacklist
- Unblacklist Transaction — Removing a wallet from the blacklist
- Transfer After Unblacklist — TransferChecked succeeding after unblacklist
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:
- programs/sss-core/README.md — SSS-Core program (RBAC, quotas, seize)
- transfer_hooks/blacklist/README.md — Blacklist hook program
- cli/README.md — CLI usage and config reference
- sdk/README.md — SDK API and examples
- backend/README.md — Backend setup and endpoints
- demo/README.md — React demo app
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.

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

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

Account Management
Freeze, thaw, check balances, and update authorities.

Compliance (SSS-2)
Add or remove wallets from the on-chain blacklist and check status in real time.

License
MIT
Related Skills
nextjs15-react19-vercelai-tailwind-cursorrules-prompt-file
40.5kCursor rules for Next.js development with React 19, Vercel AI, and Tailwind CSS integration.
.clinerules
🤖 Curated AI coding assistant rules for Cursor, Claude Code, Copilot, Windsurf, Codex CLI & Gemini CLI. Copy-paste configs for TypeScript, React, Next.js & Python.
contract-ui
Definir la interfaz estable entre la experiencia de usuario y las fuentes de datos: props, estados, acciones, eventos, mensajes de error y expectativas de renderizado. ---
accessibility
An MCP for testing, evaluating and auditing website accessibility.
