Free 30-min Web3 Consultation
Book Now
Smart Contract Security Audits
Learn More
Custom DeFi Protocol Development
Explore
Full-Stack Web3 dApp Development
View Services
Free 30-min Web3 Consultation
Book Now
Smart Contract Security Audits
Learn More
Custom DeFi Protocol Development
Explore
Full-Stack Web3 dApp Development
View Services
Free 30-min Web3 Consultation
Book Now
Smart Contract Security Audits
Learn More
Custom DeFi Protocol Development
Explore
Full-Stack Web3 dApp Development
View Services
Free 30-min Web3 Consultation
Book Now
Smart Contract Security Audits
Learn More
Custom DeFi Protocol Development
Explore
Full-Stack Web3 dApp Development
View Services
LABS
Guides

Setting Up Compliance for Non-EVM Deployments

A technical guide for developers implementing compliance tooling on non-EVM blockchains, covering sanctions screening, transaction monitoring, and regulatory data integration.
Chainscore © 2026
introduction
GUIDE

Setting Up Compliance for Non-EVM Deployments

A technical guide for developers implementing compliance features like transaction monitoring and sanctions screening on non-EVM blockchains such as Solana, Cosmos, and Stellar.

Deploying compliance tooling on non-EVM chains requires a fundamentally different approach than on Ethereum. While EVM chains share a common execution environment, non-EVM ecosystems like Solana (Sealevel VM), Cosmos (CosmWasm), and Stellar have unique architectures, data structures, and smart contract models. This means standard EVM-centric solutions for address screening, transaction monitoring, and regulatory reporting cannot be directly ported. Developers must build or integrate compliance logic that interacts natively with each chain's specific runtime, state model, and transaction format.

The first step is understanding the data availability and primitives of your target chain. For transaction monitoring, you need reliable access to mempool data and finalized blocks. On Solana, this involves subscribing to the JSON-RPC getProgramAccounts or WebSocket streams for specific accounts. For Cosmos SDK chains, you query the Tendermint RPC for transactions and events. Tools must parse chain-specific transaction formats—like Solana's VersionedTransaction or Cosmos' Tx—to extract critical fields: sender, receiver, amount, and smart contract interactions.

Implementing sanctions screening requires mapping external compliance lists (e.g., OFAC SDN) to the native address formats of each chain. This is not a simple 1:1 mapping. On Bitcoin-like UTXO chains or Stellar, you screen output addresses and memo fields. For account-model chains like Solana or Algorand, you monitor the base58 or bech32 addresses of involved accounts. A robust setup involves running or connecting to an indexer that normalizes this cross-chain data into a unified format for screening against real-time threat intelligence feeds.

Smart contract-level compliance, such as pause functions or allow/deny lists, must be written in the chain's native smart contract language. For example, a compliance module on a Cosmos chain would be a CosmWasm contract exposing query and execute messages for validation. On Solana, you would write a program in Rust using the solana-program crate, embedding logic to check a central authority account before permitting a transaction. These contracts need secure, upgradeable administration patterns to manage listed addresses or risk parameters.

