# 如何在EVM批量打各种*RC20 **Published by:** [Daniel ](https://paragraph.com/@daniel-32/) **Published on:** 2023-11-16 **URL:** https://paragraph.com/@daniel-32/evm-rc20 ## Content 简单来说,evm上的各种*20都是发送tx_data来打“铭文”虽然有种返璞归真的感觉,但是真的能炒上去。毕竟啥共识都是共识。至于交易只能靠检索器(也就是纯纯的中心化)检索器说是你的就是你的这就很离谱了,这也是为啥我总不喜欢这种玩意,去中心化精神完全抛弃了。 但是有人玩就是好的。刚好朋友要打,我就顺手写了个脚本,这个脚本比目前市面上的要快,且可以调整手续费 1.为什么说它快: 因为是本地拼接消息,可以批量生成一堆消息,在同一个高度全部上链。也就是说别人脚本在一个个的等的时候,你已经在50个同时等上链了。2.调整手续费,现在evm基本上都是eip1559,需要给节点小费,手动制定小费,会更快上链。具体怎么操作,见下面讲解准备工作:python环境,根据电脑不同自己google。只要能跑起来hello world即可。个人rpc推荐 alchemy如何操作:将下面脚本导入到你的代码编译器中,修改下面内容private_key = "填写你的钱包私钥" recipient_address = "填写你的接受钱包地址" mainnet: '填写你的rpc链接', data = '填写tx里面的内容' (下面的代码就是打pols的) 重点来了,如何比别人快 send_transaction(1, rpc_map.get("mainnet"), data, is_wait=True, priority_fee=100) 1修改成你想要的总数量 is_wait 如果是True就是等待上一个消息上链之后才发送下一个,False就是不等待疯狂冲 (问题来了,如果是自建的rpc那么就没限制,可以写false,如果是alchemy rpc这种一般会有请求限制,也就是最好用True) priority_fee就是小费给多少,去浏览器看,比如polygon的浏览器30.030 Gwei | POLY Gas Tracker | PolygonScanGas Snapshot Price at 10/25/2025 4:56:45 PM UTC - 30.030 Gwei | POLY Gas Tracker | PolygonScanhttps://polygonscan.com显示:Priority: 350,那你写360基本上就是秒上了。注意:因为gas一直在变动,输入一个gas的时候,建议一次少打一点比如现在是350,我写360,总共100张,一会会就打完了。然后再看看gas是多少,再来调整(能省不少钱呢)小费不是总GAS!!! 是Priority!!!注意看下图!!!Priority是104.6 这个时候你输入110,基本上秒打。脚本完全代码放到下面,希望大家冲的时候冷静,不要浪费gas。哈哈from web3 import Web3, HTTPProvider, Account from web3.middleware import geth_poa_middleware private_key = "填写你的钱包私钥" recipient_address = "填写你的接受钱包地址" data = 'data:,{"p":"prc-20","op":"mint","tick":"pols","amt":"100000000"}' rpc_map = { 'mainnet': '填写你的rpc链接', } def get_transaction_eip1559(rpc_url, text_data, priority_fee): web3 = Web3(HTTPProvider(rpc_url)) web3.middleware_onion.inject(geth_poa_middleware, layer=0) # Inject POA middleware # Check if connected to Ethereum network if not web3.isConnected(): raise Exception("Not connected to Ethereum network") # Set up the sender's account sender_account = Account.from_key(private_key) sender_address = sender_account.address # Transaction details value = web3.toWei(0, 'ether') # Get the nonce for the sender's account nonce = web3.eth.getTransactionCount(sender_address, 'pending') base_fee = web3.eth.get_block('latest')['baseFeePerGas'] # Transaction details max_priority_fee_per_gas = web3.toWei(priority_fee, 'gwei') # Tip for the miner, adjust as needed max_fee_per_gas = base_fee + max_priority_fee_per_gas # EIP-1559 transaction parameters # Convert data to hex and add as data to the transaction data_hex = web3.toHex(text=text_data) # Estimate gas limit for the transaction gas_estimate = web3.eth.estimate_gas({ 'to': recipient_address, 'value': value, 'from': sender_address, 'data': data_hex }) # Create the transaction dictionary transaction = { 'type': '0x2', # Indicates an EIP-1559 transaction 'chainId': web3.eth.chain_id, 'nonce': nonce, 'maxPriorityFeePerGas': max_priority_fee_per_gas, 'maxFeePerGas': max_fee_per_gas, 'gas': gas_estimate, 'to': recipient_address, 'value': value, 'data': data_hex } print(f"Transaction: {transaction}") return transaction, web3, private_key, nonce def signed_send(transaction, web3, private_key, is_wait=True): # Sign the transaction signed_tx = web3.eth.account.sign_transaction(transaction, private_key) # Send the transaction tx_hash = web3.eth.sendRawTransaction(signed_tx.rawTransaction) # Get the transaction hash print(f"Transaction hash: {tx_hash.hex()}") # Wait for the transaction receipt (optional) if is_wait: tx_receipt = web3.eth.waitForTransactionReceipt(tx_hash) print(f"Transaction receipt: {tx_receipt}") print(f"Transaction status: {tx_receipt['status']}") def send_transaction(number, rpc, test_data, is_wait=True, priority_fee=400): transaction, web3, private_key, nonce = get_transaction_eip1559(rpc, test_data, priority_fee) for i in range(number): transaction.update({'nonce': nonce}) signed_send(transaction, web3, private_key, is_wait) nonce = nonce + 1 if __name__ == '__main__': send_transaction(1, rpc_map.get("mainnet"), data, is_wait=True, priority_fee=100) ## Publication Information - [Daniel ](https://paragraph.com/@daniel-32/): Publication homepage - [All Posts](https://paragraph.com/@daniel-32/): More posts from this publication - [RSS Feed](https://api.paragraph.com/blogs/rss/@daniel-32): Subscribe to updates