# Subcommands

This section describes the subcommands available from terrad.

# debug addr

Changes an address from hex encoding to bech32.

Syntax

terrad debug addr <address>

Example

terrad debug addr terra14h2od5f3vahd28uywwvt8sqbi52upnzagshtrm

# debug pubkey

Decodes a pubkey from proto JSON and displays the address.

Syntax

terrad debug pubkey <pubkey>

Example

terrad debug pubkey '{"@type":"/cosmos.crypto.secp256k1.PubKey","key":"AurroA7jvfPd1AadmmOvWM2rJSwipXfRf8yD6pLbA2DJ"}'

# debug raw-bytes

Changes raw bytes to hex.

Syntax

terrad debug raw-bytes <raw-bytes>

Example

terrad debug raw-bytes [72 101 108 108 111 44 32 112 108 97 121 103 114 111 117 110 100]

# keys add

Generates a public and private key pair for an account so that you can receive funds, send funds, create bonding transactions, and so on.

TIP

For security purposes, run this command on an offline computer.

Syntax

terrad keys add <your-key-name>

where <your-key-name> is the name of the account. It references the account number used to derive the key pair from the mnemonic. When you want to send a transaction, you will use this name to identify your account.

To specify the path (0, 1, 2, ...) you want to use to generate your account, you can append the optional --account flag. By default, account 0 is generated.

The command generates a 24-word mnemonic and saves the private and public keys for account 0 simultaneously. You are prompted to specify a passphrase that is used to encrypt the private key of account 0 on disk. Each time you want to send a transaction, this password is required. If you lose the password, you can always recover the private key by using the mnemonic phrase.

WARNING

To prevent theft or loss of funds, ensure that you keep multiple copies of your mnemonic and store it in a secure place and that only you know how to access it. If someone is able to gain access to your mnemonic, they are able to gain access to your private keys and control the accounts associated with them.

TIP

After you have triple-checked your mnemonic and safely stored it, you can delete bash history to ensure no one can retrieve it.

history -c
rm ~/.bash_history

To generate more accounts from the same mnemonic, run:

terrad keys add <your-key-name> --recover --account 1

You are prompted to specify a passphrase and your mnemonic. To generate a different account, change the account number.

WARNING

  • Do not use the same passphrase for multiple keys. We are not responsible for the loss of funds. Do not lose or share your mnemonic with anyone.

Example

terrad keys add myAccount

In some cases, you might need to recover your key. If you have the mnemonic that was used to generate your private key, you can recover it and re-register your key. Issuing the following command will prompt you to enter your 24-word mnemonic.

Syntax

terrad keys add <yourKeyName> --recover

For information about generating multisignature accounts and signing transactions, see Sign with a multisig account.

# keys show

Retrieves an address for a specified account. The address is prefixed by terra-, for example terra15h6vd5f0wqps26zjlwrc6chah08ryu4hzzdwhc. To receive funds, you must give an account address to the sender.

Syntax

terrad keys show <account-name>

Example

terrad keys show myAccount

To show a validator's address, append the --bech=val flag to the end of the command statement, as shown in the following example:

terrad keys show accountExample --bech=val

To show the validator consensus address that is generated when the node is created by terrad init and the Tendermint signing key for the node, use the tendermint command, as shown in the following example:

terrad tendermint show-address

# keys list

Lists all your keys.

Syntax

terrad keys list

# query account

Displays your account balance, account number, and sequence number (nonce).

Syntax

terrad query account <account-address>

Example

terrad query account terra15h6vd5f0wqps26zjlwrc6chah08ryu4hzzdwhc

Learn more about account addresses.

NOTE

When you query an account balance that has zero tokens or you fund an account before your node has fully synced with the chain, this error message is sent:

No account with address <account-address> was found in the state.

# query authz grants

Retrieves all existing grants between a granter and a grantee.

Syntax

terrad query authz grants <granter-address> <grantee-address>

Example

terrad query authz grants terra15h6vd5f0wqps26zjlwrc6chah08ryu4hzzdwhc terra14h2od5f3vahd28uywwvt8sqbi52upnzagshtrm

Additionally, the grants command can retrieve the specific grant between a granter and a grantee for a message type by appending the message type URL to the end of the command statement, as shown in the following example:

terrad query authz grants terra15h6vd5f0wqps26zjlwrc6chah08ryu4hzzdwhc terra14h2od5f3vahd28uywwvt8sqbi52upnzagshtrm /cosmos.bank.v1beta1.MsgSend

