Blog
OFAC Sanctions Screening on Blockchain: Best Practices
The Office of Foreign Assets Control (OFAC) maintains the Specially Designated Nationals (SDN) list — a compilation of individuals, entities, and addresses that US persons are prohibited from transacting with. For blockchain protocols, this creates unique challenges that traditional financial institutions don't face.
The Challenge of On-Chain Sanctions Screening
Unlike traditional finance where transactions flow through intermediaries, blockchain transactions are peer-to-peer. There is no bank to stop a transaction before it settles. This means compliance must be embedded at the protocol level:
- Pre-transaction screening: Every transfer must be evaluated before execution
- Non-custodial environments: No central authority holds funds or controls access
- Pseudonymity: Addresses don't map 1:1 to real-world identities
- Irreversibility: Once a transaction is mined, it cannot be undone
Best Practice #1: On-Chain Enforcement
The most robust approach is to embed sanctions screening directly into the smart contract. This ensures:
- Determinism: Every transaction is screened under identical rules
- No Bypass: Even direct contract calls trigger compliance checks
- Auditability: Screening decisions are permanently recorded on-chain
- Availability: No dependency on external APIs that could fail
Best Practice #2: Risk Tiers, Not Binary Blocks
A sophisticated approach uses risk tiers rather than simple allow/block:
- UNKNOWN: New addresses with no history — require additional verification
- LOW: No flags detected — allow with standard limits
- MEDIUM: Some risk indicators — enhanced monitoring
- HIGH: Significant risk — quarantine for manual review
- CRITICAL: Sanctions match — block and alert
Best Practice #3: Keep Data Fresh
OFAC updates the SDN list regularly. On-chain registries must be updated autonomously. FidesOrigin uses Chainlink Functions to fetch the latest sanctions data and update the on-chain RiskRegistry without manual intervention.
Best Practice #4: Quarantine Over Block
Instead of outright blocking transactions (which can create UX issues and false positives), consider a quarantine mechanism:
"A quarantine vault holds suspicious funds for review rather than rejecting them outright. This reduces false positives while maintaining compliance."
Conclusion
OFAC compliance on blockchain is not optional — it's a legal requirement for any protocol operating in or serving US persons. The question is not whether to comply, but how to do so without compromising the benefits of decentralization. On-chain enforcement is the answer.