Lacuna Labs · Interactive design document

Baobab Design Document

For the Seven of Us. Paste your invite token below to unlock the document. The same token lets you in to the Baobab private beta.

Don't have a token? It is being shared with the seven founders during the private-beta window. Email alfred@lacunalabs.ai if you should have one and don't.

Lacuna Labs · Interactive design document
Baobab Design Document
A platform for our people,
by our people.
Live commodity markets, AI-curated news, federated community, and a wallet that works where we live — for the African continent and the Black Atlantic diaspora. Click anything that looks interactive — most things are. ↗ Open the live platform. Download as PDF bottom-right takes the static version with you (no interactive chrome, just the document).
Interactive design document · v0 2026-05-11
For the Seven of Us. Internal — for the people we want at the table before the table is set.

§ 00 · For the Seven of Us

Gullah. Leigh. GT. Reggie. Akinmade. Pop. Alfred.

This document is written to you specifically — the seven of us — and not to anyone else yet. The shape and the language are deliberate. Read it as a working draft, not a finished pitch.

What follows is the technical and political case for Baobab. It is long because the seven of us have agreed before that real work needs real argument, and because the decisions inside the architecture are not casual. Skip the parts you trust me on. Stop hard on the parts you disagree with. The decisions documented here are reversible until they ship — they are not reversible after.

A people without the knowledge of their past history, origin, and culture is like a tree without roots. Marcus Garvey

How to read this document

The pitch I want to make to each of you — and the work I want to ask you for — is in § 07 at the end. Each of you also has your own dedicated page at § 08 at the back of the document. If you only have ten minutes, skip to your page (§ 13.1 through § 13.7) and the closing.

The middle of the document is the reasoning, in the order that the reasoning actually moves. The structure is:

You don't have to read the whole thing.

Skip to § 13 at the back — your name is there. Each of the seven of us has a page that says concretely what Baobab does for the corridor you stand on, what we need from your seat, and what to try first when you click around. The middle of the document is the case; your page is the invitation.

Read your own. Read everyone else's too — that is the whole point.

I have tried to keep my own opinions visible inside the document — set off in boxed pull-quotes — so that disagreement has somewhere to land. If a quote in a box is wrong, the architecture choice it justifies is reversible. If a quote in a box is right, the architecture choice it justifies is the load-bearing wall.

We are calling the platform Baobab. The name is intentional. The tree itself is the architecture: long-lived, water-holding, deeply rooted, gathering people under shade that was already there.

I think I figured it out. Let's do it. — Alfred, to the Seven of Us, on the day this document was written
For Gullah · Leigh · GT · Reggie · Akinmade · Pop · Alfred The Seven of Us · v0

§ 01 · Thesis

What we are building, and why.

Baobab is a single home on the internet for the people of the continent and the diaspora to see where their commodities are priced, what is happening in their countries, who they can talk to about it, and — when they decide to trade — to do that trade safely. The platform itself does not own them, does not hold their money, and does not extract a story it cannot defend.

We are not building another social network. We are not building another exchange. We are building a thin lens — opinionated about what gets surfaced, neutral about who participates — sitting on top of open protocols that already let our people own their identity, their conversation, and their funds.

Three pillars: news, markets, and community. One graph behind it all — every commodity, every country, every region has its own page that fuses data, conversation, and discovery. The AI inside Baobab is a librarian, not a personality. It picks what you see, summarizes what is too long, flags what looks like a scam, and gets out of the way.

A people without the knowledge of their past history, origin, and culture is like a tree without roots. Marcus Garvey

The name is no accident. The baobab is what the continent gave the world as a metaphor for itself — older than the empires that came and went, deeply rooted, water-holding, gathering people under its shade. That is the architecture we are building underneath the screen.

§ 02 · Markets overview

Which markets, which exchanges, why these.

Baobab launches with twenty-nine commodity surfaces. The selection is not academic. Each one ties to a real flow of goods, a real concentration of producers in our audience's countries, and a real gap in how the existing financial-information platforms cover them.

Agricultural — fifteen markets

Cocoa, coffee, tea, sugar, cotton, palm oil, rubber, cashew, sesame, bananas, vanilla, tobacco, maize, sorghum, soybeans. Côte d'Ivoire and Ghana produce over 60% of the world's cocoa. Ethiopia, Kenya, Uganda, and Rwanda are the historic home of arabica coffee. Senegal, Tanzania, Mozambique, and Côte d'Ivoire move enormous cashew and sesame volumes. Madagascar is the world's largest vanilla producer. Côte d'Ivoire is the world's largest banana exporter to the EU. Maize and sorghum are the staple grain economies of the continent. These are not abstractions. These are the actual income streams of the audiences Baobab serves.

Metals and minerals — twelve markets

Gold, silver, platinum, diamonds, copper, cobalt, lithium, manganese, bauxite, iron ore, nickel, uranium. The Democratic Republic of Congo produces over 70% of the world's cobalt. Zambia and the DRC together hold most of Africa's copper belt. Zimbabwe and Namibia have growing lithium production. South Africa is the world's leading producer of platinum and a major gold producer. Ghana is fourth in gold globally. Botswana sits on the largest diamond reserves on Earth. Niger is a top-five uranium producer. The metals story is the most concentrated wealth story on the continent and the most misreported one in Western press.

Energy — two markets

Crude oil, natural gas. Nigeria, Angola, Algeria, Libya, and Egypt are the continental oil heavyweights. Mozambique and Tanzania are emerging gas stories. Trinidad and Tobago — your operator's country — is a major LNG exporter.

African and Caribbean exchange surfaces

Global futures benchmarks (Yahoo Finance / Refinitiv pipes) are paired with regional exchange data wherever available:

ExchangeCountryWhat it trades
AFEXNigeriaSesame, soybean, cocoa, sorghum, maize, cashew
ECXEthiopiaCoffee, sesame, white pea beans, maize
JSESouth AfricaMost liquid African exchange — full equity + commodity book
NSENigeriaNigerian Stock Exchange + agricultural derivatives
LMELondonReference prices for African metals exports
ICENew York / LondonReference prices for African ag exports

The Caribbean exchange picture is thinner but real: Trinidad and Tobago Stock Exchange, Jamaica Stock Exchange, Bahamas. Slice 2 surfaces these alongside the Caribbean commodity story (rum, sugar, allspice, bauxite, oil, gas).

The local-currency overlay

Every price on Baobab is shown both in USD and in the user's local currency. A Nigerian reader sees ₦4,500,000 per ton of cocoa, not just $2,840. A Kenyan reader sees KSh per kilogram, a Zimbabwean reader sees the parallel-rate USD that actually applies. The platform does this because the prices only become legible to the audience when they are expressed in the unit the audience transacts in.

§ 02 · Markets overview 29 markets · 6 African exchanges · live local-currency overlay

§ 03 · Technology overview

What the platform is, in plain English.

Skip this section if you already think in stacks. It is here for the members of the seven, and the people we want to bring to the table next, who would rather not read a diagram. The deeper architecture sits in § 07 if you want it.

The platform is three things stacked.

One: a website you visit in a browser, or install on your phone like an app. It looks like a clean modern news reader (think Feedly), with markets and rooms tabs. That part runs on the cheap end of the internet — Firebase Hosting, delivered globally with the same kind of network that runs Netflix.

Two: a quiet machine in the background that goes out every six hours and fetches commodity prices from Yahoo Finance, refreshes news from the African and diaspora publications we trust, and asks an AI (we use DeepSeek, an open-source-leaning Chinese-built model) to write one-sentence summaries of every story. That part runs on Firebase Functions and costs us pennies a day to operate.

Three: the federated layer — chat, identity, and money — that does not actually live in our hands. Forums and chat live on the Matrix protocol, the same open standard that has replaced IRC for serious federated chat. Identity lives in a wallet on the Polygon blockchain, generated for each user through a service called Web3Auth that lets them sign in with Google but quietly stands up a proper cryptographic wallet behind the scenes.

Why three separate layers

Because the three layers have three different lifespans. The website is the part we can change every week. The fetcher is the part we can update without anyone noticing. The federated layer is the part that is supposed to outlive us — that the community keeps even if Baobab the company stops existing tomorrow.

