{"id":13572796,"url":"https://github.com/consensusnetworks/casimir","last_synced_at":"2026-01-16T19:36:03.989Z","repository":{"id":38018860,"uuid":"460934459","full_name":"consensusnetworks/casimir","owner":"consensusnetworks","description":"🌊 Decentralized staking and asset management","archived":false,"fork":false,"pushed_at":"2024-02-12T22:07:01.000Z","size":102600,"stargazers_count":6,"open_issues_count":36,"forks_count":3,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-04-04T11:36:52.124Z","etag":null,"topics":["self-custody","staking"],"latest_commit_sha":null,"homepage":"https://casimir.co","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/consensusnetworks.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"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}},"created_at":"2022-02-18T16:55:26.000Z","updated_at":"2023-11-29T23:40:16.000Z","dependencies_parsed_at":"2023-09-21T22:29:18.463Z","dependency_job_id":"c0f64b1a-ce58-42f6-b025-f73edb28c4d7","html_url":"https://github.com/consensusnetworks/casimir","commit_stats":null,"previous_names":[],"tags_count":8,"template":false,"template_full_name":null,"purl":"pkg:github/consensusnetworks/casimir","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/consensusnetworks%2Fcasimir","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/consensusnetworks%2Fcasimir/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/consensusnetworks%2Fcasimir/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/consensusnetworks%2Fcasimir/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/consensusnetworks","download_url":"https://codeload.github.com/consensusnetworks/casimir/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/consensusnetworks%2Fcasimir/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28481887,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-16T11:59:17.896Z","status":"ssl_error","status_checked_at":"2026-01-16T11:55:55.838Z","response_time":107,"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":["self-custody","staking"],"created_at":"2024-08-01T15:00:20.113Z","updated_at":"2026-01-16T19:36:03.961Z","avatar_url":"https://github.com/consensusnetworks.png","language":"TypeScript","funding_links":[],"categories":["SSV projects \u0026 resources"],"sub_categories":["Staking services"],"readme":"\u003cimg width=\"50px\" alt=\"Casimir logo\" src=\"casimir.png\"\u003e\n\n# Casimir\n\n[![GitHub discussions](https://img.shields.io/github/discussions/consensusnetworks/casimir)](https://github.com/consensusnetworks/casimir/discussions)\n[![GitHub issues](https://img.shields.io/github/issues/consensusnetworks/casimir)](https://github.com/consensusnetworks/casimir/issues)\n[![GitHub milestones](https://img.shields.io/github/milestones/all/consensusnetworks/casimir)](https://github.com/consensusnetworks/casimir/milestones)\n[![Discord](https://img.shields.io/discord/976524855279226880?logo=discord)](https://discord.com/invite/Vy2b3gSZx8)\n\n\u003e Decentralized staking and asset management\n\n- [About](#about)\n- [Development](#development)\n  - [Prerequisites](#prerequisites)\n  - [Setup](#setup)\n  - [Configure](#configure)\n    - [Environment Variables](#environment-variables)\n  - [Apps](#apps)\n    - [@casimir/app](#casimirapp)\n    - [@casimir/www](#casimirwww)\n  - [Contracts](#contracts)\n    - [@casimir/ethereum](#casimirethereum)\n  - [Common](#common)\n  - [Infrastructure](#infrastructure)\n    - [@casimir/cdk](#casimircdk)\n  - [Services](#services)\n- [Layout](#layout)\n- [License](#license)\n\n## About\n\nCasimir is a complete platform that allows users to monitor, move, and stake their assets while holding their own keys. With Casimir staking, users can easily and securely move funds in and out of decentralized staking pools that are operated by high-performing validators.\n\n## Development\n\nGet started contributing to Casimir's codebase.\n\n### Prerequisites\n\nConfigure the following prerequisite global dependency versions:\n\n1. [Git (v2.x)](https://git-scm.com/downloads).\n\n    \u003e 🚩 **GitHub submodule support:** You also need to make sure to have at least one SSH authentication key on your GitHub account (for the git cloning of submodules within submodules). See [Adding a new SSH key to your GitHub account](https://docs.github.com/en/authentication/connecting-to-github-with-ssh/adding-a-new-ssh-key-to-your-github-account).\n\n2. [Docker (v24.x)](https://docs.docker.com/engine/install).\n\n3. [Go (v1.20.x)](https://golang.org/doc/install).\n\n4. [Node.js (LTS)](https://nodejs.org/en/download).\n\n    \u003e 🚩 **Using NVM**: Install [NVM](https://github.com/nvm-sh/nvm?tab=readme-ov-file#installing-and-updating) and run `nvm install --lts \u0026\u0026 nvm alias default lts/*` to set the default version to the latest LTS. You will need to rerun this command whenever the latest LTS changes.\n\n5. [AWS CLI (v2.x)](https://aws.amazon.com/cli).\n\n    \u003e 🚩 **Consensus Networks team only**: Create an [AWS profile](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html) named `consensus-networks-dev`.\n\n### Setup\n\nClone the repository and checkout a new branch from develop:\n\n  ```zsh\n  git clone https://github.com/consensusnetworks/casimir.git\n  cd casimir\n  git checkout -b \u003c\"feature || bug || enhancement\"\u003e/\u003c\"your-branch-name\" develop\n  ```\n\nWe are using [npm workspaces](https://docs.npmjs.com/cli/v8/using-npm/workspaces) to simplify monorepo development workflows while keeping project-wide resources accessible. The core commands are below.\n\nInstall all repository dependencies and build necessary types:\n\n  ```zsh\n  npm install\n  ```\n\nClean all repository dependencies and reinstall:\n\n  ```zsh\n  npm run clean\n  ```\n\nInstall a dev dependency to the root:\n\n  ```zsh\n  npm install -D some-dev-dependency\n  ```\n\nInstall a dependency or dev dependency to a specific workspace:\n\n  ```zsh\n  # dependency\n  npm install some-dependency --workspace @casimir/\u003c\"workspace-name\"\u003e\n\n  # dev dependency\n  npm install -D some-dev-dependency --workspace @casimir/\u003c\"workspace-name\"\u003e\n  ```\n\n### Configure\n\nCustomize and override the development environment configuration by creating a [.env](.env) file in the root directory.\n\n**If you are on the Consensus Networks organization**, make sure your AWS CLI and profile are configured correctly. By default, the scripts look for the `consensus-networks-dev` named profile, but you can override the `AWS_PROFILE` name to be used in the [.env](.env) file. Optionally, override the `AWS_PROFILE` name in your [.env](.env) file:\n\n  ```zsh\n  # From the root directory\n  echo \"AWS_PROFILE=\u003c\"your-aws-profile-name\"\u003e\" \u003e .env\n  ```\n\n**If you are outside of the Consensus Networks organization**, set `USE_SECRETS` to `false` in your [.env](.env) file:\n\n  ```zsh\n  # From the root directory\n  echo \"USE_SECRETS=false\" \u003e .env\n  ```\n\n#### Environment Variables\n\n| Name | Description | Default |\n| - | - | - |\n| `USE_SECRETS` | Whether to use AWS secrets (set false for external access) | `true` |\n| `AWS_PROFILE` | AWS profile name for accessing secrets | `consensus-networks-dev` |\n| `PROJECT` | Project name | `casimir` |\n| `STAGE` | Environment stage name (`prod || dev || local`) | `local` |\n| `ETHEREUM_FORK_BLOCK` | Starting block number for local fork network | (current block) |\n| `ETHEREUM_RPC_URL` | Ethereum RPC network URL | `http://127.0.0.1:8545` |\n| `NETWORK` | Network name (`mainnet || testnet || hardhat || localhost`) | `localhost` |\n| `FORK` | Fork network name (`mainnet || testnet || hardhat`) | `testnet` |\n| `FACTORY_ADDRESS` | Base factory contract address | (predicted factory address) |\n| `CRYPTO_COMPARE_API_KEY` | CryptoCompare API key | `` |\n| `TUNNEL` | Whether to tunnel local network RPC URLs (for remote wallets) | `false` |\n| `MOCK_SERVICES` | Whether to mock backend services | `true` |\n| `BUILD_PREVIEW` | Whether to preview web app production build | `false` |\n\n### Apps\n\nThe apps packages provide a UI to end-users.\n\n#### @casimir/app\n\nRun the main web app with an integrated development environment, including local contracts and services:\n\n  ```zsh\n  # From the root directory\n  npm run dev\n  ```\n\nSee the [@casimir/app README.md](apps/app/README.md) for detailed documentation.\n\n#### @casimir/www\n\nRun the landing page app:\n\n  ```zsh\n  # From the root directory\n  npm run dev:www\n  ```\n\nSee the [@casimir/www README.md](apps/www/README.md) for detailed documentation.\n\n### Contracts\n\nThe contracts packages provide the smart contracts for the project.\n\n#### @casimir/ethereum\n\nTest the Ethereum contracts:\n\n  ```zsh\n  # From the root directory\n  npm run test --workspace @casimir/ethereum\n  ```\n\nSee the [@casimir/ethereum README.md](contracts/ethereum/README.md) for detailed documentation.\n\n### Common\n\nThe common packages provide shared code for the project:\n\n- [@casimir/aws](common/aws): AWS helpers\n- [@casimir/data](common/data): data schemas and operational workflows\n- [@casimir/ssv](common/ssv): SSV helpers\n- [@casimir/types](common/types): shared types\n- [@casimir/uniswap](common/uniswap): Uniswap helpers\n- [@casimir/wallets](common/wallets): wallet helpers\n\nCheck for a README.md file in each common package directory for detailed usage instructions.\n\n### Infrastructure\n\nThe infrastructure packages provide the infrastructure as code for the project.\n\n#### @casimir/cdk\n\nTest the CDK infrastructure:\n\n  ```zsh\n  # From the root directory\n  npm run test:cdk\n  ```\n\nSee the [@casimir/cdk README.md](infrastructure/cdk/README.md) for detailed documentation.\n\n### Services\n\nThe services packages provide the backend services for the project:\n\n- [@casimir/crawler](services/crawler): analytics crawler\n- [@casimir/functions](services/functions): Chainlink Functions source code\n- [@casimir/nodes]: relevant node configurations\n- [@casimir/oracle](services/oracle): DAO oracle\n- [@casimir/users](services/users): users server and database\n\n## Layout\n\nCode is organized into work directories (apps, common, contracts, infrastructure, services, scripts, and more listed below).\n\n```tree\n├── .github/ (workflows and issue templates)\n|   └── workflows/ (gh actions workflows)\n├── apps/ (frontend apps)\n|   |── www/ (landing page app)\n|   └── app/ (main web app)\n├── common/ (shared code)\n|   ├── data/ (data schemas and operational workflows)\n|   └── helpers/ (general utilities)\n├── contracts/ (blockchain contracts)\n|   └── ethereum/ (ethereum contracts)\n├── infrastructure/ (deployment resources)\n|   └── cdk/ (aws stacks)\n├── scripts/ (devops and build scripts)\n|   ├── ethereum/ (ethereum test and dev scripts)\n|   └── root/ (root install and dev scripts)\n├── services/ (backend services)\n|   ├── oracle/ (oracle service)\n|   └── users/ (users service)\n└── package.json (project-wide npm dependencies and scripts)\n```\n\n## License\n\nThis respository is available as open source under the terms of the [Apache License](https://opensource.org/licenses/Apache).\n\n[![License: Apache](https://img.shields.io/badge/License-Apache-green.svg)](LICENSE.md)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fconsensusnetworks%2Fcasimir","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fconsensusnetworks%2Fcasimir","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fconsensusnetworks%2Fcasimir/lists"}