On-chain, non-transferrable badges for rewarding GitHub contributions.
Renoun is a project inspired by the work of @achalvs which allows for automatic minting of non-transferrable tokens on Ethereum based chains.
I've deployed the contracts on Optimism for free use, and for demonstration purposes. Feel free to open a Pull Request to this repository to test out the minting!
Check out tokenURI()
for _tokenIds
4 and above (the renderer was broken before then).
First, clone this repository using
git clone https://github.com/Jon-Becker/renoun.git .
Deploy both the BadgeRenderer.sol
and renoun.sol
contracts onto your chain of choice. The renderer contract is very large, 10kb+, so I recommend deploying on a L2.
On your repository of choice, set up 3 GitHub Secrets
PRIVATE_KEY
- which stores the private key of the deploying addressRPC_URL
- which stores the full RPC url of your web3 providerDEPLOYMENT_ADDRESS
- which stores the deployment address of renoun.sol
Copy src/scripts
and src/json
to your repository, and create a GitHub action with the script from mint_token.yml
.
Edit the chain ID on line 60 of main.py
Profit.
In order for the GitHub action to work properly, the Pull Request must be closed and merged. It must also contain a 20 byte Ethereum address, which main.py
will extract from the pull request and mint the token to.
For a full demo, you can check out Pull Request #3