Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

CB-2Q23-04.3 : sBTC Stacks-Signer Dashboard: RPC-API and UI #877

Open
will-corcoran opened this issue Mar 21, 2023 Discussed in #841 · 11 comments
Open

CB-2Q23-04.3 : sBTC Stacks-Signer Dashboard: RPC-API and UI #877

will-corcoran opened this issue Mar 21, 2023 Discussed in #841 · 11 comments

Comments

@will-corcoran
Copy link
Collaborator

Discussed in #841

Originally posted by will-at-stacks March 17, 2023

Introduction:

sBTC is a SIP-010 fungible token on the Stacks blockchain that can be used in DeFi protocols, NFT marketplaces, DAOs, governance, and several other use-cases. The sBTC Stacks-Signer Dashboard will provide a publicly available overview of all transaction activity related to the role of Stacks-Signers in the sBTC protocol.

Mission Statement:

The purpose of this Critical Bounty is to build a UI that serves as an initial community dashboard for Stacks-Signer activity and an API that allows for other products / dashboards to easily implement this activity stream into their products.

Functionality / Deliverables (shall include, but not be limited to):

  1. RPC-API that communicates between the Bitcoin blockchain and Stacks blockchain and facilitates sBTC Stacks-Signer Management. Functionality supported by this API shall include:
  • Proof of Reserves (identity minimized):
    • Concentration of funds
    • Signer deposits and withdrawals
  • Protocol Governance:
    • Casting votes
    • Propose elections (related to sBTC script security, fee recovery parameters, and Nakamoto release related block production rules)
    • Rust integration:
      — rustfmt, rustc, tests
      — Documentation and publishing to docs.rs
      — Crate publishing to crates.io (see Resource 5 below)
  1. The API will require proper documentation allowing easy implementation.
  2. Additionally, UI will be required to demonstrate the functionality of the API and function as a Stacks-Signer Dashboard.
  3. Product 'roadshow', feedback, and improvements: All recipients will be responsible for demonstrating functionality, championing early adoption, gathering feedback, and making one to two rounds of high-impact, feedback-based improvements.

Future Improvements to include:

  • Zero-Knowledge Proof of Reserves:
  • Including Stacks-Signer identity (zkPublic)

Required Knowledge / Skills:

  • Team should have experience production-grade RPC-APIs using Typescript
  • Team should be familiar with Rust
  • Familiarity with Dune is helpful, but not required

References:

  1. sBTC Whitepaper
  2. Stacks Nakamoto Release Whitepaper
  3. sBTC project dashboard
  4. Clarinet Docs (reference for design system req’d for Typescript applications wrapped within a Rust application)
  5. TM Repo (code & documentation standard)

Critical Bounty Fee:

  • Maximum Fee: $26,000

Reviewers / Advisors:

Igor Sylvester, Core Engineering Lead, Trust Machines
Mike Cohen, EcosystemDAO
Andre Serrano, sBTC Resident and sBTC Go To Market Working Group Lead
Jesse Wiley, Integration and Security Lead, Stacks Foundation
Kenny Rogers, Developer Advocate, Stacks Foundation
Will Corcoran, Grants Lead, Stacks Foundation

Additional Comments:

Recipient will be expected to attend sBTC Core Engineering Working Group calls while the bounty is in development and provide weekly updates.

APPLY HERE


NOTES ABOUT CRITICAL BOUNTIES:

If you have thoughts, questions, or comments on the rough outline for this Critical Bounty above, please comments below.

Please note, all 2023 Q2 Critical Bounties that have funding approved for them will be moved to the Issues page (here) on Tuesday 03/21/2023.

Some procedural items to keep in mind with 2023 Q2 Critical Bounties:

  1. Each Critical Bounty will have a pre-approved minimum and maximum budget listed within the issue.
  2. All applications will be submitted via a BlockSurvey which will be linked within the Issue.
  3. Applications will be open from 03/21/2023 to 04/03/2023.
  4. Critical Bounty applications will be reviewed by relevant members of the sBTC Core Engineering Team and technical staff from the Stacks Foundation.
  5. The selected recipient will be the low, qualified bidder (in the eyes of the reviewers).
  6. Selected Critical Bounty recipients will be announced on 04/07/2023 and will be expected to start work immediately and attend sBTC Core Engineering meetings to provide weekly updates on their work.
@stacks-foundation
Copy link

👋 @will-at-stacks


Thanks for your application! We will do a pre-review and let you know if we have any immediate questions. In the mean time please refer to our review schedule here for a detailed timeline and response dates.


Best,
Will

@will-corcoran will-corcoran changed the title CB-23Q2-04.3 : sBTC Stacks-Signer Dashboard: RPC-API and UI CB-2Q23-04.3 : sBTC Stacks-Signer Dashboard: RPC-API and UI Mar 27, 2023
@will-corcoran
Copy link
Collaborator Author

will-corcoran commented Apr 18, 2023

Congrats on being awarded this Critical Bounty @mijoco for $16.2k

Supplementary funding is also going to @Macxim for UX/UI services for $4,480

Congrats to you both.

More information on this Critical Bounty can be found here

@radicleart
Copy link

Thanks @will-at-stacks.

I've started a plan on this wiki page.

Happy to get feedback on this aspect of reporting.

