Skip to content

The Smart Contract of the Spherre Protocol

License

Notifications You must be signed in to change notification settings

gelluisaac/spherre

 
 

Repository files navigation

Spherre: A Decentralized Multisig Treasury Solution for StarkNet

Spherre is a decentralized multisignature (multisig) treasury solution built for the StarkNet ecosystem. It enables teams, individuals, and organizations to securely manage digital assets with collective control, transparency, and robust on-chain governance.


Table of Contents


Features

  • Multisig Treasury: Require multiple approvals for transactions, reducing single points of failure.
  • Role-Based Access: Assign roles and permissions to different participants.
  • On-chain Governance: Propose, approve, and execute treasury actions transparently.
  • Modular & Extensible: Easily integrate with other StarkNet protocols and dApps.
  • Auditable: All actions are recorded on-chain for full transparency.

Architecture

  • Cairo Smart Contracts: Core logic implemented in Cairo, deployed on StarkNet.
  • TypeScript Scripts: Utilities for deployment, interaction, and testing.
  • Automated Testing: Uses Starknet Foundry for contract testing.
  • Continuous Integration: GitHub Actions for linting, testing, and formatting.

Getting Started

Prerequisites

Installation

  1. Clone the repository:

    git clone https://github.com/Spherre-Labs/spherre.git
    cd spherre
  2. Install Cairo dependencies:

    curl --proto '=https' --tlsv1.2 -sSf https://docs.swmansion.com/scarb/install.sh | sh
    scarb --version
  3. Install Starknet Foundry:

    curl -L https://raw.githubusercontent.com/foundry-rs/starknet-foundry/master/scripts/install.sh | sh
    snforge --version
  4. Install Node.js dependencies:

    npm install

Development

Useful Commands

  • Format Cairo code:
    scarb fmt
  • Compile contracts:
    scarb build
  • Run Deployment scripts:
    yarn deploy

Testing

  • Run all tests:

    scarb test
  • Check formatting:

    scarb fmt --check

Deployment

  1. Configure environment variables:
    Copy .env.example to .env and fill in the required values.

  2. Deploy contracts:

    yarn deploy
  3. Clear deployments (if needed):

    yarn deploy:clear

Contributing

We welcome contributions! Please read our CONTRIBUTING.md for guidelines on:

  • Setting up your development environment
  • Making changes and following the style guide
  • Running tests and formatting code
  • Submitting pull requests

Please also review our Code of Conduct.


License

This project is licensed under the terms of the MIT License.


Community

  • Issues: GitHub Issues
  • Discussions: Open a discussion or reach out to the maintainers.

About

The Smart Contract of the Spherre Protocol

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Cairo 72.1%
  • TypeScript 27.6%
  • Other 0.3%