Metadata-Version: 2.4
Name: cryptnox_cli
Version: 1.0.1
Summary: CLI for managing Cryptnox smart card wallets.
Home-page: https://www.cryptnox.com/
Author: Cryptnox SA
Author-email: info@cryptnox.ch
License: GPLv3+
Project-URL: Source Code, https://github.com/Cryptnox-Software/cryptnox-cli
Keywords: python,cryptography,bitcoin,ethereum,cryptocurrency,wallet
Platform: any
Classifier: Development Status :: 5 - Production/Stable
Classifier: Environment :: Console
Classifier: License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Security :: Cryptography
Classifier: Topic :: System :: Hardware :: Universal Serial Bus (USB) :: Smart Card
Requires-Python: <=3.13.7,>=3.11
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: argparse
Requires-Dist: appdirs
Requires-Dist: base58
Requires-Dist: boto3
Requires-Dist: ecdsa
Requires-Dist: colander
Requires-Dist: cryptnox-sdk-py>=1.0.1
Requires-Dist: lazy-import
Requires-Dist: pytz
Requires-Dist: requests
Requires-Dist: tabulate
Requires-Dist: stdiomask
Requires-Dist: web3
Requires-Dist: winsdk; platform_system == "Windows"
Dynamic: description
Dynamic: license-file

<p align="center">
  <img src="https://github.com/user-attachments/assets/6ce54a27-8fb6-48e6-9d1f-da144f43425a"/>
</p>

<h3 align="center">CLI for managing Cryptnox smart card wallets.</h3>

<br/>

[![PyPI](https://img.shields.io/pypi/v/cryptnox-cli.svg)](https://pypi.org/project/cryptnox-cli/)
[![Python versions](https://img.shields.io/pypi/pyversions/cryptnox-cli.svg)](https://pypi.org/project/cryptnox-cli/)
[![Documentation status](https://img.shields.io/badge/docs-latest-blue)](https://cryptnox-software.github.io/cryptnox-cli)
[![License: GPLv3](https://img.shields.io/badge/License-GPLv3-blue.svg)](https://www.gnu.org/licenses/gpl-3.0)

`cryptnox-cli` is a command-line interface for managing **Cryptnox Smartcards**, enabling secure seed initialization and cryptographic signing for **Bitcoin** and **Ethereum**.

---

## Supported hardware

- **Cryptnox Smartcards** 💳
- **Standard PC/SC Smartcard Readers**: either USB NFC reader or a USB smartcard reader
  → Readers are also available in the Cryptnox shop.

Get your card and readers here: [shop.cryptnox.com](https://shop.cryptnox.com)

---

## Installation
> 💡 This is only a minimal setup. Additional packages may be required depending on your operating system. See [Installation and Requirements](https://cryptnox-software.github.io-temp/cryptnox-cli/overview.html#installation-and-requirements).

### From PyPI

```bash
pip install cryptnox-cli
```

### From source

```bash
git clone https://github.com/Cryptnox/cryptnox-cli.git
cd cryptnox-cli
pip install .
```
This installs the package and makes the `cryptnox` command available (if your Python installation is in your system `PATH`).

---

## Quick usage examples
> 💡 The examples below are only a subset of available commands. The complete list of commands and detailed usage instructions is described in the [official documentation](https://cryptnox-software.github.io-temp/cryptnox-cli).
### 1. Dual initialization

1. Factory reset each card:  
   `cryptnox reset` → enter PUK → verify reset.

2. Initialize each card:  
   `cryptnox init` → (optional) set name/email → set **PIN** (4–9 digits) → set or generate **PUK** → verify init.

3. Run dual seed procedure:  
   `cryptnox seed dual` — follow prompts: insert Card A (enter PIN), swap to Card B (enter PIN), swap back as requested.

### 2. Sign and send a Bitcoin transaction

1. Create or obtain a raw unsigned transaction externally.
2. Run the signing & send command:  
   `cryptnox btc send <recipient_address> <amount> [-f <fees>]`

### 3. Change PIN code

1. Run command: `cryptnox change_pin`
2. Enter current PIN → enter new PIN → verify change.  
3. Check with `cryptnox info` using new PIN (BTC & ETH accounts displayed).

### 3. Change PIN code

1. Run command: `cryptnox change_pin`
2. Enter current PIN → enter new PIN → verify change.  
3. Check with `cryptnox info` using new PIN (BTC & ETH accounts displayed).

### 4. Get extended public key (xpub)

1. Run command: `cryptnox get_xpub`
2. Enter **PIN** → enter **PUK**
3. The card returns the **xpub**

---

## Documentation

The full **User & Developer documentation** is available at the [Cryptnox CLI Documentation](https://cryptnox-software.github.io-temp/cryptnox-cli). It covers installation and setup, usage guides and examples, CLI command reference, and developer notes with API details.

---

## License

Licensed under **GPLv3**: [GNU GPLv3 License](https://www.gnu.org/licenses/gpl-3.0.en.html).

=========
Changelog
=========

`1.0.1 <https://github.com/Cryptnox-Software/cryptnox-cli/compare/v2.9.1...ver1.0.1>`_
------------------------------------------------------------------------------------------------

Added
^^^^^
- Package renamed from ``cryptnoxpro`` to ``cryptnox_cli``
  - Install using: ``pip install cryptnox-cli``
- BIP39 passphrase support for seed generation and recovery
- BIP39 passphrase length limitation and validation
- Sphinx documentation framework for comprehensive CLI documentation
- GitHub Actions workflows for automated documentation deployment
- Constants file for centralized configuration management
- Flake8 code quality checks in CI/CD workflow

Changed
^^^^^^^

- Updated README with improved documentation and examples
- Modified documentation configuration and deployment process
- Reconfigured documentation deployment workflow
- Updated setup configuration (setup.cfg) for better package management
- Improved code organization with constants file

Fixed
^^^^^

- Resolved runtime import errors
- Fixed flake8 code style errors throughout the codebase
- Fixed PUK retries persistence issue

Removed
^^^^^^^

- Removed cleos dependency
- Removed Ropsten testnet support (deprecated network)
