# Arc > Arc is a simulation of cross-border stablecoin and fiat infrastructure for the EU↔Africa corridor — and a field guide to how stablecoin payments actually work. ## Docs - [Arc: EU-Africa Stablecoin Payments Infrastructure, Simulated](https://arc-doc.mintlify.app/index.md): A simulation of cross-border stablecoin and fiat infrastructure for the EU↔Africa corridor, and a field guide to how stablecoin payments actually work. - [Arc: What It Models, What It Fakes, and Why It Matters](https://arc-doc.mintlify.app/start/what-arc-is.md): Arc simulates a cross-border payments business. Learn what it models faithfully, what it deliberately fakes, and why that distinction matters. - [Reading Paths: Four Routes Through Arc's Documentation](https://arc-doc.mintlify.app/start/reading-paths.md): Four curated routes through this site: domain understanding, system architecture, real-world scenarios, or interview prep. Pick the one that fits your goal. - [Run Arc Locally: Clone, Migrate, and Verify in 5 Minutes](https://arc-doc.mintlify.app/start/quickstart.md): Clone the repo, start Postgres and Redis, apply the schema, and run the full verification gate. No cloud account, no service mesh, no extra configuration. - [Why Cross-Border Payments to Sub-Saharan Africa Cost So Much](https://arc-doc.mintlify.app/primer/why-corridors-cost-so-much.md): Where the 8.78% average cost to Sub-Saharan Africa goes: correspondent chains, pre-funding, thin-market FX, and the last-mile distribution layer. - [How Stablecoins Actually Work: Peg, Reserves, and Risk](https://arc-doc.mintlify.app/primer/how-stablecoins-work.md): Issuance, redemption, reserves, and why the peg is a redemption promise rather than a technical property, and what that means for payments operators. - [Settlement and Finality: Why the Fastest Chain Settles Last](https://arc-doc.mintlify.app/primer/settlement-and-finality.md): Why 'instant' is a marketing word, why the fastest chain can settle last, and how a payments business picks a point on the finality probability curve. - [The 2026 Stablecoin Regulatory Landscape Explained](https://arc-doc.mintlify.app/primer/regulation.md): GENIUS Act rulemaking, MiCA's transitional cliff, Kenya's VASP Act, and Nigeria's ISA 2025: what each regime requires of stablecoin corridor operators. - [The Case Against: Stablecoins and the Tests of Sound Money](https://arc-doc.mintlify.app/primer/the-case-against.md): The BIS argument that stablecoins fail singleness, elasticity, and integrity, taken seriously rather than strawmanned, and what it means for Arc's design. - [Bibliography: All Sources Cited Across the Arc Primer](https://arc-doc.mintlify.app/primer/bibliography.md): Every source cited across the primer, what each is good for, and which figures come from secondary aggregators rather than primary institutions. - [Arc Architecture Overview: Six Contexts, One Deployable](https://arc-doc.mintlify.app/architecture/overview.md): Arc is a modular monolith: six bounded contexts in one deployable, connected by an event bus, with a boundary rule that fails the build. - [Why Every Monetary Value in Arc Is a Bigint Amount](https://arc-doc.mintlify.app/architecture/money.md): Integer minor units, exact arithmetic, an explicit rounding policy, and the lint rules that make it impossible to use floats for money. - [Contexts, Events, and the Boundary That Fails Builds](https://arc-doc.mintlify.app/architecture/contexts-and-events.md): The transactional outbox, at-least-once delivery with effectively-once processing, and a boundary rule that becomes a build failure. - [Platform and Security: Signing, Idempotency, Secrets](https://arc-doc.mintlify.app/architecture/security.md): OAuth2 plus HMAC request signing, idempotency that distinguishes a retry from a conflict, signed webhooks, envelope encryption, and redaction on the logging path. - [The Last Mile API: Partner Onboarding and Sandbox](https://arc-doc.mintlify.app/architecture/partner-platform.md): Partner onboarding and go-live gating, a sandbox whose failures are triggered by magic amounts, the Last Mile API surface, the SDK, and usage billing. - [The Arc Ledger: Double-Entry Accounting With No Tolerance](https://arc-doc.mintlify.app/architecture/ledger.md): Chart of accounts, the balance invariant, a worked EUR→KES transfer entry by entry, and database constraints that hold against raw SQL. - [The Chain Layer: One Interface, Five Different Physics](https://arc-doc.mintlify.app/architecture/chain-layer.md): One ChainDriver interface, five chains with different settlement windows, and a deterministic simulator that reproduces the same reorgs every run. - [The Settlement Saga: Five Steps, Five Compensations](https://arc-doc.mintlify.app/architecture/settlement-saga.md): Five steps, five compensations, and why compensating in the wrong order produces a balanced ledger with a completely false audit trail. - [Risk and Compliance: A Blocking Gate on Money Movement](https://arc-doc.mintlify.app/architecture/compliance.md): KYC/KYB tiering, fuzzy sanctions screening, a five-family AML rule engine, and four-eyes review queues, wired as a hard gate before any money moves. - [Reconciliation: Balanced Books Are Not Correct Books](https://arc-doc.mintlify.app/architecture/reconciliation.md): Three-way reconciliation against bank statements and chain history, break kinds and cases, and the float-position report that answers what the trial balance cannot. - [What the Arc Test Suite Proves and How It Was Verified](https://arc-doc.mintlify.app/architecture/testing.md): Property-based invariants, chaos injection at every saga step, and mutation testing, because a suite that passes on broken code proves nothing. - [Consumer Remittance: €1,000 From Munich to M-Pesa Kenya](https://arc-doc.mintlify.app/flows/consumer-remittance.md): Walk a complete EUR→KES transfer through every service, event, and ledger entry, from quote to M-Pesa credit in about 25 seconds. - [Enterprise Payout: NGN Virtual Account to SEPA Instant](https://arc-doc.mintlify.app/flows/enterprise-payout.md): Kano Textiles funds a virtual NGN account and pays a €48,000 supplier invoice via SEPA Instant. Same rails, enterprise policy layer on top. - [Reversal: Four Compensating Journals, in Reverse Order](https://arc-doc.mintlify.app/flows/reversal.md): The payout is rejected at the last step. Four compensating journals unwind every completed step in reverse, and the sender ends exactly where they started. - [Architecture Decision Records: How Arc Was Designed](https://arc-doc.mintlify.app/decisions/index.md): Numbered records capturing every significant design choice: the context that forced it, the consequences accepted, and the alternatives that were rejected. - [ADR 0001: Money as Integer Minor Units, Enforced by Lint](https://arc-doc.mintlify.app/decisions/0001-money-as-integer-minor-units.md): Every monetary value is a bigint count of minor units. No floats anywhere in monetary APIs, enforced by ESLint rather than left to convention. - [ADR 0002: Modular Monolith Over Microservices, Enforced](https://arc-doc.mintlify.app/decisions/0002-modular-monolith.md): One deployable, six bounded contexts, boundaries enforced by CI. The interesting distributed-system problems are genuine; the setup overhead is not. - [ADR 0003: A Chain-Agnostic Driver With a Deterministic Simulator](https://arc-doc.mintlify.app/decisions/0003-chain-abstraction.md): Why settlement talks to a driver interface rather than a chain SDK, and why the default implementation is a seeded simulator rather than a testnet. - [ADR 0004: A Compensating Saga Rather Than Two-Phase Commit](https://arc-doc.mintlify.app/decisions/0004-saga-over-two-phase-commit.md): Why a corridor transfer is a saga with a compensating action per step, given that banks and blockchains do not participate in distributed transactions. - [ADR 0005: Idempotency Keys, and Why a Reused Key Is a Conflict](https://arc-doc.mintlify.app/decisions/0005-idempotency-strategy.md): Why retrying a payout returns the original response, why the same key with a different body is a 409 rather than a cache hit, and why signatures carry a nonce. - [ADR 0006: A Transactional Outbox for At-Least-Once Delivery](https://arc-doc.mintlify.app/decisions/0006-transactional-outbox.md): Why events are staged in the same transaction as the state change they describe, and why every handler must therefore be idempotent. - [ADR 0007: Row-Level Tenancy With Environment-Prefixed Credentials](https://arc-doc.mintlify.app/decisions/0007-multi-tenancy-model.md): How partner data is isolated: a tenant on every record, sandbox tenants distinguishable by prefix, and per-tenant rate limiting and idempotency scoping. - [ADR 0008: Double-Entry Accounting, Enforced by the Database](https://arc-doc.mintlify.app/decisions/0008-double-entry-ledger.md): Why Arc uses classical double-entry with balances derived from entries, and why the balance rule is enforced in Postgres as well as in application code. - [IRL Scenarios: Seven Payments Failures and Their Fixes](https://arc-doc.mintlify.app/stories/index.md): Seven real-world failure scenarios. Each opens on a symptom, walks the diagnosis, and lands on the Arc mechanism that prevents it from happening again. - [The Cent That Vanished: Rounding Residuals Explained](https://arc-doc.mintlify.app/stories/the-cent-that-vanished.md): The trial balance is off by €0.03. Every transfer reconciles. Nobody can find it, because it was never in one place to begin with. - [The Journal That Balanced and Lied: Audit Trail Correctness](https://arc-doc.mintlify.app/stories/the-journal-that-balanced-and-lied.md): Compensation ran in the wrong order. The ledger balanced perfectly. Sixteen tests passed. The audit trail was fiction. This one actually happened. - [The Fastest Chain That Settled Last: Block Time vs Finality](https://arc-doc.mintlify.app/stories/the-fastest-chain-that-settled-last.md): Routing to the chain with the shortest block time made settlement twelve times slower. Block time and settlement time are not the same number. - [The Payout That Paid Twice: Idempotency Under Timeout](https://arc-doc.mintlify.app/stories/the-payout-that-paid-twice.md): A beneficiary received KES 138,254 twice, four seconds apart, for one transfer. The rail timed out. The retry succeeded. So did the original. - [The Cut-Off That Cost a Day: Banking Rail Cut-Off Windows](https://arc-doc.mintlify.app/stories/the-cutoff-that-cost-a-day.md): Payment submitted at 16:00 on Thursday. It arrived Tuesday. Missing a cut-off by one hour costs a full day, because the delays compound. - [The Boundary That Wasn't: CI Enforcement Rule Gaps](https://arc-doc.mintlify.app/stories/the-boundary-that-wasnt.md): The CI architecture rule was green on every build and had been silently skipping half its violations. This one actually happened while building Arc. - [The Quote That Aged: Stale FX Rates as Unhedged Loss](https://arc-doc.mintlify.app/stories/the-quote-that-aged.md): A customer held a quote open for four minutes while the rate moved. Arc honoured it. Every quote is a short-dated option, and options expire. - [Arc Interview Prep: Payments and Fintech Questions](https://arc-doc.mintlify.app/practice/index.md): Four question banks and two self-check quizzes for payments, ledger, and infrastructure interviews, every answer grounded in Arc's implementation. - [Ledger and Money: Worked Interview Questions and Answers](https://arc-doc.mintlify.app/practice/ledger.md): Twelve worked questions on double-entry fundamentals, multi-currency journals, exactness, and enforcement, with the follow-ups interviewers actually ask. - [Distributed Systems Interview Questions With Answers](https://arc-doc.mintlify.app/practice/distributed-systems.md): Twelve worked questions on sagas, the transactional outbox, idempotency, at-least-once delivery, and compensation ordering in payment systems. - [Chain and Settlement Interview Questions With Answers](https://arc-doc.mintlify.app/practice/chain-and-settlement.md): Eleven worked questions on finality as probability, block time versus settlement window, reorgs, failed versus dropped, and picking a chain per transfer. - [Risk and Compliance Interview Questions With Answers](https://arc-doc.mintlify.app/practice/compliance.md): Ten worked questions on tiering, fuzzy name matching, AML rule families, four-eyes approval, and why compliance must block rather than observe. - [Quiz: Arc Ledger, Double-Entry, Exactness, Multi-Currency](https://arc-doc.mintlify.app/practice/quiz-ledger.md): Twelve questions on double-entry, exactness and multi-currency in Arc. Several include a plausible wrong answer that is the actual point of the question. - [Quiz: Arc Settlement, Saga, Rails, Chains, Compensation](https://arc-doc.mintlify.app/practice/quiz-settlement.md): Twelve questions on the Arc settlement saga, payment rails, on-chain finality and compensation logic. Commit to an answer before opening each accordion.