Finally, reporting and audit trails are crucial. Compliance deployments must log all screened transactions, alerts, and overrides. This involves writing events from your compliance logic to the chain where possible (e.g., using Solana's log instruction or Cosmos events) and maintaining off-chain databases for complex analysis. Integrating with oracles or inter-blockchain communication (IBC) protocols can be necessary for chains that need to verify compliance status or share alerts across ecosystems, creating a unified framework for decentralized application governance.

prerequisites
PREREQUISITES AND CORE CONCEPTS

Setting Up Compliance for Non-EVM Deployments

This guide outlines the foundational steps and architectural considerations for integrating compliance tooling into non-EVM blockchain applications.

Compliance in blockchain refers to the technical mechanisms that allow applications to adhere to jurisdictional regulations, such as sanctions screening or transaction monitoring. For non-EVM chains like Solana, Cosmos, or Stellar, this involves interfacing with specialized compliance oracles and policy engines that operate off-chain. The core prerequisite is understanding your chain's unique architecture: its transaction format, account model, and how smart contracts (or their equivalents, like Solana programs or CosmWasm contracts) can initiate and validate external data requests.

Before integration, you must select a compliance provider. Services like Chainalysis KYT, Elliptic, or TRM Labs offer APIs that screen wallet addresses and transaction hashes against global watchlists. Your deployment needs a secure, reliable method to query these services. This typically involves setting up a dedicated off-chain relayer or oracle service that your on-chain program can trust. For example, a Cosmos-based app might use a custom module that makes HTTP requests via IBC to a designated compliance zone.

The next core concept is policy enforcement. It's not enough to just receive risk data; your application must define and execute rules based on that data. This requires embedding logic to handle compliance outcomes: allowing, flagging, or blocking transactions. On Solana, a program might include a check that consults a Verified Oracle Account for a compliance score before executing a transfer. You'll need to design your state management to store and reference these attestations, ensuring they are immutable and tamper-proof.

Key technical prerequisites include: securing API keys for your compliance provider, configuring RPC endpoints for your non-EVM chain, and establishing a signing authority for your oracle or relayer. For a Stellar deployment, this means managing secret keys for accounts that will submit ManageData operations containing compliance proofs. Testing is critical; you should deploy to a testnet and use the provider's sandbox environment to simulate high-risk addresses and transaction patterns before going live.

Finally, consider the data privacy and finality trade-offs. Sending every transaction detail to a third-party API can be a privacy concern. Some architectures use zero-knowledge proofs to validate compliance without exposing underlying data. Additionally, the asynchronous nature of oracle responses can conflict with your chain's block time. You must design your application's flow to handle delayed or failed compliance checks gracefully, potentially using conditional escrows or stateful pending statuses.

key-concepts
ARCHITECTURE

Key Compliance Components for Non-EVM

Compliance on non-EVM chains requires a different toolkit. These are the core components to integrate for monitoring, risk assessment, and regulatory adherence.

03

Compliance-Centric Smart Contracts

Embedding regulatory logic directly into non-EVM smart contracts to enforce rules at the protocol layer.

  • Functionality: Include modifiers or pre-execution checks for sanctions lists, user accreditation status, or transfer limits.
  • Examples:
    • CosmWasm (Cosmos): Implement ExecuteMsg handlers that query an external compliance oracle.
    • Move (Aptos/Sui): Use friend modules and custom signer checks to restrict certain financial operations.
    • Rust (Solana): CPI (Cross-Program Invocation) to a dedicated compliance program for approval.
  • Benefit: Creates immutable, transparent enforcement of policy.
04

Regulatory Reporting & Data Provenance

Generating auditable trails of all transactions and user interactions for supervisory authorities.

  • Core Need: Maintain a complete, tamper-evident log of KYC checks, transaction approvals, and risk assessments.
  • Architecture:
    1. Indexer: A custom indexer (e.g., using Subsquid for Substrate, Helius for Solana) to capture all relevant on-chain events.
    2. Storage: Hash and anchor event logs periodically to a Base Layer (Bitcoin via op_return, Ethereum, or a public data availability layer).
    3. Reporting Engine: Generate standardized reports (e.g., FATF Travel Rule, MiCA) from the indexed and anchored data.
05

Cross-Chain Compliance Messaging

Securely communicating compliance status (e.g., KYC approval, sanctions clearance) between different blockchain ecosystems.

  • Problem: A user verified on Cosmos needs to use a bridge to Ethereum without re-doing KYC.
  • Solutions:
    • IBC (Inter-Blockchain Communication): Send attestation packets between IBC-enabled chains.
    • General Message Passing (GMP): Use cross-chain messaging protocols like LayerZero or Axelar to send verified claims.
    • Standard: Leverage the Open Identity Protocol (OIP) or similar to format compliance messages.
  • Flow: Source chain proves status, sends message, destination chain's contract verifies the message's origin and signature.
NON-EVM FOCUS

Compliance API Provider Comparison

Comparison of leading compliance API providers for non-EVM blockchain deployments, including Solana, Aptos, and Cosmos.

Feature / MetricChainalysisTRM LabsElliptic

Non-EVM Chain Coverage

Solana, NEAR, Stellar

Solana, Algorand, Flow

Solana, Stellar, Ripple

Real-time Transaction Screening

Wallet Risk Scoring (Non-EVM)

Sanctions List Updates

< 1 min

< 5 min

< 15 min

Smart Contract Risk Analysis

API Latency (p95)

120 ms

95 ms

200 ms

Pricing Model (Enterprise)

Custom Quote

$15k+/month

$10k+/month

Regulatory Jurisdiction Coverage

Global

Global

US, UK, EU

implementation-steps-solana
NON-EVM COMPLIANCE

Implementation Steps: Solana Example

A practical guide to implementing transaction monitoring and compliance for Solana programs using the Chainscore API.

Integrating compliance into a Solana program requires a different approach than on EVM chains. Solana's architecture uses programs (smart contracts) and a unique account model. The core process involves intercepting transaction instructions, analyzing them with an external API like Chainscore, and conditionally halting execution based on the risk score. This is typically implemented using a CPI (Cross-Program Invocation) to a dedicated compliance program or a pre-execution hook in your program's instruction handler.

First, define the compliance check logic within your program's instruction handler. Before processing the core business logic, your program should serialize the relevant transaction details—such as the signer's public key, the program ID, and instruction data—into a structured format. This data is then passed to a compliance verification function. In Solana, you cannot make synchronous HTTP calls from on-chain programs, so this check must be performed client-side before submission or via a CPI to a separate oracle program that has off-chain data access.

For a client-side implementation, you would use the Chainscore API in your frontend or backend. Before building and sending the transaction to the network, you call the /v1/scan/address endpoint with the user's wallet address and the /v1/scan/transaction endpoint with a simulation of the transaction data. If the response indicates a high-risk score or a sanctioned address, you can prevent the transaction from being sent. This method provides a strong compliance gate without modifying the on-chain program.

For a more robust, on-chain enforcement, you can design a CPI pattern. Your main program would invoke a dedicated compliance oracle program. This oracle program would have a trusted off-chain relayer (oracle) that posts risk scores to its account data. Your program reads this data and aborts the transaction if risks are detected. While more complex, this ensures compliance is enforced at the protocol level, independent of client behavior. The Solana Cookbook provides excellent references for CPI and oracle patterns.

Key Solana-specific considerations include accounting for compute unit costs of the compliance check, managing program derived addresses (PDAs) for storing state, and ensuring the compliance logic adheres to the Solana runtime's constraints. Testing is crucial: use the solana-test-validator and the Chainscore testnet API to simulate high-risk transactions and verify your program correctly rejects them. This setup future-proofs your application against evolving regulatory requirements across all chains.

implementation-steps-cosmos
NON-EVM COMPLIANCE

Implementation Steps: Cosmos SDK Example

This guide details the process of integrating compliance logic into a Cosmos SDK-based blockchain, covering module creation, transaction validation, and state management.

The Cosmos SDK's modular architecture allows developers to build custom application-specific blockchains. To implement compliance features like transaction screening, you create a dedicated x/compliance module. Start by scaffolding the module using the ignite scaffold module command, which generates the necessary directory structure, MsgService, and Keeper. The core logic for checking addresses against a sanctions list or validating transaction metadata will reside in the module's MsgServer and AnteHandler.

Within your new module, define the key data structures in types.go. This typically includes a ComplianceRule type to store rules (e.g., rule_type, target_address, status) and a ViolationRecord to log blocked transactions. The module's Keeper manages the state of these rules and records, providing methods like SetRule and GetViolations. You must also define protobuf messages for governance proposals to add or update rules, ensuring decentralized control over the compliance parameters.

The primary enforcement point is a custom AnteHandler decorator. This function intercepts transactions before they enter the mempool or are included in a block. Your AnteHandler should: 1) decode the transaction messages, 2) extract sender and receiver addresses from MsgTransfer or similar, 3) query the compliance module's Keeper to check these addresses against the active rule set, and 4) return an error if a violation is detected. This prevents non-compliant transactions from being processed.

