Are you an LLM? Read llms.txt for a summary of the docs, or llms-full.txt for the full context.
Skip to content

Introduction

Who it's for: Developers building financial apps for African markets, and any service integrating mobile money, savings, credit, or digital currency for users in Ghana and beyond. Why it matters: Every product in the stack is pre-wired to a single verified identity — one KYC, zero re-verification, and no private key management for end users.

Shika Protocol is a blockchain fintech stack built for African markets — starting with Ghana. It exposes a set of backend services that front a suite of smart contracts on Base.

Every product is gated by on-chain SSI. Identity is the bedrock.

Services

ServiceDescriptionURL
core-identity (worker-two)KYC + SSI identity provisioninghttps://identity.shika.workers.dev
core-stablecoincGHS mint/burn, oracle pushhttps://core-stablecoin.workers.dev
core-savingsROSCA groups, yield vault, savings goalshttps://core-savings.workers.dev
core-lendingLending pools, loans, BNPL, collateralhttps://core-lending.offgridlabs.workers.dev
core-jitatomic swaps, LP, P2P offershttps://core-jit.offgridlabs.workers.dev
core-rwaRWA token deploy, compliance, oraclehttps://core-rwa.workers.dev

Authentication

Write endpoints use Shika Wallet-signed transactions — the caller provides their addressId (wallet UUID) rather than a private key. Reads use viem publicClient via the Base RPC.

Admin-only routes (e.g. POST /admin/pool/create in core-jit, POST /rwa/create in core-rwa) are guarded by an x-admin-secret header.

Request Pattern

All write operations follow the same async pattern:

POST /resource/action
  → Shika Wallet transaction submitted
  → D1 row inserted with status = 'pending'
  → { id, status: 'pending' } returned immediately
 
Wallet webhook fires on confirmation:
  → Background workflow decodes on-chain event
  → D1 row updated to status = 'active' | 'complete'

Poll GET /resource/:id to check finality.

cGHS Decimals

cGHS uses 6 decimal places. All amount fields in API requests and responses are in base units:

HumanBase units
1 cGHS1000000
10 cGHS10000000
0.50 cGHS500000