---
# System prepended metadata

title: Sunshine 3rd Milestone Amendment

---

# Sunshine 3rd Milestone Amendment

We've made lots of progress on the Sunshine DAO Chain, but much of this progress falls outside of the scope of our Web3 grant. That's 100% my fault (Amar) -- I set ambitious high level goals to push myself to meet them without fully understanding all of the necessary intermediate steps.

## Current 3rd Milestone

1. implementation of vote, bank, court, and bounty pallets
2. runtime with pallets configured to support sunshine instances 
3. command line tool for testing the runtime on a live node
4. Flutter demo  UI that uses the runtime to operate and govern an on-chain RFP system

## Proposed 3rd Milestone

1. implementation of org, vote, bank, court, bounty pallets with runtime and node
2. Rust client for calling the node using substrate-subxt
3. CLI demonstrating runtime functionality with a live node
4. Flutter demo  UI that uses `sunshine-identity` to prove ownership of github identities for accounts

## Why

I was naive and/or overly ambitious about the Rust-Dart FFI work required for our native Flutter interface. Instead of relying on polkadot-js bindings, our Flutter developer (Shady) is testing, debugging, and refining the bindings between our Rust client and Flutter interface.

He just finished a minimal working version of a subset of our UI that works with sunshine-identity (#4 of Proposed 3rd Milestone).

### Why

I know some of these decisions might be hard to understand from an outside perspective. I'm more than happy to explain the logic behind our decision-making to the Web3 Grants Council (for using sunshine-identity, choosing a native Flutter interface, or anything else).

To oversimplify the problem, our technical choices are motivated by an understanding that device-based key management will require native applications that easily support [key rotation](https://crypto.stackexchange.com/questions/41796/whats-the-purpose-of-key-rotation). That's why we have a native keystore and use it to implement Keybase's [Local Key Security](https://book.keybase.io/docs/crypto/local-key-security) protocol (in sunshine-identity).