BUILD ON LIGHTCHAIN
AI
🐬

Build Your First dApp
on Lightchain AI

No coding background? No problem. OrcaAppBuilder walks you through everything — from brainstorming your idea all the way to getting it live and listed on the Lightchain dApp Hub.

💚 It Costs You Nothing to Build and Launch
Your website is hosted for free. No monthly fees, no platform cut of your revenue, no infrastructure bills. What you charge your users — subscriptions, per-transaction fees, tips, nothing at all — is entirely up to you. Everything here is built on free tools that professional developers actually use.
🌐 GitHub Pages — free website hosting, forever
📝 GitHub — free code storage
⚡ Smart Contracts — users pay pennies in gas, you pay nothing
🤖 AI (optional) — ~$5/mo Railway server, users pay $0 per query
🌍 Custom Domain — ~$15/yr for .ai, optional
📚
Learn the Basics
9 plain-English lessons, copy-paste commands, no coding needed.
💡
Brainstorm an Idea
Tell the AI what interests you — get 3 realistic app ideas.
🔨
Build Your App
Describe your idea and get a complete step-by-step build plan.
🔧
Fix a Problem
Something broken? The AI diagnoses and walks you through the fix.
🐬 Apps Built by the Orca Pod — You Can Build These Too
📂 Already building something? Upload your existing project and get AI help improving, fixing, or extending it — no need to start from scratch.
Go to My Projects →
☕ Support OrcaAppBuilder
Free to use. Tips keep it running.
🖥️ What computer are you using? Pick one and the instructions will adjust to match.
👆 Tap your computer type above — instructions in each step will update automatically.
1 · What Is This?
2 · Your Tools
3 · Smart Contracts
4 · AI (AIVM)
5 · Frontend
6 · Wallets & Payments
7 · Hosting
8 · Deploy
9 · Get Listed
1
What Is All of This, Exactly?
Before writing a single line of code, let's make sure the big picture makes sense.
🔵 What Is a Blockchain?

Think of a blockchain as a public notebook that thousands of computers around the world all keep a copy of. When you write something in it — like "User A paid User B" — every computer updates its copy. Nobody controls it, nobody can change what's already written, and anyone can read it.

That shared notebook is what makes apps on a blockchain special: payments, ownership records, and agreements happen automatically without a bank, company, or middleman.

⚡ What Makes Lightchain AI Different?

Lightchain AI is a blockchain that also has a built-in AI network called AIVM (AI Virtual Machine). This means your app can:

  • Accept and send payments in LCAI (Lightchain's currency) — like having a built-in cash register
  • Ask AI questions and get real AI responses — without needing an OpenAI account or API key
  • Store data or ownership records permanently on the blockchain

Every AI request your app makes gets processed by a network of computers called worker nodes. Those computers earn LCAI for doing the work.

🐬
Real-World Example OrcaMail (orcamail.ai) is a wallet-to-wallet email app built on Lightchain. Users pay a tiny amount of LCAI to send a message. No Gmail, no Google account, no middleman — just two wallets and the blockchain.
📋 Key Terms You'll See Everywhere
  • LCAI — the currency of Lightchain, like "crypto dollars" for this network
  • Wallet — your account on the blockchain. An address like 0xABCD...1234. Trust Wallet is what most people use.
  • Smart Contract — a mini-program that lives on the blockchain and runs automatically (like a vending machine — you put money in, you get what you paid for)
  • AIVM — stands for AI Virtual Machine. Lightchain's built-in AI layer. Your app sends questions to it and gets answers back — like a brain your app can rent by the question.
  • dApp — short for "decentralized app." An app that uses a blockchain instead of a traditional server.
  • GitHub — a free website where developers store and share code. You'll use it to host your app for free.
  • Railway — a service that runs your app's "back end" (the part users don't see) in the cloud, 24/7.
⚠️
Which Wallet Should You Use? Lightchain does not have its own official wallet app. Trust Wallet (free on iOS and Android) is the most popular choice for mobile. MetaMask (browser extension) works well on desktop. Either one connects to Lightchain. Do NOT download any app that claims to be an "official Lightchain wallet" — those are scams.
1 of 9
2
Set Up Your Tools
You only need 3 free accounts to get started. Here's exactly what to sign up for and why.
Good News You don't need to install complicated software to start. All three tools work in your web browser.
Tool 1 — GitHub (Free) · github.com

