Solana Blockchain • NFT Ecosystem

Koru:
On-Chain NFT Evolution

A complete end-to-end Solana NFT ecosystem featuring fair reveals, non-custodial staking with flexible lock periods, and deflationary burn mechanics.

Fully Minted|Merged with Pulse|No NDA (Technical Showcase)
Koru Project Hero

Project Overview

Koru was a comprehensive NFT collection project built for a client on the Solana blockchain. It required building multiple interconnected systems that pushed the boundaries of what's possible with the Metaplex Core standard.

The ecosystem centered around three pillars: an On-Chain Reveal System for fair trait distribution, a Non-Custodial Staking Platform allowing users to earn rewards without losing ownership, and Deflationary Burn Mechanics for both NFTs and tokens.

Built entirely by a single developer, this project demonstrates expertise in Rust smart contract development (Anchor), React/TypeScript frontend engineering, and deep Solana blockchain integration.

Technical Stack

Solana Programs (Rust)

Anchor 0.31.1Rust 1.75+MPL Core 1.4.1SPL Tokens

Frontend (React/TS)

React 18.2TypeScript 5.1Vite 5.1Tailwind 3.4Framer Motion 12Aceternity UI

Technical Implementation

Detailed breakdown of the core logic and architecture used in the Koru ecosystem.

On-Chain Reveal & Bitmap Logic

Challenge

Implementing a fair, transparent reveal system that prevents manipulation while being gas-efficient on-chain.

Technical Solution

Developed a vault-based storage approach using a bitmap system to track revealed NFTs. The logic uses block timestamps combined with revealed counts for pseudo-random selection, with collision detection to ensure every NFT is unique.

Key Logic Highlights

Uses 0.005 SOL + 35,000 KORU token burn per reveal

Direct CPI updates to Metaplex Core asset metadata

Efficient bitmap tracking to prevent duplicate reveals

Vault storage for massive metadata handling

Non-Custodial Staking with MPL Core

Challenge

Allowing users to stake NFTs for rewards while maintaining asset ownership in their own wallets.

Technical Solution

Leveraged Metaplex Core's freeze plugin. The program acts as a freeze delegate, locking the NFT on-chain while the user remains the owner. This bypasses the need for risky custodial vaults.

Key Logic Highlights

Flexible lock periods: 1 week (1x) to 1 year (12x)

Automatic rarity tracking for multiplier calculation

Early unstake penalty mechanism with KORU burn

Program-derived addresses (PDAs) for secure state management

Smart Contract Architecture

Exploring the core Rust implementation for the reveal and staking programs.

koru-reveal/programs/src/instructions/reveal.rs
pub fn reveal(ctx: Context<RevealCtx>) -> Result<()> {
    let reveal = &mut ctx.accounts.reveal_state;
    let clock = Clock::get()?;
    
    // --- 1. Charge User (0.005 SOL + Token Burn) ---
    let lamports = 5_000_000;
    system_program::transfer(CpiContext::new(...), lamports)?;
    
    let burn_amount = 35_000 * 10u64.pow(decimals);
    token::burn(CpiContext::new(...), burn_amount)?;

    // --- 2. Reveal Logic (Randomization & Collision Check) ---
    let mut idx = ((clock.unix_timestamp as u32)
        .wrapping_add(reveal.revealed_count)) % reveal.total_count;
    
    while reveal.is_revealed(idx) {
        idx = (idx + 1) % reveal.total_count;
    }

    // --- 3. Update MPL Core Asset ---
    UpdateV1CpiBuilder::new(&ctx.accounts.mpl_core_program)
      .asset(&ctx.accounts.asset)
      .new_name(format!("{}{}", prefix, name))
      .new_uri(format!("{}{}", prefix, uri))
      .invoke_signed(signers_seeds)?;

    reveal.set_revealed(idx)?;
    Ok(())
}

Web3 Frontend Integration

The frontend was built with React and TypeScript, integrating seamlessly with the Solana blockchain using `@solana/web3.js` and `@coral-xyz/anchor`.

Clean separation of concerns with a dedicated Web3 layer for transaction building and error handling.

Real-time feedback for blockchain transactions using custom Framer Motion animations and modal systems.

// Frontend Reveal Implementation
export const reveal = async (program, wallet, nft) => {
  const revealState = (await program.account.reveal.all())[0];
  const userTokenAccount = await getAssociatedTokenAddress(
    KORU_MINT, 
    wallet.publicKey
  );

  return await program.methods
    .reveal()
    .accounts({
      recipient: RECIPIENT_PUBKEY,
      revealState: revealState.publicKey,
      revealVault: revealState.account.revealVault,
      tokenMint: KORU_MINT,
      userTokenAccount,
      asset: nft.publicKey,
      collection: COLLECTION_PUBKEY,
    })
    .rpc();
};

100%

Collection Minted

Successful

Brand Merger

Production

Ready Security