Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions docs/pages/_meta.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,9 @@
"type": "page"
},
"services": "Services",
"yano-node-modes": "Node Modes",
"cip30-wallet": "CIP-30 Wallet",
"mcp-integration": "MCP Integration",
"commands": "Yaci CLI Commands",
"node-configuration": "Node Configuration",
"multi-node-setup": "Multi-node setup",
Expand Down
101 changes: 101 additions & 0 deletions docs/pages/cip30-wallet.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,101 @@
import { Callout } from 'nextra/components'

# CIP-30 Wallet

<Callout type="info">
Supported in Yaci DevKit `v0.12.0-beta5` and later.
</Callout>

Yaci DevKit includes a local CIP-30 wallet for dApp development and SDK testing.

It lets you test browser dApps against a local devnet without installing or configuring a separate browser wallet for every test account.

## URLs

When Yaci CLI is running, the wallet tools are served from the CLI/admin port:

| Item | URL |
|---|---|
| Wallet page | `http://localhost:10000/wallet` |
| Wallet SDK | `http://localhost:10000/wallet-sdk.js` |
| Wallet API health check | `http://localhost:10000/api/v1/wallet/health` |

The wallet SDK injects this CIP-30 provider:

```js
window.cardano.yacidevkit
```

## Wallet Page

Open the wallet page to inspect local devnet accounts, switch the active account used by dApps, import accounts, and send test transactions.

```text
http://localhost:10000/wallet
```

The default DevKit mnemonic is used for the pre-funded local accounts:

```text
test test test test test test test test test test test test test test test test test test test test test test test sauce
```

<Callout type="warning">
The DevKit wallet is for local development only. Do not use it with real funds.
</Callout>

## Use From a dApp

Include the SDK in your local dApp page:

```html
<script src="http://localhost:10000/wallet-sdk.js"></script>
```

Then use it like any other CIP-30 wallet:

```js
const wallet = await window.cardano.yacidevkit.enable();

const networkId = await wallet.getNetworkId();
const balance = await wallet.getBalance();
const changeAddress = await wallet.getChangeAddress();
```

## Supported CIP-30 Methods

The wallet SDK supports the common CIP-30 flow used by local dApps:

- `isEnabled()`
- `enable()`
- `getNetworkId()`
- `getBalance()`
- `getUtxos()`
- `getUsedAddresses()`
- `getUnusedAddresses()`
- `getChangeAddress()`
- `getRewardAddresses()`
- `getCollateral()`
- `signTx()`
- `signData()`
- `submitTx()`

## Transaction Flow

For transfer and dApp signing flows:

- wallet data is exposed through CIP-30-compatible CBOR values
- transaction signing happens through the CLI wallet backend
- UTxO and balance queries use Yaci Store when required
- signed transaction submission is proxied through the local DevKit services

## Examples

The packaged `examples/` folder includes browser examples that use CIP-30:

- `examples/wallet-demo`: wallet discovery, CIP-30 methods, signing, and transfer flow
- `examples/meshjs-mint-nft`: NFT minting with MeshJS and CIP-30 signing

Both Docker and native CLI zip distributions include these examples.

Run `info` in Yaci CLI to see the active wallet page and SDK URLs for your devnet.
6 changes: 4 additions & 2 deletions docs/pages/commands.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ Create a new node with the default options. 1 sec block time and overwrite the e
- `--block-time or -b double` : Set the block time in seconds. Default is 1 sec. **New in 0.11.0-beta1:** Supports sub-second values like 0.2 for 200ms blocks.
- `--slot-length or -s double` : Slot Length in sec. Default is 1 sec. **New in 0.11.0-beta1:** Supports sub-second values like 0.2 for 200ms slots.
- `--epoch-length or -e int` : Epoch Length in slots. Default is 500.
- `--era String` : Era (babbage, conway). Default is babbage.
- `--era String` : Era (babbage, conway). Default is conway.
- `--enable-multi-node` : Enable multi-node setup for rollback testing. **New in 0.11.0-beta1.**