# query distribution rewards

Checks the all the current outstanding rewards that have not been withdrawn.

Syntax

terrad query distribution rewards

Check the current rewards earned by a specific delegator by appending the <delegator-address> at the end of the command statement, as shown in the following example:

terrad query distribution rewards terra14h2od5f3vahd28uywwvt8sqbi52upnzagshtrm

Check the current rewards earned by a delegator and restricted to one validator by appending the <delegator-address> followed by the <validator-address> at the end of the command statement, as shown in the following example:

terrad query distribution rewards terra14h2od5f3vahd28uywwvt8sqbi52upnzagshtrm terra19t4gde4f8ndwx67qhbnur9yqdc31xznpksajbcy

# query distribution commission

Checks the current outstanding commission for a validator.

Syntax

terrad query distribution commission <validator_address>

Example

terrad query distribution commission terra19t4gde4f8ndwx67qhbnur9yqdc31xznpksajbcy

# query distribution slashes

Checks historical slashes for a validator within a range of blocks.

Syntax

terrad query distribution slashes <validator-address> <start-block-height> <end-block-height>

Example

terrad query distribution slashes terra19t4gde4f8ndwx67qhbnur9yqdc31xznpksajbcy 25 300

# query distribution community-pool

Checks all coins in the community pool.

Syntax

terrad query distribution community-pool

# query distribution params

Checks the current distribution parameters.

Syntax

terrad query distribution params

The parameters are returned in YAML, as shown in the following example:

community_tax: "0.020000000000000000"
base_proposer_reward: "0.010000000000000000"
bonus_proposer_reward: "0.040000000000000000"
withdraw_addr_enabled: true

# query gov deposit

Retrieves information about a single proposal deposit on a proposal by its identifier.

Syntax

terrad query gov deposit <proposal-id> <depositor-address>

Example

terrad query gov deposit 4 terra1skjwj5whet0lpe65qaq4rpq03hjxlwd9nf39lk

# query gov deposits

Retrieves all deposits submitted to a proposal after it is created.

Syntax

terrad query gov deposits <proposal-id>

Example

terrad query gov deposits 5

# query gov proposal

Retrieves information about one proposal.

proposal retrieves information about one proposal.

Syntax

terrad query gov proposal <proposal-id>

Example

terrad query gov proposal 3

# query gov proposals

Retrieves information about all available proposals.

Syntax

terrad query gov proposals

Additionally, you can query proposals filtered by details, such as voter or depositor, by appending the corresponding flag and address at the end of the command statement, as shown in the following example:

terrad query gov proposals --voter terra13a8ddv3h7kbcn73akcbpe7ueks22vaolewpaxmb

# query gov vote

Retrieves information about a single vote by a specific voter.

Syntax

terrad query gov vote <proposal-id> <voter-address>

Example

terrad query gov vote 7 terra13a8ddv3h7kbcn73akcbpe7ueks22vaolewpaxmb

# query gov votes

Retrieves all the votes submitted to the proposal.

Syntax

terrad query gov votes <proposal-id>

Example

terrad query gov votes 9

# query gov tally

Retrieves the current tally for a specified proposal.

Syntax

terrad query gov tally <proposal-id>

Example

terrad query gov tally 4

# query gov param

Retrieves all the parameters for the specified governance process.

Syntax

terrad query gov param <process-type>

Example

terrad query gov param voting

# query gov params

Retrieves all the parameters for all governance processes.

Syntax

terrad query gov params

The parameters are returned in the following format:

voting_params:
  voting_period: 5m0s
tally_params:
  quorum: "0.334000000000000000"
  threshold: "0.500000000000000000"
  veto: "0.334000000000000000"
deposit_parmas:
  min_deposit:
    - denom: uluna
      amount: "10000000"
  max_deposit_period: 48h0m0s

# query market swap

Determines the result of a swap without executing the swap.

Syntax

terrad query market swap <offer-coin> <ask-denom>

where offer-coin is the coin to be traded and ask-denom is the denomination to be swapped into.

Example

terrad query market swap 100000uluna usdr

# query market terra-pool-delta

Retrieves the current value of the Terra pool delta.

Syntax

terrad query market terra-pool-delta

# query market params

Retrieves the market module's parameters:

Syntax

terrad query market params

# query mint annual-provisions

