{"id":20030798,"url":"https://github.com/generationsoftware/pooltogether-client-monorepo","last_synced_at":"2026-02-03T08:32:27.230Z","repository":{"id":176948303,"uuid":"659401837","full_name":"GenerationSoftware/pooltogether-client-monorepo","owner":"GenerationSoftware","description":"Apps and packages for the PoolTogether Hyperstructure.","archived":false,"fork":false,"pushed_at":"2025-11-04T21:43:59.000Z","size":14355,"stargazers_count":18,"open_issues_count":10,"forks_count":24,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-11-04T23:24:39.114Z","etag":null,"topics":["defi","ethereum","flowbite","nextjs","optimism","pooltogether","rainbowkit","react","tailwind","tailwindcss","turborepo","typescript","viem","wagmi","web3"],"latest_commit_sha":null,"homepage":"https://cabana.fi","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/GenerationSoftware.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":"funding.json","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{}},"created_at":"2023-06-27T18:54:31.000Z","updated_at":"2025-11-04T21:44:03.000Z","dependencies_parsed_at":"2023-10-15T19:18:35.778Z","dependency_job_id":"20d830f6-84ef-4ef2-bfe6-170c08989546","html_url":"https://github.com/GenerationSoftware/pooltogether-client-monorepo","commit_stats":null,"previous_names":["generationsoftware/pooltogether-client-monorepo"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/GenerationSoftware/pooltogether-client-monorepo","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GenerationSoftware%2Fpooltogether-client-monorepo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GenerationSoftware%2Fpooltogether-client-monorepo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GenerationSoftware%2Fpooltogether-client-monorepo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GenerationSoftware%2Fpooltogether-client-monorepo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/GenerationSoftware","download_url":"https://codeload.github.com/GenerationSoftware/pooltogether-client-monorepo/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GenerationSoftware%2Fpooltogether-client-monorepo/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29038578,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-03T06:39:36.383Z","status":"ssl_error","status_checked_at":"2026-02-03T06:39:32.787Z","response_time":96,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["defi","ethereum","flowbite","nextjs","optimism","pooltogether","rainbowkit","react","tailwind","tailwindcss","turborepo","typescript","viem","wagmi","web3"],"created_at":"2024-11-13T09:28:21.325Z","updated_at":"2026-02-03T08:32:27.203Z","avatar_url":"https://github.com/GenerationSoftware.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/pooltogether/pooltogether--brand-assets\"\u003e\n    \u003cimg src=\"https://github.com/pooltogether/pooltogether--brand-assets/blob/977e03604c49c63314450b5d432fe57d34747c66/logo/pooltogether-logo--purple-gradient.png?raw=true\" alt=\"PoolTogether Brand\" style=\"max-width:100%;\" width=\"200\"\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n\u003cbr /\u003e\n\n# 💻 \u0026nbsp; PoolTogether Client Monorepo\n\nThis monorepo includes many of PoolTogether's apps and packages in order to facilitate code sharing and maintainability.\n\n## 💾 \u0026nbsp; Installation\n\nMake sure you have [pnpm](https://pnpm.io/) installed, as it is the package manager used throughout this monorepo.\n\n`pnpm i`\n\n## 🏎️ \u0026nbsp; Quickstart\n\n### Development\n\n`pnpm dev`\n\nEach app is already setup with its own port through its `package.json` dev script.\n\n---\n\n### Apps\n\n- `app`: App w/ core PoolTogether Hyperstructure functionality.\n- `landing-page`: Landing page for the many interfaces in this monorepo.\n- `vault-factory`: App to create and manage 4626 vaults.\n- `vaultlist-creator`: App to create, edit and distribute vault lists.\n- `analytics`: App to visualize analytics and general health metrics of the PoolTogether protocol.\n- `swaps`: Simple app to guide users to swap into PoolTogether vaults.\n- `rewards-builder`: App to create and manage TWAB reward promotions for any prize vault.\n- `flash-liquidator`: App to flash liquidate yield from any PoolTogether liquidation pair linked to a prize vault.\n- `migrations`: App to facilitate migrations from old protocol versions.\n- `incentives`: App to present the protocol's many onchain and offchain incentives for contributors.\n\nAll apps above are [Next.js](https://nextjs.org/) apps with [Tailwind CSS](https://tailwindcss.com/) support, written in [TypeScript](https://www.typescriptlang.org/).\n\n**Repo Links:** [App](https://github.com/GenerationSoftware/pooltogether-client-monorepo/tree/main/apps/app) | [Landing Page](https://github.com/GenerationSoftware/pooltogether-client-monorepo/tree/main/apps/landing-page) | [Vault Factory](https://github.com/GenerationSoftware/pooltogether-client-monorepo/tree/main/apps/vault-factory) | [VaultList Creator](https://github.com/GenerationSoftware/pooltogether-client-monorepo/tree/main/apps/vaultlist-creator) | [Analytics](https://github.com/GenerationSoftware/pooltogether-client-monorepo/tree/main/apps/analytics) | [Swaps](https://github.com/GenerationSoftware/pooltogether-client-monorepo/tree/main/apps/swaps) | [Rewards Builder](https://github.com/GenerationSoftware/pooltogether-client-monorepo/tree/main/apps/rewards-builder) | [Flash Liquidator](https://github.com/GenerationSoftware/pooltogether-client-monorepo/tree/main/apps/flash-liquidator) | [Migrations](https://github.com/GenerationSoftware/pooltogether-client-monorepo/tree/main/apps/migrations) | [Incentives](https://github.com/GenerationSoftware/pooltogether-client-monorepo/tree/main/apps/incentives)\n\n---\n\n### Packages\n\n- `hyperstructure-client-js`: Protocol-specific functions to easily interact with onchain Hyperstructure data, using [Viem](https://viem.sh/).\n- `hyperstructure-react-hooks`: Shared React hooks specific to Hyperstructure functionality, using [WAGMI](https://wagmi.sh/).\n\nPrize pool and auxiliary contract addresses are included in the `hyperstructure-client-js` package. If you'd like to use older protocol deployments, refer to the versions below:\n\n- Current:\n  - `hyperstructure-client-js@latest`\n  - `hyperstructure-react-hooks@latest`\n- Canary (Optimism):\n  - `hyperstructure-client-js@1.9.0`\n  - `hyperstructure-react-hooks@1.14.5`\n- Beta (Optimism):\n  - `hyperstructure-client-js@1.2.8`\n  - `hyperstructure-react-hooks@1.4.10`\n\n**Repo Links:** [Hyperstructure Client JS](https://github.com/GenerationSoftware/pooltogether-client-monorepo/tree/main/packages/hyperstructure-client-js) | [Hyperstructure React Hooks](https://github.com/GenerationSoftware/pooltogether-client-monorepo/tree/main/packages/hyperstructure-react-hooks)\n\n---\n\n### Shared Library\n\n- `config`: Shared config for TypeScript, [Tailwind](https://tailwindcss.com/), etc.\n- `generic-react-hooks`: Shared React hooks.\n- `react-components`: React component library utilizing some simpler components from `ui`, using [WAGMI](https://wagmi.sh/).\n- `types`: Shared Typescript types.\n- `ui`: Stub React component library with [Tailwind](https://tailwindcss.com/) used throughout many apps, using [Flowbite](https://flowbite-react.com/).\n- `utilities`: Shared Typescript utilities.\n\nThe dependencies for these libraries are picked up from the root `package.json` file of the monorepo!\n\n**Repo Links:** [Config](https://github.com/GenerationSoftware/pooltogether-client-monorepo/tree/main/shared/config) | [Generic React Hooks](https://github.com/GenerationSoftware/pooltogether-client-monorepo/tree/main/shared/generic-react-hooks) | [React Components](https://github.com/GenerationSoftware/pooltogether-client-monorepo/tree/main/shared/react-components) | [Types](https://github.com/GenerationSoftware/pooltogether-client-monorepo/tree/main/shared/types) | [UI](https://github.com/GenerationSoftware/pooltogether-client-monorepo/tree/main/shared/ui) | [Utilities](https://github.com/GenerationSoftware/pooltogether-client-monorepo/tree/main/shared/utilities)\n\n---\n\n### Workers\n\n- `protocol-stats-worker`: Caching basic stats about the PoolTogether protocol.\n- `token-prices-worker`: Caching token prices.\n- `wallet-stats-worker`: Caching basic stats regarding wallet software usage (metamask, rainbow, etc.).\n\n**Repo Links:** [Protocol Stats](https://github.com/GenerationSoftware/pooltogether-client-monorepo/tree/main/workers/protocol-stats-worker) | [Token Prices](https://github.com/GenerationSoftware/pooltogether-client-monorepo/tree/main/workers/token-prices-worker) | [Wallet Stats](https://github.com/GenerationSoftware/pooltogether-client-monorepo/tree/main/workers/wallet-stats-worker)\n\n---\n\n### Utilities\n\nThis Turborepo has some additional tools already setup:\n\n- [Tailwind CSS](https://tailwindcss.com/) for styles\n- [TypeScript](https://www.typescriptlang.org/) for static type checking\n- [Prettier](https://prettier.io) for code formatting\n\n---\n\n### Adding New Network\n\n1. Update `shared/utilities/constants.ts` with values and addresses for the new network.\n2. Update `shared/utilities/utils/networks.ts` with values for the new network.\n3. Update `shared/react-components/constants.ts` with values for the new network.\n4. Update `shared/react-components/components/Icons/NetworkIcon.tsx` with a logo for the new network.\n5. Update `packages/hyperstructure-react-hooks/src/blockchain/useClients.ts` with the new network.\n6. Update the `config.ts`, `wrangler.toml` and `wrangler.example.toml` files for any worker you want to use this new network on.\n7. Update the `config.ts`, `.env` and `.env.example` files for any app you want to use this new network on.\n\n---\n\n### Wallet Support\n\nWant your wallet in any of our apps? We rely on [RainbowKit](https://www.rainbowkit.com/) and [WAGMI](https://wagmi.sh) for wallet connection. If you have a suitable [wallet connector](https://github.com/rainbow-me/rainbowkit/tree/main/packages/rainbowkit/src/wallets/walletConnectors) we can add your wallet and give you a custom link to highlight your wallet for your users.\n\nAppend `?wallet=\u003cwallet key\u003e` to any app's links to highlight your wallet. Keys are visible on each app's `config.ts` file. Example: [App Config](https://github.com/GenerationSoftware/pooltogether-client-monorepo/blob/main/apps/app/src/constants/config.ts).\n\n---\n\n### Known Issues / Fixes\n\nWhen adding/updating apps and/or packages, duplicate dependencies may be created, creating versioning issues. This can be resolved through running `pnpm up -r` as described [here](https://github.com/pnpm/pnpm/issues/2443), or just looking through `pnpm-lock.yaml` to identify version discrepancies.\n\nThe biggest culprit of the above is `@tanstack/react-query`, which sometimes is installed as two different versions and apps can no longer utilize hooks from the hooks package. This has been solved through the method described [here](https://github.com/TanStack/query/issues/3595#issuecomment-1248074333).\n\nIf editing component themes in `ui`, having the `Tailwind CSS IntelliSense` plugin for VSCode is recommended. In order to enable it for custom Flowbite themes and string class names, add `theme` and `.*ClassName*` to the `Class Attributes` setting.\n\nCurrently, `lottie-react` has some SSR issues in Node v22 as seen [here](https://github.com/Gamote/lottie-react/issues/101). Downgrading your node version to v18 resolves this issue.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgenerationsoftware%2Fpooltogether-client-monorepo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgenerationsoftware%2Fpooltogether-client-monorepo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgenerationsoftware%2Fpooltogether-client-monorepo/lists"}