Catalyst Fund 12
Tokeo received funding via Catalyst to upgrade, improve, evolve and maintain CardanoKit.
Tokeo was fortunate to have received funding via Catalyst in Fund 12 to upgrade, improve and maintain the original SwiftCardano library.
Tokeo's full proposal can be found here.
A statement of approved milestones can be found here.
Background
This Swift Cardano library was released in 2021, and has not been actively upgraded or maintained. Since then Cardano has had a number of hard forks, and the CSL has incremented from v 10.x to 14.x. The library had implemented only basic and limited functionality.
The scope of Tokeo's proposal was to upgrade the CSL, fix any breakages, and enhance the library.
However, as engineering work on this proposal began, it became clear the major changes introduced via the Cardano hard forks were so fundamental that they impacted and broke most of the SwiftCardano library, and as such, a clean rebuild was needed and Tokeo has created a new codebase and repository named CardanoKit.
Progress On Key Milestones
Milestone 1 : Complete
Milestone Overview
The work performed in this milestone involved a number of key proofs and accomplishments:
Architected and automated workflow of build time libraries required to expose the CSL
Exposed > 90% of CSL primitives via the CSL Kit Library to a swift interface
Created CardanoKit importing CSL Kit and exposing a single abstracted, but round-tripped test case
Created example application iOS that imports CardanoKit via the Swift Package Manager and demonstrates basic kit usage and implementation
The above represents and exciting proof, and lays down a baseline for rapidly rolling key library features to the application layer via Cardano Kit.
See video of example app, and installation procedures.
These features will be unit tested, and incorporated into a live production environment via the Tokeo app.
Key Deliverables:
Integration of CSL
The CardanoKit and its Tokeo developed dependency, CSL Kit, expose the latest stable version of Emurgo's Cardano Serialisation Library v14.1.2. This includes an updated FFI, and C/Swift Cardano translation layer, and application layer abstraction via CardanoKit library.
Complete
Published Test Summary Report.
See test summary report and example app here.
Complete
Marketing
Promotional marketing on this project via X Post has been done here https://x.com/Tokeo_io/status/1936082787481567343
Complete.
Test Summary Report: Cardano Kit
Bash(swift test)
βΏ Test Suite 'All tests' started at 2025-07-07 15:51:25.956.
Test Suite 'All tests' passed at 2025-07-07 15:51:25.958.
Executed 0 tests, with 0 failures (0 unexpected) in 0.000 (0.002) seconds
β¦ +55 lines (ctrl+r to expand)
βΊ Test Report
Status: β PASSED
- Total Tests: 1
- Passed: 1
- Failed: 0
- Execution Time: 0.001 seconds
Test Details
Test: example()
- Creates an Address from bech32 format
- Converts to hex format successfully
- Output: 011a026397a0d548903e7d3cab2b877909ebf6442506563753f96d834da95f22a59f7da0c7f
e40b53b3077636f74a9306882a069157d77d78c
- Properly handles memory management (Rust pointer deallocation)
Build Summary
- Build time: 48.90 seconds
- Dependencies resolved: CSL mobile bridge fetched from cache
- All modules compiled successfully
Notes
The test validates basic address conversion functionality between bech32 and hex
formats.
Integration of Plutus Transaction Parsing & Signing : The unit test plan execution summary demostrates successful transaction parsing and signing using the newly created libraries CSK Kit and CardanoKit.
Project Implementation Plan :
The project plan covering this implementation is here.
Design and Visuals: Documente here and the Tokeo marketing team have posted on X about our activity here
Milestone 2 : Complete
Key Deliverables.
Technical Design Paper
Design of CardanoKit can be found here: https://github.com/TokeoPay/CardanoKit/blob/main/TechnicalDesign.md X Post: https://x.com/Tokeo_io/status/1940827261088993577 Blog: https://tokeo.io/blog/cardanokit-by-tokeo-technical-design-and-feedback/
Complete
Video / Progress Report
Complete
Feedback Report
Feedback and progress report published: https://gitbook.tokeo.io/tokeo/technical-information/cardanokit/catalyst-fund-12
Complete
Feedback Summary Report
As of yet - no feedback has been received from the public with respect to The CardanoKit technical design specification.
Project Design - Sponsor Sign Off
The project design, and plan and plan been reviewed internally and signed off by:
Simon Canil (Founder)
Zushan Hashmi (Founder)
Stephen Giderson (Founder)
Gavin Harris (Head Engineer)
It can be viewed here.
Milestone 3 : Complete
Code Merge (Covering key functionality)
Key Features:
Wallet Creation
Data signing
Transaction Parse (From CBOR)
Transaction Fee Estimate
Sign Transaction
Complete
Successful Unit Tests (100%)
See test summary below
Complete
Successful Integration Tests
See demo app below.
*Not fit yet for Tokeo due to the rebuild vs upgrade of the kit.
So in replacement, we've shown the kit working on a "clean" iOS demo app. Representing successful integration tests
CompleteV
Video Overview / Blog
CompleteV
Test Summary

