Skip to main content

Solana Protocol

:::note Optional layer This page describes the Solana layer. It keeps working and is frozen for new features. Nothing in Ekza's main path requires it: creators publish, games approve and players play with an email account. Solana adds public proof of ownership, limited editions and trading. See Architecture. :::

Ekza Space uses Anchor programs to represent creator collaboration, asset ownership, virtual Spaces, avatar identity, and revenue accounting on Solana.

Protocol Map​

ProgramRepositoryProgram IDPurpose
solana_stellarsolana-stellar3rVXfq7LLSLqbDzvZuSrQoMytwczLj2Q8Hue62rxPZAAUniverses, assets, lineage, releases, revenue vaults, contributor shares.
solana_ekza_spacesolana-ekza-spaceBms233NNbKb5FAcsjCmmCAU98oCuBXwLrLXNE5sBRdbbFinite numbered Space NFTs and Space settings.
user_profilesolana-avatars56kfTdE1xmCkZ2eDuikD7S5Mr15nmdzQENDWfmdMVttUser profile PDA and selected avatar NFT.
avatar_nft_mintersolana-avatars29KLLArkfCfRGPgTh4k4qzXvR2JkkXfRnnNZTKn54TKzAvatar collection data, minting, fee escrow, and Stellar release links.

solana_stellar​

Stellar is the protocol core for collaborative 3D asset production.

Main accounts:

AccountPurpose
RegistryGlobal universe count.
UniverseIndexLookup from global index to universe.
UniverseWorkspace owned by a creator or studio.
AssetTyped content record backed by metadata hash and preview hash.
AssetParentDirected lineage edge from child asset to parent asset.
ReleaseImmutable production snapshot for an approved asset.
ReleaseVaultPDA-controlled revenue vault.
ContributorShareBasis-point revenue share and claim state.

Important seeds:

PDASeeds
Registry["registry"]
Universe["universe", owner, universe_index_le]
Universe index["universe_index", global_index_le]
Asset["asset", universe, asset_index_le]
Link["link", child_asset, parent_asset]
Release["release", universe, release_index_le]
Release vault["release_vault", release]
Contributor share["share", release, contributor]

Core instructions:

  • create_universe
  • update_universe
  • close_universe
  • create_asset
  • update_asset_metadata
  • add_asset_parent
  • submit_asset
  • approve_asset
  • reject_asset
  • close_asset
  • create_release
  • add_release_share
  • finalize_release
  • finalize_lineage_equal_release
  • finalize_weighted_release
  • link_avatar_data
  • deposit_revenue
  • claim_revenue

solana_ekza_space​

Ekza Space provides finite numbered Space NFTs.

Each Space is a 1/1 mint plus a PDA storing settings:

  • space_id;
  • mint;
  • owner;
  • name;
  • space_config_uri;
  • is_open;
  • is_editable_by_others;
  • editor allowlist;
  • reserved extension bytes.

The current implementation uses space_v1 as the Space PDA seed root.

solana-avatars​

The avatar stack has two programs.

user_profile stores a wallet profile:

  • owner;
  • username;
  • description;
  • selected avatar mint;
  • creation timestamp.

avatar_nft_minter stores avatar collection data:

  • IPFS hash policy;
  • creator;
  • max supply;
  • current supply;
  • mint fee;
  • unclaimed fees;
  • Stellar release links.

The minter enforces non-inflationary NFT behavior by revoking mint and freeze authority after minting.

Metadata Strategy​

The protocol stores compact references on-chain:

  • metadata hash;
  • preview hash;
  • metadata URI;
  • license enum;
  • mint;
  • PDA state.

Rich 3D data belongs in IPFS or another content-addressed storage layer.

Verification Commands​

Run protocol tests from each repository:

cd solana-stellar
yarn --cwd sdk build
anchor test

cd solana-ekza-space
anchor build
anchor run litesvm

cd solana-avatars
anchor test