{"id":29089657,"url":"https://github.com/openzeppelin/defender-sdk","last_synced_at":"2025-06-28T04:04:24.203Z","repository":{"id":191475889,"uuid":"636886549","full_name":"OpenZeppelin/defender-sdk","owner":"OpenZeppelin","description":"Defender SDK","archived":false,"fork":false,"pushed_at":"2025-05-26T20:50:11.000Z","size":2948,"stargazers_count":26,"open_issues_count":52,"forks_count":17,"subscribers_count":12,"default_branch":"main","last_synced_at":"2025-06-09T10:37:31.516Z","etag":null,"topics":["openzeppelin","openzeppelin-defender","security","web3"],"latest_commit_sha":null,"homepage":"https://api-docs.defender.openzeppelin.com","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/OpenZeppelin.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":"CODEOWNERS","security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2023-05-05T22:18:48.000Z","updated_at":"2025-05-26T20:50:16.000Z","dependencies_parsed_at":"2023-08-30T04:01:39.981Z","dependency_job_id":"7f50b7ab-54c8-446a-9116-3cb09c3d1ef9","html_url":"https://github.com/OpenZeppelin/defender-sdk","commit_stats":null,"previous_names":["openzeppelin/defender-sdk"],"tags_count":561,"template":false,"template_full_name":null,"purl":"pkg:github/OpenZeppelin/defender-sdk","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenZeppelin%2Fdefender-sdk","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenZeppelin%2Fdefender-sdk/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenZeppelin%2Fdefender-sdk/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenZeppelin%2Fdefender-sdk/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/OpenZeppelin","download_url":"https://codeload.github.com/OpenZeppelin/defender-sdk/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenZeppelin%2Fdefender-sdk/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262371684,"owners_count":23300595,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["openzeppelin","openzeppelin-defender","security","web3"],"created_at":"2025-06-28T04:04:19.935Z","updated_at":"2025-06-28T04:04:24.189Z","avatar_url":"https://github.com/OpenZeppelin.png","language":"TypeScript","readme":"# \u003cimg src=\"logo.svg\" alt=\"OpenZeppelin Defender V2 SDK Packages\" height=\"40px\"\u003e\n\n\u003c!-- TODO: Confirm these are all populating with data --\u003e\n\n[![NPM Package](https://img.shields.io/npm/v/@openzeppelin/defender-sdk.svg)](https://www.npmjs.org/package/@openzeppelin/defender-sdk)\n[![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/OpenZeppelin/defender-sdk/badge)](https://api.securityscorecards.dev/projects/github.com/OpenZeppelin/defender-sdk)\n[![OpenSSF Best Practices](https://www.bestpractices.dev/projects/7782/badge)](https://www.bestpractices.dev/projects/7782)\n[![Scorecard supply-chain security](https://github.com/OpenZeppelin/defender-sdk/actions/workflows/scorecard.yml/badge.svg)](https://github.com/OpenZeppelin/defender-sdk/actions/workflows/scorecard.yml)\n[![CI](https://github.com/OpenZeppelin/defender-sdk/actions/workflows/ci.yml/badge.svg)](https://github.com/OpenZeppelin/defender-sdk/actions/workflows/ci.yml)\n\nThis monorepo contains individual OpenZeppelin Defender TypeScript clients and publishes the collection of clients as `@openzeppelin/defender-sdk`\n\n## Usage\n\nFor detailed instructions on how to use the SDK, please refer to our [SDK Documentation](https://api-docs.defender.openzeppelin.com/).\n\n## Development Setup\n\n- `pnpm` for workspaces \u0026 dependency management.\n- `nx` for build \u0026 tests.\n- `changesets` for versioning, changelog management \u0026 publishing.\n\n- Checkout the repo and run `pnpm i --ignore-scripts --prefer-offline \u0026\u0026 pnpm run build`.\n\n  \u003e Install pnpm globally with `npm i -g pnpm` if you haven't already.\n\n- To skip cache on the subsequent build steps you can use `pnpm nx-build-skip-cache`.\n\n## Testing\n\n- Run `pnpm nx-test-skip-cache` to run unit tests across all packages.\n\n## Linting \u0026 Styling\n\n- Run `pnpm lint:check` or `pnpm prettier:check` at the project root. For fixing `pnpm lint:fix`\n\n## Combining style, build \u0026 test in single command\n\n- Run `pnpm nx-build-test-skip-cache`.\n\n## Examples\n\nThe `examples` repo has sample code - note that most examples rely on `dotenv` for loading API keys and secrets.\n\n## Lower Environments\n\nYou can set the following environment variables to control to which instance your client will connect to:\n\n```bash\n# all modules/clients besides relay signer\nDEFENDER_API_URL=\nDEFENDER_POOL_ID=\nDEFENDER_POOL_CLIENT_ID=\n# relay signer\nDEFENDER_RELAY_SIGNER_API_URL=\nDEFENDER_RELAY_SIGNER_POOL_ID=\nDEFENDER_RELAY_SIGNER_POOL_CLIENT_ID=\n```\n\n---\n\n### Determinstic Builds \u0026 Secure Publishes\n\n- We use [slsa framework](https://slsa.dev/) _pronounced \"salsa\"_ for reproducible builds \u0026 secure pushes. Verification is done using [provenance](https://slsa.dev/provenance/v1)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenzeppelin%2Fdefender-sdk","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fopenzeppelin%2Fdefender-sdk","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenzeppelin%2Fdefender-sdk/lists"}