Retrieves the value of annual provisions.

Syntax

terrad query mint annual-provisions

# query mint inflation

Retrieves the current value of inflation.

Syntax

terrad query mint inflation

# query mint params

Retrieves the mint module's parameters.

Syntax

terrad query mint params

Parameters are returned in the following format:

mint_denom: uluna
inflation_rate_change: "0.130000000000000000"
inflation_max: "0.200000000000000000"
inflation_min: "0.070000000000000000"
goal_bonded: "0.670000000000000000"
blocks_per_year: 6311520

# query oracle actives

Retrieves the active list of Terra assets recognized by type.

Syntax

terrad query oracle actives

# query oracle aggregate-prevotes

Retrieves all outstanding aggregate prevotes.

Syntax

terrad query oracle aggregate-prevotes

# query oracle aggregate-votes

Retrieves all outstanding aggregate votes.

Syntax

terrad query oracle aggregate-votes

# query oracle exchange-rates

Retrieves exchanges rates of Luna.

Syntax

terrad query oracle exchange-rates

# query oracle feeder

Retrieves the account to whitch the validator's oracle voting right is delegated.

Syntax

terrad query oracle feeder <validator-address>

Example

terrad query oracle feeder terravaloper15h6vd5f0wqps26zjlwrc6chah08ryu4hzzdwhc

# query oracle miss

Retrieves the amount of vote periods missed in this oracle slash window.

Syntax

terrad query oracle miss <validator-address>

Example

terrad query oracle miss terravaloper15h6vd5f0wqps26zjlwrc6chah08ryu4hzzdwhc

# query oracle params

Retrieves the oracle module's parameters.

Syntax

terrad query oracle params

The parameters are returned in the following format:

vote_period: 5
vote_threshold: "0.500000000000000000"
reward_band: "0.020000000000000000"
reward_distribution_window: 5256000
whitelist:
  - name: ukrw
    tobin_tax: "0.002500000000000000"
  - name: usdr
    tobin_tax: "0.002500000000000000"
  - name: uusd
    tobin_tax: "0.002500000000000000"
  - name: umnt
    tobin_tax: "0.020000000000000000"
slash_fraction: "0.000100000000000000"
slash_window: 100800
min_valid_per_window: "0.050000000000000000"

# query oracle tobin-taxes

Retrieves the current oracle tobin taxes.

Syntax

terrad query oracle tobin-taxes

# query oracle vote-targets

Retrieves the current oracle vote targets.

Syntax

terrad query oracle vote-targets

# query slashing signing-info

Retrieves a validator's signing info.

Syntax

terrad query slashing signing-info <validator-consensus-public-key>

Example

terrad query slashing signing-info terravalconspub1atjdueldlxwft8d4729pqhdhm3nlss0u4wx7wpeqb1zhjf8yr1tn7cgw2b4q4yv9na

# query slashing signing-infos

Retrieves signing information of all validators.

Syntax

terrad query slashing signing-infos

# query slashing params

Retrieves the genesis parameters for the slashing module.

Syntax

terrad query slashing params

The parameters are returned in the following format:

signed_blocks_window: 100
min_signed_per_window: "0.500000000000000000"
downtime_jail_duration: 10m0s
slash_fraction_double_sign: "0.050000000000000000"
slash_fraction_downtime: "0.010000000000000000"

# query staking delegation

Retrieves delegation information for a validator.

Syntax

terrad query staking delegation <delegator-address> <validator-address>

Example

terrad query staking delegation terra1gghjut3ccd8ay0zduzj64hwre2fxs9ld75ru9p terravaloper15h6vd5f0wqps26zjlwrc6chah08ryu4hzzdwhc

# query staking delegations

Retrieves delegations for a delegator on all validators.

Syntax

terrad query staking delegations <delegator-address>

Example

terrad query staking delegations terra1gghjut3ccd8ay0zduzj64hwre2fxs9ld75ru9p

# query staking delegations-to

Retrieves all of the delegations on a particular validator.

Syntax

terrad query staking delegations-to <validator-address>

Example

terrad query staking delegations-to terravaloper15h6vd5f0wqps26zjlwrc6chah08ryu4hzzdwhc

# query staking historical-info

Retrieves all historical information at a specified height.

Syntax

terrad query staking historical-info <height>

Example

terrad query staking historical-info 23

# query staking params

Retrieves all staking parameters.

Syntax

terrad query staking params

