title: Send ERC20 token with web3.py using a local private key
body: <p>I am trying to send ERC20 tokens in python with web3.py using a local private key.</p>
  <p>With this code I can send ether:</p>
  <pre><code>w3 = Web3(HTTPProvider('https://api.myetherapi.com/eth'))
  signed_txn = w3.eth.account.signTransaction(dict(
                  nonce=w3.eth.getTransactionCount(from_address),
                  gasPrice=w3.eth.gasPrice,
                  gas=100000,
                  to=to_address,
                  value=12345,
                  data=b'',
              ),
                  private_key,
              )
  w3.eth.sendRawTransaction(signed_txn.rawTransaction)
  </code></pre>
  <p>Then I found this too, but always get an error for the estimateGas and it seems to me that I can't specify the address where I am sending from like this or prove that its my address by some kind of signing?</p>
  <pre><code>contract = w3.eth.contract(address=address, abi=EIP20_ABI, bytecode=bytecode)
  contract.functions.transfer(to_address, 121212).transact()
  </code></pre>
  <p>So I have the JSON abi, the bytecode, the addresses and my private key, can I somehow build a working script out of the code I found?</p>