What it is: A website where you store your code and host your app for free. Think of it like Google Docs, but for code.

Why you need it: Your app will live on GitHub Pages — GitHub's free website hosting. When you push an update to GitHub, your app goes live in about 1 minute automatically.

Sign up at: github.com — free account is all you need.

Tool 2 — Railway (Free Trial, then ~$5/month) · railway.app

What it is: A service that runs your app's server (the invisible part that processes AI requests) in the cloud, 24/7.

Why you need it: If your app uses AI (AIVM), it needs a server running in the background. Railway is the simplest way to do this — just connect your GitHub repo and Railway handles the rest.

Sign up at: railway.app — start with the free trial.

Tool 3 — Cloudflare (Free) · cloudflare.com

What it is: A service that manages your domain name (yourapp.ai) and protects your site.

Why you need it: When you're ready to register a real domain, Cloudflare Registrar has some of the cheapest prices. You'll also use Cloudflare's free DNS service to point your domain to your app.

Sign up at: cloudflare.com — free account is all you need to start.

💡
Helpful Shortcut Most apps in the Orca Pod were built using just GitHub + Railway. You don't need Cloudflare until you want a custom domain. Start with GitHub and Railway.
💻 Two Small Things to Install on Your Computer

Everything above is browser-based. But to push your code to GitHub, you'll want two desktop tools. Pick the versions that match your computer:

🪟 WINDOWS Desktop Tools to Install

1. GitHub Desktop — the easiest way to put your app files onto GitHub. Drag, click, done. No terminal needed.
👉 Download: desktop.github.com — free, just click the Windows installer and run it.

2. VS Code — free code editor for editing your HTML files. Much better than Notepad.
👉 Download: code.visualstudio.com — click "Download for Windows", run the installer, accept defaults.

3. Python — needed only if you're running an AI (AIVM) server locally. Skip this for now if you're just building a frontend.
👉 Download: python.org/downloads/windows — download the latest version, and check the box "Add Python to PATH" during install.

4. Chrome Extensions (optional but helpful):
👉 MetaMask Chrome Extension — for testing wallet features in your browser during development.
👉 JSON Formatter — makes API responses readable when debugging.

🍎 MAC Desktop Tools to Install

1. GitHub Desktop — easiest way to upload your files to GitHub.
👉 Download: desktop.github.com — free, download the Mac version and drag to Applications.

2. VS Code — free code editor.
👉 Download: code.visualstudio.com — click "Download for Mac", open the zip, drag to Applications.

3. Python — Mac may have Python 3 already. Check by opening Terminal and typing python3 --version. If it shows a version number, you're good. If not:
👉 Download: python.org/downloads/mac-osx

4. Chrome Extensions (optional):
👉 JSON Formatter — useful for debugging API responses.

🐧 LINUX Desktop Tools to Install

1. Git — usually pre-installed. Check with git --version. If not:

Install Git (Ubuntu/Debian)
sudo apt update && sudo apt install git -y

2. VS Codecode.visualstudio.com/download — download the .deb package and install with sudo dpkg -i code_*.deb

3. Python 3 — likely installed. Verify with python3 --version. If not: sudo apt install python3 python3-pip -y

📱 You Also Need a Wallet

To test your app and pay for AIVM calls during development, you'll need a wallet with some LCAI in it. Here's what you need:

  • Trust Wallet — download free from the App Store or Google Play
  • Some LCAI — buy on Uniswap (uniswap.org) or get from the Lightchain Discord community
  • Lightchain network added to Trust Wallet: Chain ID 9200, RPC: https://rpc.mainnet.lightchain.ai, Symbol: LCAI
2 of 9
3
Smart Contracts — Your App's Cash Register
Not every app needs one, but if you want to collect payments or track ownership, you need a smart contract.
🤔 Do You Even Need a Smart Contract?

Honest answer: not always. Here's a quick guide:

  • Collecting LCAI payments from users → Yes, you need a contract
  • Minting NFTs (digital collectibles) → Yes, you need a contract
  • Just using AI chat in your app → No contract needed (server pays for AI)
  • Free informational app → No contract needed

If you're not sure, build the app first without a contract and add one later when users want to pay for things.

🔧 What a Payment Gate Contract Looks Like

