Official interface

Zodiacs SDK.

A read-only TypeScript interface for the canonical Zodiacs.org registry: official addresses, native Solana origins, bridged Base representations, public ownership, and symbolic identity context.

TypeScript + React 18+ Solana + Base
Taurus figure
№ 01 Introduction

One registry. Many surfaces.

The SDK gives apps a stable way to recognize the Twelve, understand where each representation belongs, read public ownership, and shape that state into identity surfaces.

Native Zodiacs are Solana SPL assets. Base ERC-20 addresses are official bridged representations that point back to their Solana origins.
№ 02 Capabilities

Verified facts for symbolic products.

Verify

Official addresses

Check whether a Solana mint or Base address belongs to the official registry.

Map

Native and bridged

Connect each Base representation to the original Solana asset it reflects.

Read

Public ownership

Read wallet-visible holdings without private keys, custody, signing, or transactions.

Compose

Identity context

Compute held signs, wheel coverage, element mix, modality mix, and seasonal context.

№ 03 Examples

Four common integrations.

These are the core paths most apps need: verify an address, show provenance, read public holdings, and compute display-ready context.

Verify an official address

Resolve a Solana mint or Base address to its sign, chain, and representation type.

View TypeScript
verify.ts
import {
  getRepresentationByAddress
} from "@zodiacs/sdk";

const representation = getRepresentationByAddress(
  "0x3ffB5282F5891Dd8c813E64059EdB0607537eC91"
);

console.log(representation?.sign);  // "aries"
console.log(representation?.chain); // "base"
console.log(representation?.kind);  // "bridged"

Map Base back to Solana

Show that a Base representation is official while keeping the Solana origin visible.

View TypeScript
provenance.ts
import {
  getBaseZodiacRepresentation,
  getNativeCounterpart
} from "@zodiacs/sdk";

const baseAries = getBaseZodiacRepresentation("aries");
const origin = getNativeCounterpart(baseAries.address);

console.log(origin?.chain);   // "solana"
console.log(origin?.kind);    // "native"
console.log(origin?.address); // Solana SPL mint

Read public ownership

Use read-only clients to inspect public balances on Solana and Base.

View TypeScript
ownership.ts
import { Connection, PublicKey } from "@solana/web3.js";
import { createPublicClient, http } from "viem";
import { base } from "viem/chains";
import {
  getBaseZodiacsOwnership,
  getSolanaZodiacsOwnership
} from "@zodiacs/sdk";

const connection = new Connection("https://api.mainnet-beta.solana.com");
const solanaOwner = new PublicKey("...");

const solana = await getSolanaZodiacsOwnership(connection, solanaOwner);

const publicClient = createPublicClient({
  chain: base,
  transport: http()
});
const baseOwnership = await getBaseZodiacsOwnership(
  publicClient,
  "0x..."
);

console.log(solana.heldSigns);
console.log(baseOwnership.heldSigns);

Compute identity context

Turn ownership into facts a profile, shelf, receipt, or wheel can render.

View TypeScript
context.ts
import { getZodiacIdentityContext } from "@zodiacs/sdk";

const context = getZodiacIdentityContext(ownership, {
  sunSign: "leo"
});

console.log(context.heldSigns);
console.log(context.elementComposition);
console.log(context.currentSeasonHeld);
console.log(context.wheelCoverage);
№ 04 Identity context

Display-ready facts, not horoscopes.

The SDK computes symbolic context from verified public ownership. Apps decide how to present that context; the SDK keeps the source data factual and repeatable.

Styled component preview CosmicReceiptCard
SDK input getCosmicReceiptData(ownership)
Try it live getRepresentationByAddress(address)
Verification Loading official registry... Read-only local check
Aries mark Aries
Gemini mark Gemini
Leo mark Leo
Pisces mark Pisces
Sample Cosmic Receipt
A public Zodiac shelf.
Held signs 4 of 12
Wheel coverage 33.33%
Element mix Fire · Air · Water
Season Represented
Native 2 Solana
Bridged 2 Base
Aries Gemini Leo Pisces 8 open
№ 05 Core API

The useful surfaces at a glance.

The package is organized around registry facts, representation provenance, public reads, and identity composition.

Registry
getZodiacsRegistry getZodiacAsset getAllZodiacAssets
Verify
isOfficialZodiacAddress getRepresentationByAddress assertOfficialZodiacAddress
Map
getNativeCounterpart getBaseZodiacRepresentation getSolanaZodiacRepresentation
Read
getSolanaZodiacsOwnership getBaseZodiacsOwnership getCrossChainZodiacsOwnership
Context
getZodiacIdentityContext getCosmicReceiptData getCurrentZodiacSeason
React
useZodiacIdentityContext useCosmicReceiptData useCurrentZodiacSeason OfficialZodiacTokenCard CosmicReceiptCard
№ 06 Applications

Built quietly into many kinds of experience.

The SDK is app-neutral infrastructure. It can support astrology interfaces, horoscope products, wallet views, galleries, profiles, identity layers, share cards, public shelves, Cosmic Receipts, Zodiac Wheels, and AI astrology assistants.

№ 07 Quick start

A small install surface.

Use the package when a product needs the official registry, address verification, read-only ownership, or display-ready symbolic context.

install
npm i @zodiacs/sdk
React hooks and UI primitives are included, including useZodiacIdentityContext, useCosmicReceiptData, and useCurrentZodiacSeason.
№ 08 Posture

Read-only by design.

The SDK is made for recognition, verification, metadata, public reads, and identity context. It does not request private keys, provide custody, sign messages, submit transactions, provide approval helpers, or move assets.

No private keys No custody No signing No swaps No approvals No transactions
Back to the registry