**Note:** There are many other node specific configuration that can be set through env file or node.properties. Please refer to the [Node Configuration](./node-configuration) for more details.
Expand Down Expand Up @@ -143,13 +143,15 @@ tip

### info

To show the info of the node.
To show devnet details, service URLs, and integration helpers for the current node.

- **Usage:**
```bash
info
```

The output includes node mode details, Yaci Store/Ogmios/Kupo URLs when enabled, Wallet SDK / CIP-30 links, and the MCP server URL/config snippet.

## Log Commands

### logs
Expand Down
30 changes: 28 additions & 2 deletions docs/pages/getting-started/docker.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -8,19 +8,30 @@ The Docker distribution is the **recommended** way to get started with Yaci DevK

The Docker distribution includes:
- **Yaci CLI**: Command-line interface for managing your devnet
- **Yaci CLI Admin API**: HTTP API, Swagger UI, Wallet UI, Wallet SDK, and MCP endpoint
- **Yano**: Lightweight devnet node used for fast PV11 bootstrap and Yano-only mode (in v0.12.0-beta5+)
- **Cardano Node**: Local Cardano blockchain node
- **Yaci Store**: Lightweight indexer with Blockfrost-compatible APIs
- **Yaci Viewer**: Web-based interface for exploring blockchain data
- **Ogmios**: A lightweight bridge interface for Cardano Node
- **Kupo**: A fast, lightweight and configurable chain-indexer
- **Examples**: Runnable examples under the `examples/` folder

## Prerequisites

- **Docker**: Make sure Docker is installed and running on your system
- **Available Ports**: Default ports (3001, 8080, 5173) should be free
- **Available Ports**: Default ports (3001, 8080, 5173, 10000) should be free

For Ogmios and Kupo, ensure ports 1337 and 1442 are also available if you plan to use these services.

<Callout type="info">
Starting with Yaci DevKit `v0.12.0-beta5`, the default Docker setup uses Yaci Store's `scalus` transaction evaluator. Ogmios is optional and is not started just for transaction evaluation.
</Callout>

