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.
Resources
1Install
npx skillscat add mynthai/nova/nova-wallet Install via the SkillsCat registry.
If
novais not installed, install with:npm install @mynthai/nova
Or run without installing via npx (replace all nova usage withnpx @mynthai/nova)
Deterministic Parsing (MUST)
Use structured output:
-j/--jsonor-t/--toon(never parse human
output).Always evaluate BOTH:
- Process exit code (
0success,1error) - Structured
status(okorerror)
- Process exit code (
On error: read
error.messageanderror.exitCode(if present).
Safety / Financial Safeguards (MUST)
Before any financial action (
send,withdraw):- Confirm current network via
nova config get network. - Confirm intended network with user (mainnet vs testnet).
- Confirm amount and destination/address (and blockchain for
withdraw).
- Confirm current network via
sendis non-idempotent:- Never retry
nova sendblindly. - If outcome is uncertain, verify via
nova -t balance(safe).
- Never retry
Treat
claimUrlas a secret credential:- Never paste into shared chats/tickets/docs or persistent logs.
Key material is secret:
- Never log/export keys or phrases into shared/persistent contexts.
- Warn user before
exportoperations.
Wallet Types
Email wallet: created via
nova login(email + verification code).Private-key wallet (default if not logged in): auto-created; user must
back up:nova export keynova export phrase
Networks
novaoperates onmainnetortestnet.- Fresh install default:
testnet. - Network setting persists; funds/addresses/balances are isolated per
network.
Commands:
nova config get network
nova config set network <mainnet|testnet>Exit Codes
0= success (still parsestatus).1= error (inspecterror.message).
Output Modes (for agents)
- JSON:
-j,--json - TOON:
-t,--toon
Commands (syntax preserved)
Auth
Request login code:
nova login request <email>Confirm code:
nova login confirm <code>Options:
-j,--json-t,--toon-f,--force(request only): overwrites existing private-key
wallet; warn user.
Account
Address:
nova address [blockchain]Default blockchain:
mynthSupported blockchains:
basecardanohyperliquidmynthplasmasolanastablesuitron
Balance:
nova balanceNotes:
balanceis USD-denominated.currencyis always USD.
Send (FINAL ACTION)
nova send <amount> [destination]Options:
-d,--dry-run— Validate and preview without submitting
Behavior:
If
destinationomitted:- Creates claim link (
claimUrl) - Funds leave wallet immediately.
- Creates claim link (
If
destinationprovided:Sends directly.
destinationmay 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.
- Non-idempotent: re-running sends again.
- Use
--dry-run(-d) to validate inputs and preview without
submitting. - Always confirm with user whether
destinationis an email address or
wallet address before execution.
Post-check:
- Parse
statusand confirmresult.sent: true. - Surface
result.txIdwhen present. - If
claimUrlpresent, treat as secret.
Success example (TOON):
status: ok
result:
sent: true
amount: "1"
txId: d32c966fd4302673455eb790b66e3efc331ef7aace412c73b8917ba0bb37ace8
claimUrl: "https://preview.mynth.ai/c/mto3M1JEa6Hr0UFRCBGjOg"Claim Links
Properties (when nova send <amount> has no destination):
- One-time use.
- Do not expire.
- Revocation: creator must claim it themselves (redeem back to own
wallet).
Withdraw (FINAL ACTION)
nova withdraw <amount> <stablecoin> <address> <blockchain>Options:
-d,--dry-run— Validate and preview without submitting
Rules:
Confirm:
- Sufficient balance
- Network
- Stablecoin support
- Address + blockchain compatibility
Parse
status.Surface
result.txIdwhen present.
Verification (safe):
nova -t balanceStablecoin Support
Mainnet:
base: USDCcardano: USDC, USDA, USDMhyperliquid: USDCsolana: USDC, USDTstable: USDTsui: USDCtron: USDT
Testnet:
base: USDCcardano: USDC, USDA, USDMhyperliquid: USDCsolana: USDCstable: USDTsui: USDTtron: USDT
Fees
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.
- Fees are calculated at execution.
- Fees are deducted from withdrawal amount (not separate).
Rate Limits
If rate-limited, structured output indicates an error and includes a
message like: “Rate limited. Try again in N seconds”.
Rules:
- Do not retry immediately; respect the wait time.
- Never retry
sendblindly after a rate-limit error. - If unsure whether
sendexecuted, verify vianova -t balance.
Error example (TOON, insufficient balance):
status: error
error:
message: 3tkv5qrm43jtjf86x3ks5l6jpjgpyw7n8424pm must have at least balance of 1000000
exitCode: 1Key Management (security-critical)
Export:
nova export key
nova export phraseImport:
nova import key
nova import phraseRules:
- Warn user: exporting reveals secrets.
- Never store or share exported key/phrase.