Near-multicall is a tool that serves DAOs, so we'll start by explaining DAOs first.
DAO stands for Decentralized Autonomous Organization, and is essentially a blockchain account governed by a group of people using rules set by a smart contract. A member can propose to do something, like "Donate 10 $NEAR to charity" or "Buy this NFT for 1 $NEAR". Other DAO members can vote "yes" or "no". If the proposal successfully passes voting, then this is where the true value of DAOs shines: members don't have to trust a person to correctly execute the proposal actions. Instead the smart contract does it, which makes the process trustless.
We put emphasis on code and smart contracts, but luckily you don't have to be a coder to make a DAO, there are projects that allow you to create your own DAO in few clicks: SputnikDAO and AstroDAO are such examples on NEAR protocol.
Near-multicall is a tool for DAOs to create and execute arbitrary actions in one single proposal. Example: a DAO has $USD tokens and wants to buy NFTs, which are listed for $NEAR tokens. Currently the DAO will have to make a proposal for each step:
The DAO members will have to agree and vote 3 times, even though all steps serve one purpose (to buy the NFT). With Near-multicall this can be done in one proposal.
With this test sprint, we'd like to know about bugs or feature suggestions to improve our UX. You can submit feedback here.
Additionally for curious developers: we have a bug bounty on our contracts of up to 100 $NEAR for each critical issue that leads to: stealing or permanent freezing of funds by non-admins, or non-admins triggering any malicious logic on behalf of the contract. Other critical issues can be eligible and will be reviewed on case-by-case basis.
For the purpose of this guide, we'll be using SputnikDAO on testnet:
Get a NEAR testnet wallet: https://wallet.testnet.near.org/
Sign in with the wallet you created:
Click "create new DAO":
Fill out DAO info:
In the above picture:
Click submit and confirm the transaction:
Upon success you'll find your DAO page by modifying the following link to have its address:
https://testnet-v2.sputnik.fund/#/DAO_ADDRESS
for example:
https://testnet-v2.sputnik.fund/#/my-test-dao.sputnikv2.testnet
we'll use the DAO page to create and vote on proposals, so leave it open on a separate browser tab to use it later.
Done! :confetti_ball:
:round_pushpin:Note: If you need assistance with this step, please reach out in LNC Telegram or near-multicall discord
:beetle: Seen any bugs? report HERE
:bulb: Got a suggestion? please use this FORM
go to: https://multicall.app/#/app
enter the DAO address:
Let's use our first card:
fill card information with the following:
Contract address: nusdc.ft-fin.testnet
Function name: mint
Function arguments (!!! replace YOUR_WALLET_ADDRESS):
Allocated gas: choose a number between 7 and 10. (i.e. 7.5 Tgas
)
Attached deposit: 0 yocto
Second card:
So the previous card was for minting tokens, the second card is just a trick for the wallet to display our token balances
Contract address: nusdc.ft-fin.testnet
Function name: ft_transfer
Function arguments (!!! replace YOUR_WALLET_ADDRESS):
Allocated gas: choose a number between 7 and 10. (i.e. 7.5 Tgas
)
Attached deposit: 0 yocto
Mint a second token:
In steps 4 & 5 we worked on cards that will mint $USDC, so now let's do the same for a second token $USDT. The UI has a "clone" feature so we don't repeat the work all over again. On the new cards we just change the address from nusdc.ft-fin.testnet
to nusdt.ft-fin.testnet
Almost done! we just have to propose our multicall to the DAO
go to DAO page and vote yes on the proposal:
Done! Can you see the tokens on your wallet? If you do, congrats, you did it! :confetti_ball:
:beetle: Seen any bugs? report HERE
:bulb: Got a suggestion? please use this FORM
If you made it this far, thank you! We appreciate you taking the time to test our project. You can use this FORM to share your experience, and any general thoughts with us!