The parameters are returned in the following format:

unbonding_time: 504h0m0s
max_validators: 100
max_entries: 100
historical_entries: 0
bond_denom: uluna

# query staking pool

Retrieves amounts stored in the staking pool.

Syntax

terrad query staking pool

The following information is returned:

  • Not-bonded and bonded tokens
  • Token supply
  • Current annual inflation and the block in which the last inflation was processed
  • Last recorded bonded shares

# query staking redelegation

Retrieves redelegation information for an individual delegator between a source validator and a destination validator.

Syntax

terrad query staking redelegation <delegator-address> <src-val-addr> <dst-val-addr>

Example

terrad query staking redelegation terra1gghjut3ccd8ay0zduzj64hwre2fxs9ld75ru9p terravaloper1l2rsakp388kuv9k8qzq6lrm9taddae7fpx59wm terravaloper1gghjut3ccd8ay0zduzj64hwre2fxs9ldmqhffj

# query staking redelegations

Retrieves all redelegation information for a delegator.

Syntax

terrad query staking redelegations <delegator-address>

Example

terrad query staking redelegations terra1gghjut3ccd8ay0zduzj64hwre2fxs9ld75ru9p

# query staking redelegations-from

Retrieves all the delegations that are redelegating from a specified validator:

Syntax

terrad query staking redelegations-from <validator-address>

Example

terrad query staking redelegations-from terravaloper1gghjut3ccd8ay0zduzj64hwre2fxs9ldmqhffj

# query staking unbonding-delegation

Retrieves information about unbonding delegations for a specified delegator and validator.

Syntax

terrad query staking unbonding-delegation <delegator-address> <validator-address>

Example

terrad query staking unbonding-delegation terra1gghjut3ccd8ay0zduzj64hwre2fxs9ld75ru9p terravaloper1l2rsakp388kuv9k8qzq6lrm9taddae7fpx59wm

# query staking unbonding-delegations

Retrieves all your current unbonding delegations for a specified delegator.

Syntax

terrad query staking unbonding-delegations <delegator-address>

Example

terrad query staking unbonding-delegations terra1gghjut3ccd8ay0zduzj64hwre2fxs9ld75ru9p

# query staking unbonding-delegations-from

Retrieves all the unbonding delegations from a specified validator.

Syntax

terrad query staking unbonding-delegations-from <validator-address>

Example

terrad query staking unbonding-delegations-from terravaloper1l2rsakp388kuv9k8qzq6lrm9taddae7fpx59wm

# query staking validators

Retrieves the list of all registered validators.

Syntax

terrad query staking validators

To retrieve the information of a single validator, append the validator address to the end of the command statement, as shown in the following example:

terrad query staking validator terravaloper15h6vd5f0wqps26zjlwrc6chah08ryu4hzzdwhc

# query treasury indicators

Retrieves treasury indicators.

Syntax

terrad query treasury indicators

# query treasury params

Retrieves the high-level settings for the treasury. For more information, see treasury parameters.

Syntax

terrad query treasury params

The parameters are returned in the following format:

tax_policy:
  ratemin: "0.000500000000000000"
  ratemax: "0.010000000000000000"
  cap:
    denom: usdr
    amount: "1000000"
  changeratemax: "0.000250000000000000"
reward_policy:
  ratemin: "0.050000000000000000"
  ratemax: "0.500000000000000000"
  cap:
    denom: unused
    amount: "0"
  changeratemax: "0.025000000000000000"
seigniorage_burden_target: "0.670000000000000000"
mining_increment: "1.070000000000000000"
window_short: 4
window_long: 52
window_probation: 12

# query treasury reward-weight

Retrieves the reward weight of the current epoch. The reward weight is the portion of seigniorage that is designated as ballot rewards for the winners of exchange-rate oracle.

Syntax

terrad query treasury reward-weight

# query treasury seigniorage-proceeds

Retrieves the amount of seigniorage denominated in uluna in the current epoch.

Syntax

terrad query treasury seigniorage-proceeds

# query treasury tax-cap

Retrieves the current stability tax cap of the specified denomination. Stability fees are capped at some fixed amount of SDT to avoid penalizing large transactions.

Syntax

terrad query treasury tax-cap <denomination>

Example

terrad query treasury tax-cap ukrw

# query treasury tax-caps

Retrieves the current stability tax cap of all assets.

Syntax

terrad query treasury tax-caps