The CardanoKit library has been significantly expanded from a simple address utility to a full-featured Cardano wallet
SDK with:
- Complete HD Wallet Support: BIP32/BIP39 compliant wallet creation and recovery
- Transaction Processing: Full CBOR transaction parsing, fee calculation, and signing
- Advanced Address Management: Payment and staking credential support
- UTXO Management: Transaction input/output handling
- Enhanced Platform Support: Updated to Swift 6.0, iOS 17.0+, macOS 15.0+
Test Results β
- 13 comprehensive tests all passing
- Real-world transaction data used in testing
- Memory management verified with proper Rust pointer cleanup
- Performance remains excellent with sub-millisecond operations
Updated User Guide
Focused the documentation on the new capabilities with practical examples for:
- Wallet Creation & Recovery: Mnemonic generation and restoration
- Address Generation: HD wallet address derivation
- Transaction Signing: End-to-end transaction processing
- Real Usage Patterns: Production-ready code examples
The library has evolved from a basic address converter to a production-ready Cardano wallet SDK suitable for iOS applications.
Demo Application
To demonstrate real integration Tests, a demo application has been built, showing key end-to-end integration style tests:

Milestone 4 : Complete
This Milestone, represents the Beta version of this CardanoKit library with the addition of application-ready functions, allowing full use of the CardanoKit in any swift ui application.
Test Summary Report
Unit test summary report covering all previously tested function, with the addition of:
β’ Dapp Integration (CIP 30)
β’ Transaction parsing & validation
β’ Data signing (CIP 30)
β’ Multi-asset transaction building
β’ UTXO Optimisation
β’ Transaction Signing
β’ UTXO Optimisation
β’ Transaction Signing
-> Message
-> Send / Swap
β’ Memory & Stress testing
COMPLETE
Promotion of Milestone
Twitter Post / Video : <Insert Link Here>
COMPLETE
Unit Test Summary Report.
CardanoKit iOS Test Report
Summary
Test Run Date: August 29, 2025Platform: macOS 14.0 (x86_64)Swift Version:
6.1Test Framework: Swift Testing + XCTestTotal Tests: 15Status: β All
tests passedTotal Duration: 28.635 seconds
Test Categories
1. Address Operations - Basic address encoding/decoding
2. Wallet Management - Mnemonic generation and key derivation
3. Transaction Processing - Transaction parsing and signing
4. Memory Performance - Stress testing for memory leaks
Detailed Test Results
1. Address Testing (AddressTesting.swift)
β address_decode_testing (0.001s)
- Purpose: Validates Bech32 address encoding and hex conversion
- Test Data:
- Bech32: addr1qydqycuh5r253yp70572k2u80yy7hajyy5r9vd6nl9kcxndftu32t8ma
5rrlus948vc8wcm0wj5nq6yz5p532lth67xq4hd8ee
- Hex: 011a026397a0d548903e7d3cab2b877909ebf6442506563753f96d834da95f22
a59f7da0c7fe40b53b3077636f74a9306882a069157d77d78c
- Result: Successfully converted between formats
2. Wallet Testing (CardanoWalletTesting.swift)
β test_create_from_words_priv_key_bech32 (0.014s)
- Purpose: Creates wallet from mnemonic phrase
- Mnemonic: "art forum devote street sure rather head chuckle guard
poverty release quote oak craft enemy"
- Result: Successfully generated private keys and addresses
β test_create_new_wallet_24_words (0.014s)
- Purpose: Generates new 24-word mnemonic wallet
- Result: Successfully created wallet with 24-word mnemonic
β test_create_new_wallet_words (0.057s)
- Purpose: Tests all mnemonic lengths (12, 15, 18, 21, 24 words)
- Word Count Enums:
- Twelve words (12 words)
- 15 words (15 words)
- Eighteen words (18 words)
- TwentyOne words (21 words)
- TwentyFour words (24 words)
- Result: All mnemonic lengths generated correctly
β test_from_entropy_priv_key_bech32 (0.012s)
- Purpose: Creates wallet from entropy bytes
- Entropy: [0xdf, 0x9e, 0xd2, 0x5e, 0xd1, 0x46, 0xbf, 0x43, 0x33, 0x6a,
0x5d, 0x7c, 0xf7, 0x39, 0x59, 0x94]
- Result: Successfully derived keys from entropy
β test_create_from_entropy_address_to_bech32 (0.013s)
- Purpose: Generates addresses from entropy
- Result: Successfully created payment and staking credentials
β test_create_from_words_address_to_bech32 (0.014s)
- Purpose: Derives addresses from mnemonic words
- Result: Successfully generated Bech32 addresses
β test_signing_some_data (0.020s)
- Purpose: Tests data signing with private keys
- Test Address: addr_test1qrvel33ynx4yxgztdmvt58983hftdwtmnwgfzs830myavhk
vxwdrt70qlcpeeagscasafhffqsxy36t90ldv06wqrk2ql4t2za
- Result: Successfully signed data with key discovery
3. Transaction Testing (TxDetailsTesting.swift)
β assets_testing_insert (0.001s)
- Purpose: Tests native asset management
- Result: Successfully added and mapped assets
β address_tx_details_from_transaction (0.004s)
- Purpose: Parses transaction CBOR and extracts details
- Transaction Hash:
359f5f7ea6224cb3928940ab96ee15df9a8f46ddca1bbb74f339fd5e3db914b5
- Result: Successfully parsed inputs, outputs, and assets
β test_parse_and_sign_a_transaction (0.015s)
- Purpose: Parses and signs a complete transaction
- Result: Successfully signed transaction with proper witness data
β test_parsing_a_transaction (0.001s)
- Purpose: Basic transaction parsing
- Result: Transaction parsed correctly
β test_parse_a_transaction_2 (0.001s)
- Purpose: Additional transaction parsing test
- Result: Transaction parsed correctly
β test_parse_a_transaction_3 (0.001s)
- Purpose: Complex transaction parsing
- Result: Transaction parsed correctly
4. Memory Testing (MemoryTesting.swift)
β memory_test_transaction_from_hex (28.634s)
- Purpose: Stress test for memory leaks with 500,000 iterations
- Start Memory: 5,484 KB
- End Memory: 6,348 KB
- Memory Increase: 864 KB (15.7%)
- Result: No significant memory leaks detected
Core Components Tested:
- β Address encoding/decoding (Bech32 β Hex)
- β Wallet generation (entropy and mnemonic)
- β Private key derivation (BIP32)
- β Transaction parsing (CBOR)
- β Transaction signing
- β Native asset handling
- β Memory management
- β Data signing and verification
Integration Points:
- CSL Mobile Bridge (Cardano Serialization Library)
- BIP39 mnemonic generation
- Ed25519 cryptography
- CBOR encoding/decoding
Performance Metrics
| Test Category | Average Duration | Memory Impact |
|------------------------|------------------|---------------|
| Address Operations | 0.001s | Minimal |
| Wallet Creation | 0.021s | ~100 KB |
| Transaction Parsing | 0.004s | ~50 KB |
| Data Signing | 0.020s | ~200 KB |
| Stress Test (500K ops) | 28.634s | 864 KB total |
Dependencies Verified
- CSLKit (v0.0.1-alpha.6) - β Successfully integrated
- Bip39.swift (v0.2.0) - β Working correctly
- Swift 6.1 - β Compatible
Conclusion
The CardanoKit test suite demonstrates robust functionality across all
major features. With 100% test pass rate and efficient memory usage, the
library is production-ready for iOS applications requiring Cardano
blockchain integration.
Milestone 5
In Progress
Last updated
Was this helpful?