Skip to content

Commit

Permalink
Merge pull request #213 from vplasencia/docs/bandada
Browse files Browse the repository at this point in the history
docs: add bandada information
  • Loading branch information
kalidiagne authored Oct 30, 2024
2 parents 3cfe8ae + 77299a9 commit 8c445c1
Show file tree
Hide file tree
Showing 2 changed files with 97 additions and 4 deletions.
5 changes: 4 additions & 1 deletion app/[lang]/layout.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,10 @@ export default function RootLayout({ children, params }: RootLayoutProps) {
`}
</Script>
<head />
<body className={"min-h-screen bg-background antialiased"}>
<body
suppressHydrationWarning
className={"min-h-screen bg-background antialiased"}
>
<div className="relative flex min-h-screen flex-col">
<SiteHeader lang={lang} />
<div className="flex-1">{children}</div>
Expand Down
96 changes: 93 additions & 3 deletions data/projects/bandada.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,58 @@ import { ProjectContent, ProjectInterface, ProjectStatus } from "@/lib/types"

const content: ProjectContent = {
en: {
tldr: "An open-source system for managing privacy-preserving groups of anonymous individuals.",
description: `Bandada is a project designed to simplify the management of privacy-preserving Semaphore groups. It is aimed at developers who want to build privacy-based applications and integrate anonymity sets, as well as non-developers working in DAOs, governments, international institutions, non-profit organizations, and associations that want to create and manage anonymous groups. Bandada offers a plug-and-play infrastructure, reducing the time and complexity required for managing anonymity sets. It enables anonymous signaling, such as voting, messaging, login, or endorsing, in various use cases like private organizations, GitHub repository contributors, and groups of wallets holding a specific NFT.`,
tldr: "An open-source tool for managing privacy-preserving groups of anonymous individuals.",
description: `### Overview
[Bandada](https://bandada.pse.dev/) is a project designed to simplify the management of privacy-preserving groups. It is aimed at developers who want to build privacy-based applications and integrate anonymity sets, as well as non-developers working in DAOs, governments, international institutions, non-profit organizations, and associations that want to create and manage anonymous groups.
Bandada offers a plug-and-play infrastructure, reducing the time and complexity required for managing anonymity sets. It enables anonymous signaling, such as voting, messaging, logging in, or endorsing, in various use cases like private organizations, GitHub repository contributors, and groups of wallets holding a specific NFT.
### Features
- Easily create onchain or offchain anonymous groups with a few clicks using the Bandada Admin Dashboard.
- Decide how members will join, with a unique invitation URL or by proving credentials.
- Select which credentials users will need to prove to join a group (GitHub, Twitter, [EAS](https://attest.org/), Blockchain information, etc.). Multiple credentials using logical operators and parentheses are supported.
- Build your application on top of Bandada, leveraging completely anonymous signals (like votes, endorsements, claims, messages, etc.)
### Background
In Spanish, "Bandada" means "flock" or "group” of birds or animals moving together in a coordinated manner. Groups are an important concept when we speak about privacy and zero-knowledge technologies, they can be thought of as anonymity sets. Credentials are a way to establish necessary trust between a set of participants while letting users keep control over how their identities are stored and used.
Bandada allows you to create groups and establish trust within the participants by ensuring that everyone who joins the group must meet the credential requirements.
### How Does It Work
Bandada consists of a back-end to store the groups and provide the API, two front-ends: the dashboard to manage groups and members and a demo application to allow end-users to join the groups, and the contracts. Additionally, it provides a set of JavaScript libraries to support developers.
The groups are currently binary Merkle trees compatible with the Semaphore protocol, but additional data structures will be integrated in the future. Two types of groups can be created from the dashboard: manual or credential groups. In the former, you can add members by entering IDs directly or by creating invite links, while in the latter you can define credentials that members must prove they have in order to access the group.
Once you create your manual group in the dashboard, you can either create an API key to add or remove members or use the invite codes to add members with the [@bandada/api-sdk](https://github.com/bandada-infra/bandada/tree/main/libs/api-sdk) library. Credential groups can instead be accessed by redirecting users to an appropriate page in the dashboard, Bandada will ask users for permission to fetch their credentials and check if they are eligible.
Bandada also provides a preset of credential validators that can be extended with the [@bandada/credentials](https://github.com/bandada-infra/bandada/tree/main/libs/credentials) library.
### Use Cases
- Group with members who have contributed to a specific GitHub repository.
- “Whitelist” a group of GitHub devs who have contributed to top DAOs' repositories.
- Group of people with more than X followers on Twitter.
- Custom anti-Sybil mechanism.
- Group of people in an organization like DAO, company, etc.
- Unlocking private interactions, such as anonymous feedback, whistleblowing, chat, and voting.
- Groups of wallets holding a specific NFT.
- Token-gated access to content.
`,
},
}

Expand All @@ -15,7 +65,7 @@ export const bandada: ProjectInterface = {
image: "bandada.webp",
name: "Bandada",
links: {
github: "https://github.com/privacy-scaling-explorations/bandada",
github: "https://github.com/bandada-infra/bandada",
website: "https://bandada.pse.dev",
twitter: "https://twitter.com/BandadaDevs",
},
Expand Down Expand Up @@ -43,4 +93,44 @@ export const bandada: ProjectInterface = {
builtWith: ["semaphore", "zk-kit"],
themes: ["build", "play"],
},
extraLinks: {
buildWith: [
{
label: "Bandada API",
url: "https://api.bandada.pse.dev/",
},
{
label: "Bandada API SDK",
url: "https://github.com/bandada-infra/bandada/tree/main/libs/api-sdk",
},
{
label: "Bandada Boilerplate",
url: "https://github.com/bandada-infra/boilerplate",
},
],
play: [
{
label: "Bandada Dashboard",
url: "https://app.bandada.pse.dev/",
},
{
label: "Bandada Boilerplate Live App",
url: "https://demo.bandada.pse.dev/",
},
],
learn: [
{
label: "Bandada Website",
url: "https://bandada.pse.dev/",
},
{
label: "Bandada Documentation",
url: "https://docs.bandada.pse.dev/",
},
{
label: "Bandada Board",
url: "https://github.com/orgs/bandada-infra/projects/1",
},
],
},
}

0 comments on commit 8c445c1

Please sign in to comment.