{"id":41646373,"url":"https://github.com/bcdevtools/devd","last_synced_at":"2026-01-24T15:31:33.239Z","repository":{"id":232462195,"uuid":"784302140","full_name":"bcdevtools/devd","owner":"bcdevtools","description":"Development tools as CLI","archived":false,"fork":false,"pushed_at":"2025-03-14T10:52:55.000Z","size":329,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-03-14T11:33:10.263Z","etag":null,"topics":["cli","cosmos-sdk","developer-tools","ethereum","evm-blockchain"],"latest_commit_sha":null,"homepage":"http://bcdev.tools","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bcdevtools.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-04-09T15:26:46.000Z","updated_at":"2025-03-14T10:49:53.000Z","dependencies_parsed_at":"2024-04-13T14:02:56.052Z","dependency_job_id":"3497b43f-b966-4efa-9a3f-11c4759b0ccb","html_url":"https://github.com/bcdevtools/devd","commit_stats":null,"previous_names":["bcdevtools/devd"],"tags_count":34,"template":false,"template_full_name":null,"purl":"pkg:github/bcdevtools/devd","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bcdevtools%2Fdevd","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bcdevtools%2Fdevd/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bcdevtools%2Fdevd/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bcdevtools%2Fdevd/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bcdevtools","download_url":"https://codeload.github.com/bcdevtools/devd/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bcdevtools%2Fdevd/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28730319,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-24T10:24:43.181Z","status":"ssl_error","status_checked_at":"2026-01-24T10:24:36.112Z","response_time":89,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cli","cosmos-sdk","developer-tools","ethereum","evm-blockchain"],"created_at":"2026-01-24T15:31:32.260Z","updated_at":"2026-01-24T15:31:33.226Z","avatar_url":"https://github.com/bcdevtools.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"## devd\n\n### Install\n\n```bash\ngo install -v github.com/bcdevtools/devd/v3/cmd/devd@latest\n```\n\n### Query tools\n\nLazy EVM-RPC setting\n```bash\nexport DEVD_EVM_RPC='https://evm.example.com:8545'\n```\n_By setting this environment variable, you don't need to pass `--evm-rpc` flag everytime for non-localhost EVM Json-RPC_\n___\nLazy TM-RPC setting\n```bash\nexport DEVD_TM_RPC='https://rpc.example.com:26657'\n```\n_By setting this environment variable, you don't need to pass `--tm-rpc` flag everytime for non-localhost Tendermint RPC_\n___\nLazy Rest API setting\n```bash\nexport DEVD_COSMOS_REST='https://cosmos-rest.example.com:1317'\n```\n_By setting this environment variable, you don't need to pass `--rest` flag everytime for non-localhost Rest API_\n___\n\n#### Query account balance\n\n```bash\ndevd query balance [account addr] [optional ERC20 addr..] [--erc20] [--evm-rpc http://localhost:8545]\n# devd q b 0xAccount\n# devd q b ethm1account\n# devd q b 0xAccount 0xErc20Contract\n# devd q b ethm1account 0xErc20Contract1 0xErc20Contract2\n# devd q b 0xAccount --erc20 [--rest http://localhost:1317]\n```\n_`--erc20` flag, if provided, will attempt to fetch user balance of contracts on `x/erc20` module and virtual frontier bank contracts. This request additional Rest-API endpoint provided, or use default 1317._\n\n#### Query account info\n\n```bash\ndevd query account [0xAddress/Bech32] [--rest http://localhost:1317]\n# devd q acc 0xAccount\n```\n\n#### Query block/tx events\n\n```bash\ndevd query events [height/tx hash] [--filter one] [--filter of_] [--filter these] [--tm-rpc http://localhost:26657]\n# devd q events COS...MOS -f sig -f seq_\n# devd q events 0x...evm -f txHash\n# devd q events 10000\n```\n_`--filter` flags, if provided, will accept events those contain at least one provided criteria_\n\n#### Query ERC20 token information\n\n```bash\ndevd query erc20 [ERC20 addr] [optional account] [--evm-rpc http://localhost:8545]\n# devd q erc20 0xErc20Contract\n# devd q erc20 0xErc20Contract 0xAccount\n# devd q erc20 0xErc20Contract ethm1account\n```\n\n_This command will try to query `totalSupply()` if possible_\n\n#### Query simple txs info in a block\n\n```bash\ndevd query txs-in-block [block number] [--tm-rpc http://localhost:26657]\n# devd q txs-in-block 100000\n```\n\n#### Some EVM-RPC queries\n\n```bash\ndevd query eth_getTransactionByHash [0xHash] [--evm-rpc http://localhost:8545]\n# devd q evm-tx 0xHash\n\ndevd query eth_getTransactionReceipt [0xHash] [--evm-rpc http://localhost:8545]\n# devd q evm-receipt 0xHash\n\ndevd query eth_getBlockByNumber [hex or dec block no] [--full] [--evm-rpc http://localhost:8545]\n# devd q evm-block 0xF\n# devd q evm-block 16 --full\n\ndevd query debug_traceTransaction [0xHash] [--tracer callTracer] [--evm-rpc http://localhost:8545]\n# devd q evm-trace 0xHash\n# devd q evm-trace 0xHash --tracer callTracer\n\ndevd query eth_call 0xContractAddr 0xCallData [--evm-rpc http://localhost:8545] [--from 0xFromAddr/Bech32] [--height 5m/0xHex/latest] [--gas 500k/0xHex] [--gas-prices 20e9/0xHex] [--value 1e18/0xHex] \n\ndevd query eth_getAccount [0xAddress/Bech32] [--evm-rpc http://localhost:8545]\n# devd q evm-account 0xAddress\n\ndevd query eth_chainId [--evm-rpc http://localhost:8545]\n```\n\n### Tx tools\n\n#### Send EVM transaction\n\n```bash\n# Transfer native coin\ndevd tx send [to] [amount] [--raw-tx]\n# Transfer ERC-20 token\ndevd tx send [to] [amount] [--erc20 contract_address]\n# Use `--raw-tx` flag to see raw RLP-encoded EVM tx\n```\n\n_support short int (2e18, 5bb,...): `devd tx send [to] [1e18/1bb]`_\n\n#### Deploy EVM contract\n\n```bash\n# Deploy contract with deployment bytecode\ndevd tx deploy-contract [deployment bytecode] [--gas 4m] [--gas-prices 20b] [--raw-tx]\n# Deploy ERC-20 contract with pre-defined bytecode\ndevd tx deploy-contract erc20\n# Use `--raw-tx` flag to see raw RLP-encoded EVM tx\n```\n\n### Convert tools\n\n#### Convert address between different formats\n\n```bash\ndevd convert address [address] [optional bech32 hrp]\n# devd c a 0xAccount ethm\n# devd c a ethm1account\n# devd c a ethm1account xyz\n```\n***WARN: DO NOT use this command to convert address across chains with different HD-Path! (eg: Ethermint 60 and Cosmos 118)***\n\n#### Encode string into ABI or decode ABI into string\n\n***Support pipe***\n```bash\ndevd convert abi-string [string or ABI encoded string]\n# devd c abi-string 000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000045553444300000000000000000000000000000000000000000000000000000000\n# devd c abi-string USDC Token\n# echo 'USDC Token' | devd c abi-string\n```\n\n#### Convert hexadecimal to decimal and vice versa\n\n***Support pipe***\n```bash\ndevd convert hexadecimal [hexadecimal or decimal]\n# devd c hex 0x16a\n# echo 0x16a | devd c hex\n# devd c hex 362\n# echo 362 | devd c hex\n```\n\n#### Convert Solidity event/method signature into hashed signature\n\n```bash\ndevd convert solc-sig [event/method signature]\n# devd c solc-sig 'transfer(address,uint256)'\n# devd c solc-sig 'function transfer(address recipient, uint256 amount) external returns (bool);'\n# devd c solc-sig 'event Transfer(address indexed from, address indexed to, uint256 value);'\n```\n\n#### Convert input into lower/upper case\n\n***Support pipe***\n```bash\ndevd convert case [input]\n# devd c case AA\n# echo AA | devd c case\n# \u003e aa\ndevd convert case [input] --upper\n# devd c case aa\n# echo aa | devd c case --upper\n# \u003e AA\n```\n\n#### Encode/Decode base64\n\n***Support pipe***\n```bash\ndevd convert base64 [input] [--show-buffer] [--from-buffer]\n# devd c base64 123\n# echo 123 | devd c base64\ndevd convert base64 [base64] --decode\n# devd c base64 TVRJeg== --decode\n# echo TVRJeg== | devd c base64 --decode\n```\n\n#### Convert raw balance into display balance and vice versa\n\n```bash\ndevd convert display-balance [raw balance] [exponent]\n# devd c dbal 10011100 6\n# \u003e 10.0111\n# Support short int:\n#  devd c dbal 20bb 18\n#  \u003e 20.0\n```\n\n```bash\ndevd convert raw-balance [display balance] [exponent] [--decimals-point , or .]\n# devd c rbal 10.0111 6\n# \u003e 10011100\n# devd c rbal 10,0111 6 -d ,\n# \u003e 10011100\n```\n\n### Hashing tools\n\n***Support pipe***\n```bash\ndevd hash md5 [input]\n# devd hash md5 123\n# cat file.txt | devd hash md5\ndevd hash keccak256 [input]\n# devd hash keccak256 123\n# cat file.txt | devd hash keccak256\ndevd hash keccak512 [input]\n# devd hash keccak512 123\n# cat file.txt | devd hash keccak512\n```\n\n### Check tools\n\n#### Listing ports in use and check port holding by process\n\n```bash\n# listing\ndevd check port\n\n# check specific port\ndevd check port [port]\n```\n\n### Debug tools\n\n#### Decode raw RLP-encoded EVM tx into tx object\n\n```bash\ndevd debug raw-tx [raw RLP-encoded EVM tx hex]\n# devd debug raw-tx 0x02f8af82271c3b83112a8883aba95082be209480b5a32e4f032b2a058b4f29ec95eefeeb87adcd80b844a9059cbb000000000000000000000000bfcfe6d5ad56aa831313856949e98656d46f9248000000000000000000000000000000000000000000000000002386f26fc10000c001a088907374a796ed70a5a2bdc51b50010b68dcc4d2ed12d94abc607bb0a90271b6a0167d3e031b70ec511b67416d9ad8334caee7013d95ff8275721b23798c5c3602\n```\n_to view inner tx information, including sender address_\n\n#### Compute EVM transaction intrinsic gas\n\n```bash\ndevd debug intrinsic-gas [0xCallData]\n# devd d intrinsic-gas 0xCallData\n```\n_Assumption: no access list, not contract creation, Homestead, EIP-2028 (Istanbul). If contract creation, plus 32,000 into the output._\n\n### Notes:\n\n- Output messages are printed via stdout, while messages with prefixes `INF:` `WARN:` and `ERR:` are printed via stderr. So for integration with other tools, to omit stderr, forward stdout only.\n  \u003e Eg: `devd c a cosmos1... 1\u003e /tmp/output.txt`\n- When passing arguments into command via both argument and pipe, the argument will be used.\n  \u003e Eg: `echo 123 | devd c hex 456` will convert `456` to hexadecimal, not `123`.\n- For commands those marked `support short int`, you can pass number with format like:\n  - `2e18` = 2 x 10^18\n  - `2k` = 2,000\n  - `2.7m` = 2,700,000\n  - `3.08b` = 3,080,000,000\n  - `4kb` = 4,000,000,000,000\n  - `5.555mb` = 5,555,000,000,000,000\n  - `6bb` = 6,000,000,000,000,000,000 = 6e18\n- Some queries will try to decode some fields in response data into human-readable format and inject back into the response data with `_` prefix like EVM tx, receipt, block, trace.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbcdevtools%2Fdevd","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbcdevtools%2Fdevd","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbcdevtools%2Fdevd/lists"}