Raw JSON report machine-readable
{
"data": {
"repo": {
"topics": [
"defi",
"ethereum",
"web3"
],
"is_fork": false,
"size_kb": 84637,
"has_wiki": true,
"homepage": "https://originprotocol.com",
"languages": {
"Shell": 19685,
"Python": 797460,
"Solidity": 1280678,
"JavaScript": 2368118,
"TypeScript": 68125
},
"pushed_at": "2026-07-22T01:35:28Z",
"created_at": "2020-08-03T18:40:09Z",
"owner_type": "Organization",
"updated_at": "2026-07-20T11:00:58Z",
"description": "OUSD and OETH are stablecoins that passively accrue yield while you are holding it",
"is_archived": false,
"is_disabled": false,
"license_spdx": "MIT",
"default_branch": "master",
"license_spdx_raw": "MIT",
"primary_language": "JavaScript",
"significant_languages": [
"JavaScript",
"Solidity",
"Python"
]
},
"owner": {
"blog": "https://www.originprotocol.com",
"name": "Origin Protocol",
"type": "Organization",
"login": "OriginProtocol",
"company": null,
"location": "Earth",
"followers": 103,
"avatar_url": "https://avatars.githubusercontent.com/u/30638653?v=4",
"created_at": "2017-08-01T22:05:41Z",
"is_verified": null,
"public_repos": 105,
"account_age_days": 3276
},
"license": {
"state": "standard",
"spdx_id": "MIT",
"raw_spdx": "MIT",
"file_present": true,
"scorecard_found": true,
"profile_has_license": true
},
"activity": {
"releases": [
{
"tag": "v0.1.8",
"kind": "patch",
"published_at": "2023-08-04T14:32:01Z"
},
{
"tag": "v0.1.7",
"kind": "patch",
"published_at": "2023-08-04T14:26:42Z"
},
{
"tag": "deploy-32",
"kind": "other",
"published_at": "2021-12-10T16:54:21Z"
},
{
"tag": "deploy-019",
"kind": "other",
"published_at": "2021-07-07T16:50:04Z"
},
{
"tag": "deploy-018",
"kind": "other",
"published_at": "2021-06-30T23:23:29Z"
},
{
"tag": "deploy-017",
"kind": "other",
"published_at": "2021-05-19T01:14:42Z"
},
{
"tag": "deploy-016",
"kind": "other",
"published_at": "2021-03-26T06:47:04Z"
},
{
"tag": "deploy-015",
"kind": "other",
"published_at": "2021-02-16T18:12:47Z"
},
{
"tag": "deploy-014",
"kind": "other",
"published_at": "2021-02-10T23:52:11Z"
},
{
"tag": "deploy-013",
"kind": "other",
"published_at": "2021-02-03T22:52:08Z"
},
{
"tag": "deploy-012",
"kind": "other",
"published_at": "2021-02-02T22:22:52Z"
},
{
"tag": "deploy-005",
"kind": "other",
"published_at": "2021-01-13T21:50:36Z"
},
{
"tag": "deploy-011",
"kind": "other",
"published_at": "2021-01-09T05:09:59Z"
},
{
"tag": "deploy-010",
"kind": "other",
"published_at": "2021-01-06T22:55:24Z"
},
{
"tag": "deploy-009",
"kind": "other",
"published_at": "2021-01-04T21:21:19Z"
}
],
"recent_commits": [
{
"oid": "07a7fcb052d715409014dd69e69e3c680ee8ae47",
"body": "* Remove Defender from the repo\n\n* Removed Holesky test chain\n\n* More Holesky changes\n\n* Skip Sonic strategy fork tests\n\n* Fix Base cross chain strategy fork tests\n\n* Fix Base Curve AMO fork test",
"is_bot": false,
"headline": "Remove Defender and Holesky (#2944)",
"author_name": "Nick Addison",
"author_login": "naddison36",
"committed_at": "2026-07-20T11:00:02Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "4f65bb1ceeb7b2697c21065be88f31f0a8ce0a32",
"body": "* Add OUSD allocation optimizer skill\n\nA Claude Code skill that recommends how to rebalance OUSD collateral\nacross the enabled strategies (Ethereum/Base/HyperEVM Morpho, the Curve\nOUSD/USDC AMO, and the vault buffer) to maximize blended OUSD APY.\n\nBuilds on Shah's `ousd-rebalancing` skill (productio\n[…]\nn\nrebalancer specified. Review verdict: good (HyperEVM held ~9% post-move).\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: Claude Opus 4.8 <noreply@anthropic.com>",
"is_bot": false,
"headline": "Add OUSD allocation optimizer skill (#2941)",
"author_name": "Domen Grabec",
"author_login": "sparrowDom",
"committed_at": "2026-07-16T14:01:40Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "beb978ffa14013c7162cd5580f2d970c62f58fc5",
"body": null,
"is_bot": false,
"headline": "Add scheduled actions reference doc + CLAUDE.md sync rule (#2940)",
"author_name": "Domen Grabec",
"author_login": "sparrowDom",
"committed_at": "2026-07-15T07:10:52Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "920900964ed5aa59127ea700f2acfd784bab70c1",
"body": "* Withdraw all from Hydrex AMO on Base\n\n* Added withdraw from Base Curve AMO to run log",
"is_bot": false,
"headline": "Runlog 10 July 2026 - Withdraw all from Hydrex AMO on Base (#2935)",
"author_name": "Nick Addison",
"author_login": "naddison36",
"committed_at": "2026-07-14T11:50:47Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "b8618fe8e6effeb5cf967d3d311993b75d999e7b",
"body": "runContainer reports it as the runner's version, letting the Talos admin\nannounce redeploys to Discord. Empty default keeps local builds working.",
"is_bot": false,
"headline": "Bake GIT_COMMIT_SHA into runner image (#2939)",
"author_name": "Domen Grabec",
"author_login": "sparrowDom",
"committed_at": "2026-07-13T15:16:15Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "804b89e2f724dbe6b62a9973ebece829da541917",
"body": null,
"is_bot": false,
"headline": "Bump @talos/client to 8f15dbbdc96a (#2937)",
"author_name": "Domen Grabec",
"author_login": "sparrowDom",
"committed_at": "2026-07-13T10:37:04Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "9e3d02b66ec1e46737eb2d71c8ffe958357c1c34",
"body": null,
"is_bot": false,
"headline": "Check nonce before relaying message (#2938)",
"author_name": "Shah",
"author_login": "shahthepro",
"committed_at": "2026-07-13T10:35:19Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "3e1c272bdf448bbfa15233d89fc2971c8e483b13",
"body": "* Clean up beacon state cache after each beacon action\n\n* Clean up old cached beacon chain state files if more than 1 day old\n\n---------\n\nCo-authored-by: Nicholas Addison <nick@addisonbrown.com.au>",
"is_bot": false,
"headline": "Clean up beacon state cache after each beacon action (#2936)",
"author_name": "Chris",
"author_login": "apexearth",
"committed_at": "2026-07-13T09:13:22Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "c52692d96110c9b9752f39775249ad56ebfa0264",
"body": "Adds an `ousd_rebalancer` row to the Talos schedules seed so the OUSD\nRebalancer action shows up in the Talos admin UI and can be triggered\nmanually via \"Run now\". The hardhat task `ousdRebalancer` was already\nregistered (and thus in the actions catalog), but with no `schedules`\nrow it was neither l\n[…]\n manual-only rows (stake_validator, queue_proposal, ...), so\nit never fires on a schedule — only on an operator-initiated Run now.\n\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "Add OUSD rebalancer schedule (manual, disabled) (#2933)",
"author_name": "Clément",
"author_login": "clement-ux",
"committed_at": "2026-07-01T12:35:46Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "c097f0c8cce56ff379dba4caa9594972016528f0",
"body": null,
"is_bot": false,
"headline": "Bump @talos/client to db24b13f33be (#2932)",
"author_name": "Clément",
"author_login": "clement-ux",
"committed_at": "2026-07-01T12:18:51Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "b2c852e1db385b0813ab45e226ab2a0890299e2e",
"body": "* Change rebalancer config\n\n* Add portfolio APY\n\n* fix\n\n* update scripts\n\n* minor bug fix\n\n* Migrate to Talos",
"is_bot": false,
"headline": "Portfolio APY for the Rebalancer (#2880)",
"author_name": "Shah",
"author_login": "shahthepro",
"committed_at": "2026-06-30T19:33:51Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "a29da20357bb2a135bbbe77d8d465947c8819081",
"body": "* Remove the Convex AMO strategy from the OETH Vault\n\n* Add proposalId for Convex AMO strategy removal in OETH Vault\n\n* Recreated the gov prop to remove OETH Convex AMO\n\n* Removed defeated deploy script\n\n---------\n\nCo-authored-by: Nicholas Addison <nick@addisonbrown.com.au>",
"is_bot": false,
"headline": "Remove the Convex AMO strategy from the OETH Vault (#2907)",
"author_name": "Clément",
"author_login": "clement-ux",
"committed_at": "2026-06-30T02:07:43Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "44312e3d76e8c0340810d3c40a62e9654cc30914",
"body": null,
"is_bot": false,
"headline": "Bump @talos/client to e0c53b2f06b8 (#2931)",
"author_name": "Chris",
"author_login": "apexearth",
"committed_at": "2026-06-24T06:18:14Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "d78437879c5e96a5af2243ca1fd3cc92209192b4",
"body": null,
"is_bot": false,
"headline": "Remove legacy dockerfile (#2930)",
"author_name": "Nick Addison",
"author_login": "naddison36",
"committed_at": "2026-06-22T08:30:43Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "4e2a537e2b8e02ec8245297b32eec188cc725d85",
"body": "* add a deploy review skill\n\n* update skill",
"is_bot": false,
"headline": "Add /verify-deployment-pr skill for deploy-PR review (#2922)",
"author_name": "Domen Grabec",
"author_login": "sparrowDom",
"committed_at": "2026-06-22T01:18:59Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "e974b2b4dab2a34c97eae898a6995cf4c6d7a5d8",
"body": "* ci: build runner image off master (was talos)\n\n* remove unneeded run",
"is_bot": false,
"headline": "ci: build runner image off master (was talos) (#2929)",
"author_name": "Domen Grabec",
"author_login": "sparrowDom",
"committed_at": "2026-06-17T12:08:39Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "43037de14164025139abcbb517a8a2b9c6088e71",
"body": "* add the KMS connector module\n\n* ai review/plan\n\n* supply cron configuration as a json file\n\n* trigger cron-jobs via http request. Query the job result via HTTP\n\n* move actions\n\n* convert to ts\n\n* rename/upgrade ts\n\n* make github build the image instead of docker\n\n* fix node issue\n\n* rename image\n\n\n[…]\nthored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>\nCo-authored-by: Nicholas Addison <nick@addisonbrown.com.au>\nCo-authored-by: Shahul Hameed <10547529+shahthepro@users.noreply.github.com>",
"is_bot": false,
"headline": "Talos (#2928)",
"author_name": "Domen Grabec",
"author_login": "sparrowDom",
"committed_at": "2026-06-17T09:19:33Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "6a40630a717124f02b1225180f9fe9b720a1f42c",
"body": "* Deploy 200 to remove old compounding strategy\n\n* Updated OETH contracts diagram",
"is_bot": false,
"headline": "Mainnet Deploy 200 - Remove old Compounding Staking Strategy (#2926)",
"author_name": "Nick Addison",
"author_login": "naddison36",
"committed_at": "2026-06-17T05:37:41Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "5acff6ac4484d861b1afcb83fdb3213c523a75da",
"body": "…ompounding Staking Strategy (#2924)",
"is_bot": false,
"headline": "Remove all from old Compounding Staking Strategy and deposit to new C…",
"author_name": "Nick Addison",
"author_login": "naddison36",
"committed_at": "2026-06-15T13:17:51Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "bffc23ebfc4de07eafcaf8a155d3a2e501e63fa7",
"body": "* Changed initial deposit to 32.25 ETH\n\n* Change initial deposit to 32.25 ETH\n\n* Updated ValidatorState.ACTIVE comment\n\n* Keeping old 1 ETH deposit diagram as that's the referred process\n\n* Bump the deploy script number\n\n* Cap the size of the initial validator deposit\n\n* Prettier\n\n* Update stakeVali\n[…]\nthdrawSsvClusterEth to ignore consensus rewards in NativeStakingSSVStrategy (#2920)\n\n* Deployed mainnet 199\n\n* Add proposal id to deploy 199\n\n---------\n\nCo-authored-by: Domen Grabec <grabec@gmail.com>",
"is_bot": false,
"headline": "Deploy 199: Vanilla validator compounding staking strategy (#2921)",
"author_name": "Nick Addison",
"author_login": "naddison36",
"committed_at": "2026-06-15T04:17:54Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "c6eeb562fb37c0437a0ba5af34574243304eacff",
"body": "* migrate contracts to Talso signer\n\n* fix fork tests\n\n* add the migration for the OGN rewards module\n\n* refactor deployment\n\n* add some comments\n\n* add base migration files\n\n* add remaining migrations for base and one for sonic\n\n* add hyperevm migration\n\n* remove the old relayer roles\n\n* commit gov\n[…]\n files\n\n* add proposal id\n\n* correct proposal id location\n\n* add remaining mainnet deployments\n\n* add base deployments\n\n* add deployments\n\n* add sonic deployment files\n\n* add hyperevm deployment files",
"is_bot": false,
"headline": "[Deploy] Talos Governance Migration (#2913)",
"author_name": "Domen Grabec",
"author_login": "sparrowDom",
"committed_at": "2026-06-13T07:38:57Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "dea63ebaba4f6ff8ef2f1b4ec9d2647ce41e76e7",
"body": "* Changed initial deposit to 32.25 ETH\n\n* Change initial deposit to 32.25 ETH\n\n* Updated ValidatorState.ACTIVE comment\n\n* Keeping old 1 ETH deposit diagram as that's the referred process\n\n* Bump the deploy script number\n\n* Cap the size of the initial validator deposit\n\n* Prettier\n\n* Update stakeVali\n[…]\n in NativeStakingSSVStrategy (#2920)\n\n* Add prop id to deploy 196 script (#2917)\n\n---------\n\nCo-authored-by: Domen Grabec <grabec@gmail.com>\n\n---------\n\nCo-authored-by: Domen Grabec <grabec@gmail.com>",
"is_bot": false,
"headline": "Allow initial deposits to activate validators (#2885)",
"author_name": "Nick Addison",
"author_login": "naddison36",
"committed_at": "2026-06-10T11:49:50Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "a3a783cc05eccfaa2f15fed3ceb45bcf297d81a7",
"body": null,
"is_bot": false,
"headline": "Add prop id to deploy 196 script (#2917)",
"author_name": "Nick Addison",
"author_login": "naddison36",
"committed_at": "2026-06-10T05:12:26Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "a1c7d1408edab4a0acf6c7111bd6063795bd7664",
"body": "…use rebases) (#2911)\n\n* migrate contracts to Talso signer\n\n* fix fork tests\n\n* add the migration for the OGN rewards module\n\n* refactor deployment\n\n* add some comments\n\n* add base migration files\n\n* add remaining migrations for base and one for sonic\n\n* add hyperevm migration\n\n* remove the old relayer roles",
"is_bot": false,
"headline": "Migrate vault & cross-chain operators to the new Talos signer (+ unpa…",
"author_name": "Domen Grabec",
"author_login": "sparrowDom",
"committed_at": "2026-06-09T20:01:13Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "08c2f4df6af0b94f44c9b123a8c5ae8027daeb3a",
"body": null,
"is_bot": false,
"headline": "Fix removeSsvValidator to work with Clusters with ETH payments (#2908)",
"author_name": "Nick Addison",
"author_login": "naddison36",
"committed_at": "2026-06-09T09:06:19Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "2efa2a31222dc3937c0fbf290211d07b95422d9b",
"body": null,
"is_bot": false,
"headline": "change pre-commit hook to pnpm (#2910)",
"author_name": "Domen Grabec",
"author_login": "sparrowDom",
"committed_at": "2026-06-02T04:09:04Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "2e58be9c96c04310a7a2d9808196bc6e60732f25",
"body": "* Fix contracts cron image pnpm version\n\n* Changed package.json to use pnpm",
"is_bot": false,
"headline": "Fix contracts cron image pnpm version (#2904)",
"author_name": "Nick Addison",
"author_login": "naddison36",
"committed_at": "2026-06-01T03:24:23Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "9c90a5d882e8228f8a0ce836a07eff2552cad3b0",
"body": "* Governance proposal to claim the SSV from the staking strategies\n\n* Renamed Hardhat task depositSSV to depositCluster and have it work with ETH deposits\nRemoved old registerValidators and stakeValidators Hardhat tasks using the P2P APIs\nHardhat registerValidator now works with ETH deposits\n\n* Bump deploy number\n\n* Added .migration record",
"is_bot": false,
"headline": "SSV Cluster migration cleanup (#2892)",
"author_name": "Nick Addison",
"author_login": "naddison36",
"committed_at": "2026-05-26T23:31:42Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "cd7218c2b070a52470b2621c3ce0ce12378ba700",
"body": null,
"is_bot": false,
"headline": "lint (#2896)",
"author_name": "Domen Grabec",
"author_login": "sparrowDom",
"committed_at": "2026-05-13T09:49:38Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "1e066d888d2e3ebd652b754e3fdfae51978c99ce",
"body": "* Remove Supernova strategy from OETH Vault\n\n* Remvoe supernova fixture\n\n* add proposal id\n\n---------\n\nCo-authored-by: Domen Grabec <grabec@gmail.com>",
"is_bot": false,
"headline": "Remove Supernova strategy from the OETH Vault (#2890)",
"author_name": "Nick Addison",
"author_login": "naddison36",
"committed_at": "2026-05-13T09:34:41Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "69923754bce85c0d4dd3898e35b9458489a1baa8",
"body": "* Deploy OUSD and OETH Vaults\n\n* Deploy Base and Sonic Vaults\n\n* prettify\n\n* fix failing fork test",
"is_bot": false,
"headline": "[Ethereum][Base][Sonic] Re-deploy Vaults (#2894)",
"author_name": "Shah",
"author_login": "shahthepro",
"committed_at": "2026-05-12T08:05:34Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "1dd041f730ddf93b32b29dac3bd9f5bd3ea5f744",
"body": "* Unpause rebase in fork test fixtures\n\nThe four production vaults (OUSD, OETH on mainnet, OETHb on Base,\nOSonic on Sonic) sit with `rebasePaused = true` on chain between\nstrategist rebase cycles. Fork tests, which start from current chain\nstate, inherit that and revert with `Rebasing paused` on eve\n[…]\n140 >= 982979757405`.\n\nBump the tolerance on these specific assertions to 3%. Other\nassertions in the file (which deposit into balanced pools) keep the\ndefault 1% tolerance.\n\nLocal run: 73/73 passing.",
"is_bot": false,
"headline": "Fix fork tests broken by permissioned rebase (#2893)",
"author_name": "Clément",
"author_login": "clement-ux",
"committed_at": "2026-05-11T09:22:00Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "4d99a860b1d478dee208560fbb21b52df0ab5081",
"body": "* add deploy resilience\n\n* deploy Hydrex AMO\n\n* move a proxy to a more appropriate location",
"is_bot": false,
"headline": "Hydrex AMO deployment (#2887)",
"author_name": "Domen Grabec",
"author_login": "sparrowDom",
"committed_at": "2026-05-11T09:17:26Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "960eda756ca39710fa850fbbb15ff2a9166a43cb",
"body": null,
"is_bot": false,
"headline": "Remove LayerZero now Plume has been sunset (#2891)",
"author_name": "Nick Addison",
"author_login": "naddison36",
"committed_at": "2026-05-11T06:43:22Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "800ef7a446f678cd9b4b58d05f82fbaade5535ab",
"body": "* Add permissioned rebase\n\n* Remove public rebase",
"is_bot": false,
"headline": "Add permissioned rebase (#2889)",
"author_name": "Shah",
"author_login": "shahthepro",
"committed_at": "2026-05-10T09:53:06Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "3de581ac7ad1aaa0a199237aa8b77812788f0dbd",
"body": "* Add Safe Module for permissioned rebase\n\n* update address checksum\n\n* Deploy modules\n\n* Add sonic deployment\n\n* redeploy sonic contract",
"is_bot": false,
"headline": "Add Safe Module for permissioned rebase (#2888)",
"author_name": "Shah",
"author_login": "shahthepro",
"committed_at": "2026-05-06T21:23:44Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "b26695ae31bd4d4378d1b1ccdb7a8a41d50f6540",
"body": "* initial commit of the hydrex AMO\n\n* move gauge mock to deploy file\n\n* move gauge mock to deploy file\n\n* remove mock gauge\n\n* adjust harvester",
"is_bot": false,
"headline": "Base Hydrex AMO (#2886)",
"author_name": "Domen Grabec",
"author_login": "sparrowDom",
"committed_at": "2026-05-06T07:47:41Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "bc044c5a4aa9b2b3676d4c356ac257bacee35818",
"body": "* Add consol option to doAccounting Hardhat task\n\n* Changed doAccounting Action to use the ConsolidationController\n\n* Added getValidators Hardhat task\nRefactored getting Beacon chain data to use Lodestar. So removed Beaconcha.in API use\n\n* Removed reference to BEACONCHAIN_API_KEY\nFormatting of getVa\n[…]\nndencies\n\n* Changed back to using GET for bulk validators\n\n* Bumped deploy script number\n\n* Updated Claude file with SSV cluster payment details\n\n* Prettier\n\n* Deployed 192_migrate_ssv_clusters_to_eth",
"is_bot": false,
"headline": "Update of SSV clusters to use ETH payment (#2860)",
"author_name": "Nick Addison",
"author_login": "naddison36",
"committed_at": "2026-05-05T02:45:58Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "07bbede80a3eee6ce1618d60ad6a9cf798905eb8",
"body": "…idator Hardhat tasks (#2871)\n\n* Added consol option to withdrawValidator Hardhat task\n\n* Add consol option to exitValidators Hardhat task\n\n* Added consol option to the stakeValidator Hardhat task\n\n* Added run log to withdraw from Compounding Staking Strategy\n\n* getValidators to use GET rather than POST beacon chain API",
"is_bot": false,
"headline": "Added consol option to withdrawValidator, exitValidators and stakeVal…",
"author_name": "Nick Addison",
"author_login": "naddison36",
"committed_at": "2026-05-04T20:15:51Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "78e46692dbc4b7473b249d43b9fb18aa248480ef",
"body": "…ces task (#2881)\n\nWhen snapBalances runs with --consol, the tx is sent to ConsolidationController\nbut the BalancesSnapped event is emitted by the target strategy. The receipt's\ndecoded events are bound to the controller's ABI so the event lookup failed\nand the task threw even though the tx succeeded.\n\nCo-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix: decode BalancesSnapped event via strategy interface in snapBalan…",
"author_name": "Domen Grabec",
"author_login": "sparrowDom",
"committed_at": "2026-04-30T10:26:12Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "a2c24b5d84363a4e639e1a34b4bbdfaa8ade6d87",
"body": null,
"is_bot": false,
"headline": "Added updateWOETHPrice Hardhat task (#2884)",
"author_name": "Nick Addison",
"author_login": "naddison36",
"committed_at": "2026-04-30T09:50:39Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "354a7a55ae06b57ebbd7f1948a9c28b282010c26",
"body": null,
"is_bot": false,
"headline": "Added fundWithdrawals Hardhat task (#2883)",
"author_name": "Nick Addison",
"author_login": "naddison36",
"committed_at": "2026-04-30T09:04:50Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "dbae51ad8d9f6f2ec24073414e2a6d46716d1ddd",
"body": null,
"is_bot": false,
"headline": "add defender action to backfill a transaction whenever necessary (#2879)",
"author_name": "Domen Grabec",
"author_login": "sparrowDom",
"committed_at": "2026-04-17T12:18:21Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "2f505429c6861187a292938b8f84f298e8ebc161",
"body": null,
"is_bot": false,
"headline": "Include domain in the key for crosschain relay (#2878)",
"author_name": "Shah",
"author_login": "shahthepro",
"committed_at": "2026-04-17T08:57:31Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "193b626882cf95e719af6793fa5f3e07c41e0b7c",
"body": "* Fix surplus funding tests\n\n* Add support for simulation\n\n* Try new alg\n\n* Write to file\n\n* Cleanup code\n\n* change to UTC timestamp\n\n* Add address to JSON export",
"is_bot": false,
"headline": "Simulate hypothetical balance on the rebalancer (#2877)",
"author_name": "Shah",
"author_login": "shahthepro",
"committed_at": "2026-04-14T09:33:44Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "70c2c1c595eb9e29c53dc9ae6967ee4b98a7b5fb",
"body": "* Add core logic and safe module\n\n* Update core logic\n\n* Add defender action\n\n* Rename methods, add readme file\n\n* Push discord notification and rollup config changes\n\n* Fix AMO balance\n\n* Add whitelist to module and a few code changes\n\n* tweaks to rebalancer\n\n* Refactor and simplify rebalancer\n\n* M\n[…]\nsage\n\n* Bug fixes\n\n* Add more tests\n\n* add more tests\n\n* clean up code\n\n* fix discord message\n\n* Fix discord message\n\n* cleanup code\n\n---------\n\nCo-authored-by: Nick Addison <nick@addisonbrown.com.au>",
"is_bot": false,
"headline": "Automated Rebalancer (#2835)",
"author_name": "Shah",
"author_login": "shahthepro",
"committed_at": "2026-04-13T08:49:58Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "df67f72c1c8502a31db503b0c903c942e2cc7ca4",
"body": "* Add support for handling multiple CCTP messages in a single tx\n\n* Change gas limit\n\n* Restore tx level cache\n\n* Fix bug",
"is_bot": false,
"headline": "Add support for handling multiple CCTP messages in a single tx (#2873)",
"author_name": "Shah",
"author_login": "shahthepro",
"committed_at": "2026-04-13T07:59:13Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "d72db1bc76ea9b41e0b889d2321d85b008167c1e",
"body": null,
"is_bot": false,
"headline": "change docker configuration (#2875)",
"author_name": "Domen Grabec",
"author_login": "sparrowDom",
"committed_at": "2026-04-09T13:16:36Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "10b029e9d7013a12afdd8d28e6ee947bcd886199",
"body": "…ter campaigns (#2845)\n\n* feat: add Defender Action to update Votemarket epochs for Curve Pool Booster campaigns on Arbitrum\n\n* feat: add new action variable and update action for Votemarket epochs\n\n* prettier",
"is_bot": false,
"headline": "feat: Defender Action to update Votemarket epochs for Curve Pool Boos…",
"author_name": "Clément",
"author_login": "clement-ux",
"committed_at": "2026-04-08T11:22:34Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "f880ea79c283af3ac5ee85b4e256025c16f61d6a",
"body": "* Deploy of 190_remove_3rd_native_staking_strategy\n\n* Bump deploy script number for remove_3rd_native_staking_strategy\n\n* Add proposal id to deploy script",
"is_bot": false,
"headline": "[Ethereum] Deploy 190 - Remove 3rd Native Staking Strategy (#2872)",
"author_name": "Nick Addison",
"author_login": "naddison36",
"committed_at": "2026-04-07T13:42:44Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "5cb9b7a3c7aeb1f15838c16cf2533f538b41022c",
"body": "* Deploy script to remove the 3rd native staking strategy from the OETH Vault\n\n* Remove 3rd native staking strategy from Defender Actions doAccounting and harvest\n\n* Removed 3rd native staking strategy from OETH contract diagram\n\n* Removed old validator registration and staking using P2P",
"is_bot": false,
"headline": "Remove 3rd native staking strategy from OETH Vault (#2866)",
"author_name": "Nick Addison",
"author_login": "naddison36",
"committed_at": "2026-04-06T09:45:22Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "7481780d608b6f11e2475058ff02cf47ee3e4ed8",
"body": "* Deploy 187 and 188\n\n* prettier\n\n* Move 187/188 to 188/189",
"is_bot": false,
"headline": "Deploy 187 and 188: CoW harvesting EIP-1271 for OETH and OGN (#2858)",
"author_name": "Clément",
"author_login": "clement-ux",
"committed_at": "2026-04-02T15:17:14Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "ba13adcc2b8c0a8b30c7571069d0f8ce19ed060a",
"body": null,
"is_bot": false,
"headline": "[Ethereum] Deploy 187 - Upgrade strategies for better harvesting (#2869)",
"author_name": "Shah",
"author_login": "shahthepro",
"committed_at": "2026-04-02T14:44:11Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "87703073c3c848ab1902a0d964fe5f3c64a21105",
"body": null,
"is_bot": false,
"headline": "Fix Slither CI (#2870)",
"author_name": "Shah",
"author_login": "shahthepro",
"committed_at": "2026-04-02T13:37:11Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "1cdb84f067205e717b302e3a68e5171b13e80c1d",
"body": null,
"is_bot": false,
"headline": "Fix removeStrategy (#2867)",
"author_name": "Shah",
"author_login": "shahthepro",
"committed_at": "2026-04-02T11:34:30Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "6114b09fefc11ad82e3caa1879a75ac1ac734838",
"body": "* Add april runlog\n\n* Fix comments",
"is_bot": false,
"headline": "April runlog (#2865)",
"author_name": "Shah",
"author_login": "shahthepro",
"committed_at": "2026-04-01T16:44:12Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "90cc90ef34f34083a158db6d54a37a5726b00e35",
"body": null,
"is_bot": false,
"headline": "Add Defender Action to claim SSV rewards (#2864)",
"author_name": "Shah",
"author_login": "shahthepro",
"committed_at": "2026-04-01T15:06:30Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "ca5ac399f14128c65f723364696f82d1da45300f",
"body": "* Fix failing tests\n\n* Fix HyperEVM tests",
"is_bot": false,
"headline": "Fix failing tests (#2863)",
"author_name": "Shah",
"author_login": "shahthepro",
"committed_at": "2026-04-01T14:01:21Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "3ef29c09256bcb58269efe502c70e2a2096c90f7",
"body": "* Forward rewards to another address\n\n* prettify\n\n* Make strategist harvest rewards\n\n* Fix CI and remove pause functionality\n\n* Fix failing tests\n\n* fix tests\n\n* Rename modifier\n\n* Fix renamed modifier\n\n* Fix unit tests",
"is_bot": false,
"headline": "Add support for Strategist to harvest rewards (#2853)",
"author_name": "Shah",
"author_login": "shahthepro",
"committed_at": "2026-04-01T09:58:29Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "773718352ad62c8f59f0c4e20b20337547d120c0",
"body": "* Packages must now be over 7 days old\n\n* Upgraded Lodestar deps",
"is_bot": false,
"headline": "Upgrade Lodestar deps (#2861)",
"author_name": "Nick Addison",
"author_login": "naddison36",
"committed_at": "2026-04-01T08:10:35Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "04e698e65cc833bdd760e4d50caedf095d53218c",
"body": "…d (#2862)",
"is_bot": false,
"headline": "when fetching validator beacon state respect the slot parameter passe…",
"author_name": "Domen Grabec",
"author_login": "sparrowDom",
"committed_at": "2026-04-01T07:53:49Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "3a8ab77cb1b72e70f2e50dc6672eba817c2f4fb3",
"body": null,
"is_bot": false,
"headline": "remove unneeded file (#2844)",
"author_name": "Domen Grabec",
"author_login": "sparrowDom",
"committed_at": "2026-03-24T03:47:04Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "1a8b4653f8c7227214d27b96556f080036c1be1c",
"body": "* Add gasLimit for crosschain relays\n\n* fix block lookback",
"is_bot": false,
"headline": "Add gasLimit for crosschain relays (#2849)",
"author_name": "Shah",
"author_login": "shahthepro",
"committed_at": "2026-03-23T17:34:32Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "cb7cdfd6821ca1bf5b58099ae43899add936e2e3",
"body": null,
"is_bot": false,
"headline": "Add HyperEVM script to rollup config (#2852)",
"author_name": "Shah",
"author_login": "shahthepro",
"committed_at": "2026-03-23T10:06:26Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "20bac14ba05e3cd0e8db8f32ca8a96bfab6ba662",
"body": null,
"is_bot": false,
"headline": "Update Readme file (#2851)",
"author_name": "Shah",
"author_login": "shahthepro",
"committed_at": "2026-03-23T09:55:32Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "01891e7213df15f032692b6c07677569e6cc6772",
"body": "…2846)\n\n* deploy: 186 + 047 MerklPoolBoosterBribesModule on Mainnet and Base\n\n* feat: add manageMerklBribes actions to README and rollup config",
"is_bot": false,
"headline": "Deploy 186 + 047: MerklPoolBoosterBribesModule on Mainnet and Base (#…",
"author_name": "Clément",
"author_login": "clement-ux",
"committed_at": "2026-03-20T09:14:29Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "2f8a8a5621707b4b0c2ef2032fe26df266521ee2",
"body": "Re-deploys HarvestingEIP1271 with contract improvements:\n- Replace arbitrary execute() with restricted transferTokens() for safer token recovery\n- Remove redundant safeApprove(0) reset before max approval in setSellTokenConfig\n- Add NotAllowed error for transferTokens on configured tokens",
"is_bot": false,
"headline": "Re-deploy 183: CoW harvesting EIP-1271 validator (#2847)",
"author_name": "Clément",
"author_login": "clement-ux",
"committed_at": "2026-03-20T08:47:36Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "18624654138d97170b09297ce97d98cdafee1b23",
"body": "* Add consol option to doAccounting Hardhat task\n\n* Changed doAccounting Action to use the ConsolidationController\n\n* Added getValidators Hardhat task\nRefactored getting Beacon chain data to use Lodestar. So removed Beaconcha.in API use\n\n* Removed reference to BEACONCHAIN_API_KEY\nFormatting of getVa\n[…]\nl\n\n* Got getValidators working with dRPC\n\n* Added consol option to verifyDeposits which has to call snapBalances on the ConsolidationController\n\n* FIxed consolidation fork tests\n\n* Updated Claude file",
"is_bot": false,
"headline": "Validator Consolidation tasks (#2840)",
"author_name": "Nick Addison",
"author_login": "naddison36",
"committed_at": "2026-03-20T07:40:43Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "fbaa028eaf42e13ea58f3ca838b596b26fcf415b",
"body": "…ipts (#2843)\n\nAdds a Gnosis Safe module that allows an operator (Defender relayer) to\ntrigger `bribeAll` on the PoolBoosterFactoryMerkl contract through the Safe,\nanalogous to the existing CurvePoolBoosterBribesModule.\n\n- `MerklPoolBoosterBribesModule.sol`: Safe module with `bribeAll(address[])`\n \n[…]\nalidatorRegistrator as operator\n- `deploy/base/047_merkl_pb_bribes_module.js`: Base deploy with\n OZRelayerAddress as operator\n- `tasks/tasks.js`: registers `manageMerklPoolBoosterBribes` Hardhat task",
"is_bot": false,
"headline": "feat: add MerklPoolBoosterBribesModule + Defender action + deploy scr…",
"author_name": "Clément",
"author_login": "clement-ux",
"committed_at": "2026-03-19T14:08:06Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "59773d07a62c413adbae0dfdecd414260a362056",
"body": "* Prepare Repo for HyperEVM setup\n\n* prettify\n\n* Add fork tests and configure defender actions\n\n* [Ethereum][HyperEVM] Deploy CrossChain strategy for HyperEVM (#2842)\n\n* [Ethereum] Deploy 183 - HyperEVM Strategy Proxy\n\n* Deploy 184 - HyperEVM Master Strategy implementation\n\n* Tweak deploy script for HyperEVM a bit\n\n* Deploy HyperEVM contracts\n\n* Add the Claude script\n\n* Add fork tests\n\n* Fix Ethereum fork test",
"is_bot": false,
"headline": "Prepare Repo for HyperEVM setup (#2839)",
"author_name": "Shah",
"author_login": "shahthepro",
"committed_at": "2026-03-18T08:30:09Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "f2a92d430892033a04c5263334454d8fcf21a594",
"body": null,
"is_bot": false,
"headline": "Deploy CoW Harvester (#2841)",
"author_name": "Clément",
"author_login": "clement-ux",
"committed_at": "2026-03-17T15:37:04Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "056e347deafff97b1eaa76bac39dd1f911fd83a4",
"body": null,
"is_bot": false,
"headline": "fix: typo 'nonrebase_cotract' -> 'nonrebase_contract' in tests (#2744)",
"author_name": "phessophissy",
"author_login": "phessophissy",
"committed_at": "2026-03-17T03:27:16Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "f1eb689ae79c1b8ad845dbe6ef089623513e75ec",
"body": "* Deploy 181 - validator consolidation\n\n* Added entry to .migrations for 181 deploy\n\n* Added proposal id for deploy 181",
"is_bot": false,
"headline": "Deploy 181 - Validator Consolidation (#2833)",
"author_name": "Nick Addison",
"author_login": "naddison36",
"committed_at": "2026-03-16T05:38:45Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "4d0a53abe66ee16c76368d261651543174070405",
"body": "* Deploy 182\n\n* Update CurvePoolBoosterBribesModule address in mainnet addresses",
"is_bot": false,
"headline": "Deploy 182: chunk Curve PB module (#2838)",
"author_name": "Clément",
"author_login": "clement-ux",
"committed_at": "2026-03-13T12:17:49Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "7c0395309fcb408452db89b85e574e2d0ddc8b3f",
"body": "…(#2837)\n\n* Enhance CurvePoolBoosterBribesModule: Add support for managing selected pool boosters and chunked transactions\n\n* prettier",
"is_bot": false,
"headline": "Fix Curve PB bribe management gas by chunking explicit booster lists …",
"author_name": "Clément",
"author_login": "clement-ux",
"committed_at": "2026-03-13T11:17:06Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "a96e9b372ac3e24b068eb688a271adb1f3b9f2e0",
"body": null,
"is_bot": false,
"headline": "add march runlog (#2836)",
"author_name": "Domen Grabec",
"author_login": "sparrowDom",
"committed_at": "2026-03-12T23:11:14Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "d8827e0ec2727a34ad6384901dda8fb81d1e3c49",
"body": "* fix ci\n\n* fix ci\n\n* remove unused PoolBoosterMerkl contract and associated tests\n\n* update balance check in algebraAmoStrategy tests to add 3 instead of 2",
"is_bot": false,
"headline": "Fix CI (#2834)",
"author_name": "Clément",
"author_login": "clement-ux",
"committed_at": "2026-03-10T15:31:56Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "817fb11f925e775617aa8c53ab2a823a303be5ae",
"body": "* Deploy Supernova AMO and upgrade Vault\n\n* set deploy time in migrations\n\n* add proposal id to deploy file\n\n* slither and prettier",
"is_bot": false,
"headline": "Deploy 180: Deploy Supernova AMO and upgrade Vault (#2831)",
"author_name": "Domen Grabec",
"author_login": "sparrowDom",
"committed_at": "2026-03-09T10:58:02Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "52444881dc9974c96c15b32ee280aa6d3e96c852",
"body": "* upgrade cross-chain remote strategy\n\n* prettier",
"is_bot": false,
"headline": "Deploy Base 46: upgrade cross-chain remote strategy (#2830)",
"author_name": "Domen Grabec",
"author_login": "sparrowDom",
"committed_at": "2026-03-09T09:56:20Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "1d6c82a374a60777adadcad79eabceb97ea237f9",
"body": "* WIP validator consolidation\n\n* Fixes\n\n* Fixed unit tests\n\n* Added deploy script for consolidation\n\n* Fix the Native Staking Strategy fork tests for the second SSV cluster\n\n* Cleanup\n\n* Made ConsolidationController Ownable\n\n* WIP removing target strategy balance check to confirm consolidation\n\n* Al\n[…]\nes to run for snaps before the consolidation was started\n\n* Bump deploy number\n\n* Fixed consolidation fork tests\n\n* Prettier\n\n* Bump the crosschain_upgrade_remote deploy number\n\n* Bumped deploy number",
"is_bot": false,
"headline": "Validator consolidation (#2758)",
"author_name": "Nick Addison",
"author_login": "naddison36",
"committed_at": "2026-03-09T09:54:50Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "bbb45b61e4c9a7c6ce5aae22fdd28dcfebbb9bb1",
"body": "* Upgrade OUSD Morpho V2 strategy implementation\n\n* add proposal id",
"is_bot": false,
"headline": "Deploy 179: Upgrade OUSD Morpho V2 strategy implementation (#2829)",
"author_name": "Domen Grabec",
"author_login": "sparrowDom",
"committed_at": "2026-03-09T09:21:52Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "a9b33784287fd70ad5b121a33d5304c7fb3da412",
"body": "* prettier\n\n* slither and prettier\n\n* minor change\n\n* add comments and slither disables\n\n* lint",
"is_bot": false,
"headline": "Lint and slither (#2832)",
"author_name": "Domen Grabec",
"author_login": "sparrowDom",
"committed_at": "2026-03-09T09:20:42Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "ff627d2c5535ad959eb215e6b084d5e5d466c275",
"body": "* initial commit\n\n* add some deployment files\n\n* commit for easier diffs\n\n* rename the variable in stableswap\n\n* fix the fork tests and adjust them to refactoring\n\n* fix fork tests\n\n* add strategy file\n\n* start re-working tests\n\n* migrate some more tests\n\n* more work on fork tests\n\n* fix the fork te\n[…]\ndirection\n\n* add range protection for maxDepeg\n\n* simplify code\n\n---------\n\nCo-authored-by: Nick Addison <nick@addisonbrown.com.au>\nCo-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>",
"is_bot": false,
"headline": "Supernova AMO (#2800)",
"author_name": "Domen Grabec",
"author_login": "sparrowDom",
"committed_at": "2026-03-06T10:18:53Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "6b88f3d3f2a88d9bd68a05f8d714d20fdb19b271",
"body": "* initial commit\n\n* add deploy file\n\n* account for owner liquidity and available liquidity\n\n* prettier\n\n* add comment\n\n* add support to redeem only what is available from 4626 Vault\n\n* enforce the expected liquidity adpater when estimating the additional possible liquidity in the withdrawAll\n\n* Cros\n[…]\n\n\nCo-authored-by: Shah <10547529+shahthepro@users.noreply.github.com>\nCo-authored-by: Nicholas Addison <nick@addisonbrown.com.au>\nCo-authored-by: Clément <55331875+clement-ux@users.noreply.github.com>",
"is_bot": false,
"headline": "Enable MorphoV2 WithdrawAll (#2783)",
"author_name": "Domen Grabec",
"author_login": "sparrowDom",
"committed_at": "2026-03-04T16:13:38Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "d80141dbf4a0659afdcbb20077671f2420c9b9cd",
"body": "…(#2828)",
"is_bot": false,
"headline": "[MerklPB] Deploy Mainnet and Base MerklPBFactory and Implementation. …",
"author_name": "Clément",
"author_login": "clement-ux",
"committed_at": "2026-03-04T12:03:43Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "ee0d1e8c048a6c66c62740a169ccbf0ac55d6ef2",
"body": "* Run log - Reallocate from Curve AMO Strategy to Compounding Staking Strategy\n\n* Run log - Base AMO withdraw",
"is_bot": false,
"headline": "Run log - 2 March 2026 (#2817)",
"author_name": "Nick Addison",
"author_login": "naddison36",
"committed_at": "2026-03-04T03:02:05Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "6b7393dd856ca03c21751cc49f66bfed284f8d28",
"body": "* [MerklPB] Migrate PoolBoosterFactoryMerkl to Clones (minimal proxy)\n\n- PoolBoosterMerkl: refactor to initializable pattern for clone compatibility\n- PoolBoosterFactoryMerkl: use Clones.cloneDeterministic instead of CREATE2\n- Add implementation, strategist storage with governor setters\n- Simplify c\n[…]\nbe()\n\n* Move acceptConditions call inside _setMerklDistributor\n\n* Add removePoolBoosterByIndex for gas-efficient removal\n\n* prettier\n\n---------\n\nCo-authored-by: Claude Opus 4.6 <noreply@anthropic.com>",
"is_bot": false,
"headline": "[MerklPB] Migrate PoolBoosterFactoryMerkl to Beacon Proxy (#2796)",
"author_name": "Clément",
"author_login": "clement-ux",
"committed_at": "2026-03-03T07:54:44Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "e4dfff83e7c9b995b339da57e88cc9454315f510",
"body": "* [Base] Deploy 040 vault upgrade\n\n* Fix _mintWETH funding amount in base fixture\n\nFund account with enough ETH to cover the WETH deposit amount\ninstead of the default 100 ETH.",
"is_bot": false,
"headline": "[Base] Deploy 040 Vault Upgrade (#2814)",
"author_name": "Clément",
"author_login": "clement-ux",
"committed_at": "2026-03-02T07:58:18Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "6f80e5770315c646500a7fa1c3f83b0f11c2f716",
"body": "* Replace deprecated mint(address,uint256,uint256) with mint(uint256) in IVault\n\nUpdate the IVault interface to use the new single-param mint signature\nand fix all contract callers: MockNonRebasing, MockRebornMinter,\nAbstractOTokenZapper, OSonicZapper, and PlumeBridgeHelperModule.\n\n* Rewrite Ethereu\n[…]\nt MockRebornMinter.redeem() at requestWithdrawal instead of reverting\n\n* Fix prettier formatting in bridge-helper base fork test\n\n* Add requestWithdrawal boolean to BaseBridgeHelperModule.depositWOETH",
"is_bot": false,
"headline": "Async withdrawal + mint(uint256) cleanup (#2813)",
"author_name": "Clément",
"author_login": "clement-ux",
"committed_at": "2026-02-24T22:15:01Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "9b7a703fd9208048cdbf9d4dff92db2edddb8391",
"body": null,
"is_bot": false,
"headline": "Deploy OUSD Auto-Withdrawal Safe Module (#2812)",
"author_name": "Shah",
"author_login": "shahthepro",
"committed_at": "2026-02-24T09:00:35Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "f692b0682e5c519b86dcd869819b5be42efdff6d",
"body": "* Add Auto-Withdrawal Safe Module\n\n* Get rid of rate limit logic\n\n* Add tests\n\n* Address CR comments",
"is_bot": false,
"headline": "Add Auto-Withdrawal Safe Module (#2807)",
"author_name": "Shah",
"author_login": "shahthepro",
"committed_at": "2026-02-24T08:33:11Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "d459e14e1d2664d88cee8e3424f73de99635f4da",
"body": "* Fix OUSD/USDC prices in amoStrat Hardhat task\n\n* Run log - 23 Feb withdraw from Morpho v2 OUSD Strategy\n\n* Update script",
"is_bot": false,
"headline": "Run log - 23 Feb withdraw from Morpho v2 OUSD Strategy (#2809)",
"author_name": "Nick Addison",
"author_login": "naddison36",
"committed_at": "2026-02-23T05:37:10Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "db6d806ffd9edacfaaef1394256a68a7a6a95ca6",
"body": "* Updated Vault hierarchy\n\n* Updated OUSD contract diagram\n\n* Added symbol to snapVault Hardhat task for OUSD\nAdded symbol to queueLiquidity hardhat task for OUSD\n\n* regenerated using latest sol2uml just to be safe",
"is_bot": false,
"headline": "Document updates and snapVault for OUSD (#2806)",
"author_name": "Nick Addison",
"author_login": "naddison36",
"committed_at": "2026-02-19T20:16:36Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "220369aea340d4bdb7d5da8e649fbbaa0ece9a4d",
"body": "* Run log Allocate 100k USDC to the Cross-chain strategy\n\n* Updated USDC balance message\n\n* Updated withdraw amount",
"is_bot": false,
"headline": "Run log - Allocate 100k USDC to the Cross-chain strategy (#2805)",
"author_name": "Nick Addison",
"author_login": "naddison36",
"committed_at": "2026-02-19T11:21:57Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "0e053766ab81e36c9cb1fd8e6c1ad335aa2c4293",
"body": "* Remove stuff\n\n* Remove stuff\n\n* Remove more stuff\n\n* Fix unit tests\n\n* Fix tests\n\n* remove more stuff\n\n* revert mock files\n\n* few more tweaks\n\n* more delete\n\n* remove older deployment files\n\n* Restore mock contract\n\n* Fix fixtures\n\n* Repo cleanup additions (#2804)\n\n* Removed old generated contract\n[…]\ngy\n\n* morphoOUSDv2Fixture to handle outstanding withdrawal requests\n\n* fix ForkTest: CrossChainRemoteStrategy fork tests\n\n* prettier\n\n---------\n\nCo-authored-by: Nick Addison <nick@addisonbrown.com.au>",
"is_bot": false,
"headline": "Repo Cleanup (#2799)",
"author_name": "Shah",
"author_login": "shahthepro",
"committed_at": "2026-02-19T11:15:35Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "1fb163b7726edf7b1d80e8994d040c897438cd31",
"body": "… (#2757)",
"is_bot": false,
"headline": "Fix the Native Staking Strategy fork tests for the second SSV cluster…",
"author_name": "Nick Addison",
"author_login": "naddison36",
"committed_at": "2026-02-19T02:55:24Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "2c3c18a683ba522d15ac9762f598c25749bfa7e1",
"body": "* Add scripts to change Crosschain strategy operator\n\n* Run base deployment",
"is_bot": false,
"headline": "Add scripts to change Crosschain strategy operator (#2802)",
"author_name": "Shah",
"author_login": "shahthepro",
"committed_at": "2026-02-18T17:34:14Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "4cd26cb741d6ad2d432a509ea5cfb78a375026a1",
"body": "* Run log 17 Feb - deposit SSV to clusters\n\n* Added native_staking_3_strat contract",
"is_bot": false,
"headline": "Run log 17 feb 26 (#2803)",
"author_name": "Nick Addison",
"author_login": "naddison36",
"committed_at": "2026-02-18T10:36:16Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "522f5a117e6b0dbe2e601520403cfaca44534cce",
"body": "…(#2798)",
"is_bot": false,
"headline": "[MerklPB] Transfer PoolBoostCentralRegistry governance to strategist …",
"author_name": "Clément",
"author_login": "clement-ux",
"committed_at": "2026-02-16T11:07:56Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "10af127ddb4862d362abba98b9fef22042eb4936",
"body": "* [CurvePB] Update CurvePoolBoosterBribesModule address\n\nUpdate the CurvePoolBoosterBribesModule contract address to the new deployment.\n\n\n* lint\n\n* [CurvePB] Refactor bribes module contract initialization and use constants from ethers",
"is_bot": false,
"headline": "[CurvePB] Update CurvePoolBoosterBribesModule address (#2797)",
"author_name": "Clément",
"author_login": "clement-ux",
"committed_at": "2026-02-16T11:07:21Z",
"body_truncated": false,
"is_coding_agent": false
}
],
"releases_count": 15,
"commits_last_year": 188,
"latest_release_at": "2023-08-04T14:32:01Z",
"latest_release_tag": "v0.1.8",
"releases_from_tags": false,
"days_since_last_push": 0,
"active_weeks_last_year": 48,
"days_since_latest_release": 1082,
"mean_days_between_releases": 101.3
},
"community": {
"has_readme": true,
"has_license": true,
"has_description": true,
"has_contributing": false,
"health_percentage": 50,
"has_issue_template": false,
"has_code_of_conduct": false,
"has_pull_request_template": true
},
"ecosystem": {
"packages": []
},
"popularity": {
"forks": 112,
"stars": 151,
"watchers": 37,
"fork_history": {
"days": [
{
"date": "2020-10-16",
"count": 1
},
{
"date": "2020-10-25",
"count": 1
},
{
"date": "2020-11-13",
"count": 1
},
{
"date": "2020-11-17",
"count": 1
},
{
"date": "2020-11-27",
"count": 1
},
{
"date": "2020-12-29",
"count": 1
},
{
"date": "2021-01-25",
"count": 1
},
{
"date": "2021-02-20",
"count": 1
},
{
"date": "2021-06-11",
"count": 1
},
{
"date": "2021-07-03",
"count": 1
},
{
"date": "2021-08-09",
"count": 1
},
{
"date": "2021-10-02",
"count": 1
},
{
"date": "2021-12-01",
"count": 1
},
{
"date": "2022-02-04",
"count": 2
},
{
"date": "2022-02-18",
"count": 1
},
{
"date": "2022-02-24",
"count": 1
},
{
"date": "2022-04-30",
"count": 1
},
{
"date": "2022-05-05",
"count": 1
},
{
"date": "2022-05-12",
"count": 1
},
{
"date": "2022-05-26",
"count": 1
},
{
"date": "2022-08-13",
"count": 1
},
{
"date": "2022-08-30",
"count": 1
},
{
"date": "2022-09-08",
"count": 1
},
{
"date": "2022-10-31",
"count": 1
},
{
"date": "2022-11-08",
"count": 1
},
{
"date": "2023-01-03",
"count": 1
},
{
"date": "2023-01-09",
"count": 1
},
{
"date": "2023-02-09",
"count": 1
},
{
"date": "2023-02-15",
"count": 1
},
{
"date": "2023-03-09",
"count": 1
},
{
"date": "2023-04-01",
"count": 1
},
{
"date": "2023-04-06",
"count": 1
},
{
"date": "2023-04-17",
"count": 1
},
{
"date": "2023-05-01",
"count": 1
},
{
"date": "2023-05-25",
"count": 1
},
{
"date": "2023-06-04",
"count": 1
},
{
"date": "2023-06-05",
"count": 1
},
{
"date": "2023-06-13",
"count": 1
},
{
"date": "2023-06-14",
"count": 1
},
{
"date": "2023-06-20",
"count": 1
},
{
"date": "2023-08-20",
"count": 1
},
{
"date": "2023-08-23",
"count": 1
},
{
"date": "2023-08-26",
"count": 1
},
{
"date": "2023-09-30",
"count": 1
},
{
"date": "2023-10-17",
"count": 1
},
{
"date": "2023-11-20",
"count": 1
},
{
"date": "2024-02-02",
"count": 1
},
{
"date": "2024-02-04",
"count": 1
},
{
"date": "2024-02-16",
"count": 10
},
{
"date": "2024-03-02",
"count": 1
},
{
"date": "2024-03-22",
"count": 1
},
{
"date": "2024-03-25",
"count": 1
},
{
"date": "2024-04-04",
"count": 1
},
{
"date": "2024-04-05",
"count": 1
},
{
"date": "2024-04-27",
"count": 1
},
{
"date": "2024-06-13",
"count": 1
},
{
"date": "2024-06-28",
"count": 1
},
{
"date": "2024-07-05",
"count": 1
},
{
"date": "2024-07-10",
"count": 1
},
{
"date": "2024-07-15",
"count": 1
},
{
"date": "2024-08-10",
"count": 1
},
{
"date": "2024-08-16",
"count": 1
},
{
"date": "2024-08-22",
"count": 1
},
{
"date": "2024-09-14",
"count": 1
},
{
"date": "2024-12-05",
"count": 1
},
{
"date": "2024-12-16",
"count": 1
},
{
"date": "2024-12-18",
"count": 1
},
{
"date": "2024-12-22",
"count": 1
},
{
"date": "2025-01-17",
"count": 1
},
{
"date": "2025-02-20",
"count": 1
},
{
"date": "2025-04-05",
"count": 1
},
{
"date": "2025-05-09",
"count": 1
},
{
"date": "2025-05-16",
"count": 1
},
{
"date": "2025-07-09",
"count": 1
},
{
"date": "2025-07-18",
"count": 1
},
{
"date": "2025-07-25",
"count": 1
},
{
"date": "2025-08-05",
"count": 1
},
{
"date": "2025-08-07",
"count": 1
},
{
"date": "2025-09-15",
"count": 1
},
{
"date": "2025-10-17",
"count": 1
},
{
"date": "2025-11-03",
"count": 1
},
{
"date": "2025-12-01",
"count": 1
},
{
"date": "2025-12-10",
"count": 1
},
{
"date": "2025-12-28",
"count": 1
},
{
"date": "2026-01-10",
"count": 2
},
{
"date": "2026-01-31",
"count": 1
},
{
"date": "2026-02-22",
"count": 1
},
{
"date": "2026-03-02",
"count": 1
},
{
"date": "2026-03-23",
"count": 1
},
{
"date": "2026-04-15",
"count": 1
},
{
"date": "2026-04-16",
"count": 1
},
{
"date": "2026-04-28",
"count": 1
},
{
"date": "2026-05-13",
"count": 1
},
{
"date": "2026-05-18",
"count": 1
},
{
"date": "2026-05-22",
"count": 1
},
{
"date": "2026-05-27",
"count": 1
},
{
"date": "2026-06-07",
"count": 1
},
{
"date": "2026-06-16",
"count": 1
},
{
"date": "2026-07-08",
"count": 1
}
],
"complete": true,
"collected": 110,
"total_forks": 112
},
"star_history": {
"days": [
{
"date": "2020-09-23",
"count": 5
},
{
"date": "2020-10-03",
"count": 1
},
{
"date": "2020-10-04",
"count": 1
},
{
"date": "2020-10-18",
"count": 1
},
{
"date": "2020-11-17",
"count": 1
},
{
"date": "2020-11-18",
"count": 1
},
{
"date": "2020-12-01",
"count": 1
},
{
"date": "2020-12-11",
"count": 1
},
{
"date": "2020-12-29",
"count": 1
},
{
"date": "2021-01-03",
"count": 1
},
{
"date": "2021-01-05",
"count": 1
},
{
"date": "2021-01-08",
"count": 1
},
{
"date": "2021-01-11",
"count": 1
},
{
"date": "2021-01-12",
"count": 1
},
{
"date": "2021-01-30",
"count": 1
},
{
"date": "2021-02-03",
"count": 1
},
{
"date": "2021-02-09",
"count": 1
},
{
"date": "2021-02-22",
"count": 1
},
{
"date": "2021-02-27",
"count": 1
},
{
"date": "2021-02-28",
"count": 1
},
{
"date": "2021-03-01",
"count": 1
},
{
"date": "2021-04-09",
"count": 1
},
{
"date": "2021-05-10",
"count": 1
},
{
"date": "2021-05-11",
"count": 1
},
{
"date": "2021-05-27",
"count": 1
},
{
"date": "2021-05-30",
"count": 1
},
{
"date": "2021-06-03",
"count": 1
},
{
"date": "2021-06-10",
"count": 1
},
{
"date": "2021-06-24",
"count": 1
},
{
"date": "2021-07-22",
"count": 1
},
{
"date": "2021-08-09",
"count": 1
},
{
"date": "2021-10-02",
"count": 1
},
{
"date": "2021-10-18",
"count": 1
},
{
"date": "2021-10-29",
"count": 1
},
{
"date": "2021-11-11",
"count": 1
},
{
"date": "2021-11-28",
"count": 2
},
{
"date": "2022-01-24",
"count": 1
},
{
"date": "2022-02-02",
"count": 1
},
{
"date": "2022-02-04",
"count": 1
},
{
"date": "2022-03-01",
"count": 1
},
{
"date": "2022-03-10",
"count": 1
},
{
"date": "2022-03-15",
"count": 1
},
{
"date": "2022-03-17",
"count": 1
},
{
"date": "2022-03-20",
"count": 1
},
{
"date": "2022-03-22",
"count": 1
},
{
"date": "2022-04-13",
"count": 2
},
{
"date": "2022-04-25",
"count": 1
},
{
"date": "2022-04-30",
"count": 1
},
{
"date": "2022-05-09",
"count": 1
},
{
"date": "2022-05-13",
"count": 1
},
{
"date": "2022-05-20",
"count": 1
},
{
"date": "2022-05-31",
"count": 1
},
{
"date": "2022-06-02",
"count": 1
},
{
"date": "2022-07-03",
"count": 1
},
{
"date": "2022-07-11",
"count": 1
},
{
"date": "2022-07-28",
"count": 1
},
{
"date": "2022-08-16",
"count": 1
},
{
"date": "2022-09-01",
"count": 1
},
{
"date": "2022-09-05",
"count": 1
},
{
"date": "2022-09-16",
"count": 1
},
{
"date": "2022-09-28",
"count": 1
},
{
"date": "2022-10-28",
"count": 1
},
{
"date": "2022-10-30",
"count": 1
},
{
"date": "2022-11-02",
"count": 1
},
{
"date": "2022-11-10",
"count": 1
},
{
"date": "2023-01-29",
"count": 1
},
{
"date": "2023-03-04",
"count": 1
},
{
"date": "2023-03-23",
"count": 1
},
{
"date": "2023-03-29",
"count": 1
},
{
"date": "2023-03-31",
"count": 1
},
{
"date": "2023-04-13",
"count": 1
},
{
"date": "2023-05-13",
"count": 1
},
{
"date": "2023-05-27",
"count": 1
},
{
"date": "2023-06-13",
"count": 1
},
{
"date": "2023-07-27",
"count": 1
},
{
"date": "2023-07-30",
"count": 1
},
{
"date": "2023-08-01",
"count": 1
},
{
"date": "2023-09-14",
"count": 1
},
{
"date": "2023-09-18",
"count": 1
},
{
"date": "2023-09-30",
"count": 1
},
{
"date": "2023-10-02",
"count": 1
},
{
"date": "2023-10-30",
"count": 1
},
{
"date": "2023-11-08",
"count": 1
},
{
"date": "2023-12-07",
"count": 1
},
{
"date": "2023-12-09",
"count": 1
},
{
"date": "2023-12-27",
"count": 1
},
{
"date": "2024-01-15",
"count": 1
},
{
"date": "2024-01-29",
"count": 1
},
{
"date": "2024-02-02",
"count": 1
},
{
"date": "2024-02-07",
"count": 1
},
{
"date": "2024-02-10",
"count": 1
},
{
"date": "2024-02-14",
"count": 1
},
{
"date": "2024-02-16",
"count": 1
},
{
"date": "2024-02-17",
"count": 1
},
{
"date": "2024-02-20",
"count": 1
},
{
"date": "2024-02-23",
"count": 1
},
{
"date": "2024-02-25",
"count": 1
},
{
"date": "2024-03-02",
"count": 1
},
{
"date": "2024-03-26",
"count": 1
},
{
"date": "2024-04-24",
"count": 1
},
{
"date": "2024-05-24",
"count": 1
},
{
"date": "2024-05-28",
"count": 1
},
{
"date": "2024-06-08",
"count": 1
},
{
"date": "2024-06-28",
"count": 1
},
{
"date": "2024-07-09",
"count": 1
},
{
"date": "2024-07-10",
"count": 1
},
{
"date": "2024-07-12",
"count": 1
},
{
"date": "2024-07-27",
"count": 1
},
{
"date": "2024-09-16",
"count": 1
},
{
"date": "2024-09-25",
"count": 1
},
{
"date": "2024-10-03",
"count": 2
},
{
"date": "2024-10-22",
"count": 1
},
{
"date": "2024-11-06",
"count": 1
},
{
"date": "2024-12-11",
"count": 1
},
{
"date": "2024-12-16",
"count": 1
},
{
"date": "2024-12-22",
"count": 1
},
{
"date": "2025-01-12",
"count": 1
},
{
"date": "2025-01-17",
"count": 1
},
{
"date": "2025-01-18",
"count": 1
},
{
"date": "2025-01-22",
"count": 1
},
{
"date": "2025-01-26",
"count": 2
},
{
"date": "2025-01-29",
"count": 1
},
{
"date": "2025-02-07",
"count": 1
},
{
"date": "2025-03-16",
"count": 1
},
{
"date": "2025-04-14",
"count": 1
},
{
"date": "2025-04-27",
"count": 1
},
{
"date": "2025-05-09",
"count": 1
},
{
"date": "2025-05-12",
"count": 1
},
{
"date": "2025-05-20",
"count": 1
},
{
"date": "2025-07-11",
"count": 1
},
{
"date": "2025-07-30",
"count": 1
},
{
"date": "2025-08-03",
"count": 1
},
{
"date": "2025-10-06",
"count": 1
},
{
"date": "2025-10-09",
"count": 1
},
{
"date": "2025-10-12",
"count": 1
},
{
"date": "2025-11-01",
"count": 1
},
{
"date": "2025-11-16",
"count": 1
},
{
"date": "2026-01-11",
"count": 1
},
{
"date": "2026-03-08",
"count": 1
},
{
"date": "2026-03-21",
"count": 1
},
{
"date": "2026-04-14",
"count": 1
},
{
"date": "2026-04-17",
"count": 1
},
{
"date": "2026-07-02",
"count": 1
}
],
"complete": true,
"collected": 151,
"total_stars": 151
},
"open_issues_and_prs": 219
},
"ai_readiness": {
"has_nix": false,
"example_dirs": [],
"has_llms_txt": false,
"has_dockerfile": true,
"has_mcp_signal": false,
"bootstrap_files": [],
"api_schema_files": [],
"has_devcontainer": false,
"typecheck_configs": [
"contracts/tsconfig.json"
],
"toolchain_manifests": [],
"largest_source_bytes": 121545,
"source_files_sampled": 453,
"oversized_source_files": 8,
"agent_instruction_files": [
"AGENTS.md",
"CLAUDE.md"
],
"agent_instruction_max_bytes": 8324
},
"dependencies": {
"manifests": [
"contracts/package.json",
"package.json"
],
"advisories": {
"error": null,
"scope": null,
"source": null,
"findings": [],
"collected": false,
"malicious": [],
"truncated": false,
"by_severity": {},
"advisory_count": 0,
"affected_count": 0,
"assessed_count": 0,
"malicious_count": 0,
"assessed_package": null,
"unassessed_count": 0,
"direct_affected_count": 0
},
"ecosystems": [
"npm"
],
"dependencies": [
{
"name": "@chainlink/contracts-ccip",
"manifest": "contracts/package.json",
"ecosystem": "npm",
"version_constraint": "1.2.1"
},
{
"name": "@chainsafe/bls",
"manifest": "contracts/package.json",
"ecosystem": "npm",
"version_constraint": "^8.2.0"
},
{
"name": "@lodestar/api",
"manifest": "contracts/package.json",
"ecosystem": "npm",
"version_constraint": "^1.41.0"
},
{
"name": "@lodestar/config",
"manifest": "contracts/package.json",
"ecosystem": "npm",
"version_constraint": "^1.41.0"
},
{
"name": "@lodestar/params",
"manifest": "contracts/package.json",
"ecosystem": "npm",
"version_constraint": "^1.41.0"
},
{
"name": "@lodestar/state-transition",
"manifest": "contracts/package.json",
"ecosystem": "npm",
"version_constraint": "^1.41.0"
},
{
"name": "@lodestar/types",
"manifest": "contracts/package.json",
"ecosystem": "npm",
"version_constraint": "^1.41.0"
},
{
"name": "@lodestar/utils",
"manifest": "contracts/package.json",
"ecosystem": "npm",
"version_constraint": "^1.41.0"
},
{
"name": "@talos/client",
"manifest": "contracts/package.json",
"ecosystem": "npm",
"version_constraint": "github:oplabs/talos#8f15dbbdc96a4d3cabf932d41e016779c0946266&path:packages/client"
},
{
"name": "@types/pg",
"manifest": "contracts/package.json",
"ecosystem": "npm",
"version_constraint": "^8.20.0"
},
{
"name": "origin-morpho-utils",
"manifest": "contracts/package.json",
"ecosystem": "npm",
"version_constraint": "^0.1.1"
},
{
"name": "pg",
"manifest": "contracts/package.json",
"ecosystem": "npm",
"version_constraint": "^8.20.0"
}
],
"all_dependencies": {
"error": "GitHub dependency-graph SBOM unavailable (404); the dependency graph may be disabled for this repository",
"source": null,
"packages": [],
"collected": false,
"truncated": false,
"total_count": null,
"direct_count": null,
"indirect_count": null
}
},
"maintainership": {
"issues": {
"open_prs": 30,
"merged_prs": 1869,
"open_issues": 189,
"closed_ratio": 0.747,
"closed_issues": 559,
"closed_unmerged_prs": 272
},
"bus_factor": 2,
"bot_contributors": 1,
"top_contributors": [
{
"type": "User",
"login": "sparrowDom",
"commits": 1609,
"avatar_url": "https://avatars.githubusercontent.com/u/579910?v=4"
},
{
"type": "User",
"login": "tomlinton",
"commits": 542,
"avatar_url": "https://avatars.githubusercontent.com/u/489202?v=4"
},
{
"type": "User",
"login": "shahthepro",
"commits": 390,
"avatar_url": "https://avatars.githubusercontent.com/u/10547529?v=4"
},
{
"type": "User",
"login": "DanielVF",
"commits": 275,
"avatar_url": "https://avatars.githubusercontent.com/u/837?v=4"
},
{
"type": "User",
"login": "naddison36",
"commits": 229,
"avatar_url": "https://avatars.githubusercontent.com/u/6491112?v=4"
},
{
"type": "User",
"login": "micahalcorn",
"commits": 199,
"avatar_url": "https://avatars.githubusercontent.com/u/273937?v=4"
},
{
"type": "User",
"login": "crazybuster",
"commits": 114,
"avatar_url": "https://avatars.githubusercontent.com/u/4496236?v=4"
},
{
"type": "User",
"login": "clement-ux",
"commits": 86,
"avatar_url": "https://avatars.githubusercontent.com/u/55331875?v=4"
},
{
"type": "User",
"login": "rolandpo",
"commits": 61,
"avatar_url": "https://avatars.githubusercontent.com/u/62400812?v=4"
},
{
"type": "User",
"login": "snyk-bot",
"commits": 45,
"avatar_url": "https://avatars.githubusercontent.com/u/19733683?v=4"
}
],
"contributors_sampled": 48,
"top_contributor_share": 0.443
},
"quality_signals": {
"has_ci": true,
"has_tests": true,
"ci_workflows": [
"abi.yml",
"aws-deployment.yml",
"defi.yml"
],
"has_docs_dir": false,
"linter_configs": [
".eslintrc.js"
],
"has_editorconfig": false,
"has_linter_config": true,
"has_precommit_config": false
},
"security_signals": {
"lockfiles": [
"pnpm-lock.yaml",
"yarn.lock"
],
"scorecard": {
"checks": [
{
"name": "Binary-Artifacts",
"score": 10,
"reason": "no binaries found in the repo",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#binary-artifacts"
},
{
"name": "Branch-Protection",
"score": 6,
"reason": "branch protection is not maximal on development and all release branches",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#branch-protection"
},
{
"name": "CI-Tests",
"score": 9,
"reason": "29 out of 30 merged PRs checked by a CI test -- score normalized to 9",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#ci-tests"
},
{
"name": "CII-Best-Practices",
"score": 0,
"reason": "no effort to earn an OpenSSF best practices badge detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#cii-best-practices"
},
{
"name": "Code-Review",
"score": 10,
"reason": "all changesets reviewed",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#code-review"
},
{
"name": "Contributors",
"score": 10,
"reason": "project has 8 contributing companies or organizations",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#contributors"
},
{
"name": "Dangerous-Workflow",
"score": 10,
"reason": "no dangerous workflow patterns detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dangerous-workflow"
},
{
"name": "Dependency-Update-Tool",
"score": 10,
"reason": "update tool detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dependency-update-tool"
},
{
"name": "Fuzzing",
"score": 0,
"reason": "project is not fuzzed",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#fuzzing"
},
{
"name": "License",
"score": 10,
"reason": "license file detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#license"
},
{
"name": "Maintained",
"score": 10,
"reason": "30 commit(s) and 2 issue activity found in the last 90 days -- score normalized to 10",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#maintained"
},
{
"name": "Packaging",
"score": 10,
"reason": "packaging workflow detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#packaging"
},
{
"name": "Pinned-Dependencies",
"score": 3,
"reason": "dependency not pinned by hash detected -- score normalized to 3",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#pinned-dependencies"
},
{
"name": "SAST",
"score": 10,
"reason": "SAST tool detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#sast"
},
{
"name": "Security-Policy",
"score": 0,
"reason": "security policy file not detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#security-policy"
},
{
"name": "Signed-Releases",
"score": null,
"reason": "no releases found",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#signed-releases"
},
{
"name": "Token-Permissions",
"score": 10,
"reason": "GitHub workflow tokens follow principle of least privilege",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#token-permissions"
},
{
"name": "Vulnerabilities",
"score": 0,
"reason": "171 existing vulnerabilities detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#vulnerabilities"
}
],
"commit": "07a7fcb052d715409014dd69e69e3c680ee8ae47",
"ran_at": "2026-07-22T03:00:04Z",
"aggregate_score": 7.3,
"scorecard_version": "v5.5.0"
},
"has_codeql_workflow": false,
"has_security_policy": false,
"has_dependabot_config": false
},
"contribution_flow": {
"collected": true,
"ci_last_run_at": "2026-07-20T11:05:11Z",
"oldest_open_prs": [
{
"number": 561,
"created_at": "2021-02-15T16:20:22Z",
"last_comment_at": "2023-07-07T10:51:45Z",
"last_comment_author": "sparrowDom"
},
{
"number": 1203,
"created_at": "2022-12-15T19:52:18Z",
"last_comment_at": "2023-07-06T15:34:35Z",
"last_comment_author": "sparrowDom"
},
{
"number": 1239,
"created_at": "2023-02-06T13:24:23Z",
"last_comment_at": "2023-07-06T12:52:24Z",
"last_comment_author": "sparrowDom"
},
{
"number": 1515,
"created_at": "2023-05-18T20:39:34Z",
"last_comment_at": "2023-07-10T09:45:20Z",
"last_comment_author": "sparrowDom"
},
{
"number": 1680,
"created_at": "2023-07-04T16:11:08Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 1826,
"created_at": "2023-09-21T20:57:26Z",
"last_comment_at": "2023-09-22T15:23:46Z",
"last_comment_author": "DanielVF"
},
{
"number": 1936,
"created_at": "2023-11-19T23:22:40Z",
"last_comment_at": "2023-11-27T12:34:27Z",
"last_comment_author": "naddison36"
},
{
"number": 1943,
"created_at": "2023-11-27T10:41:44Z",
"last_comment_at": "2023-11-28T22:17:09Z",
"last_comment_author": "sparrowDom"
},
{
"number": 1984,
"created_at": "2024-01-30T15:02:28Z",
"last_comment_at": "2024-01-30T15:03:05Z",
"last_comment_author": "github-actions"
},
{
"number": 2011,
"created_at": "2024-03-27T16:41:01Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 2095,
"created_at": "2024-06-07T22:47:44Z",
"last_comment_at": "2024-06-07T23:08:18Z",
"last_comment_author": "sparrowDom"
},
{
"number": 2098,
"created_at": "2024-06-11T14:30:40Z",
"last_comment_at": "2024-06-14T20:47:29Z",
"last_comment_author": "codecov"
},
{
"number": 2233,
"created_at": "2024-09-14T10:10:15Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 2283,
"created_at": "2024-10-21T19:56:23Z",
"last_comment_at": "2024-10-21T20:04:35Z",
"last_comment_author": "codecov"
},
{
"number": 2593,
"created_at": "2025-07-22T08:34:37Z",
"last_comment_at": "2025-07-22T08:46:17Z",
"last_comment_author": "codecov"
},
{
"number": 2623,
"created_at": "2025-08-18T07:13:02Z",
"last_comment_at": "2025-08-18T07:18:19Z",
"last_comment_author": "codecov"
},
{
"number": 2773,
"created_at": "2026-01-29T14:04:39Z",
"last_comment_at": "2026-01-29T14:09:47Z",
"last_comment_author": "codecov"
},
{
"number": 2815,
"created_at": "2026-02-26T12:16:58Z",
"last_comment_at": "2026-02-26T12:22:05Z",
"last_comment_author": "codecov"
},
{
"number": 2824,
"created_at": "2026-03-03T15:39:17Z",
"last_comment_at": "2026-03-03T15:47:16Z",
"last_comment_author": "codecov"
},
{
"number": 2848,
"created_at": "2026-03-20T13:24:09Z",
"last_comment_at": null,
"last_comment_author": null
}
],
"last_merged_pr_at": "2026-07-21T16:36:00Z",
"ci_last_conclusion": "SUCCESS",
"oldest_open_issues": [
{
"number": 14,
"created_at": "2020-08-07T19:06:19Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 15,
"created_at": "2020-08-10T15:51:58Z",
"last_comment_at": "2022-01-13T21:19:18Z",
"last_comment_author": "joshfraser"
},
{
"number": 22,
"created_at": "2020-08-10T20:43:03Z",
"last_comment_at": "2023-05-08T13:26:36Z",
"last_comment_author": "rolandpo"
},
{
"number": 53,
"created_at": "2020-08-17T20:52:00Z",
"last_comment_at": "2022-05-20T15:30:21Z",
"last_comment_author": "micahalcorn"
},
{
"number": 59,
"created_at": "2020-08-19T01:53:47Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 76,
"created_at": "2020-08-23T02:18:05Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 112,
"created_at": "2020-08-28T18:40:25Z",
"last_comment_at": "2021-03-11T04:55:11Z",
"last_comment_author": "icyage"
},
{
"number": 160,
"created_at": "2020-09-11T07:00:13Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 227,
"created_at": "2020-09-22T00:29:08Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 252,
"created_at": "2020-09-24T21:46:43Z",
"last_comment_at": "2020-09-25T01:57:56Z",
"last_comment_author": "tomlinton"
},
{
"number": 301,
"created_at": "2020-10-09T01:37:05Z",
"last_comment_at": "2020-12-22T18:53:51Z",
"last_comment_author": "nickgeoca"
},
{
"number": 312,
"created_at": "2020-10-13T19:16:01Z",
"last_comment_at": "2021-05-20T07:34:13Z",
"last_comment_author": "tomlinton"
},
{
"number": 313,
"created_at": "2020-10-13T20:23:44Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 318,
"created_at": "2020-10-14T12:12:11Z",
"last_comment_at": "2020-12-05T04:50:05Z",
"last_comment_author": "franckc"
},
{
"number": 365,
"created_at": "2020-11-13T00:26:02Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 434,
"created_at": "2020-12-16T22:16:02Z",
"last_comment_at": "2021-01-21T20:15:00Z",
"last_comment_author": "nick"
},
{
"number": 445,
"created_at": "2020-12-18T21:21:32Z",
"last_comment_at": "2021-01-08T23:13:56Z",
"last_comment_author": "franckc"
},
{
"number": 461,
"created_at": "2020-12-24T16:24:53Z",
"last_comment_at": "2021-08-13T05:17:43Z",
"last_comment_author": "micahalcorn"
},
{
"number": 479,
"created_at": "2021-01-06T01:06:12Z",
"last_comment_at": "2021-09-10T21:36:54Z",
"last_comment_author": "micahalcorn"
},
{
"number": 483,
"created_at": "2021-01-06T14:55:57Z",
"last_comment_at": "2021-11-21T09:06:52Z",
"last_comment_author": "sparrowDom"
}
]
}
},
"config": {
"disabled_metrics": [],
"disabled_categories": [],
"disabled_components": {}
},
"source": {
"url": "https://github.com/OriginProtocol/origin-dollar",
"host": "github.com",
"name": "origin-dollar",
"owner": "OriginProtocol"
},
"metrics": {
"overall": {
"key": "overall",
"band": "good",
"name": "Overall health",
"note": null,
"notes": [],
"value": 73,
"inputs": {
"security": 73,
"vitality": 79,
"community": 59,
"governance": 71,
"engineering": 79
},
"components": []
},
"categories": [
{
"key": "vitality",
"band": "good",
"name": "Vitality",
"value": 79,
"weight": 0.22,
"metrics": [
{
"key": "development_activity",
"band": "excellent",
"name": "Development activity",
"note": null,
"notes": [],
"value": 97,
"inputs": {
"commits_last_year": 188,
"human_commit_share": 1,
"days_since_last_push": 0,
"active_weeks_last_year": 48
},
"components": [
{
"key": "push_recency",
"name": "Push recency",
"detail": "last push 0 days ago",
"points": 36,
"status": "met",
"details": [
{
"code": "push_recency",
"params": {
"days": 0
}
}
],
"max_points": 36
},
{
"key": "commit_cadence",
"name": "Commit cadence",
"detail": "48/52 weeks with commits",
"points": 33.2,
"status": "partial",
"details": [
{
"code": "commit_cadence_weeks",
"params": {
"weeks": 48
}
}
],
"max_points": 36
},
{
"key": "commit_volume",
"name": "Commit volume",
"detail": "188 commits in the last year",
"points": 18,
"status": "met",
"details": [
{
"code": "commits_last_year",
"params": {
"count": 188
}
}
],
"max_points": 18
},
{
"key": "openssf_scorecard_maintained",
"name": "OpenSSF Scorecard: Maintained",
"detail": "30 commit(s) and 2 issue activity found in the last 90 days -- score normalized to 10",
"points": 10,
"status": "met",
"details": [],
"max_points": 10
}
]
},
{
"key": "release_discipline",
"band": "moderate",
"name": "Release discipline",
"note": "Excluded from scoring (no data or not applicable): OpenSSF Scorecard: Signed-Releases. Remaining weights renormalized.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"openssf_scorecard_signed_releases"
]
}
},
{
"code": "weights_renormalized",
"params": {}
}
],
"value": 52,
"inputs": {
"releases_count": 15,
"latest_release_tag": "v0.1.8",
"releases_from_tags": false,
"days_since_latest_release": 1082,
"mean_days_between_releases": 101.3
},
"components": [
{
"key": "ships_releases",
"name": "Ships releases",
"detail": "15 releases published",
"points": 27,
"status": "met",
"details": [
{
"code": "releases_published",
"params": {
"count": 15
}
}
],
"max_points": 27
},
{
"key": "release_recency",
"name": "Release recency",
"detail": "latest release 1082 days ago",
"points": 0,
"status": "missed",
"details": [
{
"code": "release_recency",
"params": {
"days": 1082
}
}
],
"max_points": 36
},
{
"key": "release_cadence",
"name": "Release cadence",
"detail": "a release every ~101.3 days",
"points": 19.8,
"status": "partial",
"details": [
{
"code": "release_cadence",
"params": {
"gap": 101.3
}
}
],
"max_points": 27
},
{
"key": "openssf_scorecard_signed_releases",
"name": "OpenSSF Scorecard: Signed-Releases",
"detail": "no releases found",
"points": 0,
"status": "excluded",
"details": [
{
"code": "no_data",
"params": {}
}
],
"max_points": 10
}
]
},
{
"key": "abandonment",
"band": "excellent",
"name": "Abandonment",
"note": null,
"notes": [],
"value": 100,
"inputs": {
"cap": null,
"state": "maintained",
"guards": [],
"signals": [],
"red_flag": false,
"multiplier_pct": 100,
"declared_reason": null,
"unverified_reason": null,
"unanswered_open_prs": null,
"unanswered_open_issues": null,
"days_since_last_merged_pr": null,
"days_since_last_human_commit": 1,
"days_since_last_human_commit_is_floor": false
},
"components": [
{
"key": "project_is_still_maintained",
"name": "Project is still maintained",
"detail": "last human commit 1 days ago",
"points": 100,
"status": "met",
"details": [
{
"code": "abandonment_maintained",
"params": {
"days": 1
}
}
],
"max_points": 100
}
]
}
],
"description": "Is the project alive — is code being written and are releases shipping?"
},
{
"key": "community",
"band": "moderate",
"name": "Community & Adoption",
"value": 59,
"weight": 0.18,
"metrics": [
{
"key": "popularity",
"band": "moderate",
"name": "Popularity & adoption",
"note": null,
"notes": [],
"value": 61,
"inputs": {
"forks": 112,
"stars": 151,
"watchers": 37,
"growth_state": "organic",
"growth_factor_pct": 100
},
"components": [
{
"key": "stars",
"name": "Stars",
"detail": "151 stars",
"points": 35.3,
"status": "partial",
"details": [
{
"code": "stars",
"params": {
"count": 151
}
}
],
"max_points": 60
},
{
"key": "forks",
"name": "Forks",
"detail": "112 forks",
"points": 17,
"status": "partial",
"details": [
{
"code": "forks",
"params": {
"count": 112
}
}
],
"max_points": 25
},
{
"key": "watchers",
"name": "Watchers",
"detail": "37 watchers",
"points": 8.7,
"status": "partial",
"details": [
{
"code": "watchers",
"params": {
"count": 37
}
}
],
"max_points": 15
}
]
},
{
"key": "community_health",
"band": "moderate",
"name": "Community health",
"note": null,
"notes": [],
"value": 57,
"inputs": {
"has_readme": true,
"has_license": true,
"has_contributing": false,
"has_issue_template": false,
"has_code_of_conduct": false,
"has_pull_request_template": true
},
"components": [
{
"key": "readme",
"name": "README",
"detail": null,
"points": 22.5,
"status": "met",
"details": [],
"max_points": 22.5
},
{
"key": "license",
"name": "License",
"detail": "recognized license (MIT)",
"points": 22.5,
"status": "met",
"details": [
{
"code": "license_standard",
"params": {}
},
{
"code": "license_spdx",
"params": {
"spdx": "MIT"
}
}
],
"max_points": 22.5
},
{
"key": "contributing_guide",
"name": "CONTRIBUTING guide",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 18
},
{
"key": "code_of_conduct",
"name": "Code of conduct",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 13.5
},
{
"key": "issue_template",
"name": "Issue template",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.2
},
{
"key": "pr_template",
"name": "PR template",
"detail": null,
"points": 6.3,
"status": "met",
"details": [],
"max_points": 6.3
}
]
}
],
"description": "Does the project have users, downloads, attention, and a welcoming setup for contributors?"
},
{
"key": "governance",
"band": "good",
"name": "Sustainability & Governance",
"value": 71,
"weight": 0.24,
"metrics": [
{
"key": "maintainer_resilience",
"band": "moderate",
"name": "Maintainer resilience (bus factor)",
"note": null,
"notes": [],
"value": 61,
"inputs": {
"bus_factor": 2,
"contributors_sampled": 48,
"top_contributor_share": 0.443
},
"components": [
{
"key": "bus_factor",
"name": "Bus factor",
"detail": "2 contributor(s) cover half of all commits",
"points": 25.2,
"status": "partial",
"details": [
{
"code": "bus_factor",
"params": {
"count": 2
}
}
],
"max_points": 54
},
{
"key": "commit_distribution",
"name": "Commit distribution",
"detail": "top contributor authored 44% of commits",
"points": 12.5,
"status": "partial",
"details": [
{
"code": "top_contributor_share",
"params": {
"share": 44
}
}
],
"max_points": 22.5
},
{
"key": "contributor_breadth",
"name": "Contributor breadth",
"detail": "48 contributors",
"points": 13.5,
"status": "met",
"details": [
{
"code": "contributors_sampled",
"params": {
"count": 48
}
}
],
"max_points": 13.5
},
{
"key": "openssf_scorecard_contributors",
"name": "OpenSSF Scorecard: Contributors",
"detail": "project has 8 contributing companies or organizations",
"points": 10,
"status": "met",
"details": [],
"max_points": 10
}
]
},
{
"key": "responsiveness",
"band": "good",
"name": "Issue & PR responsiveness",
"note": null,
"notes": [],
"value": 83,
"inputs": {
"merged_prs": 1869,
"open_issues": 189,
"closed_issues": 559,
"issue_closed_ratio": 0.747,
"closed_unmerged_prs": 272
},
"components": [
{
"key": "issue_resolution",
"name": "Issue resolution",
"detail": "75% of issues closed",
"points": 34.9,
"status": "partial",
"details": [
{
"code": "issues_closed_share",
"params": {
"share": 75
}
}
],
"max_points": 46.75
},
{
"key": "pr_acceptance",
"name": "PR acceptance",
"detail": "1869/2141 decided PRs merged",
"points": 33.4,
"status": "partial",
"details": [
{
"code": "decided_prs_merged",
"params": {
"merged": 1869,
"decided": 2141
}
}
],
"max_points": 38.25
},
{
"key": "openssf_scorecard_code_review",
"name": "OpenSSF Scorecard: Code-Review",
"detail": "all changesets reviewed",
"points": 15,
"status": "met",
"details": [],
"max_points": 15
}
]
},
{
"key": "stewardship",
"band": "good",
"name": "Ownership & stewardship",
"note": null,
"notes": [],
"value": 70,
"inputs": {
"followers": 103,
"owner_type": "Organization",
"is_verified": null,
"owner_login": "OriginProtocol",
"public_repos": 105,
"account_age_days": 3276
},
"components": [
{
"key": "ownership_backing",
"name": "Ownership backing",
"detail": "organization-owned",
"points": 30,
"status": "met",
"details": [
{
"code": "owner_organization",
"params": {}
}
],
"max_points": 30
},
{
"key": "verified_domain",
"name": "Verified domain",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 20
},
{
"key": "owner_reach",
"name": "Owner reach",
"detail": "103 followers of OriginProtocol",
"points": 14.5,
"status": "partial",
"details": [
{
"code": "owner_followers",
"params": {
"count": 103,
"login": "OriginProtocol"
}
}
],
"max_points": 25
},
{
"key": "track_record",
"name": "Track record",
"detail": "105 public repos, account ~8 yr old",
"points": 25,
"status": "met",
"details": [
{
"code": "public_repos",
"params": {
"count": 105
}
},
{
"code": "account_age_years",
"params": {
"years": 8
}
}
],
"max_points": 25
}
]
}
],
"description": "Will the project survive its people — bus factor, responsiveness, who backs it, and package upkeep?"
},
{
"key": "engineering",
"band": "good",
"name": "Engineering Quality",
"value": 79,
"weight": 0.2,
"metrics": [
{
"key": "engineering_practices",
"band": "good",
"name": "Engineering practices",
"note": null,
"notes": [],
"value": 82,
"inputs": {
"has_ci": true,
"has_tests": true,
"has_editorconfig": false,
"has_linter_config": true,
"has_precommit_config": false
},
"components": [
{
"key": "ci_workflows",
"name": "CI workflows",
"detail": "3 workflow(s)",
"points": 24,
"status": "met",
"details": [
{
"code": "ci_workflows",
"params": {
"count": 3
}
}
],
"max_points": 24
},
{
"key": "tests_present",
"name": "Tests present",
"detail": null,
"points": 24,
"status": "met",
"details": [],
"max_points": 24
},
{
"key": "linter_config",
"name": "Linter config",
"detail": ".eslintrc.js",
"points": 16,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": ".eslintrc.js"
}
}
],
"max_points": 16
},
{
"key": "pre_commit_hooks",
"name": "Pre-commit hooks",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 9.6
},
{
"key": "editorconfig",
"name": ".editorconfig",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 6.4
},
{
"key": "openssf_scorecard_ci_tests",
"name": "OpenSSF Scorecard: CI-Tests",
"detail": "29 out of 30 merged PRs checked by a CI test -- score normalized to 9",
"points": 18,
"status": "partial",
"details": [],
"max_points": 20
}
]
},
{
"key": "documentation",
"band": "good",
"name": "Documentation",
"note": null,
"notes": [],
"value": 75,
"inputs": {
"topics": [
"defi",
"ethereum",
"web3"
],
"has_wiki": true,
"homepage": "https://originprotocol.com",
"has_readme": true,
"has_docs_dir": false,
"has_description": true
},
"components": [
{
"key": "readme",
"name": "README",
"detail": null,
"points": 30,
"status": "met",
"details": [],
"max_points": 30
},
{
"key": "documentation_directory",
"name": "Documentation directory",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 25
},
{
"key": "documentation_homepage_site",
"name": "Documentation / homepage site",
"detail": "https://originprotocol.com",
"points": 15,
"status": "met",
"details": [],
"max_points": 15
},
{
"key": "repository_description",
"name": "Repository description",
"detail": null,
"points": 10,
"status": "met",
"details": [],
"max_points": 10
},
{
"key": "topics",
"name": "Topics",
"detail": "3 topics",
"points": 10,
"status": "met",
"details": [
{
"code": "topics_count",
"params": {
"count": 3
}
}
],
"max_points": 10
},
{
"key": "wiki",
"name": "Wiki",
"detail": null,
"points": 10,
"status": "met",
"details": [],
"max_points": 10
}
]
}
],
"description": "Are baseline engineering and documentation practices in place?"
},
{
"key": "security",
"band": "good",
"name": "Security",
"value": 73,
"weight": 0.16,
"metrics": [
{
"key": "security_posture",
"band": "good",
"name": "Security posture",
"note": "Excluded from scoring (no data or not applicable): Signed-Releases. Remaining weights renormalized.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"signed_releases"
]
}
},
{
"code": "weights_renormalized",
"params": {}
}
],
"value": 73,
"inputs": {
"source": "openssf_scorecard",
"checks_evaluated": 17,
"scorecard_version": "v5.5.0",
"checks_inconclusive": 1,
"scorecard_aggregate": 7.3
},
"components": [
{
"key": "binary_artifacts",
"name": "Binary-Artifacts",
"detail": "no binaries found in the repo",
"points": 7.5,
"status": "met",
"details": [],
"max_points": 7.5
},
{
"key": "branch_protection",
"name": "Branch-Protection",
"detail": "branch protection is not maximal on development and all release branches",
"points": 4.5,
"status": "partial",
"details": [],
"max_points": 7.5
},
{
"key": "ci_tests",
"name": "CI-Tests",
"detail": "29 out of 30 merged PRs checked by a CI test -- score normalized to 9",
"points": 2.2,
"status": "partial",
"details": [],
"max_points": 2.5
},
{
"key": "cii_best_practices",
"name": "CII-Best-Practices",
"detail": "no effort to earn an OpenSSF best practices badge detected",
"points": 0,
"status": "missed",
"details": [],
"max_points": 2.5
},
{
"key": "code_review",
"name": "Code-Review",
"detail": "all changesets reviewed",
"points": 7.5,
"status": "met",
"details": [],
"max_points": 7.5
},
{
"key": "contributors",
"name": "Contributors",
"detail": "project has 8 contributing companies or organizations",
"points": 2.5,
"status": "met",
"details": [],
"max_points": 2.5
},
{
"key": "dangerous_workflow",
"name": "Dangerous-Workflow",
"detail": "no dangerous workflow patterns detected",
"points": 10,
"status": "met",
"details": [],
"max_points": 10
},
{
"key": "dependency_update_tool",
"name": "Dependency-Update-Tool",
"detail": "update tool detected",
"points": 7.5,
"status": "met",
"details": [],
"max_points": 7.5
},
{
"key": "fuzzing",
"name": "Fuzzing",
"detail": "project is not fuzzed",
"points": 0,
"status": "missed",
"details": [],
"max_points": 5
},
{
"key": "license",
"name": "License",
"detail": "license file detected",
"points": 2.5,
"status": "met",
"details": [],
"max_points": 2.5
},
{
"key": "maintained",
"name": "Maintained",
"detail": "30 commit(s) and 2 issue activity found in the last 90 days -- score normalized to 10",
"points": 7.5,
"status": "met",
"details": [],
"max_points": 7.5
},
{
"key": "packaging",
"name": "Packaging",
"detail": "packaging workflow detected",
"points": 5,
"status": "met",
"details": [],
"max_points": 5
},
{
"key": "pinned_dependencies",
"name": "Pinned-Dependencies",
"detail": "dependency not pinned by hash detected -- score normalized to 3",
"points": 1.5,
"status": "partial",
"details": [],
"max_points": 5
},
{
"key": "sast",
"name": "SAST",
"detail": "SAST tool detected",
"points": 5,
"status": "met",
"details": [],
"max_points": 5
},
{
"key": "security_policy",
"name": "Security-Policy",
"detail": "security policy file not detected",
"points": 0,
"status": "missed",
"details": [],
"max_points": 5
},
{
"key": "signed_releases",
"name": "Signed-Releases",
"detail": "no releases found",
"points": 0,
"status": "excluded",
"details": [
{
"code": "no_data",
"params": {}
}
],
"max_points": 7.5
},
{
"key": "token_permissions",
"name": "Token-Permissions",
"detail": "GitHub workflow tokens follow principle of least privilege",
"points": 7.5,
"status": "met",
"details": [],
"max_points": 7.5
},
{
"key": "vulnerabilities",
"name": "Vulnerabilities",
"detail": "171 existing vulnerabilities detected",
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.5
}
]
},
{
"key": "high_risk_jurisdiction_exposure",
"band": "excellent",
"name": "High-Risk Jurisdiction Exposure",
"note": "Only high-confidence self-published location evidence affects this multiplier. Ambiguous matches are review-only; country evidence is not proof of nationality, citizenship, legal registration, malicious intent, or sanctions status.",
"notes": [
{
"code": "jurisdiction_evidence_limits",
"params": {}
}
],
"value": 100,
"inputs": {
"meaning": "self-published location evidence; not nationality or citizenship",
"red_flag": false,
"exposures": [],
"policy_countries": [
"Russia",
"Iran",
"North Korea"
],
"review_only_matches": 0,
"assessed_self_published_locations": 10
},
"components": [
{
"key": "policy_exposure_multiplier",
"name": "Policy exposure multiplier",
"detail": "no confirmed policy-scope location match",
"points": 100,
"status": "met",
"details": [
{
"code": "jurisdiction_no_match",
"params": {}
}
],
"max_points": 100
}
]
}
],
"description": "Are visible security and supply-chain practices strong, with no malicious dependency and no unresolved high-risk jurisdiction exposure?"
},
{
"key": "ai_readiness",
"band": "good",
"name": "AI Readiness",
"value": 76,
"weight": 0,
"metrics": [
{
"key": "ai_agent_context",
"band": "excellent",
"name": "Agent context & guidance",
"note": null,
"notes": [],
"value": 85,
"inputs": {
"has_llms_txt": false,
"legible_history_share": 0.95,
"agent_instruction_files": [
"AGENTS.md",
"CLAUDE.md"
],
"agent_instruction_max_bytes": 8324
},
"components": [
{
"key": "agent_instructions",
"name": "Agent instructions",
"detail": "AGENTS.md, CLAUDE.md",
"points": 45,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": "AGENTS.md, CLAUDE.md"
}
}
],
"max_points": 45
},
{
"key": "machine_readable_docs_llms_txt",
"name": "Machine-readable docs (llms.txt)",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 15
},
{
"key": "legible_commit_history",
"name": "Legible commit history",
"detail": "95 of 100 human commits state their intent (structured subject or explanatory body)",
"points": 40,
"status": "met",
"details": [
{
"code": "legible_history",
"params": {
"legible": 95,
"sampled": 100
}
}
],
"max_points": 40
}
]
},
{
"key": "ai_verify_loop",
"band": "moderate",
"name": "Verify loop (build / test / typecheck)",
"note": null,
"notes": [],
"value": 67,
"inputs": {
"has_nix": false,
"has_tests": true,
"lockfiles": [
"pnpm-lock.yaml",
"yarn.lock"
],
"has_dockerfile": true,
"typed_language": false,
"bootstrap_files": [],
"has_devcontainer": false,
"has_linter_config": true,
"typecheck_configs": [
"contracts/tsconfig.json"
],
"agent_commit_share": 0.06,
"toolchain_manifests": [],
"dependency_bot_commit_share": 0
},
"components": [
{
"key": "one_command_bootstrap",
"name": "One-command bootstrap",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 18
},
{
"key": "automated_tests",
"name": "Automated tests",
"detail": null,
"points": 22,
"status": "met",
"details": [],
"max_points": 22
},
{
"key": "lint_format_config",
"name": "Lint / format config",
"detail": ".eslintrc.js",
"points": 11,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": ".eslintrc.js"
}
}
],
"max_points": 11
},
{
"key": "static_type_checking",
"name": "Static type checking",
"detail": "contracts/tsconfig.json",
"points": 11,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": "contracts/tsconfig.json"
}
}
],
"max_points": 11
},
{
"key": "reproducible_environment",
"name": "Reproducible environment",
"detail": "Dockerfile, lockfile",
"points": 10,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": "Dockerfile, lockfile"
}
}
],
"max_points": 10
},
{
"key": "demonstrated_agent_practice",
"name": "Demonstrated agent practice",
"detail": "6 of the last 100 commits agent-authored or agent-credited",
"points": 10,
"status": "met",
"details": [
{
"code": "agent_authored_commits",
"params": {
"count": 6,
"sampled": 100
}
}
],
"max_points": 10
},
{
"key": "automated_maintenance",
"name": "Automated maintenance",
"detail": "no automated dependency updates observed",
"points": 0,
"status": "missed",
"details": [
{
"code": "no_dependency_automation",
"params": {}
}
],
"max_points": 8
},
{
"key": "openssf_scorecard_pinned_dependencies",
"name": "OpenSSF Scorecard: Pinned-Dependencies",
"detail": "dependency not pinned by hash detected -- score normalized to 3",
"points": 3,
"status": "partial",
"details": [],
"max_points": 10
}
]
},
{
"key": "ai_code_legibility",
"band": "good",
"name": "Code legibility for models",
"note": null,
"notes": [],
"value": 81,
"inputs": {
"primary_language": "JavaScript",
"largest_source_bytes": 121545,
"source_files_sampled": 453,
"oversized_source_files": 8
},
"components": [
{
"key": "type_checkable_code",
"name": "Type-checkable code",
"detail": "JavaScript with type-check config (contracts/tsconfig.json)",
"points": 27,
"status": "partial",
"details": [
{
"code": "typecheck_config_language",
"params": {
"files": "contracts/tsconfig.json",
"language": "JavaScript"
}
}
],
"max_points": 45
},
{
"key": "manageable_file_sizes",
"name": "Manageable file sizes",
"detail": "8/453 source files over 60KB",
"points": 54,
"status": "partial",
"details": [
{
"code": "oversized_source_files",
"params": {
"kb": 60,
"sampled": 453,
"oversized": 8
}
}
],
"max_points": 55
}
]
}
],
"description": "How well is the repo equipped to be developed and maintained with AI coding agents? An independent, experimental badge — weight 0.0, so it is surfaced on its own and does not affect the overall health score."
}
],
"metrics_version": "1.13.0"
},
"warnings": [
"Could not fetch npm package 'origin-dollar' from its registry",
"Could not fetch npm package 'origin-defi-contracts' from its registry",
"GitHub dependency-graph SBOM unavailable (404); the dependency graph may be disabled for this repository"
],
"report_type": "repository",
"generated_at": "2026-07-22T03:00:40.094978Z",
"schema_version": "0.26.0",
"badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/o/OriginProtocol/origin-dollar.svg",
"full_name": "OriginProtocol/origin-dollar",
"license_state": "standard",
"license_spdx": "MIT"
}