cast send
NAME
cast-send - Sign and publish a transaction.
SYNOPSIS
cast send [options] to [sig] [args…]
DESCRIPTION
Sign and publish a transaction.
The destination (to) can be an ENS name or an address.
The signature (sig) can be:
- A fragment: someFunction(uint256,bytes32)
- A selector and encoded calldata: 0xcdba2fd40000000000000000000000000000000000000000000000000000000000007a69
- Only the function name: in this case Cast will try to fetch the function signature from Etherscan
OPTIONS
Transaction Options
--gas-limit gas_limit
    Gas limit for the transaction.
--gas-price price
    Gas price for the transaction, or max fee per gas for EIP1559 transactions.
--priority-gas-price price
    Max priority fee per gas for EIP1559 transactions.
--value value
    Ether to send in the transaction.
    Either specified as an integer (wei), or as a string with a unit, for example:
    - 1ether
    - 10gwei
    - 0.01ether
--nonce nonce
    Nonce for the transaction.
--legacy
    Send a legacy transaction instead of an EIP1559 transaction.
This is automatically enabled for common networks without EIP1559.
--resend
    Reuse the latest nonce of the sending account.
--create code [sig args…]
    Deploy a contract by specifying raw bytecode, in place of specifying a to address.
Receipt Options
--async
--cast-async
    Do not wait for the transaction receipt if it does not exist yet.
    Environment: CAST_ASYNC
-c confirmations
--confirmations confirmations
    Wait a number of confirmations before exiting. Default: 1.
WALLET OPTIONS - RAW:
-i
--interactive <NUM>
     Open an interactive prompt to enter your private key. Takes a value for the number of keys to enter.
     Defaults to 0.
--mnemonic-derivation-path <PATHS>
     The wallet derivation path. Works with both --mnemonic-path and hardware wallets.
--mnemonic-indexes <INDEXES>
     Use the private key from the given mnemonic index. Used with --mnemonic-paths.
     Defaults to 0.
--mnemonic-passphrase <PASSPHRASE>
     Use a BIP39 passphrases for the mnemonic.
--mnemonic <PATHS>
     Use the mnemonic phrases or mnemonic files at the specified paths.
--private-key <RAW_PRIVATE_KEY>
     Use the provided private key.
--private-keys <RAW_PRIVATE_KEYS>
     Use the provided private keys.
Wallet Options - Keystore
--keystore path
    Use the keystore in the given folder or file.
    Environment: ETH_KEYSTORE
--account account-name
    Use a keystore from the default keystores folder (~/.foundry/keystores) by its filename.
    Environment: ETH_KEYSTORE_ACCOUNT
--interactive
--password password
    The keystore password. Used with --keystore.
    Environment: ETH_PASSWORD
Wallet Options - Hardware Wallet
-t
--trezor
    Use a Trezor hardware wallet.
-l
--ledger
    Use a Ledger hardware wallet.
Wallet Options - Remote
-f address
--from address
    Sign the transaction with the specified account on the RPC.
    Environment: ETH_FROM
--unlocked
    Send via eth_sendTransaction using the --from argument or $ETH_FROM as sender.
RPC Options
--rpc-url url
    The RPC endpoint. Accepts a URL or an existing alias in the [rpc_endpoints] table, like mainnet.
    Environment: ETH_RPC_URL
--flashbots
    Use the Flashbots RPC URL (https://rpc.flashbots.net).
Etherscan Options
--chain chain_name
    The Etherscan chain.
--etherscan-api-key key
    Etherscan API key, or the key of an Etherscan configuration table.
    Environment: ETHERSCAN_API_KEY
Display Options
-j
--json
     Print the deployment information as JSON.
Common Options
-h
--help
    Prints help information.
EXAMPLES
- 
Send some ether to Vitalik using your Ledger: cast send --ledger vitalik.eth --value 0.1ether
- 
Call deposit(address token, uint256 amount)on a contract:cast send --ledger 0x... "deposit(address,uint256)" 0x... 1
- 
Call a function that expects a struct:contract Test { struct MyStruct { address addr; uint256 amount; } function myfunction(MyStruct memory t) public pure {} }Structs are encoded as tuples (see struct encoding) cast send 0x... "myfunction((address,uint256))" "(0x...,1)"
- 
Send a transaction with hex data in the inputfield of the transaction object:cast send 0x... 0x68656c6c6f20776f726c64
- 
Sign an EIP-7702 authorization and attach it to a transaction from a different sender: cast send $(cast az) --private-key <sender-pk> --auth $(cast wallet sign-auth <address> --private-key <delegator-pk>)
- 
Send an EIP-7702 transaction delegating the sender to <address>:cast send $(cast az) --auth <address>
SEE ALSO
cast, cast call, cast publish, cast receipt, cast mktx, struct encoding