Teasel
Lightweight CLI utilities for inspecting Miden files, local stores, and RPC endpoints.
Installation
# From source
# Or from source
Configuration
Teasel automatically reads miden-client configuration if present:
.miden/miden-client.toml(local directory)~/.miden/miden-client.toml(global)
When a config is found, store path and RPC endpoint are used as defaults. You can override them with --store and --network/--endpoint flags.
Usage
Inspect Files
Inspect serialized note or account files:
| Flag | Description |
|---|---|
--validate |
Validate against a node. For notes: checks inclusion proof and nullifier status. For accounts: checks on-chain existence, state comparison, and staleness detection. |
# First, fetch and save a note from devnet
# Then inspect with validation
Output:
Saved NoteFile to note.mno
Note 0x0e18ee4177e7c6b32d19e9a81200cb86a7afd50828a1c5384ffd2b8fc41e167e:
- sender: 0x8b043136e8426720729a83b33f95a6
- type: Public
- tag: 0x3e800000
- included in block: 273675
- node index in block: 0
- assets: 1
- asset details:
[0] fungible amount=1000000 faucet=0x8b043136e8426720729a83b33f95a6
- script root: 0xa657a127211172b9b305d06c6e076dd1edbf67c8b1a32c063647d5f7bf456131 (P2ID)
- inputs (P2ID):
target account: 0xfa0000000000bb800000cc000000de
Inspecting note.mno as NoteFile
- variant: NoteWithProof
- note id: 0x0e18ee4177e7c6b32d19e9a81200cb86a7afd50828a1c5384ffd2b8fc41e167e
- sender: 0x8b043136e8426720729a83b33f95a6
- type: Public
- tag: 0x3e800000
- assets: 1
- asset details:
[0] fungible amount=1000000 faucet=0x8b043136e8426720729a83b33f95a6
- script root: 0xa657a127211172b9b305d06c6e076dd1edbf67c8b1a32c063647d5f7bf456131 (P2ID)
- created in block: 273675
- node index in block: 0
- inputs (P2ID):
target account: 0xfa0000000000bb800000cc000000de
Validation (network: https://rpc.devnet.miden.io):
- validation path: local inclusion proof (block header check)
- local inclusion proof: ok (index 0)
- nullifier 0xa2d4a93f342f2d215ef16fb24e4696d06ac250abfb8c13e2e607523ca2188575 not found (unspent or not yet known)
RPC Commands
Query Miden nodes directly:
| Flag | Description |
|---|---|
--verbose |
Show detailed output (e.g., full account vault contents) |
--save <path> |
Save fetched note to a file (for rpc note command) |
# Check devnet status and latest block
# Query the native asset faucet account
# Get block details
# Fetch a note by ID
# Fetch and save a note to a file
Example output for note query:
Note 0x0e18ee4177e7c6b32d19e9a81200cb86a7afd50828a1c5384ffd2b8fc41e167e:
- sender: 0x8b043136e8426720729a83b33f95a6
- type: Public
- tag: 0x3e800000
- included in block: 273675
- node index in block: 0
- assets: 1
- asset details:
[0] fungible amount=1000000 faucet=0x8b043136e8426720729a83b33f95a6
- script root: 0xa657a127211172b9b305d06c6e076dd1edbf67c8b1a32c063647d5f7bf456131 (P2ID)
- inputs (P2ID):
target account: 0xfa0000000000bb800000cc000000de
Store Commands
Inspect local miden-client sqlite stores:

| Flag | Description |
|---|---|
--store <path> |
Use a custom store path instead of the default |
--verbose |
Show detailed transaction info (for tx inspect) |
Parsing Helpers
Parse and convert common Miden formats:
Parse a hex word into field elements:
Output:
Word (as hex): 0xa657a127211172b9b305d06c6e076dd1edbf67c8b1a32c063647d5f7bf456131
Word (decimal felts): [13362761878458161062, 15090726097241769395, 444910447169617901, 3558201871398422326]
Word (hex felts): [0xb972112127a157a6, 0xd16d076e6cd005b3, 0x062ca3b1c867bfed, 0x316145bff7d54736]
Build a word from four field elements:
Output:
Word (as hex): 0xd2040000000000002e160000000000003423000000000000800d000000000000
Word (decimal felts): [1234, 5678, 9012, 3456]
Word (hex felts): [0x00000000000004d2, 0x000000000000162e, 0x0000000000002334, 0x0000000000000d80]
Parse an account ID from hex:
Output:
Account ID: 0xd0da1f806b49552007c49c95d519d7
- account id (hex): 0xd0da1f806b49552007c49c95d519d7
- account type: FungibleFaucet
- storage mode: public
- public state: yes
- account ID version: Version0
Parse a bech32 address:
Output:
Address: mtst1argd58uqddy42gq8cjwft4ge6uyeaew8
- network: mtst
- account id: 0xd0da1f806b49552007c49c95d519d7
- account type: FungibleFaucet
- storage mode: public
- note tag length: 14
- note tag: 0x34360000
- bech32: mtst1argd58uqddy42gq8cjwft4ge6uyeaew8
Encode an account ID as a bech32 address:
Output:
Address: mtst1argd58uqddy42gq8cjwft4ge6uyeaew8
- network: mtst
- account id: 0xd0da1f806b49552007c49c95d519d7
- account type: FungibleFaucet
- storage mode: public
- note tag length: 14
- note tag: 0x34360000
Parse a note tag:
Output:
Note tag: 1048576000
- raw (hex): 0x3e800000
- binary: 00111110100000000000000000000000
- likely account target: yes (9 high bits set, 23 low bits zero)
- matches account prefixes starting with: 0x3e80...
Network Transaction Debugging
Debug network transaction note consumption:
This command fetches notes from the network, imports the target account, and runs the NoteConsumptionChecker to determine whether notes can be consumed by the account. Useful for diagnosing why network notes were not consumed.
| Flag | Description |
|---|---|
--verbose |
Show sync progress, account import details |
Output:
Fetching 1 note(s) from https://rpc.testnet.miden.io...
Fetched 1 public note(s)
note 0x634ee6c3bf65ce2459a0d9669f200e0b8dee8574a8275f7ab9c14769486f789c has non-standard attachment (scheme=1, kind=Word)
warning: the network transaction builder requires a NetworkAccountTarget attachment to pick up this note
Synced client to block 1293467
Importing account 0xa3bb75baeca13340269343e2413578...
Consumption check:
note 0x634ee6c3bf65ce2459a0d9669f200e0b8dee8574a8275f7ab9c14769486f789c: consumable
Networks
testnet(default)devnetlocalcustom(requires--endpoint protocol://host[:port])
Development
Contributing
For contributing, see the miden-client contributing guide which also apply here.
Notes
- Built against
miden-client0.14. - Licensed under MIT (see
LICENSE).