Implementation Details

......

Communication flow

With Solana, a smart contract (or program) is read-only or stateless and contains just program logic. We wrote our smart contract in Rust. After deployment, our smart contracts can be interacted with by external accounts. The accounts that interact with the programs store all the necessary data, such as fundraising campaigns, donations, and so on.

On our decentralized application side, we use a JSON RPC API from Solana to interact with the Solana blockchain. As a consequence, our decentralized app can now both interact with smart contracts and wallets on Solana blockchain.

Phantom is a wallet and browser extension that can be used to manage digital assets and access decentralized applications on the Solana blockchain. Phantom extension in browsers such as Chrome, FireFox, and Edge injects a solana object into the javascript context so that our app can manipulate it to trigger transactions and sign transactions on behalf of users.