The simplest useful contract is a "payment gate" — users send LCAI to get access to your app. Here's the exact pattern used by the Orca Pod apps:

PaymentGate.sol — Basic Access Contract
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

contract PaymentGate {
    address public owner;
    uint256 public price;           // price in LCAI (wei)
    uint256 public duration = 30 days;
    mapping(address => uint256) public accessExpiry;

    constructor(uint256 _price) {
        owner = msg.sender;
        price = _price;
    }

    // Users call this to pay for access
    function purchaseAccess() external payable {
        require(msg.value >= price, "Not enough LCAI");
        uint256 start = block.timestamp > accessExpiry[msg.sender]
            ? block.timestamp : accessExpiry[msg.sender];
        accessExpiry[msg.sender] = start + duration;
    }

    // Your app calls this to check if a user has paid
    function hasAccess(address user) public view returns (bool) {
        return accessExpiry[user] > block.timestamp;
    }

    // You call this to withdraw the collected LCAI
    function withdraw() external {
        require(msg.sender == owner);
        payable(owner).transfer(address(this).balance);
    }

    function setPrice(uint256 _price) external {
        require(msg.sender == owner);
        price = _price;
    }
}
🚀 How to Deploy This Contract — Two Options

Option A (Recommended for beginners): Remix IDE — runs entirely in your browser, nothing to install, works on Windows, Mac, and Linux equally.

Option B (Advanced): Foundry command-line tool — faster once set up, but requires a terminal and OS-specific installation.

