Skip to content

Specifications for Stellar Account

Overview

This document outlines the technical specifications for setting up websites on xlm.sh using Stellar account Data Entries.

Record Types

xlm.sh supports two types of records that can be set using ManageDataOperation:

1. IPFS Records

  • Uses the key app.xlm_sh.ipfs
  • Value must be a valid IPFS CID
  • Examples:
    • bafybeifq2rzpqnqrsdupncmkmhs3ckxxjhuvdcbvydkgvch3ms24k5lo7q
    • QmPK1s3pNYLi9ERiq3BDxKa4XosgWwFRQUydHUtz4YgpqB

2. IPNS Records

  • Uses the key app.xlm_sh.ipns
  • Supports two formats:
    1. IPNS Public Keys
      • Example: k51qzi5uqu5dlvj2baxnqndepeb86cbk3ng7n3i46uzyxzyqj2xjonzllnv0v8
    2. DNSLink
      • Format: domain name with valid DNSLink TXT record
      • Example: ipfs.web.example.com

Implementation

Using ManageDataOperation

  1. IPFS Record Setup:
Operation: ManageDataOperation
Key: `app.xlm_sh.ipfs`
Value: [Your IPFS CID]
  1. IPNS Record Setup:
Operation: ManageDataOperation
Key: `app.xlm_sh.ipns`
Value: [Your IPNS key or DNSLink domain]

Verifying Your Configuration

After setting up your records, you can verify them using the Horizon API:

  1. For IPFS records:
GET https://horizon.stellar.org/accounts/{your_account_id}/data/app.xlm_sh.ipfs

The response will contain a base64-encoded value that you can decode to verify your record. For example:

json
{
  "value": "YmFmeWJlaWZxMnJ6cHFucXJzZHVwbmNta21oczNja3h4amh1dmRjYnZ5ZGtndmNoM21zMjRrNWxvN3E="
}

Decoding this base64 value will give you the actual record value.

  1. For IPNS records:
GET https://horizon.stellar.org/accounts/{your_account_id}/data/app.xlm_sh.ipfs

For DNSLink usage:

  1. Create a TXT record with name _dnslink.{your-domain}
  2. Set value to: dnslink=/ipfs/{your-CID}

Access Rules

  1. Website Access:

    • Format: {soroban_domain}.xlm.sh
  2. Record Precedence:

    • When both IPFS and IPNS records exist, IPFS takes priority

Domain Integration

To use a Soroban domain:

  1. Register a domain on Soroban Domains
  2. Set the domain's Address record to point to your Stellar Account ID
  3. Website will be accessible via {your_domain}.xlm.sh

Notes

  • All keys follow SEP-0018 namespace standards
  • Ensure proper formatting of CIDs and IPNS keys
  • Keep your Stellar account's Data Entries updated for website changes
  • Use ManageDataOperation to add, modify, or remove records