# query treasury tax-proceeds

Retrieves the cumulative tax proceeds.

Syntax

terrad query treasury tax-proceeds

# query treasury tax-rate

Retrieves the stability tax rate of the current epoch.

Syntax

terrad query treasury tax-rate

# query tx

Retrieves a transaction by its hash, account sequence, or signature.

Syntax to query by hash

terrad query tx <hash>

Syntax to query by account sequence

terrad query tx --type=acc_seq <address>:<sequence>

Syntax to query by signature

terrad query tx --type=signature <sig1_base64,sig2_base64...>

# query txs

Retrieves transactions that match the specified events where results are paginated.

Syntax

terrad query txs --events '<event>' --page <page-number> --limit <number-of-results>

Example

terrad query txs --events 'message.sender=cosmos1...&message.action=withdraw_delegator_reward' --page 1 --limit 30

# query wasm bytecode

Retrieves the contract's WASM bytecode by referencing its ID.

Syntax

terrad query wasm bytecode <code-id>

# query wasm code

Retrieves information about a piece of uploaded code by referencing its ID.

Syntax

terrad query wasm code <code-id>

# query wasm contract

Retrieves the metadata information about an instantiated contract.

Syntax

terrad query wasm contract <contract-address>

# query wasm contract-store

Retrieves data about the contract store of the address and prints the results.

Syntax

terrad query wasm contract-store <contract-address> <query-msg>

where <query-msg> is a JSON string that encodes the QueryMsg.

Example

terrad query wasm contract-store terra1plju286nnfj3z54wgcggd4enwaa9fgf5kgrgzl '{"config":{}}'

# query wasm params

Retrieves the current WASM module's parameters.

Syntax

terrad query wasm params

The parameters are returned in the following format:

max_contract_size: 512000
max_contract_gas: 100000000
max_contract_msg_size: 1024

# query wasm raw-store

Retrieves the raw store of a contract and prints the results.

Syntax

terrad query wasm raw-store <contract-address> <key> <subkey>

If the data uses a Singleton, it has only a key. If the data uses a prefixed data store, such as PrefixedStorage or Bucket, it can accept a subkey too.

# tx authz exec

Runs a transaction for the granter.

Syntax

terrad tx authz exec <msg-tx-json-filename> --from=<grantee-address>

Example

terrad tx authz exec tx.json --from=<terra14h2od5f3vahd28uywwvt8sqbi52upnzagshtrm

# tx authz grant

Authorizes another address to run transactions for you.

Syntax

terrad tx authz grant <grantee-address> <authorization-type> --from=<your-address>

Example

terrad tx authz grant terra14h2od5f3vahd28uywwvt8sqbi52upnzagshtrm send /cosmos.bank.v1beta1.MsgSend --from=terra15h6vd5f0wqps26zjlwrc6chah08ryu4hzzdwhc

Additionally, you can restrict this authorization to a specified allowance by including the --spend-limit flag, as shown in the following example:

terrad tx authz grant terra14h2od5f3vahd28uywwvt8sqbi52upnzagshtrm send /cosmos.bank.v1beta1.MsgSend --spend-limit=15000uluna --from=terra15h6vd5f0wqps26zjlwrc6chah08ryu4hzzdwhc

# tx authz revoke

Removes authorization from an account.

Syntax

terrad tx authz revoke <grantee-address> <authorization-type> --from=<granter-address>

Example terrad tx authz revoke terra14h2od5f3vahd28uywwvt8sqbi52upnzagshtrm /cosmos.bank.v1beta1.MsgSend --from=terra15h6vd5f0wqps26zjlwrc6chah08ryu4hzzdwhc

# tx bank send

Sends coins from one account to another account.

Syntax

terrad tx bank send \
    <from-key-or-address> \
    <to-address> \
    <coins> \
    --chain-id=<chain-id> \

where

  • <from-key-or-address> is either the key name or the address. If the --generate-only flag is used, only addresses are accepted.
  • to-address is an account address.
  • <coins> is a comma-separated list of coins specified as <amount><coin-denominator>. For example, 1000usdr or 1000uluna,1000usdr.

Example

terrad tx bank send \
    terra15h6vd5f0wqps26zjlwrc6chah08ryu4hzzdwhc \
    terra14h2od5f3vahd28uywwvt8sqbi52upnzagshtrm \
    8600usdr \
    --chain-id=testnet \

# tx distribution fund-community-pool

