-
- Lots of work in the @solana/wallet-adapter-* libs as well as @solana/web3.js and @project-serum/anchor.
- Finished ChessDAO.
- ERC-721 is unique NFTs; ERC-1155 is where multiple accounts can hold the same NFT (not copies of an equivalent NFT). This is great for membership NFTs. Just make one, and all holders are members. More gas efficient than giving everyone the same NFT over and over. This is an “Edition” NFT.
- Thirdweb is great.
- Webapp/UI to deploy contracts. Then you just need to write js in your frontend to interact with them. They provide an sdk and react module.
- Many stock contracts available. NFT drops, governance, marketplaces, more.
- Kinda like metaplex too. Deploy your own nft minting contracts and/or apps, like candy machine. Can even do it all from the UI.
- Don’t need auth. It’s just like calling any contract.
- Simply calls like contract.claim, contract.balanceOf, more. Admin can make similar calls to configure the contract and more.
- Upgraded everything from thirdweb v1 to v2 (js libs and dashboard UI).
- https://testnets.opensea.io/collection/chessdao-edition-drop. Shows stuff like this:

- Created an edition drop, where users can come mint their membership NFT. The contract was deployed with thirdweb. Then the react app just calls it. Very easy.
- Then, based on membership, they can either vote+participate, or choose to join. Standard login fork, but based on NFT holdings, deployed without writing any solidity.
- Created the governance token, CHESS. Added to metamask.
- Minted to myself. Just a standard ERC20. https://rinkeby.etherscan.io/token/0x7F21dC43270EC39c49E0500146309090E15412ea.
- Then airdropped to a few of my other wallets. Did random numbers, but remember this can be any formula that you want.
- Remember locally (for my test scripts) auth is provided by copying my wallet’s private key and a node to communicate with the blockchain is provided via alchemy url. In the webapp, auth is provided by the injected metamask wallet and a node to comm with the blockchain is provided by metamask (which just calls alchemy too, iirc).
- Switched from the js-sdk primitives to the thirdweb react hooks, abstracts a few lines per call (in the app, not the test scripts, of course). These hooks inject the provider and signer and everything, no need to manually manage with thirdweb-dev/sdk.
- Created the vote contract, setting quorum to 0 (just for sandboxing). 6171 blocks (14 seconds apiece) is ~24hr for each proposal to close.
- Delegated and transferred 90% of CHESS to the treasury, the account of the voting contract. Gave it minting rights as well.
- https://rinkeby.etherscan.io/address/0xF1D4a7A6A9F4Cc20e9aCa5Ff61d5f3A1Be3d641C.
- Can allow users to vote via thirdweb UI, or via js-sdk in your app.
- Remove the mint role from your initial creator account. There should be no admin; only the treasury can mint more tokens (and only under certain/deterministic/prespecified conditions).
- Created brave community post to debug missing reward.
- Info found at brave://rewards-internals/
- Removed community topic and submitted ticket through their help center.
- Forge is another equityzen: https://forgeglobal.com/.
- Tokemak.
- Claimed TOKE (remember you have to pay gas for this) rewards from my DAI deposit a couple cycles ago.
- And then you have to stake the TOKE (more gas). This takes ~15min before you can vote (direct liquidity). And of course, you have to pay gas (just once though) to give access to your wallet’s TOKE.
- Then you can finally direct liquidity. This voting transaction is on polygon.