{"id":20841289,"url":"https://github.com/iotexproject/iotex-hermes","last_synced_at":"2025-05-08T22:09:30.764Z","repository":{"id":54882106,"uuid":"252897651","full_name":"iotexproject/iotex-hermes","owner":"iotexproject","description":"The automatic reward distribution service for IoTeX delegates","archived":false,"fork":false,"pushed_at":"2023-12-23T03:12:26.000Z","size":11176,"stargazers_count":5,"open_issues_count":2,"forks_count":2,"subscribers_count":8,"default_branch":"master","last_synced_at":"2024-06-21T16:57:11.117Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/iotexproject.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}},"created_at":"2020-04-04T03:16:52.000Z","updated_at":"2022-03-24T05:00:14.000Z","dependencies_parsed_at":"2023-12-23T04:20:07.719Z","dependency_job_id":null,"html_url":"https://github.com/iotexproject/iotex-hermes","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iotexproject%2Fiotex-hermes","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iotexproject%2Fiotex-hermes/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iotexproject%2Fiotex-hermes/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iotexproject%2Fiotex-hermes/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/iotexproject","download_url":"https://codeload.github.com/iotexproject/iotex-hermes/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225110614,"owners_count":17422453,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":[],"created_at":"2024-11-18T01:19:33.334Z","updated_at":"2024-11-18T01:19:34.025Z","avatar_url":"https://github.com/iotexproject.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# iotex-hermes\nThe automatic reward distribution service for IoTeX delegates\n\n## Get started\n\n### Minimum requirements\n\n| Components | Version | Description |\n|----------|-------------|-------------|\n| [Golang](https://golang.org) | \u0026ge; 1.11.5 | Go programming language |\n\n## Run as a service\n1. If you put the project code under your `$GOPATH/src`, you will need to set up an environment variable:\n```\nexport GO111MODULE=on\nset GO111MODULE=on (for windows)\n```\n\n2. Specify distributor's account information by setting up the password for the keystore file and the IoTeX address for keystore verification:\n```\nexport VAULT_PASSWORD=password_for_distributor's_keystore_file\nexport VAULT_ADDRESS=distributor's_IoTeX_address\n```\nNote that you need to set up a distributor account and generate the corresponding keystore file beforehand.\n\n3. Specify IoTeX Public API address:\n```\nexport IO_ENDPOINT=Full_Node_IP:API_Port\n```\nIf the distrbution happens on IoTeX mainnet, you can use the MainNet secure endpoint:\n```\napi.iotex.one:443\n```\nIf the distribution happens on IoTeX testnet, you can use the TestNet secure endpoint:\n```\napi.testnet.iotex.one:443\n```\n\n4. Specify smart contract addresses:\n```\nexport MULTISEND_CONTRACT_ADDRESS=multisend_contract_address\nexport HERMES_CONTRACT_ADDRESS=hermes_contract_address\n```\nNote that it is **required** that you have deployed both contracts before starting the distribution service. \nPlease refer to the [instruction](https://docs.iotex.io/#deploy-contract) if you want to know how to deploy a smart contract with ioctl command line tool.\n\n5. You may need to distribute rewards in batches due to the gas limit constraint. To set how many distributions in a batch:\n```\nexport CHUNK_SIZE=distribution_batch_size\n```\n\n6. Build service:\n```\nmake build\n```\n\n7. Before distributing rewards, you may need to claim rewards first by executing the following command:\n```\n./bin/hermes claim DELEGATE\n```\n\n8. Distribute rewards to voters by executing the following command:\n```\n./bin/hermes distribute DELEGATE\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fiotexproject%2Fiotex-hermes","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fiotexproject%2Fiotex-hermes","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fiotexproject%2Fiotex-hermes/lists"}