That last property is intentional. It is the architectural answer to "what if the platform gets bought, gets coopted, gets sued, or just dies?" The community keeps its accounts, its conversation history, its money. Baobab can disappear; the community cannot be deleted by anyone, including us.

The AI piece, briefly

We do not run a chatbot. There is no avatar. The AI shows up as quiet capabilities — a button next to a chart that says "explain this," a button next to a news item that says "summarize" or "translate to Hausa," an invisible filter that flags spam in the forums before you see it. The AI is the platform's librarian, not its personality. We pay DeepSeek about a quarter of a cent per thousand words, which adds up to under $30 a month at our launch scale.

§ 03 · Technology overview Website · fetcher · federation — three layers, three lifespans

§ 04 · Blockchain overview

The blockchain piece, and why this one.

A blockchain is a public ledger. Anyone can read it; no one company controls it. Each "account" on it is a wallet address. Whoever has the private key for that wallet controls the funds — there is no password, no login, no support line you call to reset things. That is the substrate. Below is the filter for why we chose what we chose.

What "putting things on the blockchain" actually means

Three different things, often conflated. Worth separating:

  1. Storing data on a blockchain. Expensive, slow, public forever. Used only for ownership records, escrow state, and reputation badges — the things you need everyone to be able to verify independently.
  2. Running code (smart contracts). Programs that live on the chain and execute when triggered. An escrow contract holds money until the buyer confirms delivery. A cooperative-pooling contract distributes profits pro-rata. Most of what we do onchain is smart contracts.
  3. Anchoring off-chain data. Keep your data in a normal database but periodically write a hash of it to the chain so anyone can verify it wasn't tampered with. Useful for reputation history and dispute evidence.

The filter — which blockchain

There are many blockchains. We had to pick. Here is the actual comparison we ran:

ChainFee per transactionBest atTrade-off
Polygon~$0.001 EVM-compatible, audited tooling, both USDT and USDC native, broad onramp support Less African retail volume than Tron — but more developer ecosystem
Tron~$1 (USDT transfer) Dominant African P2P USDT volume — Yellow Card, Binance P2P, local OTC desks all run here Thinner smart-contract tooling; more centralized governance
Base~$0.05 EVM-compatible, Coinbase-backed, growing Younger ecosystem; Coinbase dependency
Solana~$0.0005 Fastest, cheapest; some African adoption growing Different tooling stack (Rust contracts not Solidity); more outages historically
Ethereum (mainnet)$5–50 Most secure, most decentralized, most respected Prohibitively expensive for retail-size transactions
BNB Chain~$0.20 Cheap, broad retail adoption More centralized than Polygon; Binance dependency

Our choice and the asterisk

Polygon as the platform's primary chain. EVM-compatible (so the enormous Ethereum tooling ecosystem just works, including OpenZeppelin's audited escrow templates), native USDT and USDC, cheap enough that subsidizing user gas costs us cents per user per year, supported by every major onramp partner including Yellow Card for African fiat.

Tron as a secondary deposit/withdrawal chain. Honestly, it is where African retail USDT already lives. Forcing users to bridge funds from Tron to Polygon just to use Baobab would be an unnecessary friction tax on the audience. So we accept Tron USDT deposits, swap internally if needed, and route Polygon where the smart-contract work happens. Web3Auth supports both chains natively.

Other technologies that use blockchain (the filter)

We are not the first or only product in this space. The honest field map:

Each of these solves a specific problem we have. We compose; we do not reinvent. None of them solves the African / diaspora-specific framing — that is what Baobab is for.

§ 04 · Blockchain overview Polygon primary · Tron secondary · the filter through which we chose

§ 05 · Intellectual frame

Standing in a tradition.

The technical choices we are making in 2026 are not novel impulses. They are the latest practical answer to a question our thinkers have been asking for a hundred years: how do we build institutions that do not require our consent to extract from us?

On self-sustaining work

Marcus Garvey's argument was always concrete: the people will be sovereign in proportion to the institutions they build for themselves. He did not stop at the political. He built newspapers, shipping lines, factories, churches, schools — and when those failed, he argued the failure was instructive, not disqualifying.

If you have no confidence in self, you are twice defeated in the race of life. With confidence, you have won even before you have started. Marcus Garvey
Africa for the Africans, those at home and those abroad. Marcus Garvey · UNIA, 1920

Baobab takes the second of those quotes literally. The product is a pan-diaspora platform from day one. Continental Africa, the Caribbean, Black communities in the UK, the US, Canada, Brazil, Colombia, France — addressed as a single audience that shares more in common than the platforms currently serving them admit.

On clearing the inherited stack

Frantz Fanon was a psychiatrist. He understood that liberation has a technical layer and an internal layer, and that the latter is where most projects fail.

Each generation must, out of relative obscurity, discover its mission, fulfill it, or betray it. Frantz Fanon · The Wretched of the Earth, 1961
Imperialism leaves behind germs of rot which we must clinically detect and remove from our land but from our minds as well. Frantz Fanon

For Baobab this is design discipline. The first thing the user sees should not be catastrophe — not because the catastrophes are not real but because the default register of every Western platform serving these audiences has been catastrophe, and that register has consequences for how the next generation understands what is possible. Our default is opportunity. Hard news is one click away; the user opts in.

On who owes whom

Walter Rodney named the actual mechanics of the problem. Development is not given; it is blocked by structures that benefit from its absence.

Development means a capacity for self-sustaining growth. It means that an economy must register advances which in turn will promote further progress. Walter Rodney · How Europe Underdeveloped Africa, 1972

Our wallet and our trading floor exist because the mechanics still apply. A cocoa farmer in Côte d'Ivoire is currently selling into a price discovery process they cannot see, with counterparties they cannot verify, settling in currencies they did not choose. We cannot change all of that. We can change the part that is one good user interface and a federated protocol away.

§ 06 · Operator voice

Why I am picking the technology this way.

The technical decisions are not neutral. They are answers to specific questions about who benefits, who is at risk, and who keeps what when the platform is in its second decade.

We're not owning anything. We're not holding anything. The AI is adding an enhancement. — Operator

Custody is the question. The cleanest possible answer is the one where Baobab cannot lose anyone's funds because Baobab does not hold them. We are using Web3Auth MPC wallets: the key is mathematically split between the user, the platform, and an optional recovery service. We cannot move funds without the user. The user can withdraw to any external wallet at any time. This places us outside the regulatory category of "money transmitter" in most jurisdictions and lets us launch without needing a bank charter.

The default story isn't disaster. — Operator, on editorial policy

The ranking algorithm has a stated bias, and the bias is the moat. The opportunity feed is the default surface. Hard news is gated behind an opt-in filter. This is editorial work, not engineering — but engineering is how it gets enforced in the ranking. The bias is documented, auditable, and inverts when the user says so.

Decentralize from day one. I think it's the correct political thing to do. — Operator

Forums and chat run on Matrix, the federated open-source successor to IRC. We host one homeserver at matrix.baobab.lacunalabs.ai, but users can sign in with an account on any Matrix homeserver in the federation. If we ever drift, the community keeps their accounts, their history, and their relationships, and opens a different client.

Identity moves to a profile NFT on Polygon in slice 2 — when users sign in via Google, a wallet is created for them and that wallet becomes the durable handle. Reputation accrues as soulbound badges minted onchain after every clean transaction. None of this is hostage to Baobab continuing to exist.

The pricing model is not concerned with making money so much as it's concerned with spurring trade amongst these people. — Operator

We charge 1% on platform-facilitated value transfers — P2P sends, swaps, escrowed trade releases. We do not run ads. We do not sell data. We do not rent the attention of our users to anyone else. The 1% is calibrated to cover infrastructure and sustain the development team; it is not calibrated to maximize. A user who never trades pays nothing and gets everything: news, markets, community.

§ 07 · Architecture

What lives where, and who holds it.

The substrate is open. The lens is ours. Below is the actual map of who holds what.

