This repository contains examples demonstrating how to use Yaci DevKit with different Cardano SDKs:
- MeshJS - JavaScript/TypeScript
- Lucid Evolution - JavaScript/TypeScript
- Cardano Client Lib (CCL) - Java/Scala/Kotlin
- Docker (for Docker-based installation)
- Node.js (v20.8.0 or higher for npm-based installation)
- Bun (for running MeshJS and Lucid Evolution examples)
- JBang (for running CCL examples)
-
Install Yaci DevKit using curl:
curl --proto '=https' --tlsv1.2 -LsSf https://devkit.yaci.xyz/install.sh | bash
-
Start the DevKit:
devkit start
-
Create and start a default devnet:
# Inside the Yaci CLI create-node -o --start -
Access the web interface at http://localhost:5173
Supported on Linux-x64 & Mac ARM64
npm install -g @bloxbean/yaci-devkitStart the DevKit:
yaci-devkit up --enable-yaci-storeThe DevKit should be accessible on:
- Node API: http://localhost:8080
- Yaci Store (Blockfrost-compatible): http://localhost:8080/api/v1/
- Yaci Viewer Web Interface: http://localhost:5173
The MeshJS folder contains examples using Mesh SDK:
-
Navigate to the meshjs folder:
cd meshjs -
Install dependencies:
bun install
-
Run examples:
# Simple payment transaction bun run payment.ts # Payment splitter with Plutus V3 bun run payment_splitter_plutusV3.ts
The Lucid Evolution folder contains examples using Lucid Evolution library:
-
Navigate to the lucid-evo folder:
cd lucid-evo -
Install dependencies:
bun install
-
Run examples:
# Simple payment transaction bun run payment.ts # Plutus V2 example bun run plutus_v2.ts # Plutus V3 example bun run plutus_v3.ts
The CCL folder contains Java examples using JBang:
-
Navigate to the ccl folder:
cd ccl -
Run examples using JBang:
# Simple transfer example jbang SimpleTransfer.java # Payment splitter example jbang PaymentSplitter.java
.
├── meshjs/ # MeshJS examples
│ ├── payment.ts # Simple payment example
│ ├── payment_splitter_plutusV3.ts # Plutus V3 smart contract example
│ └── package.json
├── lucid-evo/ # Lucid Evolution examples
│ ├── payment.ts # Simple payment example
│ ├── plutus_v2.ts # Plutus V2 example
│ ├── plutus_v3.ts # Plutus V3 example
│ └── package.json
├── ccl/ # Cardano Client Lib examples
│ ├── SimpleTransfer.java # Simple transfer example
│ ├── PaymentSplitter.java # Payment splitter example
│ ├── simple-transfer-plutus.json # Plutus script for simple transfer
│ └── payment-splitter-plutus.json # Plutus script for payment splitter
└── README.md
Useful commands when working with Yaci DevKit:
devkit start- Launch containers and start Yaci CLIdevkit stop- Stop all containersdevkit cli- Run cardano-cli commandsdevkit ssh- Connect to the containerdevkit info- Display node informationdevkit version- Show DevKit version
After devkit start command, you should see yaci-cli> prompt. You can use various yaci-cli commands in this prompt:
create-node - Creates a devnet node with configurable parameters
create-node [options]Example: create-node -o --start
reset - Clears data and logs, then restarts the devnet to initial state
resetstop - Halts the local devnet without removing data
stopexit - Terminates the node, services, and CLI session
exittopup - Funds an address with specified ADA amount
topup [--address String] [--value double]Example: topup addr_test1qrz... 45000
default-addresses - Displays 20 pre-funded default addresses from test mnemonic
default-addressesshow-faucet-addresses - Lists faucet addresses used for funding operations
show-faucet-addressesutxos - Retrieves UTXOs for a specified address
utxos [address] [--pretty-print-inline-datum]tip - Shows node tip; displays all node tips in multi-node mode
tipinfo - Displays node information
infologs- Display node logsyaci-store-logs- Display Yaci Store logsogmios-logs- Display Ogmios logskupo-logs- Display Kupo logs
For a complete list of all available commands, see the Yaci DevKit Commands Reference.
You can customize the devnet configuration when creating a node:
create-node -o --start --block-time 0.5 --slot-length 0.5 --epoch-length 50Parameters:
--block-time- Time between blocks in seconds--slot-length- Slot duration in seconds--epoch-length- Number of slots per epoch
This repository includes a GitHub Actions workflow that automatically runs all examples with Yaci DevKit. The workflow can be manually triggered from the Actions tab.
See .github/workflows/devkit-ci.yml for the complete CI configuration.
- Yaci DevKit Documentation
- Yaci DevKit Getting Started
- Yaci DevKit Commands Reference
- Yaci DevKit CI Integration
- MeshJS Documentation
- Lucid Evolution
- Cardano Client Lib
If you encounter port conflicts, ensure ports 3001, 8080, and 5173 are available.
Make sure Docker is installed and running before executing devkit start.
Ensure you're using Node.js v20.8.0 or higher for npm-based installation.
MIT