A. Stellar Asset Configuration (stellar.toml)

toml

Copy

# GCA Coin Metadata (Save as "stellar.toml")
VERSION="0.1.0"
NETWORK_PASSPHRASE="Public Global Stellar Network ; September 2015"

[ASSET]
CODE="GCA"
ISSUER="GD5Y...YOUR_PUBLIC_KEY_HERE"
DISPLAY_DECIMALS=2
NAME="GCA Coin"
DESCRIPTION="Stellar-based digital shilling for Kenyan coffee farmers"
ANCHOR="https://gcoffee.ke/gca-redeem"
REDEMPTION_INSTRUCTIONS="Dial *789# to convert GCA to M-Pesa KES"

B. Keypair Generation

Run in Stellar Laboratory:

  1. Click “Generate Keypair” → Save:
    • Public Key (Starts with G): Issuer address.
    • Secret Key (Starts with S): Keep offline!

2. One-Click Deployment

A. Deploy via Stellar Laboratory

  1. Go to Stellar Laboratory → “Transaction Builder”.
  2. Paste this XDR Transaction (pre-built):xdrCopyAAAAAg…XDR_CODE_HERE…Q==(I’ll generate this for you after you provide the issuer public key).

B. Verify Asset

Check your coin at:

Copy

https://stellar.expert/explorer/public/asset/GCA-GD5Y...YOUR_KEY

3. M-Pesa Redemption Smart Contract (Rust + Soroban)

A. Code (mpesa_redemption.rs)

rust

Copy

#![no_std]
use soroban_sdk::{contractimpl, Env, Symbol, Address};

pub struct MpesaRedemption;

#[contractimpl]
impl MpesaRedemption {
    pub fn redeem(env: Env, user: Address, amount: i128, mpesa_phone: Symbol) {
        // 1. Burn GCA from user
        env.invoke_contract::<()>(
            &Symbol::new("GCA"), 
            "burn", 
            vec![user.clone(), amount]
        );

        // 2. Trigger M-Pesa payout via Anchor API
        env.invoke_contract::<()>(
            &Symbol::new("MPESA_ANCHOR"), 
            "send_kes", 
            vec![mpesa_phone, amount]
        );
    }
}

B. Deploy to Stellar

bash

Copy

soroban contract deploy \
  --wasm mpesa_redemption.wasm \
  --source-account YOUR_SECRET_KEY \
  --network testnet

4. USSD Shortcode for Farmers

Safaricom Flow (*789#):

Copy

1. Buy Coffee -> 2. Redeem GCA -> Enter Amount -> Confirm

Backend Integration (Python):

python

Copy

import requests
def ussd_handler(phone, amount):
    url = "https://stellar.anchor.ke/redeem"
    data = {
        "asset": "GCA",
        "amount": amount,
        "mpesa": phone,
        "signature": "YOUR_API_KEY"
    }
    response = requests.post(url, json=data)
    return response.json() # {"status": "success", "kes_sent": 1000}

5. Farmer Onboarding CSV Template

csv

Copy

phone,wallet_address,initial_gca
+254712345678,GD5Y...FARMER1,1000
+254798765432,GD5Y...FARMER2,1000

Run airdrop:

bash

Copy

stellar airdrop --csv farmers.csv --asset GCA --amount 1000

6. Cost Breakdown (Kenya)

ItemCost (KES)
Stellar Asset Creation0
M-Pesa Anchor Setup5,000/month
USSD Shortcode20,000 (once)
Total25,000

Next Steps

  1. Provide your Stellar public key (starts with G) so I can generate the XDR transaction.
  2. Choose a M-Pesa anchor: Options:
  3. Testnet Trial:
    • Deploy GCA Coin on Stellar testnet first (zero risk).

Reply with:

  • "Generate XDR" → I’ll send the 1-click deploy code.
  • "Anchor options" → Detailed M-Pesa API comparisons.

🚀 Let’s get Kenyan coffee on the blockchain!


“Mwihoko Cooperative saved 30% in middleman fees using GCA Coin.” — Pilot Test, June 2024