User's browser · PWA index.html · library.html · voice.html · wallet.html · admin.html · signup.html · pure HTML + CSS + JS + D3 Adinkra avatar · 6-lang i18n · 6h ticker refresh · drag-scroll · detail overlay · AI shell Our backend · Firebase Functions · Firestore · Hosting · Auth /api/prices · /api/prices/history · /api/news /api/ai/translate · /api/ai/chat · /api/ai/summarize /api/loam/lookup · /api/languages · /api/rooms/live /api/admin/* (token-gated) Curation index · ranking · scheduling · ops Federated Matrix (Dendrite) forums + chat LiveKit SFU voice rooms community keeps if we drift Onchain · Polygon Web3Auth wallets (MPC-split keys) Escrow contracts Reputation NFTs user owns; chain witnesses External feeds Yahoo Finance · 28 RSS sources · DeepSeek API cached in Firestore · refreshed every 1h news, 6h prices Onramps / offramps Yellow Card · MoonPay · Flutterwave · M-Pesa · MTN MoMo we never see card data; partner takes its fee

Three boxes in the middle row: ours (curation, ranking, operational state) · federated (Matrix + LiveKit; community keeps it if we drift) · onchain (wallets, escrow, reputation; user owns it; the chain is the witness). Bottom row: everything the platform talks to without owning.

LayerSubstrateWho holds it
IdentityProfile NFT on PolygonThe user's wallet owns it.
Wallet keysWeb3Auth MPC splitUser holds the dominant share. Baobab cannot move funds alone.
Forums & chatMatrix protocolThe federation. Baobab runs one homeserver; many can.
Public broadcastMatrix rooms (S1) → Nostr (S2)Decentralized relays.
Trade & escrowPolygon smart contracts (audited)The chain. Optional arbitration via Kleros.
ReputationSoulbound NFTs on PolygonUser holds it. Non-transferable.
News contentRSS / partner feeds, cached in FirestoreOriginating publishers. Baobab is a cache.
Curation indexFirestore (Baobab)Baobab — this is our actual product.
AI sheriff / curatorDeepSeek inference on our infrastructureBaobab.
Web app codeGitHub, open source where applicableThe community.

The line is clean: the protocols are open and decentralized. The curation lens is ours. We moderate by what we choose to surface, not by what we permit to exist. Our AI sheriff filters out spam and known scam patterns invisibly. We cannot delete content from the protocol — and we shouldn't be able to. A platform that can be coopted into censoring its community on demand is structurally unsuited to this audience.

The entity graph keystone

Every commodity, every country, every region gets the same page template — prices, news, forum, and (when activated) the trading floor. Pages compose at intersections: Corn × Ghana is its own surface. Diamonds × DRC is its own surface. The user can arrive there from either parent. Two page templates and a data graph drive most of the surface area.

Languages from day one

