Skip to content

Star Atlas Golden Era (SAGE) C4 Developer Docs ​

SAGE C4 is a major expansion and update of the Star Atlas strategy game, available in the browser at https://sage.staratlas.com and currently running on the z.ink testnet. C4 is the release label used throughout these docs.

This section focuses on developer integration: what to import, which cluster to use, how to decode on-chain game state safely, and how to structure calls so results remain easy to verify.

If you are new to z.ink/Solana development or SAGE, start with the Beginner Map. It explains the basic nouns before the code samples start using them.

What these bindings are ​

The packages in these docs are generated TypeScript bindings for three on-chain programs. They translate between application code and the binary addresses, account data, and instructions understood by those programs.

The bindings provide:

  • account decoders and typed fetch helpers
  • Program Derived Address (PDA) helpers for accounts with known seeds
  • instruction builders with ordered account metadata
  • generated enums, codecs, parsers, and error definitions

They do not discover every account, hold wallet keys, explain game policy, or decide whether a transaction is safe. Discovery may require known addresses, PDA seeds, program-account queries, transaction history, or an indexer. Signing and sending remain application responsibilities.

See Programs, Accounts, and Terms for the vocabulary used throughout the site.

Star Atlas context ​

SAGE is a browser-based explore, expand, exploit, and exterminate (4X) strategy game where actions such as movement, mining, crafting, and transport settle on z.ink, and resources power fleet operations, crafting, trading, and starbase upkeep.

Useful official starting points:

Current Public Test Realm (PTR) endpoints ​

PurposeEndpoint
HTTP Remote Procedure Call (RPC)https://testnet-rpc.z.ink
WebSocket RPCwss://testnet-rpc.z.ink
Explorerhttps://explorer.z.ink

Suggested layout ​

txt
src/
  clients/
    sage-c4.ts
  clusters/
    sage-ptr.ts
  scripts/
    inspect-sector.ts
  types/
    sage.ts

Baseline client shape ​

ts
import { createSolanaRpc, createSolanaRpcSubscriptions } from '@solana/kit';

export const sagePtr = {
	rpc: createSolanaRpc('https://testnet-rpc.z.ink'),
	subscriptions: createSolanaRpcSubscriptions('wss://testnet-rpc.z.ink')
};

TIP

Keep the endpoint explicit in early integration code while the PTR is moving. Hidden global cluster configuration is convenient later, but makes initial debugging harder.

Reading paths ​

If you are new to the game, the programs, or generated bindings:

  1. Beginner Map
  2. Installation
  3. @solana/kit client
  4. Reading Live Game State
  5. SAGE Gameplay Overview

If you are building a tool:

  1. Connection setup
  2. @solana/kit client
  3. Transaction Review and Account Diffs
  4. The relevant domain page: Fleets, Cargo and Currency, Crafting, Claim Stakes, Mining, Scanning, and Loot, Starbases, World Data, or Local Markets.
  5. The matching workflow page when the action creates or mutates state.

If you need exact generated-client details:

  1. Account decoding
  2. Program Architecture
  3. Current Package Surface
  4. Generated Types Glossary
  5. The relevant domain and workflow pages for live PTR behavior.