For real-time screening, you can integrate with external services. Implement a querier or MsgServer method that calls an oracle or API (e.g., Chainalysis or a custom service) and posts the result to the blockchain state via a governance proposal or a permissioned oracle module. A more decentralized approach involves creating a proof-of-compliance zk-SNARK circuit that validators can verify, though this requires significant cryptographic integration.

Finally, thoroughly test your module. Use the Cosmos SDK's simapp for unit tests on the Keeper logic and the AnteHandler. Write integration tests that simulate multi-block scenarios with compliant and non-compliant transactions. Ensure your module correctly interfaces with other core modules like bank and gov. Document the new transaction types and query endpoints for wallet and exchange integrators.

COMPLIANCE INFRASTRUCTURE

Chain-Specific Technical Considerations

Key technical differences in compliance tooling and smart contract architecture across non-EVM chains.

Feature / RequirementSolanaAptos / Sui (Move)Cosmos SDKStarknet (Cairo)

Native Compliance Primitive

Token-2022 Program (SPL)

Custom Move Modules

IBC Packet Middleware

Account Abstraction (v0.12+)

On-Chain Transaction Monitoring

Custom Module Required

IBC Hooks & Interceptors

Validator Sequencing (SEQUENCER)

Gas Fee for Screening

~$0.001 - $0.01