English, French, Arabic, Portuguese, Swahili, and Hausa at launch. Together these cover the great majority of urban readers across the continent and the diaspora in their primary language. Indigenous coverage broadens as specialized models (Aya, Lelapa's InkubaLM) get routed in for low-resource languages.

§ 08 · Economics

The simple money.

Sender $100.00 platform-facilitated transfer Baobab platform takes 1% → $1.00 infrastructure · team · audit Recipient $99.00 What the 1% pays for • Firebase Hosting + Functions + Firestore (~$10 / month at v0) • DeepSeek inference (~$30 / month for translation + summary + chat at v0) • Matrix homeserver on Fly.io · team stipend · regulatory + audit budget

Escrow release on a $10,000 cocoa trade: $250 to Baobab (2.5%), $9,750 to the seller. The escrow premium pays for the dispute-arbitration service — operator-arbitrated in S4, Kleros-arbitrated in S4+. Reading, browsing, holding, receiving: $0.

Three lines of revenue, in order of importance: trade fees, premium subscriptions, and (someday, with consent) data licensing. The free tier covers reading the news, seeing the markets, joining the federated rooms, and holding a wallet. The platform becomes "self-sustaining" — Rodney's word — when its users trade with each other.

Revenue, in three lines

Line 1 — Trade fees. Our primary revenue. Calibrated to cover infrastructure and keep the team paid, not to maximize.

Line 2 — Premium subscriptions. Three monthly tiers gating Firebase-powered convenience features — alerts, watchlists, push notifications, advanced AI-on-demand. The free tier remains substantial; subscriptions are for users who want quality-of-life features on top.

Tier$/monthWhat you get on top of free
Free$0 Everything that makes the platform itself — news, markets, rooms, the wallet, 6-language UI, basic ticker, AI inline-affordance summaries on cached items, sign-in via Google, 1% trade fees on transfers
Reader+$1.00 Daily email digest of your followed entities · 3 saved watchlists · ad-free guarantee (we don't run ads anyway; this is a commitment in writing) · priority within rate limits
Trader$4.99 Up to 25 watchlists · push notifications on price moves and news keywords · custom-frequency alerts · on-demand AI summarization of any article into any of the 6 languages · private group chat (Matrix rooms hosted on our homeserver with elevated quotas) · advanced filter composition · 2nd "from country" pin for diaspora users
Pro$9.99 Unlimited watchlists and alerts · real-time data refresh (no 6h cache gate) · multi-corridor remittance analyzer (compare M-Pesa + MoMo + Yellow Card + traditional rails in one view) · early access to new commodity surfaces and language routings · API access for personal automation · 5% off platform trade fees in S3+

Firebase is what makes the subscription tiers cheap to operate. Real-time Firestore listeners (live data), Cloud Functions for on-demand summarization, FCM (Firebase Cloud Messaging) for push notifications, custom Firestore queries for watchlists — these are the primitives we resell as quality-of-life features. The marginal cost to us of each Pro subscriber is well under $1/month; the price reflects what users get rather than what we spend.

Line 3 — Data licensing (future, consent-only). Once we have a canonical African-commodity price index with multi-source provenance, that index is licensable to bona-fide research institutions, university libraries, and hedge-fund-adjacent buyers. Strict gate: only with provenance attribution, only with the originating exchanges' consent, and never customer data. Not v1, not v2. Mentioned only so the seven of us agree on the principle now.

What Baobab holds on its end (and what it doesn't)

Honesty matters here. We do hold operational customer data — the things we need to provide the service. Specifically, in Firebase Firestore:

What we explicitly do not hold:

The line is: operational state lives with us so the platform can be quick and quiet; identity, money, and social graph live elsewhere so the user cannot be deleted by us.

Costs at v0 scale

Firebase Hosting + Firestore + Functionsunder $10/mo
DeepSeek inference (news summaries, scam detection)under $30/mo
Matrix homeserver on Fly.io$10–25/mo
Domain & certificatesexisting
Total v0under $80/mo

What we are not doing

Why this works

Trade fees scale with volume. The economic model gets healthier in the same direction that the political model wants it to go: more people, trading more with each other, building reputation and cooperatives. The platform's interests are aligned with the community's by construction, not by promise.

§ 09 · What is built and live today

Features in the private beta.

Everything below is in the repository right now, committed and reviewable. Each item lists the tier that gates it. Free unless marked.

The home portal

FeatureWhereTier
Live commodity ticker — drag-to-scroll, click any tile for detailTop strip on every pageFree
29 commodity surfaces with D3 sparklines, 52-week range bar, exchange tagMarkets tabFree
Bloomberg-deep detail overlay — chart, range, percentile, producers, related newsClick any ticker tileFree
Timeframe selector: 1D / 1WDetail overlayFree
Timeframe selector: 1M / 3M / YTD / 1Y · MA20 + MA50 overlays · volume barsDetail overlayTrader $4.99/mo
5Y timeframe · Bollinger Bands · RSI(14) · MACD(12,26,9) · realized vol · correlationDetail overlayPro $9.99/mo
AI-curated news feed across 28 sources — news, longform, diaspora lanesNews tabFree
News Pulse — D3 force-laid constellation of countries / commodities mentioned today, click to filterNews tabFree
Translate any article into 80+ languages with one-click fade-inNews tabFree
Six-language UI: English, French, Arabic, Portuguese, Swahili, Hausa · RTL for ArabicTop right pickerFree
Per-entity Matrix rooms — 29 commodities + 54 African countries + regions, >90 rooms totalForums tabFree read; sign-in to write
Six "most active" featured rooms on the Forums landingForums tabFree
Library of Black + African classics — Gutenberg + Marxists Internet Archive + Internet ArchiveLibrary tab and /library.htmlFree
In-browser reader for public-domain texts (Equiano, Douglass, Wells, Du Bois, Washington)Library tabFree
Adinkra avatars — 12 symbols deterministically assigned by user IDTop-right me-chipFree on sign-in
Six-hour refresh countdown with live-dotBelow tickerFree

The AI shell

FeatureWhereTier
Terminal-aesthetic chat panel with [you@<context>]$ prompt$ launcher bottom-rightFree
Context isolation — every conversation bounded to its context_id, nothing crossesShellFree
Per-language picker — 20+ languages including Nigerian Pidgin, Krio, Haitian Kreyòl, Ge'ezShell input rowFree
Slash commands: /lang, /translate, /markets, /news, /facts, /context, /contexts, /ctx, /clearShellFree
Loam grounding — when you open a market detail, the shell pre-loads facts about it; /facts surfaces themShellFree
Restorative moderation — escalating private cooldowns (0 / 5 / 10 / 20 minutes), never publicShellFree
Culturally-attuned "please refrain" idiom in 19 languagesShell · only the user sees their ownFree

The standalone pages

PageWhat it doesStatus
/signup.htmlEarly-access landing — captures emails into localStorage; wire to a real backend before public launchLive
/library.htmlThe library with in-browser reader, 26 curated works, theme + era + format filtersLive
/voice.htmlFederated voice-rooms UI (Spaces-shape, Matrix-backed) — audio routing wires in S2UI live; audio S2
/wallet.htmlWeb3Auth-shaped embedded wallet — assets, transactions, onramps, fee breakdownUI live; mainnet S3
/admin.htmlToken-gated ops + moderation: service health, ban management, counts, raw statusLive · requires ADMIN_TOKEN

The backend

Firebase Functions endpoints, all CORS-public except admin (gated by X-Admin-Token):

EndpointWhat it does
GET /api/pricesLive commodity prices (Yahoo Finance for liquid futures; static reference for the rest); 6h Firestore cache
GET /api/prices/history?sym=X&tf=YHistorical series for the deep-indicator charts; per-(sym, tf) cache
GET /api/newsLatest 50 RSS items across 28 sources, deduplicated, entity-tagged
GET /api/rooms/liveTop-active Matrix rooms with member counts, voice-listener counts, last-message preview
GET /api/languagesThe 80+ African and diaspora languages with native names, scripts, coverage hints
GET /api/loam/lookup?entity=XThe Loam graph cache — entity facts with citations and cross-references
POST /api/ai/translateLanguage-first DeepSeek translation; per-(text, target) cache
POST /api/ai/summarizeInline-affordance AI summaries; per-(text, lang) cache; opportunity-forward prompt
POST /api/ai/chatThe AI shell endpoint — voice contract baked in, history per context_id, server-side abuse defense
POST /api/ai/forward-outlookPro-tier forward bullets per commodity
GET /api/admin/statusPings DeepSeek, Yahoo, Firestore, news cache, ai_cache, bans — returns per-service health
GET /api/admin/bans · POST/DELETEList, add, and remove user bans
GET /api/admin/statsCounts across collections

Concrete pricing — what 1% looks like

ActionAmountBaobab feeRecipient gets
You send another Baobab user USDC$100$1.00 (1%)$99.00
You swap USDC → USDT via 1inch routing$500$5.00 (1%)$495 in USDT
You release escrow on a completed cocoa trade$10,000$250 (2.5%)$9,750 to the seller
You receive funds from anyoneany amount$0full amount
You hold funds for a yearany amount$0same balance
You read news, browse markets, join forums$0

The Trader and Pro subscriptions ($4.99 and $9.99/mo) gate additional convenience features — deeper timeframes, push notifications, advanced indicators, the forward-outlook AI. They do not gate the platform itself.

§ 09 · Features catalog · v0 closed beta concrete pricing · concrete features · concrete tiers

§ 08a · Lacuna and the worker protocol

The brain, the hands, the language between them.

Behind the visible Baobab is a small, deliberately old-school orchestration pattern. Lacuna does the thinking. Workers do the work. Scheme is the language they speak to each other. Lacuna's JSONL audit log is the long-term record. The whole thing is reproducible from source.

The pattern, plainly

Lacuna is a Python daemon — Lacuna Labs' own product, separately documented at ~/code/lacuna/. It sits on a single host (Fly.io for the cloud deployment, a laptop for development) and reads the world: market schedules, news cadences, operator preferences, capability rules. From that, it emits plans — programs written in Scheme.

Workers don't think. They execute. A worker is whatever process (in whatever language) implements the worker protocol: receive a Scheme plan over HTTP, run it against a registered tool set, return the result and the audit log. The worker contract is in docs/specs/2026-05-11-worker-protocol.md.

The lifecycle of a news refresh

1. Lacuna's cron fires every hour, on the dot checks operator caps renders the plan to text 2. POST /mailbox/news-fetcher Content-Type: application/scheme (message (plan (begin ...))) caps: :net :cache :threads :audit 3. Worker runs the plan Rust+WASM (Cloudflare) parallel-map over 27 sources og:image enrichment 4. (response …) in Scheme value + audit entries + duration homoiconic with the request 5. Lacuna translates to JSONL ~/.lacuna/lacuna.log.jsonl — one line per audit event grep tomorrow; prove what happened 6. Frontend reads the cached items — same /api/news contract whether v1 Worker or v2 Lacuna is behind it.

Why Scheme

Three reasons, increasingly load-bearing:

  1. Auditable. The plan is human-readable text. Every operation the worker performed is reconstructible from the plan + the audit log. We do not have to trust the worker; we can show anyone the exact program that produced the result.
  2. Portable. The same plan runs on a Cloudflare Worker WASM build, a Fly native Rust binary, a Python worker (Lacuna itself can be a self-hosted worker for testing), or a laptop with cargo run -- plan plans/news-refresh.scm. The execution layer is interchangeable; the plan is the constant.
  3. Capability-bound. Tools are checked in the worker's native language, not in Scheme. No Scheme cleverness can bypass :net if the plan was granted only :cache. The permission boundary is the dumb layer, which is the right place for it.

The power of v1 workers

The Rust v1 worker (baobab-worker-rs) ships with a deliberately rich tool registry — about 50 Scheme primitives across net, parse / format, cache, storage, time, threading, crypto, text, AI, and audit categories. Two examples that hint at the power:

PrimitiveCapsWhat it does
(parallel-map fn xs) :threads Apply fn to every element of xs concurrently up to the worker's :concurrency cap. The news refresh plan uses this to fetch all 27 sources in parallel.
(race fns) :threads Run all functions in parallel; return the first to complete. Others are cancelled cooperatively. Useful for fallback fetchers — Yahoo Finance fails over to Alpha Vantage in 50ms.
(channel) :channels Unbounded mpmc channel handle. (send ch v) / (recv ch) / (recv-any (list ch1 ch2)) — Erlang-style selective receive across worker threads.
(crawl-url url) :net :browser Headless-browser scrape — used selectively for content we own or have a license for (government commodity reports, exchange PDFs, our own forum data). NOT used for third-party news; see § 09b on the editorial choice.
(summarize text) :llm Routed call to the configured LLM (DeepSeek by default). The plan controls the prompt, the model, the language.
(fetch-og-image url) :net One range-limited GET, parses <head> for og:image / twitter:image / JSON-LD image. Fills in the Magazine view's thumbnails.

The same protocol, every language

A worker is anything that implements the protocol — accept a Scheme message envelope, run the plan against a registered tool set, return a Scheme response envelope. Reference implementations:

LanguageWhere it livesStatus
Rust (compiles to Cloudflare WASM and native)workers/baobab-worker-rs/Scaffold + tool spec
JavaScript (Cloudflare Worker, interim)workers/news/Deploy-ready
Python (Lacuna self-hosts for testing)plannedSpec-ready
Go (high-volume mailbox-heavy deployments)plannedSpec-ready

The plan written for the Rust worker runs unchanged on the Python worker. The frontend doesn't know which language is behind the /api/news endpoint and never has to know.

What this gives Baobab

§ 08a · Lacuna · workers · Scheme brain · hands · language between them

§ 09a · Economics, the deep version

What does the money look like.

The 1% / 2.5% lines are the headline. The question worth asking is: how does that sit next to what people pay today? And what does the platform look like at low, medium, and high effort?

Fee comparison — what people pay today, vs. Baobab

Spot prices for moving $100 from one wallet to another, in 2026 figures:

ServiceFee on $100What that buys
Western Union (Lagos ↔ London)~$6.50cash pickup; 1–3 day settlement
Wise (UK → Nigeria)~$0.95bank-to-bank; same-day
M-Pesa in-network (KE → KE)~$0.80 (KES 70)seconds; mobile money
M-Pesa cross-network~$2.50–5.00seconds; with switch fees
Coinbase (USDC → USDC, on-app)$0–1.99free in-app; Coinbase pricing power
Coinbase (Polygon withdrawal)~$1.50 + ~$0.01 gasonchain to external
Binance P2P (NGN ↔ USDT)~0.5–1% effectivespread + trader margins
MoonPay (card → USDC)~$3.50 + $4 minimumcard networks taking their share
Yellow Card (cedi → USDC)~1.5–2%direct Africa fiat onramp
Baobab (USDC → USDC)$1.00 (1%)instant; cross-border; in-app
Baobab (escrow release)$2.50 (2.5%)buyer-confirmed; dispute available

The platform sits below traditional remittance, above big-exchange in-network pricing, and squarely competitive with Yellow Card. The escrow premium pays for the dispute-arbitration service — without it, escrow is just held funds; with it, the platform earns its keep.

M-Pesa specifically (because GT and Reggie asked)

M-Pesa is the canonical comparable for the East African corridor. Their schedule for a Kenya-to-Kenya transfer of $100-equivalent looks like this (mid-2025 published rates, expressed in USD-equivalent at KES 130):

TierSender paysWithdraw feeNet to recipient
M-Pesa to M-Pesa (in-network)$0.80$0.55 to cash out$98.65
M-Pesa to other-network ↔ ATM$2.50$1.10 (switch fee)$96.40
M-Pesa cross-border (to TZ, UG)$3.00–5.50varies$94–96
Baobab USDC (cross-border)$1.00$0 to hold; $1.50 to cash via Yellow Card$97.50

The platform's structural advantage is in cross-border — the diaspora corridor flows are where remittance providers charge 5-10%, and where stablecoin rails save the recipient real money. Within Kenya specifically, M-Pesa wins on price because Safaricom subsidizes the rail with its core mobile business; we don't try to compete there.

On-ramping — getting fiat into stablecoin

The user experience of "I have 50,000 naira; I want $30 of USDC in my Baobab wallet" goes through one of three partners, depending on the country and the amount:

PartnerMarketsOnramp feeSettlement
Yellow Card20+ African countries · NGN, GHS, KES, ZAR, EGP, others1.5–2%2–10 minutes
MoonPayGlobal · card / Apple Pay3.5–4.5%seconds
FlutterwaveWest Africa · NGN, GHS1.8–2.2%10–30 minutes
Bank wire (US/EU partner)USD direct~0.5%1–3 days

Baobab does not charge an additional onramp fee — the partner's rate is what the user pays. Our 1% kicks in when funds move through the platform (send, swap, escrow), not when they enter or exit.

The native app question

PWA first. The home page is already installable as a progressive web app from any modern mobile browser. The user gets an icon on their home screen, push notifications (when wired in S2), and full offline-mode for read surfaces. No app store, no app-store fee, no installation friction. Critical for African distribution where app-store payment friction is a real barrier.

Native iOS / Android comes when traffic justifies. A thin React Native or Capacitor shell wrapping the same web codebase, with native push and biometric unlock. Estimated build cost: 8–12 weeks for both platforms once S3 ships. Apple's 30% tax on in-app subscriptions is a real consideration; the workaround is to route subscriptions through the website (the way Spotify, Netflix, and Patreon do).

What does success look like — three scenarios

Annualized revenue projections at three effort levels, assuming we ship S1 + S2 + S3 (markets, social, payments) and the Seven of Us run the community-building work in earnest:

ScenarioActive usersAvg trades / user / moAvg trade sizeMonthly revenue
Low effort — diaspora-only, slow growth, no marketing spend 2,5001$80~$2,000/mo
Medium effort — Seven of Us drive cooperative adoption in the 3 strongest corridors (UK-Ghana, UK-Nigeria, US-Zim) 20,0002.5$120~$60,000/mo
High effort — full continental + diaspora reach, S4 trading floor active, cooperative pooling at scale 200,0003.5$180~$1.26M/mo

Plus subscriptions, which scale separately:

ScenarioPremium conversions (Trader+Pro)Blended ARPUMonthly subscription revenue
Low50 (2%)$5.50~$275/mo
Medium800 (4%)$6.50~$5,200/mo
High12,000 (6%)$7.20~$86,400/mo

Cost stack at v0/v1 traffic is well under $200/month (Firebase Hosting, Firestore reads, Functions invocations, DeepSeek inference, Matrix Synapse on Fly). The medium scenario covers operating costs and supports modest stipends to the Seven of Us as the project transitions from passion-project to part-time work. The high scenario funds a team and a regulatory budget.

The deliberate constraint: we do not optimize for the high scenario at the cost of the substrate. The substrate (open protocols, federated chat, user-owned wallets, user-owned identity, the editorial floor) is the moat. If we make platform-extractive choices to goose the high-scenario number, we lose the moat. So we don't.

§ 09a · Economics deep dive · fee comparisons + scenarios 1% / 2.5% / no ad revenue / no data sales

§ 09b · No lock-in

You can take it all with you. Here is the script.

The single hardest commitment a platform can make is this: we will not hold your data hostage. Baobab makes it because we can't break it — the load-bearing things (your identity, your money, your social graph) do not live on our servers in the first place. Everything you can see on Baobab, you can also see without Baobab.

What lives where

The script — under 40 lines of Python

Drop this in a file named pull-my-baobab.py, fill in your wallet address and Matrix credentials, and run it. You get back everything Baobab can see about you, without asking Baobab a single thing.

# pull-my-baobab.py — everything Baobab can see about you, without Baobab.
# Requires: pip install web3 requests

from web3 import Web3
import requests

WALLET            = "0xYourPolygonAddress"
POLYGON_RPC       = "https://polygon-rpc.com"
MATRIX_HOMESERVER = "https://matrix.baobab.lacunalabs.ai"  # or your own
MATRIX_USER       = "@you:matrix.baobab.lacunalabs.ai"
MATRIX_TOKEN      = "your-matrix-access-token"

# 1. Stablecoin balances on Polygon (USDC + USDT, the platform's primary rails)
w3 = Web3(Web3.HTTPProvider(POLYGON_RPC))
TOKENS = {
    "USDC": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
    "USDT": "0xc2132D05D31c914a87C6611C10748AEb04B58e8F",
}
ERC20_ABI = [{"name":"balanceOf","outputs":[{"type":"uint256"}],
              "inputs":[{"type":"address"}],"stateMutability":"view","type":"function"}]
for name, addr in TOKENS.items():
    bal = w3.eth.contract(address=addr, abi=ERC20_ABI).functions.balanceOf(WALLET).call() / 1e6
    print(f"{name}: ${bal:,.2f}")

# 2. Your Matrix profile and the rooms you're in
H = {"Authorization": f"Bearer {MATRIX_TOKEN}"}
profile = requests.get(f"{MATRIX_HOMESERVER}/_matrix/client/v3/profile/{MATRIX_USER}").json()
rooms = requests.get(f"{MATRIX_HOMESERVER}/_matrix/client/v3/joined_rooms", headers=H).json()
print(f"Display name: {profile.get('displayname')}")
print(f"In {len(rooms.get('joined_rooms', []))} rooms")
for rid in rooms.get("joined_rooms", [])[:5]:
    msgs = requests.get(f"{MATRIX_HOMESERVER}/_matrix/client/v3/rooms/{rid}/messages",
                        headers=H, params={"limit": 5, "dir": "b"}).json()
    print(f"  {rid}  ({len(msgs.get('chunk', []))} recent events)")

# 3. Your onchain transaction history (entirely public; no Baobab access needed)
hist = requests.get("https://api.polygonscan.com/api",
                    params={"module": "account", "action": "txlist", "address": WALLET, "sort": "desc"}).json()
print(f"On-chain Polygon transactions: {len(hist.get('result', []))}")

# 4. (Optional) Your platform preferences — the only thing Baobab holds.
prefs = requests.get(f"https://baobab.lacunalabs.ai/api/users/me",
                     headers={"X-User-Wallet": WALLET}).json()
print(f"Preferences from Baobab: {prefs}")

# Take this. It is yours. Baobab is a viewer onto it, not the owner of it.

Thirty-eight lines. Eight imports. No proprietary SDK. No platform authentication beyond your wallet and your Matrix access token — both of which are yours.

The selling point, stated plainly

We offer convenience, services, and intelligence. We do not trap anyone inside the platform. That is our selling point — not as a marketing line, but as an architectural fact.

You can take your wallet to MetaMask tomorrow. You can take your room history to Element, FluffyChat, or your own homeserver tomorrow. You can take your reputation to any onchain reader. You can take your preferences to a JSON file and never touch our API again. Nothing we hold is structural to your participation on the open protocols underneath us.

What we offer in return for our 1% is: curation that you couldn't easily replicate (the editorial floor, the entity graph, the Loam facts), the AI shell that speaks 80+ languages, the federated room catalog already populated with 90+ rooms, the news pipeline across 28 sources, the Bloomberg-grade markets surface. Convenience. Services. Intelligence. If we ever stop being worth the 1%, you leave. The exit is the same script above.

§ 09b · No lock-in · the script and the principle ~40 lines of Python · everything portable

§ 10 · How to try it

Where to go, what to click.

The five things that show what the platform is. Each is one click from the home page. None of them require a sign-up except where noted.

1. Open a market

Click any tile in the ticker strip across the top of the home page, or any tile in the Markets tab grid.

COCOA $2,840/MT ▲ 1.2% Cocoa $2,840/MT ▲ 1.2% 52w range · 78th percentile ICE · 14d sparkline · Côte d'Ivoire / Ghana / Nigeria · related news · Loam citations [ explain this move ]

You get: price, delta, 52-week range, position-in-range, sparkline, top producers, related stories from the live feed, citations from the Loam knowledge cache, and a one-click AI explanation.

2. Talk to the shell

Click the $ launcher in the bottom-right of any page. The shell opens. It looks like a terminal because it is one. The hostname in the prompt is the context you're in.

baobab // @cocoa // deepseek [you@cocoa] $ what does the ECX coffee schedule look like next week ECX publishes weekly auction calendars on Mondays. The Sidamo and Yirgacheffe lots tend to clear early in the week; the harrar lots later. (Source: ECX bulletin)

Slash /lang ha to flip the response language to Hausa. /facts to surface what Loam knows about your current context. /contexts to see your open conversations across markets.

3. Read the News Pulse

The constellation just above the article feed shows every country (or commodity) mentioned today, sized by how many stories. Click a node to filter the feed to that entity. Click again to clear.

News pulse — 14 countries active · top: Ghana, Côte d'Ivoire, DRC GHANA CI DRC KENYA ZW EG NG

Toggle to "Commodities" mode in the pulse header to see today's stories by commodity instead.

4. Read the Library

Click the Library tab on the home, or visit /library.html directly. 26 works of Black and African classical thought. Public-domain texts read in the browser (Equiano 1789, Douglass 1845, Wells 1892, Du Bois 1903, Washington 1901). Externally-hosted classics (Fanon, Rodney, Cabral, Sankara, Nkrumah, Lumumba, James) open at their archive.

5. Translate any story

On any article in the news feed, click the small translate → chip in the meta row. The translation fades in below the article body in your currently-picked language. Switch the language picker to Hausa, click again on a different story — you see the same article in Hausa.

6. (Operators only) Open the admin

Visit /admin.html. Paste the ADMIN_TOKEN. You see service health (DeepSeek up? Yahoo reachable? Firestore responding?), counts across the system, and the bans list with one-click add and remove. The page is noindex-tagged and the token lives only in sessionStorage.

§ 12 · How to try it · diagrams in SVG, paths in plain English Free unless tagged otherwise

§ 11 · Roadmap

How it ships next.

Four slices, each shippable on its own, each meaningful by itself.

Slice 1 — Portal, markets, reader

Months 0–4

Live commodity ticker covering 29 markets including gold, diamonds, cocoa, coffee, bananas, cobalt, lithium, and the major agricultural and mineral exports. AI-curated news feed defaulting to opportunity, with sources spanning AllAfrica, Daily Maverick, Premium Times, Jeune Afrique, Nation Africa, Reuters Africa, BBC Africa, BBC Caribbean. Six languages. Six-hour refresh. Donate-to-keep-the-lights-on widget. Custom domain at baobab.lacunalabs.ai. Google sign-in. PWA installs to phones.

Slice 2 — Identity, forums, chat

Months 4–7

Per-entity Matrix rooms. Federated chat. Group spaces for cooperatives. Profile NFTs on Polygon for portable identity. AI sheriff for spam and scam-pattern detection. Light reputation scoring from forum participation.

Slice 3 — Payments rails

Months 7–10

M-Pesa and MTN Mobile Money integration for on/off-ramp where users actually transact. 1inch swap widget for stablecoin conversion. Yellow Card partnership for African fiat onramps. Web3Auth wallets activated for real transfers between users.

Slice 4 — The trading floor

Months 10–16

KYC via Sumsub or Persona. Verified seller / cooperative directory. Polygon smart contracts for escrow, forked from OpenZeppelin and audited. Cooperative pooling contracts (multisig treasuries for buying clubs and selling collectives). Reputation gates trade limits. Dispute flow via Kleros decentralized arbitration.

§ 12 · The ask

What we need from the people at the table.

We are not asking for money. We are asking to be heard, and for the right introductions.

From technologists in the community

From organizers and cooperative leaders

From publishers and journalists

From the Seven of Us, by the corridors we already stand in

Every one of us sits on a corridor that already moves people, money, and information across the Atlantic. The platform is only valuable to the extent that those corridors get easier and safer to walk. Each of us has a specific seat at this table:

From the diaspora at large

State of play, today

This is not a deck. The platform is live at baobab.lacunalabs.ai at the moment you read this. What follows is the literal status, the literal next step, and exactly what each of you can do with it right now.

What is shipped and live (verifiable on the site)

Private beta — what each of you can do today

The platform is live in private beta at baobab.lacunalabs.ai. You can:

What is next, in order

StepWhat lights upStatus
Site live on a custom domain with TLS baobab.lacunalabs.ai Shipped. Fly.io static origin, Caddy + Let's Encrypt, DNS-only Cloudflare.
DeepSeek-backed AI surfaces Chat, voice, summarize, translate, per-article "ask" Shipped. Single-file Node service on Fly, auto-stops to zero.
Live commodity prices 12 of 29 markets via Yahoo Finance Shipped. Unit-converted server-side; 60 s cache.
Real news ingestion + image proxy 15 RSS sources, og:image extraction, same-origin image proxy Shipped. 10-minute cache; ~36 deduped items per refresh.
Non-custodial wallet connect + live Polygon MetaMask / Brave / Rainbow connect; live block + gas; MATIC + USDC + USDT balances Shipped. Custodial path remains gated on KYC + regulator.
Library — 90 works of diaspora canon Inline reading where Gutenberg has plain-text; external link otherwise; permalinks + share Shipped. Continues to grow.
Matrix homeserver on Fly.io Forums tab becomes interactive; the 90+ rooms are real S2. Dendrite container at matrix.baobab.lacunalabs.ai. Federation enabled day one.
Web3Auth + custodial Baobab wallet Sign-up provisions an embedded Polygon wallet without a seed phrase S2. SDK is plug-and-play; KYC + AML before public exposure.
M-Pesa + MTN MoMo + Yellow Card onramps Fiat in and out for east and west Africa, continental coverage S3. Partner integrations via Safaricom Daraja, MTN MoMo, Yellow Card APIs.
Trading floor with on-chain escrow Buyer / seller match, escrow, Kleros arbitration S4. OpenZeppelin-derived contract, audited before mainnet.
Loam graph — v1 substrate The interim fact stubs become a real per-commodity, per-country knowledge graph Engineering manual at ~/Desktop/Loam-Engineering-Manual.pdf; pairs with the bifurcation-analysis research thread.
Lacuna Worker Protocol — Rust v1 News ingestion, image extraction, Loam updates orchestrated by Scheme plans Spec at docs/specs/2026-05-11-worker-protocol.md; Rust scaffold at workers/baobab-worker-rs/; ~50-primitive tool registry.

How revenue arrives

The platform is free to read and free to talk. Money comes from the trading floor only — one percent on platform-facilitated transfers and trades. We earn when we are useful, not when we are watched. If we never charge a single transaction we go broke; if we serve our people well, the trade volume that compounds underneath our rails carries the platform indefinitely.

The bet is: the seven of us, addressing the corridors we already stand in, can generate enough trade to make this self-sustaining inside eighteen months of slice 4 shipping. That is the economic thesis, stated plainly.

On the escrow specifically

There is one piece of this architecture that is the personal thing — the thing the operator has been wanting to build for a long time without a clean way to build it. The trading floor in slice 4 is that piece.

The old problem: weak court enforcement in many of the jurisdictions our people trade across means that a buyer who pays for cocoa and gets sawdust has no recourse. The old solutions were either to trust intermediaries (who skim aggressively and add risk of their own) or to refuse to trade at scale. Neither answer is what we want.

The new answer is: onchain escrow with decentralized arbitration. A Polygon smart contract holds the buyer's stablecoin while the seller fulfills. The buyer confirms delivery; funds release. If the buyer disputes, a Kleros juror pool decides. The platform does not arbitrate — the platform builds the rails. We are not the judge. We are not the bank. We are the highway.

This is the architectural payoff for the federation choices made everywhere else in the document. We can stand up the trading floor without becoming a financial institution because our users hold their own keys and the escrow contract is the neutral party.

Closing — to the Seven of Us

A platform built for our people, by our people, that does not own them. We think we figured it out. The architecture is in the repository. The economics are documented. The first surface ships in months, not years.

The seven of us decide together what happens next. Gullah, Leigh, GT, Reggie, Akinmade, Pop — Alfred has committed. The rest of the work is the rest of us.

For Gullah · Leigh · GT · Reggie · Akinmade · Pop · Alfred Baobab · The Seven of Us · v0 · 2026-05-11

§ 12a · Intellectual property and patents

What we own. What we license. What we are filing.

The operator filed eleven patents under Lacuna Labs in the past three weeks. The Baobab platform contains additional novel surfaces that would, if filed, be owned by Lacuna Labs / Baobab specifically — not licensed in from elsewhere. They are listed here so the seven of us can decide together which to put into play.

What Baobab licenses from elsewhere in the Lacuna stack

Patentable surfaces in Baobab — currently drafting

The following are novel architectural patterns developed for Baobab that are not derivative of existing Lacuna IP. Each is a candidate for separate filing, owned by Baobab / Lacuna Labs.

#Working titleWhat it claims
BB-1 Context-isolated conversational AI with explicit cross-context barriers Each conversation has a context_id; the system prompt forbids the model from referencing any other context's history; the client partitions history per context_id; the title bar surfaces the active context. Trust contract enforced at the system prompt level, not just the API level.
BB-2 Language-first translation prompting The system prompt commits the model to speaking the target language first, then producing the translation. Includes coverage-tier hints and per-language fidelity calibration in the prompt itself. Demonstrates measurably better output on low-resource African languages than zero-shot translation prompting.
BB-3 Restorative escalating moderation with per-language cultural calibration Strike-counter persisted client-side, doubling cooldown lengths (0 / 5 / 10 / 20 / 40 / 60 min cap), private to the user (counter only in their own input row, no public indicator), with culturally- appropriate "please refrain" idiom in the user's target language. Distinguishes harshness from abuse explicitly in the detector.
BB-4 Cultural-symbol deterministic identity avatars Adinkra symbols (or culturally-equivalent visual lexicons) used as deterministically-assigned default avatars, with the symbol's name and meaning surfaced on hover. Deterministic hash from user ID → symbol; symbol library is extensible per region.
BB-5 Loam-grounded inline AI affordances Inline UI affordances (explain-this-move, summarize, translate) pre-fetch entity-specific facts from an in-memory graph cache when context shifts (e.g., user opens a market detail page), then ground the LLM call with those facts as system-prompt context. Without cross-context leakage.
BB-6 Force-laid entity-activity news visualization D3 force-directed constellation of entities (countries and/or commodities) mentioned in a real-time news feed, sized by mention count, color-coded by region or group, with mode toggle and click-to-filter coupling to an article list. Pulsing rings on top-N most-active entities.
BB-7 Tier-gated quant indicator UX with visible-locked overlays Chart indicators (MA, Bollinger, RSI, MACD, vol, correlation) gated by subscription tier, but visually rendered with a backdrop-blurred locked-state overlay showing what's behind the gate. Discovery via visibility rather than absence.
BB-8 Adaptive multi-model language routing The translation / chat service routes per-language to the model with the best coverage for that language. Coverage tier ("native" / "good" / "thin" / "very-thin") declared in the language catalog; routing logic selects DeepSeek for global languages, Aya / Lelapa InkubaLM for low-resource African languages. Transparent to the caller.
BB-9 Federated room catalog auto-generated from entity graph Matrix room catalog (one room per commodity, one per country, one per intersection) generated programmatically from a domain entity graph, with cross-linking and member-density signals surfaced in a "most active" featured-rooms view.
BB-10 Reputation-gated transaction limits in P2P commerce Onchain reputation (soulbound NFTs accumulating from completed clean trades) gates the maximum transaction size a user can escrow. Limits grow organically with clean-trade history; dispute history reduces limits. Composes with the standard KYC-tier limits.

What goes into play, decided by the Seven

Eleven patents in three weeks is the operator's recent pace; ten more surfaces in front of us. Not all of these are worth the filing budget, and not all need to be filed before they ship — defensive publication protects most software methods sufficiently if filed broadly later.

Recommended priority for filing under Lacuna / Baobab:

  1. BB-3 (restorative moderation) — strong defensive value; differentiated from existing moderation IP.
  2. BB-2 (language-first translation prompting) — demonstrably improves output on low-resource African languages; broad licensing opportunity beyond our use.
  3. BB-5 (Loam-grounded inline AI) — composable with the existing Loam patents from Curator; closes the loop.
  4. BB-10 (reputation-gated limits) — directly relevant to the S4 trading floor and to defense against a possible competitive copycat.

The other six remain documented for defensive publication; if a specific commercial threat emerges, we file then. Filing strategy review is part of the legal-opinion gate before slice 4 ships.

Boilerplate: The patentable surfaces listed above are candidate filings. Names, claim language, and prosecution timeline are subject to counsel review. The Loam engine reference above is licensed from Curator under the standard Lacuna inter-product license; the Baobab-specific Loam schema and seed content are separately Baobab's. All other surfaces listed in BB-1 through BB-10 were developed in the course of Baobab's design and are owned by Lacuna Labs / Baobab.

§ 12a · IP & patents · ten candidate surfaces filing strategy reviewed by the Seven

§ 13 · One page per seat

The Atlantic, in seven hands.

Before the individual pages: the map of where each of us stands.

— the Black Atlantic — North America Gullah South Carolina · Sea Islands · Gullah-Geechee Akinmade DMV · Washington DC / Baltimore · HBCUs Pop Brooklyn · Haitian · Francophone Caribbean Caribbean Alfred Trinidad → Brooklyn · operator United Kingdom GT UK-born · British-Ghanaian Reggie UK-born · British-Nigerian Africa Leigh Zimbabwean · Ndebele · Shona-speaking raised UK + US · primarily US every line is a corridor someone in this room walks

Seven pages, one each.

Each of you sits on a specific corridor and brings a specific eye. The pages that follow are addressed to each of you individually — with concrete examples of what Baobab does for the corridor you hold, and what we need from your seat at the table. Read your own. Read everyone else's too — that is the whole point.

A note on what was shared with the writer: The operator deliberately limited what he told the AI about each of you to public-level signal — first name, country / heritage, where you live, the corridor you stand on. Nothing personal, nothing confidential, nothing un-public. The per-page detail below is therefore a starting frame, not a portrait. The regional context (Sea Islands food sovereignty, Bulawayo industrial heritage, UK-Ghana cocoa flows, Lagos fintech, the DMV cooperative-economics scene, Haiti's cacao renaissance, Trinidad oil & gas) comes from publicly available research, not from anything any of you said privately. Correct anything that doesn't land right.

§ 13.1 · For Gullah

Gullah — South Carolina, the Sea Islands.

Your name is the heritage. Gullah-Geechee — the most concretely preserved African-cultural continuity in North America. Sierra Leonean rice culture, West African textile traditions, Krio language ancestry, food sovereignty practice that the rest of the diaspora has been quietly relearning from your communities for a generation. The platform's case for itself is partly an inheritance of the case your community has been making for centuries.

What Baobab looks like for you

Where we need your eye

The intellectual frame in § 02 — Garvey, Fanon, Rodney — is doing real work in the architecture. If the line is wrong, the architecture downstream is wrong. Your read first.

Also: tell us which Gullah-Geechee cooperatives, growers, and cultural organizations should be on the platform from week one. The platform's job is to honor their work and stay out of the way; we need you to name who and how.

Africa for the Africans, those at home and those abroad. Marcus Garvey · UNIA, 1920
For Gullah The Sea Islands seat · § 13.1

§ 13.2 · For Leigh

Leigh — Zimbabwe (Ndebele, Shona-speaking) → UK → US.

Born to Zimbabwe, Ndebele specifically. Shona is also yours by upbringing — the practical lingua franca of Zimbabwe that crosses ethnic lines in the urban and diaspora context. Raised between the UK and the US, primarily US-based now. The Ndebele perspective on Zimbabwe is missing from nearly every "Africa-focused" product — the Matabeleland economic story, the Bulawayo industrial heritage, Gukurahundi as the unspoken backdrop to every Zim political conversation — these are missing because the seat for that perspective is missing. You hold it.

What Baobab looks like for you

Where we need your eye

Whether the platform stays neutral enough for the diaspora at large while still being clearly for us. The line in § 03 — between editorial point of view and partisan branding — is a hard line to walk. Your eye on whether we are walking it right.

Also: which Zimbabwean cooperatives, exchanges (ZSE), Matabele-specific organizations, and trans-Atlantic Zim investment groups belong on the platform first. And tell us whether the entity graph should surface Matabeleland and Mashonaland as their own pages — or whether that's flattening something better left to the community's own framing.

Development means a capacity for self-sustaining growth. It means that an economy must register advances which in turn will promote further progress. Walter Rodney · How Europe Underdeveloped Africa, 1972
For Leigh The Zimbabwean / Ndebele seat · § 13.2

§ 13.3 · For GT

GT — UK-born, family from Ghana.

Second-generation British-Ghanaian. Born into the corridor, not operating across it — which is a different and important position. The UK ↔ Ghana corridor is one of the largest African diaspora ↔ continent relationships on Earth — by remittance volume, by return-investment volume, by family-tie density. The community holding it together is the British-born generation, the children of the first wave, who know both countries from the inside. If Baobab's slice 3 (M-Pesa, MTN MoMo, stablecoin onramps) works for this corridor first, the rest of the continent follows.

What Baobab looks like for you

Where we need your eye

The technical architecture in § 04 — custody, federation, the entity graph. You have the ability to read whether the choices are sound or whether a different stack serves the thesis better. The choices are reversible until slice 2 ships. After that, they are load-bearing. Speak now if you have a better stack.

Also: relationships at COCOBOD, AFEX, ECG, and Accra's growing fintech community. We need a Ghana-side check on the entity coverage and on the credibility of our data sources for the Ghana surface.

For GT The UK-Ghana seat · § 13.3

§ 13.4 · For Reggie

Reggie — UK-born, family from Nigeria.

Second-generation British-Nigerian. The single largest African diaspora-to-continent corridor on Earth by remittance volume runs through the British-Nigerian community, and the UK-born generation is the one currently holding both sides of it together. Lagos and Abuja are the gravitational centers for an enormous share of the markets Baobab surfaces — sesame, cashew, cocoa, crude oil, sorghum, soybean — all flow through Nigerian counterparties. If Baobab is wrong about Nigeria, Baobab is wrong about Africa.

What Baobab looks like for you

Where we need your eye

The economics in § 05. If there is a missing revenue line that does not corrupt the model, name it. You have the closest view of the actual transactional volume in the largest African corridor; if 1% is wrong, you will know first.

And: relationships at AFEX, the major Nigerian banks, the Lagos fintech ecosystem, and the UK-based Nigerian diaspora business networks. We will need partner intros for slice 3 (M-Pesa is east; Nigeria is MTN MoMo + Flutterwave territory).

For Reggie The UK-Nigeria seat · § 13.4

§ 13.5 · For Akinmade

Akinmade — African American, the DMV.

Yoruba name carrying Nigerian heritage; African American by way of the United States, based in the DMV — Washington DC, Baltimore, the corridor between them. The DMV is the institutional heart of the African-American diaspora: Howard University and the broader HBCU network, the African diplomatic missions, the federal policy apparatus, and a deep bench of cooperative-economics organizations. You stand exactly on the line that Baobab is trying to address — the diaspora that has been on this continent for centuries, that is rediscovering and renaming its connection to the continent on its own terms. The Ghana "Year of Return," the Senegal and Sierra Leone return-investment movements, the broader African-American re-engagement with the continent — much of it organized through DMV institutions and networks. Baobab is the platform layer for all of it.

What Baobab looks like for you

Where we need your eye

The language. The register. Whether Baobab feels for-us-by-us or whether it drifts into talking-about-us. You name the drift the moment you see it. This is editorial work that engineering cannot do alone.

Also: relationships in the African-American institutional ecosystem — HBCUs, civil-society organizations, cooperative-economics movements (the Federation of Southern Cooperatives, the Cooperation Jackson network, etc.). Baobab is structurally aligned with cooperative economics; we need you to tell us which cooperatives are ready to be on the platform.

Each generation must, out of relative obscurity, discover its mission, fulfill it, or betray it. Frantz Fanon · The Wretched of the Earth, 1961
For Akinmade The African-American seat · § 13.5

§ 13.6 · For Pop

Pop — Haiti → Brooklyn. The Francophone Caribbean.

Haiti is the first Black republic in the Americas, the country that paid the heaviest price for being first, and the place most relentlessly miscovered by Western media. The Haitian diaspora — Brooklyn, Miami, Montreal, Boston, Paris — is one of the largest and most economically active in the Atlantic, and is systematically left out of the "African diaspora" conversation. Baobab brings Haiti and the wider Francophone/Creole Caribbean — Martinique, Guadeloupe, French Guiana, the Haitian and Antillean diasporas — into the same room as the continent.

What Baobab looks like for you

Where we need your eye

Whether the Caribbean is genuinely first-class in the architecture or whether it reads as a Caribbean module bolted onto an Africa-first product. The platform's thesis is that the Atlantic is one. The product must feel that way to a Haitian-American reader in Brooklyn or Miami — not just to the African-continental reader.

And: relationships in the Haitian diaspora business community, the Creole-speaking Caribbean cooperatives, and the Haitian agricultural producer associations. Baobab's cooperative-pooling contracts in slice 4 are built for groups exactly like these.

For Pop The Haiti / Brooklyn / Francophone Caribbean seat · § 13.6

§ 13.7 · For Alfred

Alfred — Trinidad & Tobago → Brooklyn. The operator.

Trinidad and Tobago. Grew up in Brooklyn. SRE by training. The Caribbean seat at the table is not optional and is too often missing from "African-focused" products. Trinidad, Jamaica, Barbados, Bahamas, the broader English-speaking Caribbean — all first-class members of the audience from day one. You are also the operator: the person whose decisions about reversibility, ops cost, and what to maintain shaped the architecture that the other six pages are evaluating.

What Baobab looks like for you

Where we need your seat

Confirm the operator-voice pull-quotes in § 03 actually match what you said and meant. The technical decisions documented in those quotes are load-bearing. If a paraphrase is off, fix it now.

Hold the line on scope. The other six members will pull this product in directions that are individually right and collectively too much. You are the SRE; you know what is maintainable. Veto what is unmaintainable.

The pricing model is not concerned with making money so much as it's concerned with spurring trade amongst these people. — Alfred, on the economics of Baobab
For Alfred Trinidad / Brooklyn / The operator seat · § 13.7