Everything you need to integrate with the Africore Protocol — SDKs, APIs, chain specs, and node operator guides.
Africore is in closed beta. Access requires an approved developer account. Apply at africore.io/request-access.
Follow these steps to make your first call to the Africore API.
npm install @africore/sdkimport { AfricoreClient } from '@africore/sdk';
const client = new AfricoreClient({
apiKey: 'YOUR_API_KEY',
network: 'mainnet'
});
// Fetch all tokenized assets
const assets = await client.assets.list({ limit: 10 });
console.log(assets);
Africore is a modular 4-layer protocol. Each layer is independently upgradeable through governance, allowing the protocol to evolve without disrupting the underlying asset infrastructure.
Africore Chain is an EVM-compatible Layer 1 purpose-built for real-world asset settlement. It delivers 3-second block finality and sub-cent gas fees while enforcing the ERC-3643 permissioned token standard at the base layer — ensuring every on-chain transfer is compliant by default.
| Parameter | Value |
|---|---|
| Block Time | 3 seconds |
| Consensus | Delegated Proof of Stake (DPoS) |
| Compatibility | EVM / Solidity |
| Token Standard | ERC-3643 |
| Native Token | AFRI |
| Gas | AFRI or USDC |
The Asset Registry is the on-chain source of truth for all tokenized assets on the Africore Protocol. Every registry entry contains legal ownership data, jurisdiction metadata, full valuation history, yield schedule, compliance status, and the token contract address. The registry is publicly queryable — no API key required for read operations.
GET https://api.africore.io/v1/assets/afr_ke_farm_0041
{
"asset_id": "afr_ke_farm_0041",
"name": "Rift Valley Farmland Block C",
"jurisdiction": "KE",
"category": "agriculture",
"valuation_usd": 2400000,
"yield_rate_pct": 8.4,
"compliance_status": "verified",
"token_address": "0x4f2c...8a1d"
}
The Africore Bridge enables tokenized RWAs to move across chains without wrapping. Unlike conventional bridge architectures that wrap tokens into synthetic representations, the Africore Bridge transfers native compliance data alongside the asset token — preserving KYC/AML enforcement on every destination chain.
The following networks are currently supported or planned:
The Africore Oracle Network provides decentralised price feeds for all tokenized real-world assets on the protocol. Feeds are operated by licensed node holders — each of whom stakes AFRI as collateral against bad or manipulated reporting. Slashing conditions are enforced automatically on-chain.
Update frequency varies by asset class, reflecting the liquidity and volatility characteristics of each category:
| Asset Class | Update Frequency |
|---|---|
| Agricultural Assets | Every 6 hours |
| Real Estate | Every 24 hours |
| Infrastructure | Every 7 days |
| Energy / Solar | Every 1 hour |
Running an Africore node requires a valid node licence NFT (available at node-sale.html), a qualified server meeting minimum hardware specifications, and a funded AFRI staking wallet. Node operators earn protocol fee rewards and oracle submission rewards proportional to their stake and uptime.
Minimum server specifications:
Setup steps:
Purchase your node licence NFT at node-sale.html. Licences are tiered and grant varying reward multipliers.
Download the node client from the developer portal after your developer account is approved.
Configure node.yaml with your licence NFT address and preferred RPC endpoints.
Fund your node wallet with a minimum of 5,000 AFRI staking collateral.
Start the node and verify sync against the network explorer. Sync typically completes within 15–30 minutes from genesis.
Official Africore SDKs are available for the most common languages. Community-maintained libraries for additional languages are listed in the developer portal.
| Language | Package | Version | Status |
|---|---|---|---|
| JavaScript / TypeScript | @africore/sdk | v1.2.0 | Stable |
| Python | africore-py | v0.9.1 | Beta |
| Go | africore-go | v0.7.0 | Beta |
| Rust | africore-rs | — | Coming Soon |
All Africore API errors are returned in a standard envelope format. Parse the error.code field to handle errors programmatically.
{
"success": false,
"error": {
"code": "ERR_AUTH_INVALID",
"message": "The provided API key is invalid or has been revoked.",
"status": 401
}
}
| Error Code | Description |
|---|---|
| ERR_AUTH_INVALID | The API key is missing, malformed, or has been revoked. |
| ERR_ASSET_NOT_FOUND | No asset exists for the given asset ID in the registry. |
| ERR_COMPLIANCE_FAIL | The requesting wallet has not completed required KYC/AML verification. |
| ERR_JURISDICTION_BLOCKED | The operation is not permitted in the user's detected jurisdiction. |
| ERR_RATE_LIMIT | Too many requests. Default limit is 100 requests per minute per API key. |