~$0.02 - $0.05

~$0.005 - $0.02 (varies)

~$0.05 - $0.15 (L2 fee)

Smart Contract Upgrade Path

Program Derived Address (PDA) Authority

Package Publishing & Governance

CosmWasm Migrations

Class Declaration & Replacement

State Pruning for Data Laws

Account Data Size Limits

Table & Object Storage

IAVL+ Tree Snapshots

Cairo Storage Maps

Real-time Block Explorer API

Solana RPC (getTransaction)

Aptos API / Sui GraphQL

Cosmos REST & gRPC

Starknet JSON-RPC (v0.7)

Multi-Sig for Admin Controls

Native SPL Token-2022 Multisig

Move Multi-Signer Transactions

Cosmos Authz & Feegrants

Threshold Signatures via AA

Cross-Chain Message Format

Wormhole VAA / LayerZero

Aptos Wormhole / Sui Bridge

IBC Packet (ICS-20/27)

Starknet Messaging (L1<>L2)

tools-and-libraries
COMPLIANCE INFRASTRUCTURE

Tools and Open-Source Libraries

Essential tooling and frameworks for implementing regulatory compliance, sanctions screening, and transaction monitoring on non-EVM chains like Solana, Cosmos, and Stellar.

testing-and-auditing
NON-EVM DEPLOYMENTS

Testing and Auditing Your Compliance Layer

A practical guide to implementing and verifying compliance logic for Solana, Cosmos, and other non-EVM blockchain applications.

Deploying a compliance layer on a non-EVM chain like Solana, Cosmos (with CosmWasm), or Aptos Move requires a fundamentally different approach to testing than on Ethereum. The core principles—ensuring sanctions screening, transaction monitoring, and policy enforcement work as intended—remain the same. However, the tooling, smart contract paradigms, and runtime environments are distinct. Your testing strategy must account for chain-specific account models, transaction formats, and state management to guarantee that your compliance rules are correctly executed on-chain.

The first step is establishing a robust local testing environment. For Solana, this means using solana-test-validator and frameworks like anchor test or the Solana Program Library's test utilities. For Cosmos chains, you'll work with wasmd for local CosmWasm simulation. These tools allow you to deploy your compliance program and run unit tests against a local node. Key tests should verify that your program correctly: intercepts and validates transaction instructions, queries your chosen oracle or API for sanction list data, and blocks or flags transactions based on your defined policy rules.