Funds the community pool with the specified amount.

Syntax

terrad tx distribution fund-community-pool <amount>

Example terrad tx distribution fund-community-pool 100ukrw,200uusd

# tx distribution set-withdraw-addr

Changes the default withdrawal address for rewards associated with an address.

Syntax

terrad tx distribution set-withdraw-addr <withdrawal-address>

Example

terrad tx distribution set-withdraw-addr terra13a8ddv3h7kbcn73akcbpe7ueks22vaolewpaxmb

# tx distribution withdraw-all-rewards

Withdraws all rewards.

Syntax

terrad tx distribution withdraw-all-rewards

# tx distribution withdraw-rewards

Withdraws your rewards against a validator.

Syntax

terrad tx distribution withdraw-rewards <validator-address>

Example

terrad tx distribution withdraw-rewards terra19t4gde4f8ndwx67qhbnur9yqdc31xznpksajbcy

# tx gov deposit

For a proposal to be sent to the network, the amount deposited must be above a minimum amount specified by minDeposit (initial value is 512000000uluna). If the proposal you previously created didn't meet this requirement, you can still increase the total amount deposited to activate it. After the minimum deposit is reached, the voting period for the proposal begins.

Syntax

terrad tx gov deposit <proposal-id> "<deposit-amount>" \
    --from=<name> \
    --chain-id=<chain-id>

Example

terrad tx gov deposit 15 "10000000luluna" \
    --from=terra13a8ddv3h7kbcn73akcbpe7ueks22vaolewpaxmb \
    --chain-id=columbus-5

WARNING

Proposals that don't meet this requirement are deleted after MaxDepositPeriod is reached.

# tx gov submit-proposal

Submits proposals and deposits. To create a governance proposal, you must submit an initial deposit along with a title and description of your proposal. Alternatively, you can provide the proposal directly through the --proposal flag, which points to a JSON file containing the proposal.

# Text proposals

Syntax

terrad tx gov submit-proposal \
    --title=<title> \
    --description=<description> \
    --type="Text" \
    --deposit="<amount>" \
    --from=<name-or-address> \
    --chain-id=<chain-id>

Example

terrad tx gov submit-proposal \
    --title=Funding for NFT platform \
    --description=Information about the NFT platform \
    --type="Text" \
    --deposit="100000uluna" \
    --from=terra13a8ddv3h7kbcn73akcbpe7ueks22vaolewpaxmb \
    --chain-id=columbus-5

# Parameter-change proposals

When you submit a proposal to change a parameter, we recommend you send the proposal as a JSON file.

Syntax

terrad tx gov submit-proposal \
    param-change <path/to/proposal.json> \
    --from=<name> \
    --chain-id=<chain_id>

Example

terrad tx gov submit-proposal \
    param-change /proposals/proposal.json \
    --from=terra13a8ddv3h7kbcn73akcbpe7ueks22vaolewpaxmb \
    --chain-id=columbus-5

where proposal.json contains the following information:

{
  "title": "Param Change",
  "description": "Update max validators",
  "changes": [
    {
      "subspace": "staking",
      "key": "MaxValidators",
      "value": 105
    }
  ],
  "deposit": [
    {
      "denom": "uluna",
      "amount": "10000000"
    }
  ]
}

WARNING

Because parameter changes are evaluated but not validated, ensure that new value you propose is valid for its parameter. For example, the proposed value for MaxValidators must be an integer, not a decimal.

# Community pool spend proposal

When you submit a community pool spend proposal, we recommend you send the proposal as a JSON file.

Syntax

terrad tx gov submit-proposal \
    community-pool-spend <path/to/proposal.json> \
    --from=<name> \
    --chain-id=<chain_id>

Example

terrad tx gov submit-proposal \
    community-pool-spend /proposals/proposal.json \
    --from=terra13a8ddv3h7kbcn73akcbpe7ueks22vaolewpaxmb \
    --chain-id=columbus-5

where proposal.json contains the following information:

{
  "title": "Community Pool Spend",
  "description": "Pay me some Lunas!",
  "recipient": "terra1s5afhd6gxevu37mkqcvvsj8qeylhn0rzn7cdaq",
  "amount": [
    {
      "denom": "uluna",
      "amount": "10000"
    }
  ],
  "deposit": [
    {
      "denom": "uluna",
      "amount": "10000"
    }
  ]
}

# Tax-rate and reward-weight update proposals

