Stellar Ecosystem Proposals SEP-6 and SEP-24 define the two primary standards for moving value on and off the network via anchors. The core architectural decision between them hinges on where KYC/AML and user interaction are hosted: SEP-6 provides a programmatic, API-driven flow where the client wallet manages the entire user experience, while SEP-24 delegates identity verification and compliance steps to an interactive web view hosted by the anchor service. This choice directly impacts the integration complexity for wallets, the compliance liability for anchors, and the user experience for end-users.

SEP-24 vs. SEP-6 Interactive Flow Integration
Choosing the Right On/Off-Ramp Standard
A technical comparison of Stellar's interactive and programmatic deposit/withdrawal standards to guide anchor and wallet integration architecture.
From an operational perspective, SEP-24 anchors must implement a secure browser-based session that collects sensitive user data, handles document uploads, and returns a tokenized session to the wallet via a callback. This shifts the compliance burden to the anchor but simplifies wallet integration to opening a URL and listening for a callback. In contrast, SEP-6 requires the wallet to programmatically collect and forward user information through a sequence of API calls (/deposit, /customer, /transaction), demanding robust error handling for non_interactive_customer_info_needed and customer_info_status responses. A critical failure mode for SEP-6 integrations is a wallet mishandling the action_required or pending_transaction_info_update statuses, which can leave a user's deposit in a permanently incomplete state.
The session management models also differ significantly. SEP-24 relies on an interactive web session with a short-lived token, requiring anchors to defend against clickjacking and ensure the jwt token returned to the wallet is validated and bound to the correct Stellar account. SEP-6 uses a long-lived API session where the wallet must correctly manage id fields for repeated /customer calls. For teams building a new anchor, the choice often comes down to whether they want to own the compliance UI (SEP-24) or expose a headless API for sophisticated wallet partners (SEP-6). Chainscore Labs can review the chosen integration path for session security, correct handling of non-happy-path states, and compliance with user data handling requirements under both standards.
SEP-6 vs. SEP-24: Quick Comparison
A side-by-side evaluation of the two primary Stellar deposit and withdrawal standards to guide integration architecture decisions.
| Area | SEP-6 (Programmatic) | SEP-24 (Interactive) | Action |
|---|---|---|---|
User Experience | Client builds the entire UI/UX for deposit/withdrawal. | Anchor hosts the KYC/AML and transaction flow in a web view. | Frontend teams must decide whether to own the UX or delegate it to the anchor. |
KYC/AML Handling | Client collects and passes PII via API parameters. Client is responsible for data handling compliance. | User interacts directly with the anchor's hosted pages. Anchor bears the primary PII compliance burden. | Legal and compliance teams must assess data controller vs. processor liability for each model. |
Integration Complexity | High. Requires implementing full transaction state machines, error handling, and form logic. | Lower. Client redirects to anchor URL and listens for callbacks or polls for status. | Backend teams should evaluate the cost of building and maintaining a full SEP-6 state machine. |
Session Management | Client manages the entire session lifecycle via API tokens. | Anchor manages the interactive session via a token in the callback URL. Client must secure the callback endpoint. | Review SEP-10 authentication and JWT handling for both models to prevent session hijacking. |
Asset Information Discovery | Client parses the /info endpoint to dynamically build forms for each asset's required fields. | Client parses the /info endpoint primarily to discover the interactive URL and supported assets. | Wallets must implement robust /info parsing to avoid hardcoding fields that may change per anchor. |
Error Handling | Client must handle all API error codes and transaction statuses programmatically. | Errors are displayed to the user within the anchor's web view. Client handles top-level failures like timeout or unreachable URL. | SRE teams need to monitor for SEP-24 timeout errors and SEP-6 transaction failure codes differently. |
Mobile Wallet Suitability | High control allows for a fully native UX, but requires significant development effort. | Web-based flow can feel less native. Requires secure WebView implementation and deep-link handling. | Mobile developers must weigh native UX control against the security risks of hosting third-party web content. |
Non-Custodial Control | User signs all transactions in their own wallet client. | User signs a transaction from their wallet after completing the interactive flow. The anchor provides the transaction XDR. | Verify that the SEP-24 flow does not introduce a trust assumption where the anchor could substitute a malicious transaction. |
Integration Architecture and Trust Boundaries
How SEP-24 and SEP-6 define fundamentally different trust and integration boundaries between client applications and Stellar anchors.
The core architectural distinction between SEP-24 and SEP-6 is where the user's interactive session is hosted and who controls the KYC/AML data flow. SEP-24 mandates that the anchor hosts the interactive web experience directly, typically via an embedded WebView or popup, creating a direct trust boundary between the user and the anchor. The client application (wallet or exchange) acts as a conduit, initiating the flow via a POST /transactions/interactive request and receiving a URL to render, but never touches the user's personally identifiable information (PII). This architecture cleanly separates the asset control logic of the wallet from the compliance obligations of the anchor.
In contrast, SEP-6 establishes a programmatic, API-driven integration where the client application is an active intermediary. The client collects all required KYC data from the user within its own interface and relays it to the anchor's POST /deposit or POST /withdraw endpoints. This model places the client application inside the compliance trust boundary; the anchor must trust the client to collect data faithfully and the client assumes responsibility for secure handling of PII in transit. The operational impact is significant: SEP-6 integrations require a more complex backend to manage the stateful transaction flow, poll the /transaction endpoint for status updates, and handle pending_customer_info_update statuses by prompting the user for additional data.
For builders, the choice between these standards is a decision about liability and user experience. SEP-24 simplifies the client's compliance burden but cedes control of the user experience during the critical deposit and withdrawal moments, introducing a dependency on the anchor's UI reliability. SEP-6 offers full UX control but demands that the integrator build and secure a KYC data pipeline, manage session state, and implement robust error handling for a multi-step, asynchronous API flow. Chainscore can review the chosen integration path to assess session security, validate proper handling of more_info_url responses, and ensure that the architecture correctly isolates PII from systems that do not require it.
Affected Integration Teams
Frontend & UX Engineers
Your integration path changes fundamentally based on the SEP choice. SEP-24 requires embedding an interactive webview or redirect flow to host the anchor's KYC/AML UI, demanding careful session handoff and deep-link management. SEP-6 requires building a fully custom deposit/withdrawal UI that programmatically drives the API, placing the compliance data-collection burden on your interface.
Action items:
- Audit the anchor's SEP-24 URL for mobile webview compatibility and JavaScript requirements.
- Implement
callbackandon_change_callbackhandling to detect interactive flow completion. - For SEP-6, design clear error states for
non_interactive_customer_info_neededandcustomer_info_statusresponses. - Validate that session tokens from SEP-10 are correctly forwarded to the interactive URL or API calls.
Key Integration Decision Points
The choice between SEP-24 and SEP-6 is a critical architectural decision that shapes your compliance posture, user experience, and backend complexity. Each decision point below forces a specific operational commitment.
Callback Reliability and Idempotency
In SEP-24, the anchor must call the wallet's callback URL with callback parameter upon transaction completion. If the wallet's endpoint is unreachable, the user's funds may be stuck in a 'pending' state with no client-side resolution. SEP-6 relies on the client polling GET /transaction?id= for status updates, which is simpler but can lead to race conditions. Integration teams must implement a reconciliation cron job that queries the anchor's /transaction endpoint directly as a fallback to the callback mechanism, ensuring no transaction is orphaned.
File Upload and PII Data Handling
SEP-24 anchors must handle file uploads (e.g., identity documents, proof of address) within the interactive flow and store them according to jurisdictional data residency requirements. SEP-6 pushes this burden to the wallet, which must collect binary data via POST /customer/files and manage the upload lifecycle. If you are a wallet integrating multiple anchors, SEP-6 forces you to build a generalized file handling pipeline. If you are an anchor, SEP-24 centralizes sensitive document storage under your direct control, simplifying audit trails but increasing your data breach liability.
Nonce and Transaction Integrity
SEP-24's interactive flow introduces a temporal gap between the user's intent and the anchor's on-chain transaction submission. The anchor manages the Stellar account nonce internally. In SEP-6, the wallet constructs and signs the transaction, controlling the nonce directly. A SEP-24 anchor must implement a robust nonce management system to prevent transaction submission failures under high concurrency. For SEP-6 wallets, you must handle tx_bad_seq errors gracefully if the user's account state changes between the quote and submission phases.
Integration Risk Matrix
Evaluates the operational, compliance, and technical risks that integration teams must weigh when choosing between the interactive (SEP-24) and programmatic (SEP-6) standards for anchor integration.
| Area | What changes | Who is affected | Action |
|---|---|---|---|
KYC/AML Data Handling | SEP-24 shifts collection of sensitive user data to the anchor's hosted UI; SEP-6 requires the client wallet to collect and forward this data via API. | Wallets, custodians, and compliance teams | For SEP-24, audit the redirect flow and session token handling. For SEP-6, review client-side data encryption and transmission against data protection requirements. |
User Experience Flow | SEP-24 introduces a browser redirect to an external interactive URL; SEP-6 is a fully in-app, API-driven experience. | Frontend and mobile development teams | Verify SEP-24 redirect behavior on all target platforms (mobile WebView vs. browser). For SEP-6, design clear UX for pending transaction statuses and required user actions. |
Session and State Management | SEP-24 relies on the anchor's web session and a callback token; SEP-6 requires the client to poll a transaction endpoint to track status. | Backend integration engineers | Implement robust polling and timeout logic for SEP-6. For SEP-24, ensure the callback endpoint is idempotent and can handle delayed or duplicate anchor responses. |
Error and Exception Handling | SEP-24 failures can occur inside the hosted UI (opaque to the client) or via callback failure; SEP-6 errors are explicit API responses. | SRE and operations teams | Build monitoring for SEP-24 callback failures and session timeouts. For SEP-6, map all defined API error codes to user-recoverable actions and critical alerts. |
Compliance Liability | SEP-24 places the data collection burden and UI liability on the anchor; SEP-6 makes the integrating wallet a data processor in the compliance flow. | Legal and compliance officers | Clarify the data processor vs. controller relationship with the anchor for each standard. Review the SEP-6 integration for compliance with data minimization and right-to-deletion requirements. |
Anchor Support and Interoperability | Not all anchors support both standards; SEP-24 is common for high-friction KYC, SEP-6 for tokenized securities or programmatic flows. | Business development and product teams | Verify the target anchor's supported SEPs and their specific field requirements by querying the stellar.toml file. Do not assume feature parity between standards. |
Transaction Idempotency | SEP-6 requires the client to generate a unique idempotency key; SEP-24 manages this server-side via the interactive session. | Backend integration engineers | For SEP-6, implement a robust client-side idempotency key generator and ensure retry logic references the same key. Test for double-submission protection under network failure scenarios. |
Security Review Scope | SEP-24 expands the attack surface to include the anchor's web UI and redirect manipulation; SEP-6 focuses on API authentication and input validation. | Security engineers and auditors | For SEP-24, review the redirect URI validation and post-interactive callback integrity. For SEP-6, audit the SEP-10 authentication token lifecycle and API request signing. |
Integration Rollout Checklist
A practical checklist for teams preparing to launch or migrate a deposit/withdrawal integration. Each item identifies a critical readiness signal, explains why it matters, and specifies the artifact or test that confirms correct implementation before production rollout.
What to check: For SEP-24, verify that the interactive URL returned by POST /transactions/interactive is correctly opened in the user's browser or webview, and that the integration handles session expiration gracefully.
Why it matters: The interactive URL is a hosted KYC/AML flow with a finite session lifetime. If the user abandons the flow or the session expires, the anchor will stop polling. The client must detect this state and either restart the transaction or surface a clear error to the user.
Readiness signal: A test case where the interactive URL is opened, the user waits until the session expires (as defined by the anchor's interactive_deposit response), and the client correctly transitions the transaction status to error or prompts the user to re-initiate. Confirm that no orphaned incomplete transactions remain in the client's state.
Canonical Resources
Official Stellar Ecosystem Proposals define the contract between wallets, anchors, compliance systems, and payment applications. Use these resources to verify current endpoint behavior, session requirements, and compatibility obligations before choosing SEP-24 or SEP-6.
Looking to build on a specific blockchain?
We build smart contracts, DeFi applications, wallets, tokenization platforms, and blockchain infrastructure across the major ecosystems teams choose today. That includes Ethereum, Arbitrum, Optimism, Polygon, Avalanche, Solana, Sui, Aptos, Hedera, Stellar, and NEAR, with support for additional EVM and non-EVM networks based on your product requirements.
EVM ecosystems
- Ethereum
- Arbitrum
- Optimism
- Polygon
- Avalanche
- Cronos

Non-EVM ecosystems
- Solana
- Sui
- Aptos
- Hedera
- Stellar
- NEAR
Additional ecosystems
- Polkadot
- Cosmos
- TON
- Cardano
- Algorand
- Tempo
Also available for Base, appchains, custom EVM networks, and cross-chain product architecture.
Frequently Asked Questions
Answers to the most common architectural and operational questions teams face when choosing between the interactive SEP-24 and programmatic SEP-6 deposit and withdrawal standards.
Choose SEP-24 when the anchor must host an interactive web-based KYC/AML or identity verification flow. This is the primary differentiator. SEP-24 allows the anchor to serve a fully branded, compliant UI within the wallet's webview, giving the anchor complete control over data collection, document upload, and session management. Use SEP-6 when the wallet or client application handles all user interaction and the anchor only needs to expose a programmatic API for deposit/withdrawal instructions. The decision hinges on who owns the user experience and the regulatory requirement for the anchor to directly interact with the end-user.
Delivering blockchain solutions for 5+ years.
We have partnered with 50+ leading DeFi protocols, NFT ecosystems, and fintech innovators to build secure, scalable, and capital-efficient blockchain products.
Selected Partners & Clients
βI've been working with Chainscore Labs for last 3+ years, they've consistently delivered with strong ownership across multiple projects. The team is reliable and detail-oriented.β
How to get started?
If you're looking for blockchain integration, ChainScore Labs has 5+ years of experience helping teams build and integrate exchanges, wallets, smart contracts, tokenization solutions, and protocol-connected products, we can help you choose the right path, integrate securely, and get to production faster. Our team consists of experienced blockchain developers and architects who can help you with your blockchain integration needs.
Exploration & Strategy
Define your product goals and choose the right blockchain architecture for your use case.
Architecture & Design
Design the smart contracts, tokenomics, and security parameters of your system.
Development & Integration
Build and integrate with wallets, oracles, and front-end dApps for a seamless experience.
Security & Launch
Comprehensive audits followed by a risk-managed mainnet deployment to protect your users.
Discover our
blockchain development services.
We build production-grade blockchain solutions for top-tier projects across DeFi and Web3.
Need a blockchain engineering team?
Send the project context and we will respond with next steps, scope questions, and a practical path to delivery.


