Seev PlusDocs
Docs
Stellar Anchor

SEP-1: Stellar Info File (stellar.toml)

Discover SeevCash anchor capabilities, endpoints, and assets via the stellar.toml file.

SEP-1 defines how wallets discover your anchor. The stellar.toml file is the entry point for every Stellar integration — it tells wallets what services you offer, where the APIs live, and what assets are supported.

Fetching the TOML

curl https://anchor.seevcash.com/.well-known/stellar.toml
import { Wallet } from '@stellar/typescript-wallet-sdk';

const wallet = Wallet.TestNet();
const anchor = wallet.anchor({ homeDomain: 'anchor.seevcash.com' });

// The wallet SDK resolves the stellar.toml automatically
const toml = await anchor.getInfo();

Every compliant wallet fetches this automatically when it encounters the SeevCash anchor.

Key fields

FieldValuePurpose
TRANSFER_SERVERhttps://anchor.seevcash.comSEP-6 programmatic deposit/withdrawal API
WEB_AUTH_ENDPOINThttps://anchor.seevcash.com/authSEP-10 authentication
KYC_SERVERhttps://anchor.seevcash.comSEP-12 KYC API
TRANSFER_SERVER_SEP0024https://anchor.seevcash.comSEP-24 interactive flows
DIRECT_PAYMENT_SERVERhttps://anchor.seevcash.com/sep31SEP-31 cross-border payments
ANCHOR_QUOTE_SERVERhttps://anchor.seevcash.comSEP-38 quotes
SIGNING_KEYG...Public key for verifying SEP-10 challenges and callbacks
NETWORK_PASSPHRASETest SDF Network ; September 2015Stellar network

Currencies

The TOML declares which assets the anchor supports. Only USDC is issued on Stellar (mainnet). GHS is off-chain fiat and is not declared as a currency here — it is offered as iso4217:GHS through SEP-38 quotes and SEP-31 payouts.

[[CURRENCIES]]
code = "USDC"
issuer = "GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5"
status = "test"
is_asset_anchored = true
anchor_asset_type = "fiat"
anchor_asset = "USD"
desc = "USD Coin issued by Circle"

On testnet the anchor advertises the testnet USDC issuer (GBBD47IF...) and status = "test". On the public network it serves the mainnet Circle issuer (GA5ZSEJY...) and status = "live". The issuer is network-pinned by the anchor, so it always matches the active network.

Using SEP-1 in your integration

# Discover all endpoints
curl -s https://anchor.seevcash.com/.well-known/stellar.toml | grep -E "TRANSFER_SERVER|WEB_AUTH|KYC_SERVER|SIGNING_KEY"
import { Wallet } from '@stellar/typescript-wallet-sdk';

const wallet = Wallet.TestNet();
const anchor = wallet.anchor({ homeDomain: 'anchor.seevcash.com' });
const toml = await anchor.getInfo();

console.log(toml.transferServer);        // SEP-6 base URL
console.log(toml.webAuthEndpoint);       // SEP-10 auth
console.log(toml.kycServer);             // SEP-12
console.log(toml.anchorQuoteServer);     // SEP-38
console.log(toml.signingKey);            // For verifying callbacks

Why it matters

Without SEP-1, no wallet can find your anchor. The typical wallet flow starts with:

  1. User enters the anchor's domain (e.g. anchor.seevcash.com)
  2. Wallet fetches /.well-known/stellar.toml
  3. Wallet reads the available SEPs and supported assets
  4. Wallet proceeds with SEP-10 authentication using WEB_AUTH_ENDPOINT

The stellar.toml must be served over HTTPS with proper CORS headers (Access-Control-Allow-Origin: *). Wallets will reject anchors that don't serve over HTTPS.

Organization info

The TOML also contains organization details that wallets display to users:

[DOCUMENTATION]
ORG_NAME = "SeevCash"
ORG_DBA = "SeevCash"
ORG_URL = "https://seevcash.com"
ORG_DESCRIPTION = "Fiat on/off-ramp for Stellar via Ghana Mobile Money"
ORG_OFFICIAL_EMAIL = "support@seevcash.com"

On this page