BTC$73,6371.84%
ETH$2,019.581.70%
SOL$82.481.22%

Investor Documentation

On-chain contract.

The Order's NFT program is implemented in Anchor (Rust) on Solana. Every economic parameter — supply cap, mint authority, royalty rate — is enforced by the smart contract source code below.

Live On-Chain Status

Fully Operational

Core mint pipeline live on Devnet. Optional: deploy the custom Anchor program to upgrade to native Anchor mints.

  • Solana Devnet · RPC live

    Block height 453,437,956

  • Memo Program executable

    MemoSq4… active on Devnet

  • Order Treasury anchor verified

    Solana System Program reachable on Devnet

  • Reliquary indexer online

    0 medals recorded

  • Custom Anchor Program

    Optional · Deploy with `anchor deploy` and set REACT_APP_PROGRAM_ID to upgrade to on-chain Anchor mints.

Block Height

453,437,956

Medals Recorded

0

Program ID

Ordero…111111

Last Checked

9:28:08 PM

Collection Name

Royal & Imperial Order of the Sun

Symbol

ORDER

Max Supply

1000

Mint Price

0.001 SOL

Royalty

5%

Mint Authority
Sun1mper…vnet1111
Network

Solana · Devnet

Anchor Program — `lib.rs`

The Order's smart contract

Below is the canonical Anchor program governing the Order. It uses Metaplex Token Metadata to mint each medal as an SPL NFT, enforces a hard supply cap, designates the Order as sole mint authority, and encodes a 5% royalty (seller_fee_basis_points). Deploy with anchor build & anchor deploy.

use anchor_lang::prelude::*;
use anchor_spl::token::{self, Mint, MintTo, Token, TokenAccount};
use anchor_spl::associated_token::AssociatedToken;
use mpl_token_metadata::instruction::create_metadata_accounts_v3;

declare_id!("OrderoftheSun11111111111111111111111111111");

#[program]
pub mod order_of_sun {
    use super::*;

    pub fn initialize_collection(
        ctx: Context<InitializeCollection>,
        max_supply: u64,
        mint_price_lamports: u64,
        royalty_bps: u16,
    ) -> Result<()> {
        let c = &mut ctx.accounts.collection;
        c.authority = ctx.accounts.authority.key();
        c.max_supply = max_supply;
        c.minted = 0;
        c.mint_price = mint_price_lamports;
        c.royalty_bps = royalty_bps;
        c.bump = *ctx.bumps.get("collection").unwrap();
        Ok(())
    }

    pub fn mint_medal(ctx: Context<MintMedal>, name: String, uri: String) -> Result<()> {
        let c = &mut ctx.accounts.collection;
        require!(c.minted < c.max_supply, OrderError::SupplyExhausted);

        // Tribute: transfer SOL to Order treasury
        let ix = anchor_lang::solana_program::system_instruction::transfer(
            &ctx.accounts.payer.key(),
            &c.authority,
            c.mint_price,
        );
        anchor_lang::solana_program::program::invoke(
            &ix,
            &[
                ctx.accounts.payer.to_account_info(),
                ctx.accounts.treasury.to_account_info(),
            ],
        )?;

        // Mint 1 token to buyer
        token::mint_to(
            CpiContext::new(
                ctx.accounts.token_program.to_account_info(),
                MintTo {
                    mint: ctx.accounts.mint.to_account_info(),
                    to: ctx.accounts.buyer_ata.to_account_info(),
                    authority: ctx.accounts.authority.to_account_info(),
                },
            ),
            1,
        )?;

        // Create Metaplex metadata (5% royalty, Order authority)
        let metadata_ix = create_metadata_accounts_v3(
            mpl_token_metadata::ID,
            ctx.accounts.metadata.key(),
            ctx.accounts.mint.key(),
            ctx.accounts.authority.key(),
            ctx.accounts.payer.key(),
            ctx.accounts.authority.key(),
            name,
            "ORDER".to_string(),
            uri,
            None,
            c.royalty_bps,
            true,
            true,
            None,
            None,
            None,
        );
        anchor_lang::solana_program::program::invoke(
            &metadata_ix,
            &[
                ctx.accounts.metadata.to_account_info(),
                ctx.accounts.mint.to_account_info(),
                ctx.accounts.authority.to_account_info(),
                ctx.accounts.payer.to_account_info(),
                ctx.accounts.system_program.to_account_info(),
                ctx.accounts.rent.to_account_info(),
            ],
        )?;

        c.minted = c.minted.checked_add(1).unwrap();
        emit!(MedalMinted {
            number: c.minted,
            owner: ctx.accounts.payer.key(),
        });
        Ok(())
    }
}

#[account]
pub struct Collection {
    pub authority: Pubkey,
    pub max_supply: u64,
    pub minted: u64,
    pub mint_price: u64,
    pub royalty_bps: u16,
    pub bump: u8,
}

#[derive(Accounts)]
pub struct InitializeCollection<'info> {
    #[account(init, payer = authority, space = 8 + 32 + 8 + 8 + 8 + 2 + 1, seeds = [b"order"], bump)]
    pub collection: Account<'info, Collection>,
    #[account(mut)]
    pub authority: Signer<'info>,
    pub system_program: Program<'info, System>,
}

#[derive(Accounts)]
pub struct MintMedal<'info> {
    #[account(mut, seeds = [b"order"], bump = collection.bump)]
    pub collection: Account<'info, Collection>,
    #[account(mut)]
    pub mint: Account<'info, Mint>,
    #[account(mut)]
    pub buyer_ata: Account<'info, TokenAccount>,
    /// CHECK: PDA metadata account
    #[account(mut)]
    pub metadata: AccountInfo<'info>,
    /// CHECK: Order treasury
    #[account(mut, address = collection.authority)]
    pub treasury: AccountInfo<'info>,
    pub authority: Signer<'info>,
    #[account(mut)]
    pub payer: Signer<'info>,
    pub token_program: Program<'info, Token>,
    pub associated_token_program: Program<'info, AssociatedToken>,
    pub system_program: Program<'info, System>,
    pub rent: Sysvar<'info, Rent>,
}

#[event]
pub struct MedalMinted {
    pub number: u64,
    pub owner: Pubkey,
}

#[error_code]
pub enum OrderError {
    #[msg("All medals have been struck. Reserve exhausted.")]
    SupplyExhausted,
}

Full project files: /app/solana_contract/ — see README for deploy steps.

Deploy Ritual

  1. 1. Install Solana CLI & Anchor (anchor v0.30+).
  2. 2. solana config set --url devnet and fund your wallet via faucet.
  3. 3. cd /app/solana_contract && anchor build
  4. 4. anchor deploy --provider.cluster devnet
  5. 5. Copy the deployed program ID and update the dApp's program reference. The Order is now sealed upon Solana.
Royal & Imperial Order of the Sun

A KYC-compliant, members-only investment club on Solana. Membership medals double as access instruments to a curated fractional-art portfolio.

Currently operating on Solana Devnet for testing. Information on this site is for evaluation purposes only and does not constitute a securities offering, investment advice, or a solicitation in any jurisdiction.

Platform

  • Solana NFT Membership
  • Anchor Smart Contract
  • Metaplex Token Metadata
  • 5% Royalty (codified)

Compliance

  • KYC + AML onboarding
  • 3-tier verification
  • Admin-reviewed
  • Encrypted document vault

© Anno Solaris 2026

Made with Emergent