Tax rate and reward weight are important monetary policy levers handled by the Treasury module to modulate miner incentives toward stable demand and steady growth. Usually, they are automatically calibrated once per epoch by the protocol. However, they can be changed at any time, if an update proposal gets passed with enough supporters.

When you submit a tax rate or reward weight update proposal, we recommend you send the proposal as a JSON file.

For tax rate:

Syntax

terrad tx gov submit-proposal \
    tax-rate-update <path/to/proposal.json> \
    --from=<name> \
    --chain-id=<chain_id>

Example

terrad tx gov submit-proposal \
    tax-rate-update /proposals/proposal.json \
    --from=terra13a8ddv3h7kbcn73akcbpe7ueks22vaolewpaxmb \
    --chain-id=columbus-5

where proposal.json contains the following information:

{
  "title": "Update Tax-Rate",
  "description": "Let's update the tax-rate to 1.5%",
  "tax_rate": "0.015",
  "deposit": [
    {
      "denom": "uluna",
      "amount": "10000"
    }
  ]
}

For reward weight:

Syntax

terrad tx gov submit-proposal \
    reward-weight-update <path/to/proposal.json> \
    --from=<name> \
    --chain-id=<chain_id>

Example

terrad tx gov submit-proposal \
    reward-weight-update /proposals/proposal.json \
    --from=terra13a8ddv3h7kbcn73akcbpe7ueks22vaolewpaxmb \
    --chain-id=columbus-5

where proposal.json contains the following information:

{
  "title": "Update Reward Weight",
  "description": "Let's update reward weight to 1.5%",
  "reward_weight": "0.015",
  "deposit": [
    {
      "denom": "uluna",
      "amount": "10000"
    }
  ]
}

Tax reward and reward weight updates that are passed by governance proposals are subject to policy constraints.

# Software upgrade proposals

The proposal to upgrade the software follows the syntax of a text proposal.

Syntax

terrad tx gov submit-proposal software-upgrade <name> \
    --title=<title> \
    --description=<description> \
    --upgrade-height=<block-height> \
    --upgrade-info=<binary-details> \
    --type="Text" \
    --deposit="<amount>" \
    --from=<name-or-address> \
    --chain-id=<chain_id>

Example

terrad tx gov submit-proposal software-upgrade v0.5.0-beta3 \
    --title="Upgrade to v0.6.0-beta3" \
    --description="let's upgrade to v0.6.0-beta3" \
    --upgrade-height=20 \
    --upgrade-info='{"binaries":{"darwin/amd64":"/Workspace/terra/core/build/terrad?checksum=sha256:2032356fe0899dec0cdd559f1c649bc81e53a9b4063b333059135e3a2aae8728"}}' \
    --type="Text" \
    --deposit="512000000uluna" \
    --from=terra13a8ddv3h7kbcn73akcbpe7ueks22vaolewpaxmb \
    --chain-id=columbus-5

To cancel a software upgrade:

Syntax

terrad tx gov submit-proposal cancel-software-upgrade --title "<title>" --description "<description>"

Example

terrad tx gov submit-proposal cancel-software-upgrade --title "Upgrade to v0.5.0-beta3" --description "let's upgrade to v0.6.0-beta3"

# tx gov vote

After a proposal's deposit reaches the MinDeposit value, the voting period begins, and bonded Luna holders can vote.

Syntax

terrad tx gov vote \
    <proposal-id> <vote-type> \
    --from=<name> \
    --chain-id=<chain_id>

Example

terrad tx gov vote \
    7 yes \
    --from=terra13a8ddv3h7kbcn73akcbpe7ueks22vaolewpaxmb \
    --chain-id=columbus-5

# tx market swap

Swaps any currency in the Terra ecosystem for another currency at the effective oracle exchange rate.

Syntax

terrad tx market swap \
    <offer-coin> \
    <ask-denom>  \
    --from <address> \

where <offer-coin> is the coin to be traded, and <ask-denom> is the denomination of the coin to be swapped into.

Example

terrad tx market swap \
    "1000ukrw" \
    "usdr" \
    --from "terra13a8ddv3h7kbcn73akcbpe7ueks22vaolewpaxmb" \

For Terra<>Luna swaps, the constant-product spread pricing model is enforced to limit consensus-related attack vectors. Terra<>Terra swaps have a constant Tobin tax.

Optionally, you can specify a recipient in the command statement to both swap and send in one transaction.

