Cellframe Tool Sign is our utility for signing transactions and other datums.
It can also be used to create a wallet and get its address.
**[[Cellframe Tool Sign (Java)]] - this utility for Java IDE's.**
> [!attention] Attention
> For now, tool functions only on the Linux OS.
Download utility - https://pub.cellframe.net/linux/cellframe-tool-sign/main/cellframe-tool-sign
Before usage, you have to provide additional rights for utilite.
Enter the following message in console:
```bash
sudo chmod +x cellframe-tool-sign
```
After this, to get actual list of commands, enter:
```bash
./cellframe-tool-sign --help
```
# Functions
- **[[4. Cellframe Tool Sign#Datum Signing|Sign File]]**
- **[[4. Cellframe Tool Sign#Wallet Creation|Create Wallet]]**
- **[[4. Cellframe Tool Sign#Wallet Address|Get Wallet Address]]**
> [!Important] Important
> If you want to restore or use a wallet, which was previously created using [[Crypto Wallet|Cellframe Wallet]], then use flag `--sha256` or `-x` in request syntax.
## Datum Signing
Sign JSON file `-f` using wallet `-w` (with password `-p`) or using wallet's seed phrase `-z` and signature type `-s`, and put it to the file `-o`.
Syntax with `.dwallet` file:
```actionscript
cellframe-tool-sign --wallet (or -w) <path_to_wallet_file> -p <wallet_password> -f <filename_in> -o <filename_out>
```
or with the seed phrase:
```actionscript
cellframe-tool-sign --seed (or -z) <seed_phrase> -s <sign_type> -f <filename_in> -o <filename_out>
```
Parameters:
```actionscript
-w (wallet) - path to the wallet for datum signing or wallet name
-p (password) - wallet password if needed
-f (filename) - input JSON-file wits datum items. If not specified, it will be received from 'stdin'
-o (out) - output JSON-file. If not specified, it will be sent into 'stdout'
-b (beauty) - enables output JSON "beautification"
```
### Examples
Sign datum.
1. With `.dwallet` file:
```actionscript
cellframe-tool-sign --wallet /home/user1/wallets/mywal.dwallet -f ~/in.json -o ~/out.json
```
2. With seed phrase:
```actionscript
cellframe-tool-sign --seed "my seed phrase" -s sig_dil -f ~/in.json -o ~/out.json
```
## Wallet Creation
Create wallet `-w` with password `-p`, signature type `-s` and seed phrase `-z`.
Syntax:
```actionscript
cellframe-tool-sign --create (or -c) {-w <wallet_name> -d <path_to_save_wallet_file> -s <sign_type> -z <seed_phrase>}
```
Parameters:
```actionscript
-w (wallet) - name of the wallet
-p (password) - wallet password (optional)
-d (path) - path to save wallet file
-s (sign-type) - type of wallet signature (sig_dil, sig_falcon)
-z (seed) - seed phrase
```
### Examples
Create wallet.
```actionscript
cellframe-tool-sign --create -d /home/user1/wallets -w mywal -s sig_dil -z "word1 word2 word3"
```
## Wallet Address
Print wallet `-w` address in the network `-i`. The seed phrase `-z` and signature type `-s` can be used instead of `-w`.
Syntax:
```actionscript
cellframe-tool-sign --get-addr (or -a) {-w <path_to_wallet_file> | -seed <seed_phrase> (or -z) -s <sign_type>} -i 0x<net_id>}
```
Parameters:
```actionscript
-w (wallet) - path to the wallet file
-p (password) - wallet password if needed
-z (seed) - seed phrase
-s (sign-type) - type of wallet signature (sig_dil, sig_falcon)
-i (net-id) - hex id of the net
```
### Examples
Print wallet address.
**Backbone network**:
1. With `.dwallet `file:
```actionscript
cellframe-tool-sign --get-addr -w /home/user1/wallets/mywal.dcert -i 0x0404202200000000
```
2. With seed phrase:
```actionscript
cellframe-tool-sign --get-addr -seed "my seed phrase" -s sig_dil -i 0x0404202200000000
```
**KelVPN network**:
1. With `.dwallet `file:
```actionscript
cellframe-tool-sign --get-addr -w /home/user1/wallets/mywal.dcert -i 0x1807202300000000
```
2. With seed phrase:
```actionscript
cellframe-tool-sign --get-addr -seed "my seed phrase" -s sig_dil -i 0x1807202300000000
```