Integration testing is critical for verifying interactions with off-chain data providers. Your compliance program will likely need to call an oracle, like Pyth or Chainlink on Solana, or make HTTP queries via CosmWasm's IBC-enabled oracles. Mock these services in your tests to simulate various responses: a clean address, a sanctioned address, or a failed API call. Ensure your program handles each case appropriately—blocking the tx, allowing it, or entering a safe fallback state. Test edge cases like rate limiting, data staleness, and oracle downtime.

Formal auditing for non-EVM code requires specialized expertise. Engage auditors familiar with the specific language and chain security model. For Solana's Rust-based programs, auditors check for common pitfalls in the BPF loader, account privilege escalation, and cross-program invocation safety. For CosmWasm, they review IBC packet handling and query authorization. For Move-based chains (Aptos, Sui), they verify resource semantics and global storage patterns. Provide auditors with comprehensive documentation, a detailed specification of your compliance policy, and the full suite of your unit and integration tests.

Finally, implement a continuous monitoring and upgrade strategy. Post-deployment, use chain-specific explorers and indexers to track events emitted by your compliance program. Set up alerts for any policy violation events or failed rule executions. Plan for upgrades via your chain's governance mechanism (e.g., CosmWasm migration) or program deployment authority. Always test upgrades on a testnet—like Solana Devnet or a Cosmos test chain—with a full regression suite before proposing them to mainnet governance.

NON-EVM DEPLOYMENTS

Frequently Asked Questions

Common questions and solutions for developers integrating Chainscore's compliance infrastructure on non-EVM chains like Solana, Cosmos, or StarkNet.

The Chainscore Agent is a lightweight, chain-native service that monitors and enforces compliance rules directly on your application's infrastructure. For non-EVM chains, it operates as a sidecar process or integrated module that:

  • Intercepts and inspects transactions before they are finalized.
  • Queries the Chainscore API to check addresses, smart contracts, or transaction patterns against your configured policy.
  • Executes actions like blocking, flagging, or requiring additional attestation based on the policy result.

Unlike EVM deployments that can use precompiles or modified RPC nodes, non-EVM integrations typically require deploying the agent as a validator-side process (e.g., ABCI middleware for Cosmos) or a transaction pre-processor (e.g., a Sealevel runtime interceptor for Solana). The agent communicates with Chainscore's centralized risk intelligence layer but performs validation locally for low-latency compliance.

conclusion
NEXT STEPS

Conclusion and Next Steps

This guide has outlined the core components for establishing a compliance framework for non-EVM blockchain deployments. The next phase involves operationalizing these principles.

To move from theory to practice, begin by implementing the core monitoring tools discussed. For a Solana program, integrate the solana-web3.js library with your chosen RPC provider to track on-chain events. For Cosmos SDK chains, set up a Tendermint RPC subscription to listen for transaction broadcasts. The initial goal is to establish a reliable data ingestion pipeline that logs all relevant activity from your deployment, which forms the foundation for all subsequent compliance checks.

Next, develop and deploy your custom compliance smart contracts or logic. On Algorand, write a stateful smart contract in TEAL that validates transaction parameters against a whitelist stored in global state. For a Starknet application, use Cairo to create a contract that verifies user credentials via a zero-knowledge proof. Rigorously test these contracts on testnets like Algorand TestNet or Starknet Goerli to ensure they correctly enforce rules without disrupting core application functionality.

Finally, establish a review and reporting workflow. Schedule regular audits of the compliance logs, using the indexed data to generate reports for internal review or regulatory submission. Proactively monitor for anomalies, such as a spike in transaction volume from a single address on your Sui Move application. The ecosystem for non-EVM tooling is rapidly evolving; subscribe to developer forums and governance channels for your chosen chain (e.g., Solana Stack Exchange, Cosmos Forum) to stay updated on new best practices and security advisories.

How to Set Up Compliance for Non-EVM Blockchain Deployments | ChainScore Guides