Home - huitemagico/kmac GitHub Wiki
Home page of wiki December 31 2023 ;
Updated January 11, 2025
See KMAC System Context paragraph
See Summary
Updated January 28, 2025 . Adding the "idea" project for #BetterOnStellar.
For this, see Home of podaidvac wiki
Guided tour of the KMAC documentation. This page assumes that the reader should follow a sequence from a broad view of the program, then try to run and test the example execution, and reviewing some implementation details.
Note: In addition to the 'Main Index' on the right side, it can be useful to open the 'Pages' option on the same Index.
Note2: Important! December 31! Final Version Deliverables.
The link above is useful also as another review order and includes the description of the proposed deliverables and a comparison of the final achievements.
Please see the explanation of the following diagram at
System Context Page

KMAC is the project for building a contract, with the SOROBAN-SDK tools.
KMAC implements a Finite State Machine template with the purpose of simplifying new developments using this pattern.

The KMAC program has implemented the template and has provided an example of using this template.
Really, we could see KMAC as three different points of view, depending of your interest:
(1) The KMAC template program, (2) the KMAC Vending Machine model application example, and (3) the KMAC user extensions feature.
The "production version" is 1.0.0 December 31, 2023
KMAC is built using Soroban,Rust-based smart contracts platform.
KMAC provide extensible functions capabilities.
This means that you can implement other examples of systems based on Finite State Machine model, without the need to code the logic of the Finite State Machine flow. You only need to focus on programming the specific 'user' functions for your new model.
See the next image "KMAC architecture diagram"

The KMAC project intends to utilize well-known design patterns.
The primary goal is to practice implementing these features. The intention is to provide easily understandable and reusable components through this approach. This aligns with the final goal of KMAC, which is to be an Educational Project.
Please refer to kmac setup
The steps for deepen in KMAC are:
(1) Setup the program
(2) What is KMAC-3 views
(3) KMAC Design patterns
(4) Configuring Network and identities
(5) Technical description of KMAC
(6) User Manual
(7) How to add user functions
At the "Main Index" (at the 'side bar' of the page) you could use it for thematical browsing of the documentation.
Also, take a look at the 'Pages' link, placed over the 'Main Index'.
For easier navigation of the documentation, you can use the table below (alphabetically ordered).
| Content | Link | Purpose |
|---|---|---|
| architecture | KMAC architecture | Review of KMAC architecture |
| buyer process | Vending Machine example | Buyer process |
| dashboard | dashboard | How understand the output of the vending machine program |
| dashboard | dashboard | How understand the output of the vending machine program |
| deliverables (history of) | deliverables (history) | Deliverables description |
| deliverables page | Deliverables main chapter | Deliverables achieved description |
| finite state machine (FSM) | finite state machine | Finite state machine how to |
| flow diagram | flow diagram | flow diagram |
| functions explained | functions | description of (some) function of KMAC |
| matrix of functions | matrix | understand how use the matrix for build a new program |
| modules (of kmac) | modules | description of KMAC modules |
| network configuration | modules | how configure the network |
| identity configuration | identity | how configure the identities |
| SCF Dashboard | KMAC at SCF | KMAC at SCF |
| shell comands | shell comands for the vending machine | shell commands for run the vending machine example |
| storage management | storage management | how KMAC use storage |
| security | security | how KMAC deals with |
| soroban rust sdk | soroban rust sdk instructions | selected RUST instructions |
| sequence of transactions | [valid sequence trx](https://github.com/huitemagico/kmac/wiki/Valid-Transaction-sequences | valid sequence of transactions |
| sequence diagram | sequence diagram for Vending Machine example | the sequence of transactions |
| setup KMAC | KMAC Setup | how setup run and test the KMAC |
| summary (internal use) | Summary | Summary |
| template | template | the template KMAC |
| template | template design approach | the template KMAC |
| user transactions | user transactions | user functions how to |
| use cases-actors | Actor use cases | Who-is-who at KMAC approach |
| user Manual of KMAC | KMAC User Manual | "user manual" |
| vending machine | vending machine | The Vending Machine example |
| Vending machine FSM Diagram | Vending Machine FSM Diagram | |
| vending machine output | vending machine dashboard output | the vending machine output |