@igorsyl
Copy link

igorsyl commented Apr 19, 2023

mijoco

@will-at-stacks Mike's GitHub is @radicleart , not @mijoco :)

@radicleart
Copy link

@will-at-stacks moving planning docs from wiki to gitbook as per you previous comment.

Early version published here but I'll be tidying it up over the next day or two.

@will-corcoran
Copy link
Collaborator Author

@radicleart please post your original application for the Critical Bounty here for public awareness.

Thanks,
Will

@radicleart
Copy link

radicleart commented Apr 19, 2023

From the google doc attachment supporting the application.

Bounty Application: Stacks Signer Dashboard

CB-2Q23-04.3 : sBTC Stacks-Signer Dashboard: RPC-API and UI #877

The sBTC Stacks Signers Dashboard is the publicly facing (stacking.club like) dashboard where people and stackers (signing peg out fulfilments) are able to see the big picture of the flows of tokens into and out of the sBTC system. The API functionality proposed will pull sBTC related data from the Stacks and Bitcoin Blockchains and make it available via the sBTC Bridge in a user friendly Dashboard that ultimately demonstrates proof-of-reserve of the sBTC system.

Our goal is to provide open source solutions which can be used directly by community members or cloned and tailored to the needs of other sBTC projects and experiments. We include learning support on sBTC in the form of regular presentations and progress reports to the SIP Community Calls and the sBTC public meetings. We will also work with others to ensure high levels of adoption via support and training on the tools delivered via the Bitcoin Builders Discord channel.

The dashboard and API will integrate with our existing sBTC Bridge Client and API applications and will be closely aligned with the priorities of the code sBTC Engineering project.

Our existing sBTC application is openly available in github;

  • sBTC Bridge
  • sBTC Bridge API

Features

sBTC Bridge API

The sBTC Bridge API will be updated to provide insights on;

  • Stacks signers
    • number of signers
    • breakdown by stacking cycle
  • Proof of Reserve information
    • Concentration of funds
    • Signer deposits and withdrawals
    • tracking totals minted/burned across multiple wallets
  • Use Swagger for API Documentation

sBTC Bridge Client

The UI will be updated to display the above information in appropriate formats with tools for filtering and sorting the information. Tools for graphical display of the information are out of scope for this estimate.

To support DAO like functionality;

  • Propose elections (related to sBTC script security, fee recovery parameters, and Nakamoto release related block production rules)

We will leverage this Foundation Grant awarded last year. Our costs reflect integration with Ecosystem DAO for managing voting on sBTC Protocol Upgrades. Ecosystem DAO has the ability to integrate at the Clarity Smart Contract level - e.g. changing sBTC parameters directly depending on the outcome of dao votes. This level of integration is out of scope for the current Bounty and we will only consider using Ecosystem DAO for advisory voting.

Scope

We’ve reduced the scope of the original bounty specifically to keep the Bridge project aligned with and supportive of the wider efforts of the sBTC Core Engineering projects. We have stripped out features which can be delivered in future bounties by focusing on delivery of functionality that supports the core sBTC release milestones. This will also help to reduce risks around unknowns and open questions within the core project.

The following are candidates for future development;

  1. Zero Knowledge proof of reserves
  2. Graphical display of information
  3. Smart contract level integration with Ecosystem DAO

We are reducing the scope further as we believe the following features as we believe these will be a better fit for CB-2Q23-04.1 : sBTC Stacks-Signer Management Tool UI

  • Rust integration
  • Casting votes

Where casting votes refers to the action of signers sending Bitcoin transactions and is unrelated to DAO like functionality.

Costs

Figures in 8 hour person days at 75 USD per hour.

sBTC Bridge API

  • Stacks signer stats - 8
  • Proof of Reserve information - 8
  • Swagger docs - 1

sBTC Bridge Client

  • Display of (anonymised) stacks signer information - 3
  • Display of proof of reserve data - 4
  • Filtering and sorting - 3

Total 27 days $16,200

@radicleart
Copy link

Development work has started on this. Details are in GitBook.

@radicleart
Copy link

radicleart commented Jul 5, 2023

Update - sBTC Signer Dashboard

5 July

Prelim version of the dashboard now on staging: https://sign.stx.eco

sbtc-signer

In progress

  1. Issue 45 Sets up a public devnet where anyone can access the sBTC contracts as they are developed. Necessary for the Dashboard application but also helpful for the Clarity group and other community members wishing to track sBTC progress. See a description of this work in GitBook

Completed

  1. PR 42 back end and ui work for feature DNS Vouch - allows the owner of a domain to upload testimony of the signers stacks address.
  2. PR 27 Sets up the repos and clones code from the bridge to create a starting point for the dashboard.

Attending signer meeting and opened communication with the Clarity working group to share issues, see GitBook.

@Macxim
Copy link

Macxim commented Jul 5, 2023

In my opinion, this project probably needs its own design as well.
I'm guessing you used the sBTC Bridge design bits for the sake of development and shipping fast but it looks far too similar 😅

@radicleart
Copy link

In my opinion, this project probably needs its own design as well. I'm guessing you used the sBTC Bridge design bits for the sake of development and shipping fast but it looks far too similar 😅

yes of course - just bootstrapping from the bridge app fro speed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

5 participants