Skip to content

Commit

Permalink
docs: add bandada information
Browse files Browse the repository at this point in the history
  • Loading branch information
vplasencia committed Oct 28, 2024
1 parent e7bfe71 commit 5b10c91
Show file tree
Hide file tree
Showing 4 changed files with 6,388 additions and 5 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
1 change: 0 additions & 1 deletion components/project/project-result-bar.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,6 @@ export const ProjectResultBar = ({ lang }: LangProps["params"]) => {
}
)


const projectSortItems: { label: string; value: ProjectSortBy }[] = [
{ label: t("filterOptions.random"), value: "random" },
{ label: t("filterOptions.asc"), value: "asc" },
Expand Down
92 changes: 89 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,40 @@ 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: "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/",
},
],
},
}
Loading

0 comments on commit 5b10c91

Please sign in to comment.