Skip to main content


Usage: chr tx [OPTIONS] OPNAME [ARGS]...

Make a transaction

╭─ Configuration Properties ───────────────────────────────────────────────────────────────────────────────────────────╮
│ -cfg, --config=CONFIG Alternate path for client configuration file
│ -s, --settings=SETTINGS Alternate path for project settings file
╭─ Node ───────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ │
│ Make query/tx towards a test node
│ │
│ -brid, --blockchain-rid=TEXT Target Blockchain RID │
│ --cid=INT Target Blockchain IID (default: 0)
│ --api-url=TEXT Target api url (default: http://localhost:7740)
╭─ Deployment ─────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ │
│ Make query towards a configured deployment │
│ │
│ -d, --network=TEXT Specify which deployment target to use │
│* -bc, --blockchain=TEXT Name of blockchain in deployment configuration │
╭─ FT compatible dapps options ────────────────────────────────────────────────────────────────────────────────────────╮
│ --ft-auth Adds ft4.ft_auth operation for FT-compatible dapps │
│ --ft-account-id=TEXT Explicitly specify which account to use │
╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --secret=PATH Path to secret file (pubkey/privkey)
│ -a, --await Wait for transaction to be included in a block │
│ -nop Adds a nop to the transaction │
│ -h, --help Show this message and exit
╭─ Arguments ──────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ OPNAME name of the operation to execute. │
│ ARGS arguments to pass to the operation. (integer: 123) (string: foo, "bar") (bytearray: will be encoded using │
│ the rell notation x"<myByteArray>" and will initially be interpreted as a hex-string.) (array: [foo,123])
(dict: {key1=value1,key2=value2})

You can use the tx (transaction) command (chr tx) in the same way as the query command, but you need to sign it with your key pair. It can interact with either a local (Node) or deployed chain without the use of a client.

You can set a path for the project config file (chromia.yml) or specify a different file with the use of --settings. In addition to that, you can change between a local and deployed chain target with the --deployment and --local flags. The flag is --local by default. Use the flag -a or --await to wait for the confirmation or rejection of the transaction. To make the transaction hash unique, use the - nop flag if you need to do the same transaction multiple times.


You can see the Blockchain RID of the local node in the sout. An example would look like the following: Blockchain RID: FC17B67D66F6F35A5D8B75ED3F83AE222FB8C8FCA241624F06285150F10C6BAC If you are running the node on a different URL than the default http://localhost:7740, you can use the --api-url in the chromia.yml to specify it.

  • To perform a transaction with the operation set_name specified in the main.rell file.
chr tx --blockchain-rid <BlockchainRID> --secret .secret set_name "string:name->bob"
  • If you want to pass a dictionary as an argument, you have to separate the argument with -- to avoid = incorrect parsing.
chr tx set_name -- {key1=value1, key2=value2}


Towards a deployed chain, you can do the same commands but need to add a --name (Deployment target) and --blockchain (Name of the chain to query) instead of the --blockchain-rid.

chr tx --deployment --name testnet --blockchain hello --secret .secret set_name "string:name->bob"