Uniclient Release Notes

Note: the versioning of uniclient matches the versions of main network code; so it may be non-linear as it follows the changes in the network code.

For more information on Uniclient, see Uniclient.

Planned features

  • Bulk operations for import, export, register and check.

3.9.6 (02.04.2019)

  • The network topology is now taken from the redistributable (on the first run), and maintained between sessions (in ~/.universa/topology/mainnet.json).
  • The host to connect is taken on random from the network topology (either initial or last known).

3.9.2 (26.03.2019)

  • Hotfix of the the network connection code for more redundant network bootstrap.

3.8.4 (01.11.2018)

  • --password option to support the encrypted keys. When required, the passwords may be requested interactively.

3.8.3 (30.10.2018)

  • The functionality of --create and --set commands was enhanced.
  • New --start-http-server, --exec-js and --create-contract-with-js commands to provide the Client-side JavaScript functionality.

3.8.1 (11.10.2018)

  • Contract serialization fixes to increase forward compatibility. Warning: contracts generated with 3.8.1+ version may be unreadable with clients/API <3.8.1! Earlier contracts will stay compatible with 3.8.1+.

3.7.6 (15.08.2018)

  • When using the --revision-of option for --import command, you don’t need to specify the parent, origin or revision in the imported template; Uniclient will generate them for you.
  • The processed references are exported as a string.

3.7.2 (10.07.2018)

Major new feature: UUTN wallets. Now you can store some (default) private key and some (default) U smart contracts in a single convenient place, so the private key is used by default for signing, and the U smart contract is used for network fees. Moreover, you can even store the UTN smart contract there, and it will auto-top-up the U balance when it gets low.

  • --wallet option to choose a non-default wallet.
  • --put-into-wallet command to put some private key, U contract or UTN contract into the wallet.
  • --u-rate command to get the current U price in UTNs (or actually, how many Us are given for a single UTN).
  • --u-for-utn command to reserve the required amount of U for UTN; pass --amount option to specify how many U you want to reserve.

3.6.5 (07.07.2018)

Significant network-level optimization of resource consumption: signing the main contract of the transaction now assumes signing every sibling. This decreases the amount of quanta/U uses by transactions where many siblings should be signed similarly (e.g., token splits to multiple recipients).

Using a SimpleRole with multiple keys instead of one (never explicitly specified before but still possible) now uses ALL_OF logic rather than ANY_OF.


  • --unpack command now supports parcels.
  • --register command saves the parcel that has been used for registration.

3.6.3 (05.07.2018)

  • --import and --export now treat the addresses ((KeyAddress fields) as Base58 (and even import from Safe58), so the exported contract should have this field matching what you normally see in the GUI.
  • New features: --create-parcel and --register-parcel, to prepare the whole paying parcel on an offline computer, and then to be able to transport it to online computer which doesn’t need to keep any private keys. Such parcels are normally stored in the files with .uniparcel extension.
  • --unpack fixed to don’t unnecessarily check the unpacked contract for validity.

3.6.1 (01.07.2018)

  • --sign command, to just add a signature to the contract (e.g. when multiple signatures are required for registration to succeed).

3.5.1 (25.06.2018)

  • --node option (fixed and documented) to choose the specific node you want to connect to.
  • --no-cache option fixed and documented.
  • --probe-file command added, when you want to get the network state for a contract you already have in the file form.
  • --resync command readded; for low-level system administration only.

3.4.19 (20.06.2018)

  • Better Windows support.
  • On macOS, it should not required JDK anymore (JRE should be sufficient).

3.4.18 (19.06.2018)

  • --name option renamed to --output for clarity.
  • The exit codes are properly generated for all the options depending on whether the execution was successful or not.
  • The output files extensions are no longer added, removed or changed for the generated files, unless input and output formats differ and no output name was explicitly specified;
  • --resync command removed (as it has been possible only with the node permissions).

3.4.17 (16.06.2018)

  • --split-off command now supports specifying --name to define the desired file name for the new contract file. If multiple --names are specified, they may be used for splitting the chops of the contract; omitted names will be autogenerated.
  • --split-off and --register commands return exit code 0 for success and non-zero (actually, the number of errors) for any possible failure (from missing files to Universa failure replies).

3.4.14 (06.06.2018)

  • --split-off high-level command to perform split-join operation on compatible smart contracts/tokens.
  • --revision-of option to use together with --import, when the contract imported from XML/JSON/YAML should become a new revision of the existing contract.
  • --add-referenced option to use together with --pack-with, when a referenced contract should being packed together.
  • Various fixes to scenarios when the file with the contract could be overwritten without being backed up.

3.4.11p2 (21.05.2018)

  • Added --id command to get the ID of the contract file.

3.4.8 (27.04.2018)

  • Added --resync command that synchronizes contract status between nodes.
  • Added --node option that specifies number of node to connect to.
  • Added --skey option that specifies session private key file.

3.2.4b2 (27.03.2018)

  • Added --address command that generates address from key. Has option -short.
  • Added --address-match command that check matching address with key from file. Path to key define in parameter -keyfile.
  • Added --folder-match command that associates the entered address with the key file in the specified directory. Address define in parameter -addr.

3.1.0 (05.03.2018)

  • Added --tutest key for --register command with --tu key to use test transaction units as payment.
  • Added --anonymize and --role keys to making anonymous roles in the contract.

3.0.1 (27.02.2018)

  • Added --tu and --amount keys for --register command to avoid paid processing of contracts.

2.2.4 (29.12.2017)

  • Added --cost as standalone key and as key for use with --register.

2.2.3 (16.11.2017)

  • Added --wait and --register keys.

2.2.0 (07.11.2017)

  • Added --revoke key.
  • Added --pack and --unpack keys.

2.1.5 (05.11.2017)

  • Better --network handling.

2.1.4 (03.11.2017)

  • Better command line options logic.
  • Bulk (transactions) operation support.

2.1.3 (01.11.2017)

  • First published beta. Contains all the basic functionality to work with Universa network.