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
52 changes: 48 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,42 @@ and share funds via claim links.
- 📥 Withdraw stablecoins to external blockchains
- 🔐 Multiple authentication methods

## 🤖 AI Agent Integration

Nova can be used directly by AI agents via **Vercel Skills**.

### Install with Vercel Skills CLI

``` bash
npx skills add MynthAI/nova
```

Once installed, the skill is automatically available to your AI agent.
The agent will invoke Nova commands when relevant tasks are detected.

### Example Agent Prompts

- `Sign-in to my wallet with me@email.com`
- `Create a $10 claim link`

## 🚀 Quick Start

Get up and running in under a minute:

### Option 1: Install from npm

``` bash
npm install @mynthai/nova
```

Or run directly without installing:

``` bash
npx @mynthai/nova --help
```

### Option 2: Build from source

``` bash
git clone https://github.com/MynthAI/nova.git
cd nova
Expand All @@ -41,7 +73,22 @@ Use `-h` or `--help` with any command to see detailed usage information.
### Requirements

- Node.js **v24** (required)
- `pnpm` package manager
- `pnpm` package manager (for building from source)

### Install from npm

``` bash
npm install @mynthai/nova
```

You can also run Nova directly with `npx` without installing it
globally:

``` bash
npx @mynthai/nova --help
```

### Install from source

Clone the repository and install dependencies:

Expand All @@ -54,9 +101,6 @@ pnpm link

After linking, the `nova` command will be available globally.

> ℹ️ Nova is currently installed from source. If/when it is published to
> npm, installation instructions will be updated.

## 🔐 Authentication

Nova supports **two authentication methods**. You can choose the one
Expand Down
4 changes: 1 addition & 3 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,7 @@
"bin": {
"nova": "bin/nova.mjs"
},
"files": [
"dist"
],
"files": ["dist"],
"scripts": {
"prebuild": "pnpm del -rf dist",
"build": "pnpm tsc",
Expand Down
27 changes: 26 additions & 1 deletion skills.md → skills/nova-wallet/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,17 @@
# skills.md — nova CLI (LLM)
---
name: nova-wallet
description: Safely operate the nova CLI wallet for authentication, balance checks, sending funds, withdrawals, and key management across mainnet and testnet. Enforces deterministic JSON/TOON parsing, exit code validation, financial confirmations, network verification, and strict secret-handling rules. Use when performing nova wallet automation, stablecoin transfers, claim links, exports, or any blockchain transaction via the nova CLI.
compatibility: Requires nodejs 24 and access to the internet
---

- If `nova` is not installed, install with:

``` bash
npm install @mynthai/nova
```

Or run without installing via npx (replace all `nova` usage with
`npx @mynth/nova`)

## Deterministic Parsing (MUST)

Expand Down Expand Up @@ -142,11 +155,20 @@ Behavior:

- Sends directly.

- `destination` may be:

- An email address (creates or targets an email wallet).
- A nova wallet address.
- A supported external blockchain wallet address
(network-dependent).

Rules:

- No interactive confirmation.
- No dry-run.
- Non-idempotent: re-running sends again.
- Always confirm with user whether `destination` is an email address or
wallet address before execution.

Post-check:

Expand Down Expand Up @@ -226,6 +248,9 @@ nova -t balance
- Internal transfers / claim links: fee-free; recipient gets full
amount.

- Direct sends to email or nova wallet addresses: fee-free; recipient
gets full amount.

- External withdrawals:

- May incur chain fees.
Expand Down
64 changes: 52 additions & 12 deletions skills-human.md → skills/nova-wallet/references/REFERENCE.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,19 @@
# skills.md — nova CLI
# nova CLI

`nova` is a CLI wallet for managing balances, sending funds, and
withdrawing stablecoins across supported blockchains.

It requires **Node.js 24+** as a prerequisite.

If `nova` is not installed, you can install it via:

``` bash
npm install -g @mynthai/nova
```

Or run without installing via npx (replace all `nova` usage with
`npx @mynth/nova`).

It supports:

- Email-based login wallets
Expand Down Expand Up @@ -132,6 +143,7 @@ Use when:

- User needs deposit address
- Withdrawing from external service
- Sharing a wallet address for direct wallet-to-wallet transfers

#### Get Balance

Expand Down Expand Up @@ -194,16 +206,36 @@ Before any financial action (`send`, `withdraw`) agents should:

### Sending Funds

#### Send to Email or Address
#### Send to Email or Wallet Address

``` bash
nova send <amount> [destination]
```

`destination` can be:

- An **email address** (e.g., `user@email.com`)
- A **nova wallet address** (e.g.,
`pcr6cdcvwjf9297vv6jmy8284xwlscspj2g0fw`)

Behavior:

- If destination omitted → creates claim link
- If destination provided → sends directly
- If destination is an email → sends to that email-linked nova wallet
- If destination is a wallet address → sends directly to that wallet

Email-based sends:

- If the email is already registered with `nova`, funds are delivered
directly to that wallet.
- If the email is not yet registered, funds are reserved and can be
claimed once the recipient completes email login.
- No blockchain address is required when sending to email.

Wallet-address sends:

- Must be a valid `nova` wallet address for the current network.
- Always validate format before execution.

⚠️ Non-Interactive Execution Warning. `nova send` executes immediately
and does **not** prompt for confirmation.
Expand All @@ -215,8 +247,8 @@ and does **not** prompt for confirmation.

Agents must:

- Explicitly confirm amount, destination, and network **before**
executing
- Explicitly confirm amount, destination (email or wallet address), and
network **before** executing
- Avoid retrying failed sends without verifying transaction status
- Treat every `nova send` call as a final financial action
- Always parse `status` and confirm `sent: true` before assuming success
Expand Down Expand Up @@ -283,7 +315,13 @@ Create claim link:
nova send 10
```

