# Stablecoin Issuers

Rome enables stablecoin issuers to enforce transfer-level compliance across both Solana DeFi and EVM DeFi through a single set of smart contracts.

## The Challenge

Regulated stablecoins need compliance enforcement on every transfer — KYC checks, sanctions screening, jurisdiction rules. On Solana, Token-2022 Transfer Hooks can enforce this. But Token-2022 allows only one hook per mint, and compliance requires multiple checks.

Additionally, stablecoins used inside EVM environments need separate ERC-20 level restrictions, creating two compliance systems to maintain.

## Rome's Solution

The Meta-Hook Router + Rome EVM enables:

1. **Multi-hook compliance** — KYC, sanctions, jurisdiction, and analytics hooks all fire on every transfer via the router
2. **Solidity compliance contracts** — write compliance logic in Solidity, deploy once, enforce on both Solana and EVM transfers
3. **Shared KYC registry** — one `KYCRegistry.sol` contract serves both the SPL layer and ERC-20 layer
4. **DeFi protocol whitelisting** — Jupiter, Kamino, Orca vaults are whitelisted to allow normal DeFi operation

## Architecture

```
Token-2022 Stablecoin Mint
    transfer_hook = Meta-Hook Router

Meta-Hook Router
    ├── Sub-Hook 1: ComplianceHook.sol (KYC + sanctions)
    ├── Sub-Hook 2: JurisdictionHook.sol (country rules)
    └── Sub-Hook 3: AnalyticsHook.sol (transfer events)

Inside Rome EVM
    ERC-20 Wrapper (ERC-3643 compatible)
    └── Transfer restrictions using same KYCRegistry.sol
```

## End-to-End Flow

**Solana user swaps on Jupiter:**

1. Jupiter calls `transfer_checked` on the stablecoin
2. Token-2022 invokes Meta-Hook Router
3. Router dispatches to ComplianceHook.sol on Rome EVM
4. Hook checks sender + recipient against KYCRegistry
5. Pass → transfer completes; Fail → transfer reverts

**EVM user transfers inside Rome:**

1. User calls `transfer()` on the ERC-20 wrapper
2. ERC-20 contract checks its own transfer restrictions (ERC-3643)
3. Both layers read the same `KYCRegistry.sol`

**Bridging between Solana and EVM:**

1. SPL transfer to bridge vault → hook fires (compliance check at entry)
2. ERC-20 minted inside EVM with its own restrictions
3. Bridge vault is whitelisted in compliance contract

## GENIUS Act Compliance

The GENIUS Act stablecoin compliance framework maps directly to Meta-Hook capabilities:

* **Sanctions screening** → ComplianceHook.sol with sanctions list
* **Jurisdiction controls** → JurisdictionHook.sol with country blocklists
* **Reporting** → AnalyticsHook.sol emitting on-chain events
* **Issuer controls** → Admin instructions for hook management

## Related

* [Meta-Hook Router](/products/meta-hook-router.md) — the hook multiplexer
* [Transfer Hooks](/core-concepts/transfer-hooks.md) — how hooks work in Rome
* [Token Interop](/core-concepts/token-interop.md) — ERC-20 ↔ SPL model


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.rome.builders/use-cases/stablecoin-issuers.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
