Connecting MetaMask

In order to donate to the cause, we recommend installing and setting up a Web3 wallet, for example MetaMask. You can find more information on how to do this here.

Once setup, make sure your wallet is funded with ETH and connected to the Ethereum Mainnet.

Screenshot 2022-03-08 at 19.55.54.png

When visiting the website, standwithukraine.one, click on the “donate” button. You will be redirected to mint.standwithukraine.one, and prompted to connect your MetaMask wallet.

Screenshot 2022-03-08 at 20.00.02.png

Donating and minting

Once your MetaMask is connected, you will be able to select your donation amount, and click on “mint”. The minimum donation amount is set to 0.05 ETH.

Screenshot 2022-03-08 at 20.04.56.png

It may take a few minutes for the transaction to be confirmed once you send it. Once validated, you can reload the website to view a new section called "Editions owned by you." Each item in that area will take you to an NFT marketplace called OpenSea.

Screen Recording 2022-03-08 at 20.06.22.mov

Contract Verification

Etherscan is a Block Explorer and Analytics Platform for Ethereum, a decentralised smart contracts platform. The SWU contract is verified on Etherscan and available below:

https://etherscan.io/address/0xef812fcE725C59dAEfcB3Bba223f9Fd93F24AF2b#code#F1#L26

Project Hope, World Central Kitchen, and Food For Life Hungary are three of the charities with which we have partnered. Their Ethereum addresses, as well as their contract shares, have been hardcoded. A smart contract is immutable once it is put on the blockchain.

Screenshot 2022-03-08 at 19.49.24.png

The SWU contract extends the PaymentSplitter contract. This allows to split Ether payments among a group of accounts. The sender does not need to be aware that the Ether will be split in this way, since it is handled transparently by the contract.

The split can be in equal parts or in any other arbitrary proportion. The way this is specified is by assigning each account to a number of shares. Of all the Ether that this contract receives, each account will then be able to claim an amount proportional to the percentage of total shares they were assigned.

PaymentSplitter follows a pull payment model. This means that payments are not automatically forwarded to the accounts but kept in this contract, and the actual transfer is triggered as a separate step by calling the [release](<https://docs.openzeppelin.com/contracts/2.x/api/payment#PaymentSplitter-release-address-payable->) function. Note that this function can be called by anyone at anytime.