Skip to main content
Circles are a programmable access layer built on Octra’s on-chain execution environment. Each Xpectrum collection gets one Circle: a sealed, collection-wide space where holders interact using their NFT as the key.

What a Circle is

A Circle is an isolated execution environment deployed on Octra. It runs AML/OCTB bytecode, holds its own on-chain state, and can call other on-chain contracts directly. Circles are not databases or off-chain servers. They are first-class on-chain programs. On Xpectrum, each collection has one Circle deployed alongside it. It stores the collection’s metadata and art on-chain. Those assets are public and readable by anyone, that is how the marketplace and any indexer render the collection. “Sealed” means write access: once frozen, the assets cannot be changed. NFT ownership gates a Circle’s programmable interactions (the holder-only logic below), not the reading of its public assets.
Circles are live on Xpectrum. The current implementation is collection-wide: one Circle per collection, accessible to holders. We are actively refining the access-control paths for efficiency.

Current capabilities

How access works

Access is verified at the contract level, not in a backend:
  1. Ownership is checked against the Xcollection contract via the XNS-1 interface (owner_of / is_approved_or_owner)
  2. If the caller holds a token from the collection, access is granted
  3. The holder interacts with the Circle’s on-chain state directly from their wallet
No session tokens, no server. Verification happens on every interaction.

What creators can build with Circles

Circles expose programmable logic configured at deploy time:
  • Token-gated communities - discussion, voting, or coordination spaces for holders
  • Holder rewards - on-chain claim mechanics tied to NFT ownership
  • Collection governance - holder votes recorded as on-chain state
  • Gated content - content addressable on-chain, unlocked by ownership verification

On-chain calls

A Circle can call other contracts on Octra via call(address, "method", args):
  • Read state from Xcollection (verify ownership, check token metadata)
  • Read listing state from Xmarket
  • Call any other XNS-1 compliant contract on the network

Horizon

The items below are exploratory. None are live and none have a confirmed timeline. They depend on Octra network capabilities that are still maturing.
The current implementation is collection-wide. Future directions under consideration:
  • Richer Circle programmability, including per-token state where each NFT carries its own isolated logic
  • Cross-collection interaction between Circles
  • Integration with Octra’s FHE layer for private Circle state
This page will be updated as these reach mainnet.