Option A — Remix IDE (No Install Required, Works in Chrome) Remix is a free, browser-based Solidity IDE made by the Ethereum Foundation. Open it in any browser and you're ready to deploy in 5 minutes.
📋 Deploying with Remix IDE — Step by Step
  1. Open Remix: Go to remix.ethereum.org in Chrome (no account needed)
  2. Create the file: In the left panel, click the "+" icon → name it PaymentGate.sol → paste the contract code from above
  3. Compile it: Click the "Solidity Compiler" icon (looks like an S with arrows) on the left → click Compile PaymentGate.sol → you should see a green checkmark
  4. Connect your wallet: Click the "Deploy & Run" icon (looks like an Ethereum logo) → under "Environment" choose Injected Provider - MetaMask (or WalletConnect)
  5. Add Lightchain network to your wallet: Chain ID: 9200, RPC: https://rpc.mainnet.lightchain.ai, Symbol: LCAI
  6. Set the price: In the Deploy section, enter the price in the constructor field. 1 LCAI = 1000000000000000000 (that's 1 followed by 18 zeros). For 5 LCAI enter 5000000000000000000
  7. Deploy: Click the orange Deploy button → confirm in your wallet → wait ~10 seconds → your contract address appears at the bottom of the page. Copy it and save it — you'll need it in your app's HTML.
⚙️ Option B — Foundry (Advanced, Command Line)

Foundry is faster for repeat deployments and is what the Orca Pod apps use. Installation differs by operating system:

🪟
Windows — Use WSL2 for Foundry Foundry doesn't run natively on Windows. The fix is to install WSL2 (Windows Subsystem for Linux) — a free Windows feature that runs a Linux terminal inside Windows. Takes about 10 minutes to set up once.
Step 1: Install WSL2 (run in PowerShell as Administrator)
wsl --install
Step 2: Inside your new WSL2 terminal, install Foundry
curl -L https://foundry.paradigm.xyz | bash
source ~/.bashrc
foundryup
Step 3: Deploy your contract (inside WSL2 terminal)
forge create PaymentGate.sol:PaymentGate \
  --constructor-args 5000000000000000000 \
  --private-key YOUR_WALLET_PRIVATE_KEY \
  --rpc-url https://rpc.mainnet.lightchain.ai \
  --chain-id 9200
🍎 MAC Install Foundry (run in Terminal)
curl -L https://foundry.paradigm.xyz | bash
source ~/.zshrc
foundryup
Deploy to Lightchain
forge create PaymentGate.sol:PaymentGate \
  --constructor-args 5000000000000000000 \
  --private-key YOUR_WALLET_PRIVATE_KEY \
  --rpc-url https://rpc.mainnet.lightchain.ai \
  --chain-id 9200
🐧 LINUX Install Foundry
curl -L https://foundry.paradigm.xyz | bash
source ~/.bashrc
foundryup
Deploy to Lightchain
forge create PaymentGate.sol:PaymentGate \
  --constructor-args 5000000000000000000 \
  --private-key YOUR_WALLET_PRIVATE_KEY \
  --rpc-url https://rpc.mainnet.lightchain.ai \
  --chain-id 9200
⚠️
Keep Your Private Key Safe Your private key is like the master password to your wallet. Never put it directly in your code files. Store it as an environment variable (a secret setting on Railway or your server) and reference it as $PRIVATE_KEY in commands.
3 of 9
4
Adding AI to Your App (AIVM)
This is what makes Lightchain apps special. Here's how to add AI the right way — the easy way.
🚨
Read This First — It Will Save You Days of Frustration There is NO simple "send a POST request to get an AI response" endpoint on Lightchain. If you search online or ask a generic AI assistant, they may suggest /v1/chat/completions — that does NOT exist on Lightchain. The AIVM flow has 9 steps and requires blockchain transactions. The easiest solution is to use a server-side wrapper (like the one below) so your users never see any of that complexity.
🎯 The Easy Way: Server-Side AIVM

Your app's server (running on Railway) handles the entire AIVM flow behind the scenes. From the user's perspective, they type a question and an answer appears. Simple.

Your Python server on Railway does all 9 steps automatically and just sends the final text response back to your frontend.

📦 Exact Python Packages Required — Do Not Change These Versions

Create a file called requirements.txt in your server folder and paste this in exactly. Railway reads this file to install the right packages automatically.

requirements.txt — Copy this exactly
eth-account==0.13.7
web3==7.6.0
cryptography
websocket-client
requests
🪟 WINDOWS Installing Python Packages Locally

If you want to test your server on your Windows PC before pushing to Railway, open Command Prompt (search "cmd" in Start menu) and run:

Install packages — Windows Command Prompt
pip install eth-account==0.13.7 web3==7.6.0 cryptography websocket-client requests

If you see "pip is not recognized", try py -m pip install ... instead. And make sure you checked "Add Python to PATH" when you installed Python (see Step 2).

To run your server locally: py server.py (Windows uses py, not python3)

🍎 MAC Installing Python Packages Locally

Open Terminal (search in Spotlight) and run:

Install packages — Mac Terminal
pip3 install eth-account==0.13.7 web3==7.6.0 cryptography websocket-client requests

To run your server locally: python3 server.py

🐧 LINUX Installing Python Packages Locally
Install packages — Linux terminal
pip3 install eth-account==0.13.7 web3==7.6.0 cryptography websocket-client requests

To run: python3 server.py

🚨
Version Warning — Confirmed From Real Experience Using eth-account==0.11.3 will silently fail with "Invalid SIWE signature" every single time. Using web3==6.x will conflict with eth-account 0.13.7 and fail to install. These exact versions (0.13.7 + 7.6.0) are the only tested, confirmed-working combination.
🔌 The API Your Frontend Calls

Once your server is running, your frontend (HTML page) makes one simple call:

Frontend JavaScript — ask your AI
async function askAI(userMessage) {
  const response = await fetch('https://your-railway-url.up.railway.app/api/chat', {
    method: 'POST',
    headers: { 'Content-Type': 'application/json' },
    body: JSON.stringify({ message: userMessage })
  });
  const data = await response.json();
  return data.reply;  // plain text response from the AI
}
💡
Where to Get the Full Server Code The OrcaAppBuilder backend (orcaapp-server.py) is a complete, working example. The run_aivm_inference() function handles the entire AIVM flow. Copy the AIVMClient pattern and change the system prompt to match your app.
💰 What AIVM Costs
  • Each AI call costs approximately 0.02 LCAI from your dApp wallet
  • Your dApp wallet is separate from your personal wallet — fund it with ~100 LCAI to start
  • The LIGHTCHAIN_PRIVATE_KEY environment variable on Railway is this dApp wallet's private key
  • Never use your personal Trust Wallet key as the dApp wallet key
4 of 9
5
Building Your Frontend — The Part Users See
Good news: you can build a professional-looking app in a single HTML file with no build tools at all.
📄 Why Single-File HTML Is the Best Approach

Most Lightchain dApps are built as a single index.html file. Everything — the design, the buttons, the wallet connection logic — lives in one file. The benefits:

  • ✅ No "npm install", no build tools, no complicated setup
  • ✅ Works on any computer — just open the file in a browser
  • ✅ Hosted for free on GitHub Pages
  • ✅ Updates go live in about 60 seconds after you save and push
  • ✅ Easy to share — just one file
🏗️ Basic HTML App Structure

Every Orca Pod app follows this same skeleton:

index.html — The basic structure
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Your App Name</title>
  <!-- Load ethers.js (wallet connection library) -->
  <script src="https://cdnjs.cloudflare.com/ajax/libs/ethers/6.7.0/ethers.umd.min.js"></script>
  <style>
    /* Your CSS goes here */
    body { font-family: sans-serif; background: #0a0f1e; color: #e8eaf0; }
  </style>
</head>
<body>

  <h1>My Lightchain App</h1>
  <button onclick="connectWallet()">Connect Wallet</button>
  <div id="address"></div>

  <script>
    async function connectWallet() {
      // This is the only code you need to connect Trust Wallet
      const provider = new ethers.BrowserProvider(window.ethereum);
      await provider.send('eth_requestAccounts', []);
      const signer = await provider.getSigner();
      const address = await signer.getAddress();
      document.getElementById('address').textContent = 'Connected: ' + address;
    }
  </script>

</body>
</html>
⚠️
One Common Bug to Avoid Never put a straight double-quote character ( " ) inside JavaScript strings that are already wrapped in double quotes. It will silently break your entire script and nothing will work. Use single quotes inside double-quoted strings, or the other way around: let msg = "She said 'hello'"
🎨 Making It Look Good

You don't need to be a designer. The Orca Pod apps all use the same simple approach:

  • Dark navy background (#080c18) — matches the Lightchain vibe
  • Cyan accent color (#00d4ff) for buttons and highlights
  • CSS variables so you only define colors once and change everything at once
  • CSS Grid or Flexbox for layout — no extra libraries needed

If you want to use the exact same design system as this app, the full CSS is in the OrcaAppBuilder source code — feel free to copy it.

5 of 9
6
Wallets & Payments
How to connect a user's wallet and accept LCAI payments in your app.
🔌 Connecting Trust Wallet

When a user clicks "Connect Wallet" in your app, their Trust Wallet (or MetaMask) pops up asking for permission. Here's the complete, working code:

wallet.js — Full wallet connection + network check
const LIGHTCHAIN_CHAIN_ID = '0x23F8'; // 9200 in hex

async function connectWallet() {
  if (!window.ethereum) {
    alert('No wallet found. Please install Trust Wallet or MetaMask.');
    return null;
  }

  try {
    // Ask user to approve the connection
    const provider = new ethers.BrowserProvider(window.ethereum);
    await provider.send('eth_requestAccounts', []);
    const signer = await provider.getSigner();
    const address = await signer.getAddress();

    // Make sure they're on Lightchain (not Ethereum)
    const network = await provider.getNetwork();
    if (network.chainId !== 9200n) {
      // Ask wallet to switch to Lightchain
      try {
        await window.ethereum.request({
          method: 'wallet_switchEthereumChain',
          params: [{ chainId: LIGHTCHAIN_CHAIN_ID }]
        });
      } catch (switchError) {
        // If Lightchain isn't in their wallet yet, add it
        await window.ethereum.request({
          method: 'wallet_addEthereumChain',
          params: [{
            chainId: LIGHTCHAIN_CHAIN_ID,
            chainName: 'Lightchain AI Mainnet',
            nativeCurrency: { name: 'LCAI', symbol: 'LCAI', decimals: 18 },
            rpcUrls: ['https://rpc.mainnet.lightchain.ai'],
            blockExplorerUrls: ['https://mainnet.lightscan.app']
          }]
        });
      }
    }

    return { provider, signer, address };
  } catch (error) {
    if (error.code === 4001) {
      alert('You declined the connection request. Click Connect Wallet again to try.');
    }
    return null;
  }
}
💸 Collecting a Payment

Once the wallet is connected, collecting payment for access is a simple contract call:

payment.js — Collect LCAI from user
const CONTRACT_ADDRESS = '0xYourContractAddress';
const CONTRACT_ABI = [
  'function purchaseAccess() external payable',
  'function hasAccess(address user) public view returns (bool)'
];

async function purchaseAccess(walletData) {
  const contract = new ethers.Contract(CONTRACT_ADDRESS, CONTRACT_ABI, walletData.signer);

  // 5 LCAI = '5000000000000000000' (18 zeros = 1 LCAI)
  const price = ethers.parseEther('5.0');

  try {
    const tx = await contract.purchaseAccess({ value: price });
    // Show a loading message while the transaction confirms
    console.log('Transaction sent:', tx.hash);
    await tx.wait(); // Wait for blockchain confirmation
    console.log('Payment confirmed!');
    return true;
  } catch (error) {
    if (error.code === 4001) {
      alert('You cancelled the transaction in your wallet.');
    }
    return false;
  }
}
💡
Dynamic Pricing Tip LCAI's price in USD changes constantly. Instead of hardcoding a price in LCAI, fetch the live LCAI/USD price from DexScreener's free API and calculate how many LCAI = $1 (or whatever you charge). This way your app always charges roughly the right amount in real dollars.
6 of 9
7
Hosting — Where Your App Lives
Two options depending on what your app needs.
📄 Option A: GitHub Pages — For Simple Apps (Free)

If your app is a single HTML file with no Python server, GitHub Pages hosts it for free. This is perfect for apps where the AI runs server-side on Railway and your frontend just calls it.

  1. Create a new repository on GitHub (click the + button at the top)
  2. Upload your index.html file
  3. Go to Settings → Pages → set Source to "main branch"
  4. Your app is live at yourusername.github.io/yourrepo

Every time you update your HTML file and push to GitHub, the live site updates automatically.

🚂 Option B: Railway — For Apps With a Python Server ($5/month)

If your app needs AIVM or a database, you need a Python server running somewhere. Railway is the simplest option.

  1. Create a new project on Railway (railway.app)
  2. Click "New Service" → "GitHub Repo" → pick your repo
  3. Railway will auto-detect Python and install your requirements.txt
  4. Set your environment variables (LIGHTCHAIN_PRIVATE_KEY, etc.) in the Railway dashboard
  5. Every time you push to GitHub, Railway auto-deploys in about 2 minutes
🚨
Important Railway Rule Never run railway up from your terminal. Railway auto-deploys from GitHub, and a manual "railway up" gets overwritten the next time you push. Always update your code by pushing to GitHub.
📁 What Files Your Railway Repo Needs
Your Railway repo structure
your-app-server/
├── server.py          ← your Python server
├── requirements.txt   ← package list (exact versions matter!)
├── Procfile           ← tells Railway how to start your server
└── railway.toml       ← optional: health check config
Procfile — tells Railway how to start your app
web: python server.py
7 of 9
8
Going Live — Deploying Your App
The exact workflow to push updates to your live app.
🌐 Deploying Frontend Updates (GitHub Pages)

Every time you edit your index.html, you push it to GitHub and the live site updates in about 60 seconds. Two ways to do this — pick the one that matches your setup:

🪟🍎 GitHub Desktop — Easiest Option (No Terminal)
  1. Open GitHub Desktop (download at desktop.github.com if you haven't already)
  2. Click "Add repository" → find your app folder on your computer
  3. Edit your index.html in VS Code and save it
  4. Switch back to GitHub Desktop — your change appears automatically in the left panel
  5. Type a brief note in the "Summary" box (example: Update: fixed the buy button)
  6. Click the blue "Commit to main" button → then click "Push origin"
  7. Go to yourusername.github.io/yourrepo — your app is live in about 60 seconds ✅
⌨️ Command Line Option (All Operating Systems)

If you prefer the terminal, run these commands from inside your project folder:

🪟 WINDOWS Push update — Command Prompt or WSL2
cd C:\Users\YourName\Desktop\your-app-folder
git add index.html
git commit -m "Update: describe what you changed"
git push origin main
🍎 MAC Push update — Terminal
cd ~/Desktop/your-app-folder
git add index.html
git commit -m "Update: describe what you changed"
git push origin main
🐧 LINUX Push update
cd ~/Desktop/your-app-folder
git add index.html
git commit -m "Update: describe what you changed"
git push origin main
💡
First Time Setup? (Command Line Only) If you've never used git before, run these two commands once before your first push: git config --global user.email "you@email.com" and git config --global user.name "Your Name" Then connect your folder to GitHub: git remote add origin https://github.com/yourusername/yourrepo.git
🚂 Deploying Server Updates (Railway)

Railway auto-deploys from GitHub. To update your server:

Push server update to Railway (via GitHub)
cd ~/Desktop/your-server-folder
git add -A
git commit -m "Update: describe what changed"
git push https://yourusername:YOUR_GITHUB_TOKEN@github.com/yourusername/yourrepo.git main
✅ Post-Launch Checklist
  • ☐ Test your app on mobile (open on your phone)
  • ☐ Test wallet connection with Trust Wallet
  • ☐ Test the AI chat (make sure AIVM responses come through)
  • ☐ Add a Terms & Disclaimer to your app (important for liability)
  • ☐ Announce in the Lightchain Discord: discord.gg/lightchain
8 of 9
9
Get Listed on the dApp Hub
Submit your app to hub.lightchain.ai — the official Lightchain app store.
🎉
This Is the Finish Line Getting listed on the dApp Hub puts your app in front of the entire Lightchain community. It's free to submit.
📋 What You Need Before Submitting
  • ✅ Your app is live at a public URL
  • ✅ Your app uses the blockchain (AIVM, LCAI payments, or a smart contract)
  • ✅ A square logo image (any size, PNG)
  • ✅ A thumbnail image (exactly 800×450 pixels — tip: make it in Canva for free)
  • ✅ A GitHub account
📝 Your Submission JSON File

Create a file called dapp-yourapp.json with this format:

dapp-yourapp.json — Your submission file
{
  "id": "dapp-yourapp",
  "name": "Your App Name",
  "tagline": "One catchy sentence about what it does",
  "description": "2-3 sentences. What your app does, who it helps, and what makes it unique. Be specific — say what blockchain feature it uses.",
  "tags": ["AI", "TOOLS", "MAINNET"],
  "iconSrc": "/images/dapp-item-logo/yourapp-logo.png",
  "imageSrc": "/images/dapp-item-thumb/yourapp-thumb.png",
  "externalUrl": "https://yourapp.ai"
}
⚠️
Tag Rules — Maximum 3 Tags You can only use 3 tags maximum, and they must come from the approved list. Approved tags include: AI, WORKERS, TOOLS, BUILDER, INFRA, ANALYTICS, MAINNET, NFT, MARKETPLACE, MINTING, DEFI, SWAP, LENDING, STAKING, DEX, BRIDGE, SOCIAL, DAO, GAMING. Do NOT use SECURITY, STORAGE, or NODE — they are not in the approved list.
🔀 How to Submit (Fork & PR)

A "PR" (Pull Request) is how you submit your app. It's like saying "here's my addition to your project — please review it."

  1. Go to: github.com/lightchain-protocol/lcai-dApp-hub
  2. Click Fork (top right) — this makes your own copy
  3. In your fork, upload your JSON file to constants/additionalDapps/
  4. Upload your logo to public/images/dapp-item-logo/
  5. Upload your thumbnail to public/images/dapp-item-thumb/
  6. Click Contribute → Open pull request
  7. Write a short description and submit — the Lightchain team will review it
🐬
You Did It! You've gone from zero to a live app listed on the official Lightchain dApp Hub. Welcome to the builder community. Jump into the Lightchain Discord (discord.gg/lightchain) and announce your app with #BuildOnLightchain.
9 of 9
Step 1 of 3 — What world are you most interested in?

Pick the one that excites you most. Don't overthink it — there are no wrong answers.

💰
Money & Finance
Payments, lending, trading, saving
🎨
Art & Collectibles
NFTs, digital art, creator tools
👥
Community & Social
Groups, messaging, reputation
🤖
AI-Powered Tools
Generators, analyzers, assistants
📚
Education
Courses, tutors, quizzes
🛡️
Security & Safety
Scam protection, audits, verification
📁
Productivity
File management, notes, organization
🎮
Games & Fun
Games, competitions, rewards
Step 2 of 3 — Tell us a bit more
Think about the person who would open it and what problem they have that day.
Even a rough half-idea is helpful. Leave blank if you have nothing yet.
Step 3 of 3 — Your Personalized App Ideas

The AI is coming up with ideas based on what you told us...

Thinking up ideas for you...
💻
PC Required to BuildSetting up GitHub, writing code, and deploying to Railway can't be done from a phone. You'll need a Windows, Mac, or Linux computer to follow these steps. Feel free to browse and plan on mobile — just come back on your PC when you're ready to build.
What's your situation?
🌱
Starting from scratch
I have an idea and want a full plan
🔧
Already started
I have code or a partial app and need help finishing
Describe your app idea
Describe it like you'd explain it to a friend. The more detail you give, the better the plan will be.
🔑
AIVM Not Working
Getting "invalid signature" or authentication errors when trying to use AI
🚂
Railway Server Down
Server deployed but returning errors or not responding
👛
Wallet Won't Connect
Trust Wallet connection fails or users get an error
📜
Smart Contract Issue
Deployment failed or contract calls return errors
🌐
GitHub Pages Not Updating
Site not refreshing after push, or showing 404
🗂️
Hub Submission Rejected
PR rejected or submission format issues
💸
Payment Not Working
LCAI transactions failing or users unable to pay
🐍
Python Package Errors
Works locally but fails on Railway — version conflicts
🔐
"Could not deserialize key data"
AIVM crashes with a key format error even though your private key looks correct
⚡ Known AIVM Gotcha — "Could not deserialize key data"

This error appears even when your private key is perfectly valid. The real cause is a mismatch in the worker's public key format — the AIVM network sometimes returns a 33-byte compressed key instead of a 65-byte uncompressed key, and hardcoded DER headers only handle one format.

The fix: In your Python server, detect the key length before building the DER header:

Python — robust worker key loading
klen = len(worker_pub_bytes)
if klen == 65:   # uncompressed: 04 + x + y
    oid = bytes.fromhex('3056301006072a8648ce3d020106052b8104000a034200')
elif klen == 33:  # compressed: 02/03 + x
    oid = bytes.fromhex('3036301006072a8648ce3d020106052b8104000a032200')
else:
    raise ValueError(f'Unexpected key length: {klen}')
wpk = load_der_public_key(oid + worker_pub_bytes, backend=default_backend())
📝 Describe Your Problem

Don't see your issue above? Describe it here. Paste any error messages you're seeing.

🐬
OrcaAppBuilder AI
Powered by Lightchain AIVM
👋 Hey! I'm the OrcaAppBuilder AI — ask me anything about building on Lightchain. Not sure where to start? Try asking:

• "What kind of app should I build?"
• "How do I add AI to my app?"
• "What do I need to get listed on the hub?"

📋 Terms & Disclaimer

OrcaAppBuilder — dApp Builder Companion · orcaapp.ai

1. Educational Purpose Only

OrcaAppBuilder provides educational guidance and AI-generated suggestions for building decentralized applications. Nothing in this app constitutes professional legal, financial, or technical advice. All code examples are provided as starting points — review and test everything before deploying to production.

2. AI-Generated Content

Responses from the AI are generated by Lightchain AIVM and may contain errors, outdated information, or suggestions that don't work in all situations. Always verify AI-generated code before using it in a real application.

3. No Refunds

Any LCAI sent through this platform — including voluntary tips, AI usage fees, or any other on-chain transfers — is non-refundable. All blockchain transactions are permanent and irreversible by nature. By confirming any LCAI transfer in your wallet, you explicitly acknowledge this.

4. No Liability for Your App

OrcaAppBuilder is not responsible for any apps you build using this guidance, including any bugs, security vulnerabilities, financial losses, or user disputes that arise from your application. You are solely responsible for your own dApp.

5. Third-Party Services

This app references third-party services (GitHub, Railway, Cloudflare, Lightchain). OrcaAppBuilder has no affiliation with and no control over these services. Their terms and pricing may change at any time.

6. Service Availability

OrcaAppBuilder may be unavailable at any time without notice. AI features depend on the Lightchain AIVM network, which is a third-party decentralized network outside of our control. We make no guarantees about uptime or response quality.

7. Your Data

Questions you ask the AI are sent to the Lightchain AIVM network for processing. We do not store your questions or personal information on our servers. This app does not use cookies or tracking.

8. Pricing May Change

OrcaAppBuilder reserves the right to introduce, change, or remove any fees, suggested tip amounts, or pricing structures at any time without prior notice. Continued use of the platform after any pricing change constitutes acceptance of the updated terms.

You must acknowledge these terms before using OrcaAppBuilder.