The Stellar federation protocol maps Stellar addresses to a unique name spaced string. It’s a way for Stellar client software to resolve email-like addresses such as name*your_domain.com
into account IDs like: GCFFPIFOYY7Z...TK6T32V37KEJU
. Stellar addresses provide an easy way for users to send and receive payments by using a syntax that interoperates across different domains and providers. When sending a payment, you contact a federation server first to determine what Stellar account ID to pay. Luckily, the bridge server does this for you.
To explain it simply, a Stellar Federation Server is a database with the following table structure which maps a Stellar address to a string(friendly_id
).
| id | first_name | last_name | friendly_id |
|----|------------|-----------|---------------------|
| 1 | Tunde | Adebayo | tunde_adebayo |
| 2 | Lightrains | Tech | lightrains |
Where Lightrains
Stellar address would be lightrains*your_domain.com
.
Stellar Federation Server architecture
Source: stellar.org
Here, your front end app/website will be talking to a intermediate server called
bridge server
which will be talking directly to a federation server. Bridge server is responsible for querying the federation server and get corresponding address and send transaction or operation to a stellar core via stellar Horizon server.
Current federation workflow
Currently, in order to resolve a federation address, the client needs to do the following:
- fetch the
stellar.toml
file fromhttps://<domain>/.well-known/stellar.toml
and read theFEDERATION_SERVER
entry from it - fetch the response from the federation server using secure HTTP
GET
and required parameters - proceed with the payment