Syntax

terrad tx market swap \
    <offer-coin> \
    <ask-denom> \
    <recipient-address>
    --from <address> \

Example

terrad tx market swap \
    "1000ukrw" \
    "usdr"  \
    "terra1s5afhd6gxevu37mkqcvvsj8qeylhn0rzn7cdaq"
    --from "terra13a8ddv3h7kbcn73akcbpe7ueks22vaolewpaxmb" \

# tx oracle aggregate-prevote

Submits a prevote containing the hash of the actual vote in the first vote period. The hash is the leading 20 bytes of the SHA256 hexa string run over the string of the format salt:price:denom:validator-address.

Syntax

terrad tx oracle aggregate-prevote \
    <salt> \
    <exchange-rates> \
    <validator-address> \

Example

terrad tx oracle aggregate-prevote \
    "1234" \
    "8888.0ukrw,1.243uusd,0.99usdr" \
    "terravaloper15h6vd5f0wqps26zjlwrc6chah08ryu4hzzdwhc" \

# tx oracle aggregate-vote

Submits a vote containing the same salt of the hash submitted in the prevote phase to prove honestly. The hash is the leading 20 bytes of the SHA256 hexa string run over the string of the format salt:price:denom:validator-address. You submit this vote after VotePeriod has expired from the submission of the prevote.

Syntax

terrad tx oracle aggregate-vote \
    <salt> \
    <exchange-rates>  \
    <validator-address> \

Example

terrad tx oracle aggregate-vote \
    "1234" \
    "8888.0ukrw,1.243uusd,0.99usdr" \
    "terravaloper15h6vd5f0wqps26zjlwrc6chah08ryu4hzzdwhc" \

Given that oracle votes must be submitted in a feed over short time intervals (30 seconds), prevotes and votes must be submitted via some persistent server daemon, not manually. For more information, see Exchange Rate Oracle section of the validator documentation and the Oracle Module Specification.

# tx oracle set-feeder

Delegates exchange-rate voting to another signing key.

Syntax

terrad tx oracle set-feeder <feeder-address>

where feeder-address is the address to which you will delegate your voting rights. For you to receive credit, the feeder still must submit votes on behalf of your validator.

Example

terrad tx oracle set-feeder terra14q7bu6p0aclm58dgirpo9mewh19nti5oxyamep

# tx slashing unjail

Releases a jailed validator.

Syntax

terrad tx slashing unjail

Example

terrad tx slashing unjail

# tx wasm clear-admin

Removes the contract admin so that the contract cannot be migrated.

Syntax

terrad tx wasm clear-admin <contract-address>

# tx wasm execute

Invokes processing functions on the smart contract.

Syntax

terrad tx wasm execute <contract-address> <handle-msg> <coins>

Where <handle-msg> is a raw JSON string containing the HandleMsg that is parsed and routed to the correct message handling logic in the contract, and <coins> is the optional amount of coins specified in a comma-separated list that you want to send with your message, in case the logic requires some fees.

# tx wasm instantiate

Creates a new contract by referencing the code ID of a contract that has been uploaded.

Syntax

terrad tx wasm instantiate <code-id> <init-msg> <coins>

where <init-msg> is a JSON string containing the InitMsg to initialize your contract's state, and <coins> is the optional amount of coins specified in a comma-separated list that you want to send to the new contract account.

Example

terrad tx wasm instantiate 1 '{"arbiter": "terra~~"}' "1000000uluna"

# tx wasm migrate

Updates the code ID of the contract to migrate to a new code ID. This command can be issued only from the key corresponding to the contract's owner.

Syntax

terrad tx wasm migrate <contract-address> <new-code-id> <migrate-msg>

Example

terrad tx wasm migrate terra... 10 '{"verifier": "terra..."}'

# tx wasm store

Uploads a new WASM binary or migrates to existing binary to the Columbus-5 release.

Syntax for a new WASM binary

terrad tx wasm store <path-to-wasm-file>

where <path-to-wasm-file> is the path of a file that is the compiled binary of the smart contract code that you want to upload.

Syntax to migrate to Columbus-5

terrad tx wasm store <path-to-wasm-file> --migrate-code-id 3

# tx wasm update-admin

Updates a contract owner to a new address. This command can be issued only from the key corresponding to the contract's owner.

Syntax

terrad tx wasm update-admin <contract-address> <new-owner>