/
onflow.org
Flow Playground

Send a Transaction with the Flow CLI

How to send a Flow transaction from the command line


The Flow CLI provides a command to sign and send transactions to any Flow Access API.

flow transactions send <code filename>

Example Usage

> flow transactions send ./transaction.cdc \
    --args-json '[{"type": "String","value": "Hello World"}]' \
    --signer my-testnet-account
    
Status		✅ SEALED
ID		b6430b35ba23849a8acb4fa1a4a1d5cce3ed4589111ecbb3984de1b6bd1ba39e
Payer		a2c4941b5f3c7151
Authorizers	[a2c4941b5f3c7151]

Proposal Key:	
    Address	a2c4941b5f3c7151
    Index	0
    Sequence	9

No Payload Signatures

Envelope Signature 0:
    Address	a2c4941b5f3c7151
    Signature	5391a6fed0fe...2742048166f9d5c925a8dcb78a6d8c710921d67
    Key Index	0


Events:	 None


Arguments (1):
    - Argument 0: {"type":"String","value":"Hello World"}


Code

transaction(greeting: String) {
  let guest: Address

  prepare(authorizer: AuthAccount) {
    self.guest = authorizer.address
  }

  execute {
    log(greeting.concat(",").concat(self.guest.toString()))
  }
}


Payload:
f90184f90138...8a9462751237da2742048166f9d5c925a8dcb78a6d8c710921d67

In the above example, the flow.json file would look something like this:

{
  "accounts": {
    "my-testnet-account": {
      "address": "a2c4941b5f3c7151",
      "keys": "12c5dfde...bb2e542f1af710bd1d40b2"
    }
  }
}

Arguments

Code Filename

  • Name: code filename
  • Valid inputs: Any filename and path valid on the system.

The first argument is a path to a Cadence file containing the transaction to be executed.

Flags

Code

  • Flag: --code

⚠️ No longer supported: use filename argument.

Results

  • Flag: --results

⚠️ No longer supported: all transactions will provide result.

Signer

  • Flag: --signer
  • Valid inputs: the name of an account defined in the configuration (flow.json)

Specify the name of the account that will be used to sign the transaction.

Arguments

  • Flag: --arg
  • Valid inputs: argument in Type:Value format.

Arguments passed to the Cadence transaction in Type:Value format. The Type must be the same as type in the transaction source code for that argument.

Arguments JSON

  • Flag: --args-json
  • Valid inputs: arguments in JSON-Cadence form.

Arguments passed to the Cadence transaction in Cadence JSON format. Cadence JSON format contains type and value keys and is documented here.

Gas Limit

  • Flag: --gas-limit
  • Valid inputs: an integer greater than zero.
  • Default: 1000

Specify the gas limit for this transaction.

Host

  • Flag: --host
  • Valid inputs: an IP address or hostname.
  • Default: 127.0.0.1:3569 (Flow Emulator)

Specify the hostname of the Access API that will be used to execute the command. This flag overrides any host defined by the --network flag.

Network

  • Flag: --network
  • Short Flag: -n
  • Valid inputs: the name of a network defined in the configuration (flow.json)
  • Default: emulator

Specify which network you want the command to use for execution.

Filter

  • Flag: --filter
  • Short Flag: -x
  • Valid inputs: a case-sensitive name of the result property.

Specify any property name from the result you want to return as the only value.

Output

  • Flag: --output
  • Short Flag: -o
  • Valid inputs: json, inline

Specify the format of the command results.

Save

  • Flag: --save
  • Short Flag: -s
  • Valid inputs: a path in the current filesystem.

Specify the filename where you want the result to be saved

Log

  • Flag: --log
  • Short Flag: -l
  • Valid inputs: none, error, debug
  • Default: info

Specify the log level. Control how much output you want to see during command execution.

Configuration

  • Flag: --config-path
  • Short Flag: -f
  • Valid inputs: a path in the current filesystem.
  • Default: flow.json

Specify the path to the flow.json configuration file. You can use the -f flag multiple times to merge several configuration files.