SmartCheq · Module Specification

Governance

Four-Eyes authorisation framework for high-risk systemic actions. Covers proposals, voting, FX rate approval, risk limit change gating, escalation routing, and dual-signature Governor sign-off flows.

Version Draft
Updated April 2026
Status In Progress
§1

System Overview

Full specification in progress. The content below documents the known governance structure from implementation.

The Governance module enforces the Four-Eyes principle across all high-risk systemic actions on the SmartCheq platform. No single operator can unilaterally execute actions that affect the money supply, exchange rates, or risk limits. Every such action must be proposed by one operator and approved by a second, independent operator of equal or higher authority.

Three governance roles exist: Operator (proposes), Supervisor (approves operational changes), and Governor (approves monetary policy changes such as FX rates and issuance authorisations). The Governor Approval Desk requires dual-signature for the highest-consequence actions.

Proposals Queue

  • Pending proposals list
  • Proposal type filter
  • Proposer identity
  • Proposed change details

Review & Voting

  • Proposal detail view
  • Approve / Reject actions
  • Vote tally
  • Quorum check

Approval Desks

  • Supervisor Desk
  • Governor Desk
  • Issuance Authorizations
  • Corridor Escalations
§2

Four-Eyes Rule

The proposing operator cannot be the same person as the approving operator. This is enforced server-side by checking the Doorkeeper access token identity on every vote. Any attempt to self-approve returns HTTP 403 Forbidden.

Actions Requiring Four-Eyes

ActionProposerApproverModule
FX Rate ChangeCorridor Ops OperatorSupervisor or GovernorCorridor Ops
Risk Limit ChangeCorridor Ops OperatorSupervisorCorridor Ops
Issuance AuthorizationIssuance OperatorGovernorIssuance Tab
CVIB Batch DispatchIssuance OperatorGovernorIssuance Tab
Note BurnRedemption OperatorGovernorDeposit & Burn
Corridor DeactivationCorridor Ops OperatorSupervisorCorridor Ops
System OverrideAny operator + PINAudit log (async)Emergency Actions
§3

Data Model

Proposal

FieldTypeDescription
iduuidPrimary key
proposal_typeenumfx_rate_change | limit_change | burn_authorization | corridor_deactivation | issuance_authorization
proposed_bystringDoorkeeper token owner (proposer)
corridor_iduuid FKAffected corridor (if applicable)
proposed_valuejsonbThe proposed change payload (e.g. {rate: 51.20})
current_valuejsonbThe current system value being replaced
statusenumpending | approved | rejected | expired
referencestringHuman reference e.g. GOV-2026040922
expires_attimestampProposal auto-expires if not acted on

Vote

FieldTypeDescription
proposal_iduuid FKReferences Proposal
voter_idstringDoorkeeper token owner (voter — must differ from proposer)
voteenumapprove | reject
notestextOptional reviewer notes
voted_attimestampWhen vote was cast

IssuanceAuthorization

FieldTypeDescription
iduuidPrimary key
corridor_iduuid FKCorridor being authorised for issuance
governance_statusenumpending | signed | rejected
signed_bystringGovernor who signed
signed_attimestampSignature timestamp
§4

Proposal Flow

Action triggered

Operator clicks "Propose Change" (FX Rate or Limits) or "Escalate to Governance" in Corridor Ops. A proposal reference GOV-XXXXXXXXX is auto-generated.

Proposal created

POST /api/v2/governance/proposals {type, proposed_value, corridor_id, reference}. Proposal status = pending.

Appears in approval desk

Supervisor Desk or Governor Desk shows the pending proposal with current vs proposed values. Original proposer's name is shown but they cannot vote.

Second operator reviews

Approver clicks Approve or Reject. POST /api/v2/governance/proposals/:id/votes {vote: "approve", notes?}.

Action executed

On approve: the proposed change is applied (FX rate updated, limits changed, corridor deactivated etc.). Status → approved. System records who approved and when.

Audit trail

Full proposal lifecycle — proposed_by, proposed_at, approved_by, approved_at, current_value, proposed_value — permanently recorded.

§5

Approval Desks

Supervisor Approval Desk

The Supervisor Desk shows all proposals requiring supervisor-level approval: limit changes, corridor deactivations, and operational escalations. Accessible via the Quick Access panel on the CBDC Sandbox homepage.

HandlesQuorum
Risk limit changes (daily cap, velocity, per-tx)1 supervisor vote
Corridor deactivation / reactivation1 supervisor vote
Operational escalations from Corridor Ops1 supervisor vote

