FortiSwap — AML & Sanctions Statement
Effective date: 2026-09-11 Version: 3.2 Operator: FortiBlox Labs LLC Contact: [email protected] Canonical URL: https://app.fortiblox.com/aml
1. Purpose and posture
This statement describes the anti-money-laundering ("AML") and sanctions posture of FortiSwap, the non-custodial decentralised-exchange ("DEX") aggregator operated by FortiBlox Labs LLC ("we", "us", or "our") at app.fortiblox.com (the "Interface"). It is intended to be read alongside — and is incorporated by reference into — our Terms of Service and Privacy Policy.
This is a statement of compliance posture, not a representation that FortiSwap is a registered money-services business ("MSB"), a money transmitter, a custodian, an exchange, or a licensed financial-services provider — because it is none of those things. FortiSwap is a software tool that helps you construct unsigned on-chain swap transactions that you sign and broadcast with your own self-custodial wallet.
2. Why FortiSwap is not the KYC/AML-obligated party for swaps
The AML and money-transmission obligations that attach to a custodial exchange or a fiat money-services business arise from taking custody of customer funds and holding or transmitting fiat. FortiSwap does neither for swaps:
- Non-custodial. FortiSwap never receives, holds, or transmits your fiat currency for swaps; never takes custody of your tokens or other digital assets; and never holds or can recover your private keys. Every swap is signed by you, in your own wallet, and broadcast under your own control.
- No accounts, no fiat rails for swaps. FortiSwap issues no customer accounts and operates no fiat payment path of its own for swaps. It reads public on-chain state to compute routes and assembles unsigned transactions.
- Not a counterparty. FortiSwap does not act as the counterparty to any swap and does not operate an order book or matching engine. Your swap executes on-chain against independent third-party liquidity protocols (on X1, currently XDEX and Degen; on the Arc network, where offered, the Arc liquidity pools or a Circle venue described below).
- Circle venues on Arc are wallet-to-wallet. Where the Interface offers the Arc network (Circle's blockchain — a testnet only as at the effective date, with no live money), a USDC ↔ EURC swap may settle through Circle App Kit (Circle builds and signs the plan; you sign a permit or approval and one transaction; Circle's swap adapter contract settles to your own wallet) or, in Circle's sandbox only, through Circle StableFX (you fund Circle's FxEscrow contract under your own Permit2 signature; Circle and its vetted makers settle payment-versus-payment); USDC moves between Arc and other test networks through Circle's CCTP (burned from and minted to your own address, attested by Circle). In every case FortiSwap's server only requests the plan or quote and forwards it; you sign in your own wallet, FortiSwap holds nothing in transit, no fiat is involved, and FortiSwap performs no KYC. FortiSwap is not a party to a StableFX trade.
- Sign-in / wallet infrastructure is not a KYC gate. FortiSwap's sign-in and embedded-wallet infrastructure is provided by Privy (privy.io); signing in is optional for swaps and the cross-chain bridge, which work with a connected wallet alone, and required to start a fiat on-ramp or off-ramp session. Privy authenticates you (by email one-time passcode, passkey, or a social provider such as Google, X, Discord, GitHub, or Telegram) and can provision a user-owned, non-custodial embedded wallet; it is an authentication and signing service, not a KYC/AML programme for swaps. FortiSwap does not take custody of, or hold the keys to, any wallet Privy provisions, and signing in through Privy does not create a KYC relationship with FortiSwap. The only identity verification associated with FortiSwap is the KYC that each Fiat Provider (Stripe, Coinbase, Transak, or MoonPay) performs for its own fiat on-ramp or off-ramp (Section 3).
- Cross-chain bridge routes are wallet-to-wallet. FortiSwap's optional cross-chain bridge quotes routes from independent Bridge Route Providers — Rango and MoonPay Trade (operated by Swaps XYZ Ltd, a MoonPay company) — and the Solana ↔ X1 leg settles through the X1 Warp bridge. Every leg is signed by you from your own wallet; no fiat is involved, FortiSwap takes custody of nothing in transit, and FortiSwap performs no KYC. A Bridge Route Provider applies its own wallet screening and regional restrictions and may decline to quote; the Interface then shows fewer routes.
Because FortiSwap is not the custodial or fiat-handling party for swaps, it is not the entity that carries the customer-identification (KYC) obligation for on-chain swaps. It does not, and has no obligation to, operate a KYC identity-verification programme for the swap Interface.
3. The fiat on-ramp and off-ramp — KYC/AML is performed by the Fiat Providers
FortiSwap surfaces an optional fiat on-ramp that lets users buy USDC with a card or bank payment and an optional fiat off-ramp that lets users sell USDC for fiat paid to their own account, each operated by an independent Fiat Provider — currently Stripe (Crypto Onramp), Coinbase, Transak, and MoonPay. In those flows:
- The Fiat Provider (or its regulated partner) is the licensed party. The Fiat Provider is the party that sells the crypto (on-ramp) or buys the crypto and pays out the fiat (off-ramp), processes the fiat payment or payout, and performs all identity verification (KYC), anti-money-laundering checks, payment-fraud controls, and sanctions screening required for the transaction, under its own licences, terms, and privacy policy. MoonPay is the merchant of record for purchases and sales made through its widget and performs its own KYC, AML, fraud, and sanctions checks inside that widget.
- FortiSwap merely provides access. A user must sign in through Privy before an on-ramp or off-ramp session is created; that sign-in is authentication only and is not KYC (Section 2). FortiSwap surfaces each provider's hosted widget or checkout; it does not sell or buy crypto, does not process payments or payouts, and does not receive the user's card, bank, payout, or identity data. FortiSwap performs no KYC for the on-ramp or off-ramp — that is each provider's programme, not ours — and does not store the outcome of a provider's identity check.
- Non-custodial in both directions. Crypto a user buys is delivered by the Fiat Provider as USDC on Solana directly to a wallet address the user controls; the user then bridges it to X1 in a separate transaction they sign. Crypto a user sells is sent by the user, from their own wallet, directly to the deposit address the Fiat Provider issues, and the fiat proceeds are paid by the provider directly to the user. FortiSwap does not receive fiat on any user's behalf and does not hold the crypto at any point. For a MoonPay cash-out, the deposit must reach MoonPay within 48 hours or MoonPay fails the transaction and FortiSwap will not build the transfer; a cash-out MoonPay fails after a valid deposit is refunded by MoonPay to the user's own wallet.
Accordingly, FortiSwap does not re-perform, duplicate, override, or gate a Fiat Provider's KYC/AML decisions, and does not hold the identity records a Fiat Provider collects. Any request for on-ramp or off-ramp KYC records must be directed to the relevant Fiat Provider, which is the record-holder.
Circle is the regulated party for its own products. Where the Interface offers the Arc network, Circle — the issuer of the USDC and EURC stablecoins and the provider of Circle App Kit, Circle StableFX, and CCTP — operates those products under its own licences, registrations, and compliance programmes, and FortiSwap uses them as a developer under Circle's developer terms. Circle is not a Fiat Provider: no Circle venue on the Interface involves fiat, and none involves identity verification of the user by FortiSwap. Circle StableFX is an institutional venue that Circle gates on its own know-your-business ("KYB") onboarding of the institution that trades; the Interface exposes StableFX in Circle's sandbox on Arc testnet only, and FortiBlox has not completed Circle's production onboarding — nothing in this statement is a representation that StableFX is available for live funds. Any compliance determination Circle makes for a Circle product (including declining to serve a wallet or a region) is Circle's, and FortiSwap does not re-perform or override it. FortiSwap remains, for every Circle venue, the non-custodial interface: it requests the plan or quote, shows it to you, and you sign in your own wallet.
4. FortiSwap's own sanctions posture
While FortiSwap is not the fiat-side compliance party, we maintain an interface-level sanctions posture as a matter of responsible operation:
- No dealing with sanctioned persons. We do not intend to make the Interface available to, and prohibit its use by, any person or entity that is identified on, or is owned or controlled by or acting on behalf of a person identified on, a sanctions list — including the U.S. Department of the Treasury Office of Foreign Assets Control ("OFAC") Specially Designated Nationals and Blocked Persons ("SDN") List, and the consolidated sanctions programmes of the European Union, the United Kingdom, and the United Nations.
- Sanctioned jurisdictions blocked at the interface. We do not target, market, or make the Interface available to residents of jurisdictions subject to comprehensive U.S. sanctions — as at the effective date: Cuba, Iran, North Korea, Syria, Russia, and the Crimea, Donetsk, and Luhansk regions of Ukraine. This is enforced as a defence-in-depth measure at the network edge (an IP-based geographic block via a Cloudflare WAF country rule and the
cf-ipcountrysignal) and at the application layer via theEXCLUDED_COUNTRIEScontrol in the Interface source atsrc/middleware.ts, which short-circuits requests from restricted regions to a/region-not-supportedpage. The country-code-blockable sanctioned jurisdictions (Cuba, Iran, North Korea, Syria, Russia) are enumerated directly inEXCLUDED_COUNTRIES; the sub-national sanctioned regions of Ukraine (Crimea, Donetsk, Luhansk) are addressed at the OFAC / Cloudflare-edge layer and by the user sanctions self-certification, as a country code cannot target them without over-blocking all of Ukraine. - Additional restricted jurisdictions. As described in Section 5 of the Terms of Service, the Interface is also not offered to residents of jurisdictions that impose a comprehensive local prohibition on cryptoasset use (currently the People's Republic of China, Bangladesh, Bolivia, Egypt, Morocco, Nepal, the Republic of Türkiye in respect of payments, and Belarus). Residents of the United Kingdom may use the Interface for swapping, bridging, and on-chain orders; the fiat on-ramp and off-ramp (card or bank buying and selling through a Fiat Provider) are not offered to United Kingdom residents pending completion of the applicable U.K. financial-promotions pathway (a regulatory limitation, distinct from sanctions), enforced at the application layer via the
RAMP_EXCLUDED_COUNTRIEScontrol in the Interface source. - User self-certification. By using the Interface, you self-certify that you are not a sanctioned person, are not located in a sanctioned or restricted jurisdiction, and are not using a wallet subject to a sanctions designation, as set out in the Terms of Service.
- On-ramp and off-ramp sanctions screening is the Fiat Provider's. For a fiat purchase or cash-out, sanctions screening of the payer or payee and the payment is performed by the Fiat Provider (Stripe, Coinbase, Transak, or MoonPay) as part of its licensed programme, in addition to the interface-level jurisdiction block above. For cross-chain bridge routes, Rango and MoonPay Trade apply their own wallet screening and regional restrictions before quoting. For a Circle venue or CCTP on Arc, any wallet or regional screening Circle performs for its own products is Circle's, in addition to the interface-level jurisdiction block.
- Applies regardless of network. The interface-level jurisdiction block, the restricted-jurisdiction list, and the user sanctions self-certification apply identically whether you transact on X1 or, where offered, on the Arc network: the geographic block operates at the network edge and application layer before any network, venue, or wallet is chosen, and no Arc venue — Aggregator route, Circle App Kit, Circle StableFX (sandbox), or CCTP — is offered through the Interface from a blocked region. Arc's status as a testnet without live money does not relax this posture.
- Applies regardless of how you connect. The interface-level jurisdiction block and the user sanctions self-certification apply to every user, whether you connect an external wallet directly or sign in through Privy (optional for swaps and the bridge, required for the on-ramp and off-ramp) and use an embedded wallet. The geographic block operates at the network edge and application layer, before any wallet-connection or sign-in step.
5. Prohibited use
You must not use the Interface to launder proceeds of criminal activity, to finance terrorism, to evade sanctions, to commit tax evasion or fraud, or for any activity that is illegal in your jurisdiction. Use of the Interface for any such purpose is a material breach of the Terms of Service.
6. Right to restrict access
We reserve the right, at our discretion and to the extent technically possible for a non-custodial interface, to restrict or refuse access to the Interface — including by blocking a region, a network origin, or the display of the Interface to a given request — where we reasonably believe that access would violate sanctions law, the eligibility or prohibited-use terms of the Terms of Service, or applicable law. Because FortiSwap is non-custodial, it cannot freeze, seize, or move any user's on-chain assets; any restriction operates at the level of access to the Interface, not custody of funds.
7. Cooperation and referrals
FortiSwap is not the licensed MSB for any transaction and does not itself file suspicious-activity reports. Where required by applicable law, or where we receive a valid legal request, we will cooperate with competent authorities in respect of the limited, non-identifying technical data we hold (as described in the Privacy Policy). Matters concerning a fiat on-ramp purchase or off-ramp cash-out — including the customer's KYC file and any suspicious-activity determination for that purchase — are the responsibility of the relevant Fiat Provider (Stripe, Coinbase, Transak, or MoonPay) as the licensed party and should be directed to that provider. Matters concerning a Circle product used on Arc (Circle App Kit, Circle StableFX, or CCTP) are Circle's, as the provider of that product, and should be directed to Circle.
8. Amendments
We may amend this statement to reflect changes in law, in the networks the Interface supports, in the third-party protocols the Interface routes across (including a Circle product moving from testnet or sandbox to production), in the fiat on-ramp / off-ramp providers, in the bridge route providers, in the sign-in / wallet-infrastructure provider, or in our operational posture. Material changes will be posted at app.fortiblox.com/aml with a revised effective date and a change-log entry.
9. Contact
Questions about this statement may be sent to [email protected]. For security-vulnerability disclosures, please use [email protected].
Change log
| Date | Version | Summary |
|---|---|---|
| 2026-07-30 | 1.0 | Initial published version. AML & Sanctions Statement for FortiSwap, the non-custodial DEX aggregator operated by FortiBlox Labs LLC. Establishes that FortiSwap is not an MSB / money transmitter / custodian / exchange and carries no swap-side KYC obligation because it is non-custodial and handles no fiat for swaps; that all KYC/AML, payment processing, and sanctions screening for the Stripe Crypto Onramp (buy-side USDC only, no off-ramp) are performed by Stripe or its regulated partner, not by FortiSwap; FortiSwap's own interface-level sanctions posture (no dealing with SDN/sanctioned persons; OFAC-sanctioned and other restricted jurisdictions blocked at the edge and application layer via EXCLUDED_COUNTRIES); prohibited-use terms; and the reserved right to restrict access. |
| 2026-07-31 | 2.0 | Privy sign-in / embedded-wallet clarification. Section 2 clarifies that FortiSwap's optional sign-in and embedded-wallet infrastructure is provided by Privy as an authentication/signing service — not a KYC/AML programme for swaps; signing in via Privy does not create a KYC relationship with FortiSwap, and FortiSwap holds no keys to any Privy-provisioned wallet. Section 4 adds that the interface-level jurisdiction block and user sanctions self-certification apply regardless of how the user connects (external wallet or Privy embedded wallet), and operate before any wallet/sign-in step. Existing non-custodial / no-swap-KYC posture, Stripe-performs-onramp-KYC framing, and OFAC/edge geoblock unchanged and not contradicted. No license numbers, registration IDs, or physical address asserted. |
| 2026-08-22 | 3.0 | All Fiat Providers (Stripe, Coinbase, Transak, MoonPay), the off-ramp, and the cross-chain bridge (Rango, MoonPay Trade) disclosed. Section 3 rewritten from "Stripe, buy-side only" to "KYC/AML is performed by the Fiat Providers" in both directions; MoonPay named as merchant of record performing its own KYC/AML/fraud/sanctions checks in its widget, with the 48-hour cash-out deposit window and refund-to-own-wallet behaviour; non-custodial settlement (USDC on Solana, separate user-signed Warp step to X1) stated. Section 2 adds that cross-chain bridge routes from Rango and MoonPay Trade (Swaps XYZ Ltd, a MoonPay company) are wallet-to-wallet, user-signed, fiat-free, and carry no FortiSwap KYC, with provider-side wallet screening. Section 4, 7, and 8 generalised from Stripe to the Fiat Providers and Bridge Route Providers. Superseded the v1.0 "buy-side only / no off-ramp" statement. OFAC/edge geoblock and non-custodial / no-swap-KYC posture unchanged. |
| 2026-08-22 | 3.1 | Sign-in requirement stated precisely. Sections 2, 3, and 4 now state that Privy sign-in (email one-time passcode, passkey, or Google / X / Discord / GitHub / Telegram) is optional for swaps and the cross-chain bridge but required before an on-ramp or off-ramp session is created, and that it remains authentication only — not KYC, which stays with the Fiat Provider. No renumbering. |
| 2026-09-11 | 3.2 | Arc network and Circle (App Kit, StableFX, CCTP) disclosed. Section 2 adds that swaps on the Arc network (Circle's blockchain, testnet only, no live money) settle wallet-to-wallet through the Arc pools, Circle App Kit (Circle-built plan, Circle's contract, user-signed), Circle StableFX (Circle's sandbox only; user-funded FxEscrow under Permit2; PvP settlement by Circle and its makers; FortiSwap not a party), or CCTP (burn/mint from and to the user's own address, Circle attests) — no custody, no fiat, no FortiSwap KYC. Section 3 adds a paragraph naming Circle as the regulated party for its own products (issuer of USDC/EURC; App Kit/StableFX/CCTP under Circle's own licences and developer terms; not a Fiat Provider), states that StableFX production would require Circle's KYB onboarding of FortiBlox, which has not occurred, and that Circle's compliance determinations are Circle's. Section 4 adds that the interface-level jurisdiction block applies identically on X1 and Arc, before any network or venue is chosen, and that Circle's own screening is additional. Sections 7 and 8 reference Circle and supported networks. Stray trailing markup after the "Last updated" line (present since an earlier revision and rendered as literal text at the foot of the page) removed. No renumbering; non-custodial / no-swap-KYC / no-MSB posture unchanged. |
Last updated: 2026-09-11
