Anchor Interaction

To interoperate with each other, Stellar Anchors rely on Stellar Ecosystem Proposals (SEP), which are open technical specifications defining how to build the necessary infrastructure to create a product or service on Stellar, including how to set up and consume a set of uniform APIs.

Bitso implemented SEP-31: Anchor-to-Anchor Direct Payments Standard, which specifies how anchors interact with one another to build a rail between two regions that enables users to make bank-to-bank, cross-border payments.

In this transaction flow, the sending user engages a Sending Anchor, who transfers funds to the Receiving Anchor. The Receiving Anchor handles the off-chain delivery of funds to the receiving user via a bank account, see Figure 1. SEP-31 is behind the interoperability between Anchors, providing a full-service sender-to-receiver transaction standard.

With SEP-31, users only interact with an application when depositing or receiving funds because the standard provides the means for the Sending Anchor (originator) to seamlessly collect and share KYC/AML details for both the sender and recipient with the Receiving Anchor while executing the transaction on behalf of the users on the Anchors’ backend. This approach enables a smooth and compliant payout flow that requires no interaction from the recipient, mirroring traditional remittance or B2B payment flows.

To support SEP-31 transaction flows, an Anchor sets up APIs to receive payments and a client that consumes other anchors' APIs to send payments. When two Anchors put up the server and corresponding client necessary to support the SEP-31 flow, a compliant bank-to-bank transaction follows a specific, uniform process: A Sending Anchor's client goes through a series of interactions with a Receiving Anchor's API endpoints to create an authenticated web session, pass customer information, and receive the green light before initiating a transaction. Because the client-server interactions happen in the background, the customer experience is seamless and feels just like a traditional remittance payment.

In addition, SEP-31 requires Anchors to create bilateral agreements in advance to interoperate with one another.

Transaction-flow SEP-31 works in conjunction with a suite of SEPs that allow interested parties to publish and discover relevant information about one another, create authenticated user sessions, and share relevant data –including KYC information– when conducting transactions. In addition, SEP-38 enables Anchors to accept off-chain assets in exchange for different on-chain assets and vice versa. Expressly, it equips Anchors to provide quotes that can be referenced within the context of existing SEPs. This set of standardized APIs and others not used in this implementation comprises the Anchor Platform, which handles all Stellar-specific functionality and requirements for running an Anchor.

Figure 2. SEP-31 Dependencies

Figure 2. SEP-31 Dependencies