Governor Approval Desk

The Governor Desk handles monetary policy actions. These require the highest level of authority and use a dual-signature model where both the Governor and a Deputy must approve before action is taken.

HandlesQuorum
FX rate changesGovernor + Deputy (dual signature)
Issuance authorizationsGovernor signature via POST /governance_sign
CBDC note burnsGovernor + Deputy (dual signature)
The dual-signature Governor model aligns with BIS CBDC governance guidance. The Governor cannot act unilaterally on any monetary policy action — a Deputy Governor co-signature is always required. This prevents single points of failure in monetary authority.
§6

API Reference

MethodPathDescription
POST/api/v2/governance/proposalsCreate a new governance proposal
GET/api/v2/governance/proposals/:idGet proposal details
POST/api/v2/governance/proposals/:id/votesCast approve or reject vote (must not be proposer)
GET/api/v2/governance/proposals/:id/tallyGet current vote tally and quorum status
POST/api/v2/governance/escalateEscalate a corridor issue directly to governance queue
GET/api/v2/issuance_authorizations/latestGet latest issuance authorization for corridor
POST/api/v2/issuance_authorizations/:id/governance_signGovernor signs issuance authorization
POST/api/v2/issuance_authorizations/:id/governance_rejectGovernor rejects issuance authorization
🗑️

Remove Saved Contact?

Contact Name
abc123...xyz789

⚠️ You will need their Cash Code again to send them money in the future.

CBDC Preview
Status Valid
Currency -
Amount -
Serial Number -
Uploading files...
Please wait
💸
Confirm Giving Cash
Check the details below
Amount GHS 0.00
To Cash Code ...
Cash Notes 0
⚠️

Already Transferred

The following CBDC notes have already been transferred and cannot be used again.

📱 Your Digital Cash Code QR

Let others scan this to send you money

How to use: The sender opens "Send Digital Cash" and taps the scan icon to read this QR code.

Trade Claim Submission

Submit verified trade to request cross-border liquidity.

Claiming Institution

Select Country...

Trade Details

Select Corridor first...

Select a corridor to load destination-country institutions.

Beneficiary Information

Supporting Documents

Click to upload or drag and drop

PDF, PNG, or JPG (max 10MB each)

Declarations

Confirm Trade Claim
Please review the details before submitting
Amount
Corridor
Institution
Beneficiary
Invoice Ref
Direction
⚠️

Once submitted, this trade claim will enter the supervisory review queue and cannot be edited. Please verify all details are correct.

Trade Claim Submitted!

Your trade claim has been successfully submitted and is now pending
review for pre-clearance by regulators.

Trade Claim ID:
TC-20260215-000000

An initial pre-clearance review shows your trade appears compliant.
It will now be routed for final approval.

Pre-cleared trade is pending review by regulators for approval.
Beneficiary funds will be held while the trade is being finalized.
Track status any time via the Issuance → Desk section.
📊 Trade Summary:
Trade Amount KES 1,000,000
Trade Direction Import into Nigeria
Beneficiary Kenya Exports Ltd
Help & Docs · Contact Support · Dashboard

Draft Saved!

Your trade claim has been saved as a draft.
You can continue editing it anytime.

Draft Reference:
TC-00000000

Your draft has been saved and can be accessed from your dashboard.
Complete the submission when you're ready.

Draft saved securely to your account.
Continue editing anytime from your dashboard.
Submit when ready via Drafts section.
📋 Draft Summary:
Amount KES 0
Direction -
Status Draft
Help & Docs · Contact Support · Dashboard

Issuance Desk

Manage and review recent cross-border trade claims.

Claim ID
Direction
Destination Corridor
Amount
Status
View

Loading trade claims...

No trade claims found

Showing 0 of 0
Help & Docs · Contact Support · Dashboard
SA
Admin Console v1.2.3

Administrator Console

System management and monitoring dashboard.

Total Corridor Volume
USD Equivalent
Pending Claims
⏳ Pending
Daily Limit Utilization
USD Equivalent
Non-Compliance Alerts
Admin viewed trade claims. Today at

Latest Trade Claim Activity

Read-only monitoring view. No transactional authority.

ID Institution Amount Corridor Status Risk
Loading claims...

Corridor Volume

0

Active Issuance Queue

0 Pending requests

Corridor Quota Limits

Corridor Corridor Limit Remaining Daily Limit Remaining Compliance Status
Loading corridor data...
Admin Console v1.2.3
🔒 System Admin