Send to address:
Send to email:

``` bash
nova send 10 friend@email.com
```

Send to wallet address:

``` bash
nova send 10 pcr6cdcvwjf9297vv6jmy8284xwlscspj2g0fw
Expand All @@ -292,7 +330,7 @@ nova send 10 pcr6cdcvwjf9297vv6jmy8284xwlscspj2g0fw
Best Practices for Agents:

- Confirm amount before sending
- Validate destination format
- Validate destination format (email vs wallet address)
- Prefer structured output (`-j` or `-t`)
- Display claim URL clearly if generated
- Treat `claimUrl` like a secret (don’t paste it into shared channels,
Expand Down Expand Up @@ -364,8 +402,8 @@ nova -t balance
### Fees

- **Internal Transfers (nova → nova):** Sending USD balance to another
`nova` wallet (email or address) is always fee-free. The recipient
receives the full amount specified.
`nova` wallet (email or wallet address) is always fee-free. The
recipient receives the full amount specified.

- **Claim Links:** Creating a claim link (`nova send <amount>`) is also
fee-free. The full amount is locked for the recipient to claim.
Expand Down Expand Up @@ -459,7 +497,7 @@ If:
- `status != ok` → surface error clearly
- Exit code `1` → treat as failure
- Balance insufficient → suggest checking balance
- Invalid address → prompt for correction
- Invalid address or malformed email → prompt for correction

### Example: Insufficient Balance Error

Expand Down Expand Up @@ -515,7 +553,8 @@ when using structured output modes.
- Confirm:

- Amount
- Destination (or confirm they want a claim link)
- Destination (email, wallet address, or confirm they want a claim
link)
- Network

- If no destination → explain claim link flow and that funds move
Expand Down Expand Up @@ -618,7 +657,7 @@ Never:
nova balance
```

4. Send funds:
4. Send funds to email or wallet address:

``` bash
nova send 10 friend@email.com
Expand Down Expand Up @@ -665,6 +704,7 @@ If user intent includes:
`nova` is a programmable wallet CLI that supports:

- Email or private-key wallets
- Email-based or wallet-address internal transfers
- Multi-chain withdrawals
- Stablecoin transfers
- Automation-friendly output
Expand Down