Skip to content

Latest commit

 

History

History
226 lines (169 loc) · 8.4 KB

README.md

File metadata and controls

226 lines (169 loc) · 8.4 KB

Logo

Stellar Asset Sandbox

Brought to you by Cheesecake Labs and proudly supported by the Stellar Development Foundation, this sandbox is your gateway to enterprise-grade token management. Dive deep into the core functionalities of the Stellar network, specifically tailored for asset issuance.

Stellar Asset Sandbox is composed by:

  • Postgres: relational database
  • Apache Kafka: Distributed event store
  • UI for Apache Kafka: open-source web UI to monitor and manage Apache Kafka clusters
  • Frontend: Frontend service - React Web application
  • Backend: Backend service - Go
  • Starlabs: Starlabs service (git submodule) - Go
  • KMS: Stellar KMS service (git sobmodule) - Go

Topics

Getting started

Requirements

Docker Desktop Recommendations

To run this project, there are some recommendations about the Docker Desktop resources configuration. You can find how to edit the resources settings here.

  • CPUs: 4
  • Memory: 8GB

Git Submodules

This project is using Git Submodules, that allow to keep a Git repository as a subdirectory of another Git repository. Currently, there is one submodule used in this project:

Pull

git submodule init
git submodule update

Upgrade to latest version

git submodule update --remote
git add .
git commit -m "Upgrade to latest version"

Upgrade to specific version

cd packages/starlabs
git checkout <version>      
git add .
git commit -m "Upgrade to specific version"

Running application locally

To start all the applications locally, follow these steps:

1. To change and override pre-defined environment variables, you can create a .env file in the KEY=VALUE pair format in the backend directory, so Docker can pass these environment variables to the running applications. Check the .env.example to see available environment variables.

2. Build and up the Starlabs, KMS, and Postgresql from the dockerfile in the project root folder:

$ docker-compose -f dev.docker-compose.yml --profile starlabs build
$ docker-compose -f dev.docker-compose.yml --profile starlabs up

3. Run the backend from the backend folder:

$ go run .

4. Run the frontend from the frontend folder:

$ make start_dev

5. Create the sponsor wallet (This must be the first wallet created in the database, necessarily with ID 1):

$ POST http://127.0.0.1:8080/v1/wallets
$ Body: 
    {
      "type" : "sponsor"
    }

6. Fund the sponsor wallet:

$ POST http://127.0.0.1:8080/v1/wallets/fund
$ Body: 
    {
      "id" : 1
    }

Features

Role-based Access and Custody

The Stellar Asset Issuance Sandbox automates the management of all accounts and wallets involved in the process of asset creation and treasury management. Users register with their email addresses and are granted access to specific platform features based on their assigned roles and permissions.

Admins: Have the authority to customize permissions and create new roles to fit different operational needs.

Default Roles: The platform comes with predefined roles such as Asset Manager and Treasurer, each with its set of permissions.

This role-based system is designed to demonstrate the various operational structures an asset issuance platform can adopt, serving as an educational example for enterprise solutions.

Token Management in the Sandbox

The Stellar Asset Issuance Sandbox provides a comprehensive suite of tools for token management, allowing Asset Managers to tailor tokens to specific needs and operational structures:

Token Creation: Design tokens with distinct profiles and characteristics, ensuring they align with your business objectives or experimental goals.

Supply Management: Adjust the supply of your tokens with ease, whether you need to mint new tokens or burn existing ones.

Distribution: Seamlessly distribute tokens to vaults within the platform or to external Stellar accounts, facilitating a wide range of transactional scenarios.

Access Control: Manage who can access and interact with your tokens. Define and enforce permissions, ensuring that only authorized entities can perform specific actions.

With these features, the sandbox offers a hands-on experience in managing tokens on the Stellar network, demonstrating the flexibility and potential of the platform.

Treasury Management in the Sandbox

The Stellar Asset Issuance Sandbox introduces a robust treasury management system, empowering treasurers with the tools they need to efficiently handle assets:

Vault Creation: Treasurers can establish vaults, which serve as abstract representations of Stellar accounts within the platform.

Token Allocation: Define which tokens a vault can hold, ensuring compatibility and alignment with operational needs.

Fund Transfers: Vaults have the capability to send and receive funds, facilitating transactions both with other vaults on the platform and with external Stellar accounts.

Transaction History: Every transaction made by a vault is meticulously recorded. Treasurers can easily track and review the history of transactions, ensuring transparency and accountability. Through these features, the sandbox provides a practical understanding of how treasuries can be managed on the Stellar network, showcasing the network's adaptability for diverse financial operations.

Dashboards: Insights at Your Fingertips

The Stellar Asset Issuance Sandbox equips users with comprehensive dashboards that illuminate both the overarching activity within the platform and the intricate details of individual tokens.

Gain a bird's-eye view with insights into the overall transactions and usage of the sandbox. These visual representations capture trends, peaks, and patterns in asset transactions, offering a snapshot of the broader dynamics at play. For those seeking a deeper dive, the platform provides asset-specific charts that shed light on the performance and utilization of each token created within the sandbox. Users can explore metrics such as transaction volume, top holders, and the current supply of each token, tracking any mints or burns to understand supply dynamics over time.

With the Stellar Asset Issuance Sandbox dashboards, users are empowered to make informed decisions, monitor the repercussions of their actions, and delve into the Stellar network's prowess in asset management.

Soroban: The Next Evolution (Coming Soon)

Prepare to unlock a new dimension of possibilities with the Stellar network. We're excited to announce that the Stellar Asset Issuance Sandbox will soon integrate features powered by Soroban, Stellar's upcoming smart contracts platform.

Soroban promises to revolutionize the Stellar ecosystem by introducing enhanced programmability, paving the way for more intricate and diverse use cases to be constructed. With this integration, users will be able to explore and experiment with the advanced functionalities that smart contracts bring to the table, further expanding the horizons of what's achievable on the Stellar network.

Stay tuned for this transformative update, as we continue our commitment to providing the best educational and experimental platform for Stellar enthusiasts and professionals alike.