<Callout type="warning">
For Yaci DevKit `v0.12.0-beta5`, PV11-compatible Ogmios/Kupo binaries are currently available only as Linux x86_64 builds from IntersectMBO. Docker images can run these on Apple Silicon Docker Desktop through emulation, but native Linux arm64 hosts may need x86_64 emulation or the amd64 image. See [Known Issues](/known-issues#pv11-ogmioskupo-docker-arm64-compatibility).
</Callout>

## Installation

### Method 1: Curl Installation (Recommended)
Expand Down Expand Up @@ -116,6 +127,14 @@ yaci-cli:>create-node -o --block-time 5 --slot-length 5 --start
3. **Access Yaci Viewer**:
Open http://localhost:5173 in your browser to explore your devnet through the web interface.

4. **Open Wallet and MCP URLs when needed**:
- Wallet page: http://localhost:10000/wallet
- Wallet SDK: http://localhost:10000/wallet-sdk.js
- MCP endpoint: http://localhost:10000/mcp

5. **Try packaged examples**:
The Docker zip distribution includes runnable examples under `examples/`.

<Callout type="info">
**Port Conflicts**: If ports are already in use, update the `config/env` file to change port numbers. Restart the containers after making changes.
</Callout>
Expand Down Expand Up @@ -181,12 +200,19 @@ To activate Ogmios and Kupo support, either:
1. **Via env file**: Set `ogmios_enabled=true` and `kupo_enabled=true` in `config/env`
2. **Via CLI**: Use the `enable-kupomios` command in Yaci CLI

In `v0.12.0-beta5+`, if Ogmios is enabled and running when Yaci Store starts, Yaci Store uses `ogmios` transaction evaluation. Otherwise it uses `scalus`.

#### Service URLs
- **CLI/Admin Swagger UI**: http://localhost:10000/swagger-ui.html
- **Wallet page**: http://localhost:10000/wallet
- **MCP endpoint**: http://localhost:10000/mcp
- **Yaci Store (Blockfrost API)**: http://localhost:8080/api/v1/
- **Yaci Store (Swagger UI)**: http://localhost:8080/swagger-ui/index.html
- **Yaci Store (Swagger UI)**: http://localhost:8080/swagger-ui.html
- **Yaci Viewer**: http://localhost:5173
- **Ogmios** (if enabled): http://localhost:1337
- **Kupo** (if enabled): http://localhost:1442
- **Yano HTTP**: http://localhost:6060
- **Yano Swagger UI** (`yano-only` mode): http://localhost:6060/q/swagger-ui

## Stopping the DevKit

Expand Down
13 changes: 12 additions & 1 deletion docs/pages/getting-started/npm.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ The NPM distribution provides:
- **Node.js package management**: Install and manage Yaci CLI distribution through npm
- **Streamlined commands**: Simplified `up` command that handles download and devnet creation
- **Yaci Viewer package**: Separately installable web interface for blockchain exploration
- **Wallet SDK and MCP endpoint**: Served by the Yaci CLI/admin service
- **CI/CD ready**: Perfect for automated testing and continuous integration

## Prerequisites
Expand Down Expand Up @@ -75,6 +76,8 @@ This command:
- Creates and starts a new devnet with 1-second block time
- Sets up the basic development environment

By default, DevKit uses `companion` node mode: Yano bootstraps the network and then hands over to the Haskell node. See [Node Modes](/yano-node-modes).

### Interactive Mode

To interact with the running devnet using the Yaci CLI prompt:
Expand Down Expand Up @@ -147,7 +150,11 @@ yaci-devkit up --enable-yaci-store
Includes:
- Cardano node
- Yaci Store (Blockfrost-compatible APIs)
- Ogmios (for script cost evaluation)
- `scalus` transaction evaluation by default in `v0.12.0-beta5+`

<Callout type="info">
Starting with Yaci DevKit `v0.12.0-beta5`, Yaci Store does not require Ogmios for transaction evaluation. If Ogmios is enabled and running, Yaci Store automatically switches to `ogmios` evaluation mode.
</Callout>

#### 4. Kupomios Mode
```bash
Expand Down Expand Up @@ -239,6 +246,10 @@ For detailed CI/CD integration examples and best practices, see the [CI/CD Integ
When services are enabled:

- **Cardano Node**: localhost:3001
- **CLI/Admin Swagger UI**: http://localhost:10000/swagger-ui.html
- **Wallet page**: http://localhost:10000/wallet
- **Wallet SDK**: http://localhost:10000/wallet-sdk.js
- **MCP endpoint**: http://localhost:10000/mcp
- **Yaci Store (Blockfrost API)**: http://localhost:8080
- **Yaci Viewer**: http://localhost:5173
- **Ogmios** (if enabled): ws://localhost:1337
Expand Down
48 changes: 43 additions & 5 deletions docs/pages/getting-started/zip.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import { Callout } from 'nextra/components'

# Zip Setup

For users who prefer not to use Docker, the ZIP distribution contains only Yaci CLI and allows you to download and manage necessary components like Cardano Node, Ogmios, Kupo, and Yaci Store directly through the command line.
For users who prefer not to use Docker, the ZIP distribution contains Yaci CLI, configuration files, and packaged examples. It allows you to download and manage necessary components like Cardano Node, Yano, Ogmios, Kupo, and Yaci Store directly through the command line.

## Overview

Expand All @@ -15,6 +15,10 @@ The Zip distribution is perfect for:
**Note**: Yaci Viewer is not included in the Zip distribution. To add viewer functionality, you can install Yaci Viewer separately through NPM. See the [NPM installation guide](/getting-started/npm#step-2-install-yaci-viewer-optional) for details.
</Callout>

<Callout type="warning">
PV11-compatible Ogmios/Kupo binaries are currently published only as Linux x86_64 builds. On macOS arm64 native CLI, those specific Ogmios/Kupo defaults cannot run directly. Use Docker as a workaround, or set custom `ogmios.url` / `kupo.url` values when compatible native builds are available.
</Callout>

## Key Advantages

- **Reduced Disk Space**: Requires less disk space than Docker, containing only the Yaci CLI binary and configuration files
Expand Down Expand Up @@ -55,6 +59,7 @@ rm -rf $HOME/.yaci-cli
3. Navigate to the extracted folder where you'll find:
- `yaci-cli` - The main executable binary
- `config/` - Configuration files directory
- `examples/` - Runnable examples for Wallet SDK, MeshJS, Evolution SDK, and Sutra Elixir

### Step 2: macOS Setup (macOS users only)

Expand Down Expand Up @@ -86,8 +91,9 @@ The ZIP distribution doesn't include the necessary components for creating a dev
yaci-cli:> download
```

This automatically downloads all required components for your platform:
This downloads the configured components for your platform:
- Cardano Node
- Yano
- Ogmios
- Kupo
- Yaci Store
Expand All @@ -104,6 +110,7 @@ yaci-cli:> download --overwrite
**Download individual components:**
```shell
yaci-cli:> download -c node
yaci-cli:> download -c yano
yaci-cli:> download -c ogmios
yaci-cli:> download -c kupo
yaci-cli:> download -c yaci-store
Expand Down Expand Up @@ -180,8 +187,8 @@ kupo.enabled=true
yaci.store.enabled=true
```

<Callout type="warning">
**For Blockfrost-compatible APIs**: To use Yaci Store for transaction building, script cost evaluation, and transaction submission, you must enable both Yaci Store and Ogmios.
<Callout type="info">
**Yaci DevKit v0.12.0-beta5+**: Yaci Store uses `scalus` transaction evaluation by default, so transaction building, script cost evaluation, and transaction submission do not require Ogmios. If Ogmios is enabled and running when Yaci Store starts, DevKit switches Yaci Store to `ogmios` evaluation mode.
</Callout>

#### Update Ports
Expand All @@ -198,6 +205,22 @@ yaci.store.port=8080

Contains Cardano Node configuration. Update as needed to modify the node's genesis configuration.

#### Node Mode

The default node mode is `companion`.

```properties
nodeMode=companion
```

Use `yano-only` for a lighter setup where Yano runs as the only node and Yaci Store syncs directly from Yano.

```properties
nodeMode=yano-only
```

See [Node Modes](/yano-node-modes) for details.

### download.properties

Contains default download versions for components. You can:
Expand Down Expand Up @@ -258,12 +281,27 @@ yaci-cli:> create-node -o --block-time 200 --start
### Service URLs

When enabled, services are available at:
- **CLI/Admin Swagger UI**: http://localhost:10000/swagger-ui.html
- **Wallet page**: http://localhost:10000/wallet
- **Wallet SDK**: http://localhost:10000/wallet-sdk.js
- **MCP endpoint**: http://localhost:10000/mcp
- **Yaci Store (Blockfrost API)**: http://localhost:8080/api/v1/
- **Yaci Store (Swagger UI)**: http://localhost:8080/swagger-ui/index.html
- **Yaci Store (Swagger UI)**: http://localhost:8080/swagger-ui.html
- **Yaci Viewer**: http://localhost:3000 (If Yaci Viewer is installed separately via NPM)
- **Ogmios**: http://localhost:1337
- **Kupo**: http://localhost:1442

### Packaged Examples

The ZIP distribution includes examples under `examples/`:

- `wallet-demo`
- `meshjs-mint-nft`
- `evolution-sdk`
- `sutra-elixir`

See `examples/README.md` in the distribution for a quick overview.

## Multi-Node Networks

Since Yaci CLI is used in both Yaci DevKit and this distribution, the commands to create a multi-node network remain the same.
Expand Down
Loading
Loading