Foundation of Interoperability
Phase 1 of the WIA-FIN-005 standard establishes the foundational data formats that enable CBDC interoperability. Just as HTML provides a universal format for web pages regardless of the browser or operating system, Phase 1 provides universal data structures for CBDC transactions, wallets, and cryptographic operations.
Why Data Format Comes First
Before CBDCs can communicate through APIs or execute cross-border protocols, they must speak a common language. Phase 1 defines this language through standardized JSON schemas, data encoding rules, and cryptographic primitives that any CBDC implementation can adopt.
Universal Transaction Schema
The core of Phase 1 is the Universal Transaction Format, which can represent any CBDC transaction while accommodating different architectural models.
Basic Transaction Structure
{
"version": "1.0.0",
"standard": "WIA-FIN-005",
"transactionId": "tx_2025123100001234",
"timestamp": "2025-12-25T10:30:00.000Z",
"currency": {
"code": "CNY",
"cbdcId": "digital-yuan",
"issuer": "PBOC"
},
"type": "transfer",
"sender": {
"walletId": "CN-1234567890",
"publicKey": "02a1b2c3d4e5f6...",
"signature": "3045022100..."
},
"recipient": {
"walletId": "SG-9876543210",
"cbdcId": "digital-sgd"
},
"amount": {
"value": "1000.00",
"precision": 2
},
"fee": {
"value": "0.10",
"payer": "sender"
},
"privacy": {
"level": "standard",
"technique": "zksnark",
"proof": "..."
},
"metadata": {
"purpose": "payment_for_goods",
"reference": "INV-2025-001",
"memo": "Coffee beans shipment"
},
"compliance": {
"aml": true,
"sanctions": "checked",
"taxReporting": "required"
}
}
Transaction Types
| Type | Description | Use Cases | Required Fields |
|---|---|---|---|
transfer |
Simple payment from one wallet to another | P2P payments, purchases, remittances | sender, recipient, amount |
mint |
Central bank creates new CBDC | Monetary policy, currency issuance | issuer, recipient, amount |
burn |
CBDC removal from circulation | Monetary contraction, currency withdrawal | holder, amount, authority |
exchange |
Cross-currency CBDC swap | Cross-border payments, FX operations | sender, recipient, amounts (both currencies) |
contract |
Smart contract execution | Programmable payments, DeFi | contract_address, function, parameters |
stake |
Lock CBDC for consensus participation | PoS consensus, governance | staker, amount, duration |
Wallet Format
WIA-FIN-005 defines a standard wallet format that supports both custodial and non-custodial models:
{
"walletId": "CN-1234567890",
"version": "1.0.0",
"standard": "WIA-FIN-005",
"cbdcId": "digital-yuan",
"type": "non_custodial",
"created": "2025-01-15T00:00:00Z",
"owner": {
"type": "individual",
"verificationLevel": "tier2",
"publicKey": "02a1b2c3d4e5f6...",
"did": "did:wia:CN-1234567890"
},
"balance": {
"available": "5000.00",
"pending": "100.00",
"locked": "500.00"
},
"limits": {
"dailyTransaction": "10000.00",
"singleTransaction": "5000.00",
"monthlyVolume": "100000.00"
},
"features": {
"offlinePayments": true,
"smartContracts": true,
"multiSignature": false,
"crossBorder": true
},
"privacy": {
"defaultLevel": "standard",
"supportedTechniques": ["zksnark", "ring_signature"]
}
}
Wallet Types
- Non-Custodial: User controls private keys directly
- Custodial: Third party (bank, payment service) manages keys
- Multi-Signature: Requires multiple signatures for transactions
- Smart Contract: Programmable wallet with embedded rules
- Hardware: Secure element-based offline wallet
Cryptographic Standards
Phase 1 specifies quantum-resistant cryptography as the default, with backward compatibility for current systems.
Signature Schemes
| Scheme | Quantum Safe | Key Size | Signature Size | Use Case |
|---|---|---|---|---|
| CRYSTALS-Dilithium | ✅ Yes | 2.5 KB | 3.3 KB | Primary (recommended) |
| FALCON | ✅ Yes | 1.8 KB | 1.3 KB | Compact signatures |
| SPHINCS+ | ✅ Yes | 64 B | 29 KB | Hash-based fallback |
| ECDSA secp256k1 | ❌ No | 32 B | 71 B | Legacy compatibility |
| Ed25519 | ❌ No | 32 B | 64 B | Legacy compatibility |
Hash Functions
- SHA3-256: Primary hash function for quantum resistance
- BLAKE3: High-performance alternative for large-scale operations
- SHA-256: Legacy compatibility (to be phased out by 2030)
Encryption
- CRYSTALS-Kyber: Quantum-safe key encapsulation (primary)
- AES-256-GCM: Symmetric encryption for data at rest
- ChaCha20-Poly1305: High-performance stream cipher alternative
Privacy Mechanisms
Phase 1 defines multiple privacy preservation techniques that jurisdictions can choose based on their regulatory requirements:
1. Zero-Knowledge Proofs
Allow transaction validation without revealing transaction details:
{
"privacy": {
"technique": "zksnark",
"level": "high",
"proof": {
"type": "groth16",
"publicInputs": ["commitment_root", "nullifier"],
"proof": "0x1a2b3c4d...",
"verificationKey": "0x5e6f7g8h..."
},
"reveals": {
"amount": false,
"sender": false,
"recipient": true,
"timestamp": true
}
}
}
2. Confidential Transactions
Hide transaction amounts using Pedersen commitments:
{
"amount": {
"commitment": "0x9a8b7c6d...",
"rangeProof": "0x1f2e3d4c...",
"blindingFactor": "hidden"
}
}
3. Tiered Anonymity
Different privacy levels based on transaction characteristics:
| Tier | Transaction Size | Identity Verification | Transaction Privacy |
|---|---|---|---|
| Tier 1 | < $100 | None required | Full privacy (like cash) |
| Tier 2 | $100 - $1,000 | Basic verification | Pseudonymous |
| Tier 3 | $1,000 - $10,000 | Full KYC | Amounts hidden, parties revealed |
| Tier 4 | > $10,000 | Enhanced due diligence | Full transparency to authorities |
Encoding and Serialization
WIA-FIN-005 specifies standard encoding formats for all data:
Transaction Encoding
- JSON: Primary format for API communication and human readability
- CBOR: Compact binary format for bandwidth-constrained environments
- Protocol Buffers: High-performance binary serialization for internal systems
Identifiers
{
"walletId": "CN-1234567890", // Format: {COUNTRY}-{NUMBER}
"transactionId": "tx_2025123100001234", // Format: tx_{YYYYMMDD}{SEQUENCE}
"cbdcId": "digital-yuan", // Lowercase, hyphen-separated
"did": "did:wia:CN-1234567890" // Decentralized Identifier
}
Amount Representation
- Format: Fixed-point decimal string (never floating point)
- Precision: Specified per currency (typically 2-8 decimal places)
- Maximum: Configurable per CBDC (e.g., "999999999999.99")
Timestamp Format
- Standard: ISO 8601 with UTC timezone
- Example: "2025-12-25T10:30:00.000Z"
- Precision: Millisecond (3 decimal places)
Validation Rules
Phase 1 defines comprehensive validation rules that all compliant CBDCs must enforce:
Transaction Validation
- Signature Verification: Valid cryptographic signature from sender
- Balance Check: Sender has sufficient balance plus fees
- Amount Validity: Amount > 0 and within limits
- Timestamp Validity: Within acceptable clock drift (±5 minutes)
- Nonce/Sequence: Prevents replay attacks
- Format Compliance: All required fields present and correctly formatted
- Privacy Proof: Valid zero-knowledge proof if privacy is enabled
Wallet Validation
- Public Key Format: Valid for chosen cryptographic scheme
- Checksum: Wallet ID includes error-detecting checksum
- Unique Identifier: No duplicate wallet IDs in system
- Verification Level: Matches declared transaction capabilities
Extensibility
Phase 1 includes extension mechanisms for future innovation:
Custom Fields
Implementations can add custom fields in designated extension spaces:
{
"standard": "WIA-FIN-005",
"type": "transfer",
// ... standard fields ...
"extensions": {
"vendor": "central-bank-xyz",
"customFields": {
"riskScore": 0.12,
"merchantCategory": "retail",
"loyaltyPoints": 100
}
}
}
Version Compatibility
- Semantic Versioning: MAJOR.MINOR.PATCH format
- Backward Compatibility: Minor/patch versions are backward compatible
- Forward Compatibility: Unknown fields are ignored gracefully
- Version Negotiation: Systems negotiate highest mutually supported version
Reference Implementation
WIA provides open-source reference implementations in multiple programming languages:
TypeScript Example
import { WIACBDC, Transaction, TransactionType } from '@wia/cbdc';
const cbdc = new WIACBDC({
cbdcId: 'digital-yuan',
privateKey: '0x...'
});
// Create a transaction
const tx: Transaction = {
type: TransactionType.TRANSFER,
recipient: {
walletId: 'SG-9876543210',
cbdcId: 'digital-sgd'
},
amount: {
value: '1000.00',
precision: 2
},
privacy: {
level: 'standard',
technique: 'zksnark'
}
};
// Sign and submit
const signedTx = await cbdc.signTransaction(tx);
const result = await cbdc.submitTransaction(signedTx);
console.log(`Transaction ID: ${result.transactionId}`);
Validation Example
import { validateTransaction, ValidationResult } from '@wia/cbdc';
const result: ValidationResult = validateTransaction(transaction);
if (result.valid) {
console.log('Transaction is valid');
} else {
console.log('Validation errors:', result.errors);
// Example errors:
// - "Invalid signature"
// - "Insufficient balance"
// - "Amount exceeds daily limit"
}
Testing and Compliance
WIA provides comprehensive test suites for Phase 1 compliance:
Test Categories
- Schema Validation: 150+ test cases for data format compliance
- Cryptographic Tests: Signature verification, hashing, encryption
- Privacy Tests: Zero-knowledge proof validation
- Edge Cases: Boundary values, malformed data, attack vectors
- Interoperability: Cross-CBDC transaction parsing
Certification Process
- Self-Testing: Run open-source test suite against your implementation
- Documentation: Submit implementation details and test results
- Peer Review: Community review of implementation approach
- Third-Party Audit: Independent verification of compliance
- Certification: WIA certification badge and listing
Summary
Phase 1 provides the essential foundation for CBDC interoperability:
- ✅ Universal transaction format supporting all CBDC models
- ✅ Standardized wallet structures for custodial and non-custodial use
- ✅ Quantum-resistant cryptography for future-proofing
- ✅ Flexible privacy mechanisms respecting different regulatory approaches
- ✅ Clear validation rules ensuring security and correctness
- ✅ Extension mechanisms for innovation without breaking compatibility
Next: Chapter 5 explores Phase 2, which builds on these data formats to define standardized APIs for CBDC operations, enabling developers to build applications that work across multiple CBDC systems.