{"adoption": {"forks": 389, "observed_at": "2026-08-28T04:06:55.298733+00:00", "stars": 2481}, "canonical_url": "https://ross.abutalabs.com/products/building-secure-contracts", "card": {"archived": false, "artifact_type": "learning-resource", "description": "Guidelines and training material to write secure smart contracts", "domain": ["blockchain", "security", "developer-tools", "tutorials"], "enriched": true, "function": ["security", "fuzzing", "testing", "documentation", "developer-tools"], "health_score": 66, "homepage": "https://secure-contracts.com/", "language": "Solidity", "license": "AGPL-3.0", "license_family": "copyleft", "maturity": "active", "member_repos": ["crytic/building-secure-contracts"], "name": "crytic/building-secure-contracts", "platform": ["cross-platform", "cli"], "pushed_at": "2026-04-13T21:32:17+00:00", "repo": "crytic/building-secure-contracts", "stars": 2481, "tags": ["smart-contracts", "solidity", "ethereum", "evm", "blockchain-security", "static-analysis", "symbolic-execution", "trail-of-bits", "docker"], "topics": [], "urls": [], "use_cases": ["learn how to write secure smart contracts", "fuzz test solidity contracts with echidna or medusa", "find examples of common smart contract vulnerabilities", "create an incident response plan for a blockchain project", "understand EVM opcodes and transaction tracing", "checklist for integrating arbitrary tokens safely", "evaluate the security maturity of a smart contract codebase"], "what_it_is": "A Trail of Bits maintained collection of guidelines, best practices, and training material for developing secure smart contracts. It covers secure development workflows, EVM internals, common vulnerability examples across many chains, and tutorials for automated analysis tools like Echidna, Medusa, Slither, and Manticore.", "when_to_avoid": ["you need an executable security tool rather than documentation and training material", "your project is not blockchain or smart-contract related", "you need formal verification guarantees rather than guidelines and fuzzing tutorials"], "when_to_choose": ["you are developing or auditing Ethereum/EVM smart contracts and want security best practices", "you need hands-on tutorials for Trail of Bits analysis tools like Echidna, Medusa, Slither, or Manticore", "you want vulnerability examples for chains beyond Ethereum such as Solana, Cosmos, or TON"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/building-secure-contracts", "repo": "crytic/building-secure-contracts", "role": "main", "score": 57}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:06:55.298733+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T02:28:13.994489+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "349e5211377d34c83afce508c04db1594e4313a775c509c52da6b7eeb0a7a240", "fetched_at": "2026-08-28T04:06:55.298733+00:00", "kind": "readme", "missing": false, "url": "https://github.com/crytic/building-secure-contracts"}, {"content_hash": "742a92f7db5305d186aee764e9b54289eb11e8174ee3aca4d9adc68372768253", "fetched_at": "2026-08-29T10:10:09.977386+00:00", "kind": "homepage", "missing": false, "url": "https://secure-contracts.com/"}, {"content_hash": "6cf1b177e2c055925192e666f490f62b72148585f3db619c0f30771d70595c15", "fetched_at": "2026-08-29T10:10:09.981851+00:00", "kind": "site_page", "missing": false, "url": "https://secure-contracts.com/program-analysis/medusa/docs/src/index.html"}, {"content_hash": "10869aaed0a9b175854fb203922b4e41d973adee0d7f71e4f678db4f34d3b323", "fetched_at": "2026-08-29T10:10:09.983624+00:00", "kind": "site_page", "missing": false, "url": "https://secure-contracts.com/program-analysis/medusa/docs/src/getting_started/installation.html"}, {"content_hash": "02d7c33bccccf56e23fb46cc3ce62b7396c207e55803059a3f9487f8ac81010a", "fetched_at": "2026-08-29T10:10:09.979847+00:00", "kind": "site_page", "missing": false, "url": "https://secure-contracts.com/program-analysis/echidna/introduction/installation.html"}, {"content_hash": "8683a44f8cb37cbc174a97386b1ed9b2eeacd63aeac17d384f3de8688463600b", "fetched_at": "2026-08-29T10:10:09.985404+00:00", "kind": "site_page", "missing": false, "url": "https://secure-contracts.com/program-analysis/medusa/docs/src/getting_started/first_steps.html"}, {"content_hash": "110ebc589df479fc01065ff1535b70e77e3d3daae5e6be19f132b665ff70c003", "fetched_at": "2026-08-29T10:10:09.987005+00:00", "kind": "site_page", "missing": false, "url": "https://secure-contracts.com/program-analysis/medusa/docs/src/project_configuration/overview.html"}, {"content_hash": "0393d2c5bce505afdadce5c051c6e78131b466958f7b7ed01a3ca29bba18981d", "fetched_at": "2026-08-29T10:10:09.988592+00:00", "kind": "site_page", "missing": false, "url": "https://secure-contracts.com/program-analysis/medusa/docs/src/project_configuration/fuzzing_config.html"}, {"content_hash": "a5e486ece59336ccd169ec52f870c0a6cb46bb638ae62f1c826e65b28fde1564", "fetched_at": "2026-08-29T10:10:09.990464+00:00", "kind": "site_page", "missing": false, "url": "https://secure-contracts.com/program-analysis/medusa/docs/src/project_configuration/testing_config.html"}, {"content_hash": "6aeab6d534ea683600af9d282bfd47a54ff537c4d4a475033aeffd46fabb2459", "fetched_at": "2026-08-29T10:10:09.992175+00:00", "kind": "site_page", "missing": false, "url": "https://secure-contracts.com/program-analysis/medusa/docs/src/project_configuration/chain_config.html"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:06:55.298733+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T02:28:13.994489+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "349e5211377d34c83afce508c04db1594e4313a775c509c52da6b7eeb0a7a240", "fetched_at": "2026-08-28T04:06:55.298733+00:00", "kind": "readme", "missing": false, "url": "https://github.com/crytic/building-secure-contracts"}, {"content_hash": "742a92f7db5305d186aee764e9b54289eb11e8174ee3aca4d9adc68372768253", "fetched_at": "2026-08-29T10:10:09.977386+00:00", "kind": "homepage", "missing": false, "url": "https://secure-contracts.com/"}, {"content_hash": "6cf1b177e2c055925192e666f490f62b72148585f3db619c0f30771d70595c15", "fetched_at": "2026-08-29T10:10:09.981851+00:00", "kind": "site_page", "missing": false, "url": "https://secure-contracts.com/program-analysis/medusa/docs/src/index.html"}, {"content_hash": "10869aaed0a9b175854fb203922b4e41d973adee0d7f71e4f678db4f34d3b323", "fetched_at": "2026-08-29T10:10:09.983624+00:00", "kind": "site_page", "missing": false, "url": "https://secure-contracts.com/program-analysis/medusa/docs/src/getting_started/installation.html"}, {"content_hash": "02d7c33bccccf56e23fb46cc3ce62b7396c207e55803059a3f9487f8ac81010a", "fetched_at": "2026-08-29T10:10:09.979847+00:00", "kind": "site_page", "missing": false, "url": "https://secure-contracts.com/program-analysis/echidna/introduction/installation.html"}, {"content_hash": "8683a44f8cb37cbc174a97386b1ed9b2eeacd63aeac17d384f3de8688463600b", "fetched_at": "2026-08-29T10:10:09.985404+00:00", "kind": "site_page", "missing": false, "url": "https://secure-contracts.com/program-analysis/medusa/docs/src/getting_started/first_steps.html"}, {"content_hash": "110ebc589df479fc01065ff1535b70e77e3d3daae5e6be19f132b665ff70c003", "fetched_at": "2026-08-29T10:10:09.987005+00:00", "kind": "site_page", "missing": false, "url": "https://secure-contracts.com/program-analysis/medusa/docs/src/project_configuration/overview.html"}, {"content_hash": "0393d2c5bce505afdadce5c051c6e78131b466958f7b7ed01a3ca29bba18981d", "fetched_at": "2026-08-29T10:10:09.988592+00:00", "kind": "site_page", "missing": false, "url": "https://secure-contracts.com/program-analysis/medusa/docs/src/project_configuration/fuzzing_config.html"}, {"content_hash": "a5e486ece59336ccd169ec52f870c0a6cb46bb638ae62f1c826e65b28fde1564", "fetched_at": "2026-08-29T10:10:09.990464+00:00", "kind": "site_page", "missing": false, "url": "https://secure-contracts.com/program-analysis/medusa/docs/src/project_configuration/testing_config.html"}, {"content_hash": "6aeab6d534ea683600af9d282bfd47a54ff537c4d4a475033aeffd46fabb2459", "fetched_at": "2026-08-29T10:10:09.992175+00:00", "kind": "site_page", "missing": false, "url": "https://secure-contracts.com/program-analysis/medusa/docs/src/project_configuration/chain_config.html"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T02:28:13.994489+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "349e5211377d34c83afce508c04db1594e4313a775c509c52da6b7eeb0a7a240", "fetched_at": "2026-08-28T04:06:55.298733+00:00", "kind": "readme", "missing": false, "url": "https://github.com/crytic/building-secure-contracts"}, {"content_hash": "742a92f7db5305d186aee764e9b54289eb11e8174ee3aca4d9adc68372768253", "fetched_at": "2026-08-29T10:10:09.977386+00:00", "kind": "homepage", "missing": false, "url": "https://secure-contracts.com/"}, {"content_hash": "6cf1b177e2c055925192e666f490f62b72148585f3db619c0f30771d70595c15", "fetched_at": "2026-08-29T10:10:09.981851+00:00", "kind": "site_page", "missing": false, "url": "https://secure-contracts.com/program-analysis/medusa/docs/src/index.html"}, {"content_hash": "10869aaed0a9b175854fb203922b4e41d973adee0d7f71e4f678db4f34d3b323", "fetched_at": "2026-08-29T10:10:09.983624+00:00", "kind": "site_page", "missing": false, "url": "https://secure-contracts.com/program-analysis/medusa/docs/src/getting_started/installation.html"}, {"content_hash": "02d7c33bccccf56e23fb46cc3ce62b7396c207e55803059a3f9487f8ac81010a", "fetched_at": "2026-08-29T10:10:09.979847+00:00", "kind": "site_page", "missing": false, "url": "https://secure-contracts.com/program-analysis/echidna/introduction/installation.html"}, {"content_hash": "8683a44f8cb37cbc174a97386b1ed9b2eeacd63aeac17d384f3de8688463600b", "fetched_at": "2026-08-29T10:10:09.985404+00:00", "kind": "site_page", "missing": false, "url": "https://secure-contracts.com/program-analysis/medusa/docs/src/getting_started/first_steps.html"}, {"content_hash": "110ebc589df479fc01065ff1535b70e77e3d3daae5e6be19f132b665ff70c003", "fetched_at": "2026-08-29T10:10:09.987005+00:00", "kind": "site_page", "missing": false, "url": "https://secure-contracts.com/program-analysis/medusa/docs/src/project_configuration/overview.html"}, {"content_hash": "0393d2c5bce505afdadce5c051c6e78131b466958f7b7ed01a3ca29bba18981d", "fetched_at": "2026-08-29T10:10:09.988592+00:00", "kind": "site_page", "missing": false, "url": "https://secure-contracts.com/program-analysis/medusa/docs/src/project_configuration/fuzzing_config.html"}, {"content_hash": "a5e486ece59336ccd169ec52f870c0a6cb46bb638ae62f1c826e65b28fde1564", "fetched_at": "2026-08-29T10:10:09.990464+00:00", "kind": "site_page", "missing": false, "url": "https://secure-contracts.com/program-analysis/medusa/docs/src/project_configuration/testing_config.html"}, {"content_hash": "6aeab6d534ea683600af9d282bfd47a54ff537c4d4a475033aeffd46fabb2459", "fetched_at": "2026-08-29T10:10:09.992175+00:00", "kind": "site_page", "missing": false, "url": "https://secure-contracts.com/program-analysis/medusa/docs/src/project_configuration/chain_config.html"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:06:55.298733+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:06:55.298733+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:06:55.298733+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T02:28:13.994489+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "349e5211377d34c83afce508c04db1594e4313a775c509c52da6b7eeb0a7a240", "fetched_at": "2026-08-28T04:06:55.298733+00:00", "kind": "readme", "missing": false, "url": "https://github.com/crytic/building-secure-contracts"}, {"content_hash": "742a92f7db5305d186aee764e9b54289eb11e8174ee3aca4d9adc68372768253", "fetched_at": "2026-08-29T10:10:09.977386+00:00", "kind": "homepage", "missing": false, "url": "https://secure-contracts.com/"}, {"content_hash": "6cf1b177e2c055925192e666f490f62b72148585f3db619c0f30771d70595c15", "fetched_at": "2026-08-29T10:10:09.981851+00:00", "kind": "site_page", "missing": false, "url": "https://secure-contracts.com/program-analysis/medusa/docs/src/index.html"}, {"content_hash": "10869aaed0a9b175854fb203922b4e41d973adee0d7f71e4f678db4f34d3b323", "fetched_at": "2026-08-29T10:10:09.983624+00:00", "kind": "site_page", "missing": false, "url": "https://secure-contracts.com/program-analysis/medusa/docs/src/getting_started/installation.html"}, {"content_hash": "02d7c33bccccf56e23fb46cc3ce62b7396c207e55803059a3f9487f8ac81010a", "fetched_at": "2026-08-29T10:10:09.979847+00:00", "kind": "site_page", "missing": false, "url": "https://secure-contracts.com/program-analysis/echidna/introduction/installation.html"}, {"content_hash": "8683a44f8cb37cbc174a97386b1ed9b2eeacd63aeac17d384f3de8688463600b", "fetched_at": "2026-08-29T10:10:09.985404+00:00", "kind": "site_page", "missing": false, "url": "https://secure-contracts.com/program-analysis/medusa/docs/src/getting_started/first_steps.html"}, {"content_hash": "110ebc589df479fc01065ff1535b70e77e3d3daae5e6be19f132b665ff70c003", "fetched_at": "2026-08-29T10:10:09.987005+00:00", "kind": "site_page", "missing": false, "url": "https://secure-contracts.com/program-analysis/medusa/docs/src/project_configuration/overview.html"}, {"content_hash": "0393d2c5bce505afdadce5c051c6e78131b466958f7b7ed01a3ca29bba18981d", "fetched_at": "2026-08-29T10:10:09.988592+00:00", "kind": "site_page", "missing": false, "url": "https://secure-contracts.com/program-analysis/medusa/docs/src/project_configuration/fuzzing_config.html"}, {"content_hash": "a5e486ece59336ccd169ec52f870c0a6cb46bb638ae62f1c826e65b28fde1564", "fetched_at": "2026-08-29T10:10:09.990464+00:00", "kind": "site_page", "missing": false, "url": "https://secure-contracts.com/program-analysis/medusa/docs/src/project_configuration/testing_config.html"}, {"content_hash": "6aeab6d534ea683600af9d282bfd47a54ff537c4d4a475033aeffd46fabb2459", "fetched_at": "2026-08-29T10:10:09.992175+00:00", "kind": "site_page", "missing": false, "url": "https://secure-contracts.com/program-analysis/medusa/docs/src/project_configuration/chain_config.html"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:06:55.298733+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:06:55.298733+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T02:28:13.994489+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "349e5211377d34c83afce508c04db1594e4313a775c509c52da6b7eeb0a7a240", "fetched_at": "2026-08-28T04:06:55.298733+00:00", "kind": "readme", "missing": false, "url": "https://github.com/crytic/building-secure-contracts"}, {"content_hash": "742a92f7db5305d186aee764e9b54289eb11e8174ee3aca4d9adc68372768253", "fetched_at": "2026-08-29T10:10:09.977386+00:00", "kind": "homepage", "missing": false, "url": "https://secure-contracts.com/"}, {"content_hash": "6cf1b177e2c055925192e666f490f62b72148585f3db619c0f30771d70595c15", "fetched_at": "2026-08-29T10:10:09.981851+00:00", "kind": "site_page", "missing": false, "url": "https://secure-contracts.com/program-analysis/medusa/docs/src/index.html"}, {"content_hash": "10869aaed0a9b175854fb203922b4e41d973adee0d7f71e4f678db4f34d3b323", "fetched_at": "2026-08-29T10:10:09.983624+00:00", "kind": "site_page", "missing": false, "url": "https://secure-contracts.com/program-analysis/medusa/docs/src/getting_started/installation.html"}, {"content_hash": "02d7c33bccccf56e23fb46cc3ce62b7396c207e55803059a3f9487f8ac81010a", "fetched_at": "2026-08-29T10:10:09.979847+00:00", "kind": "site_page", "missing": false, "url": "https://secure-contracts.com/program-analysis/echidna/introduction/installation.html"}, {"content_hash": "8683a44f8cb37cbc174a97386b1ed9b2eeacd63aeac17d384f3de8688463600b", "fetched_at": "2026-08-29T10:10:09.985404+00:00", "kind": "site_page", "missing": false, "url": "https://secure-contracts.com/program-analysis/medusa/docs/src/getting_started/first_steps.html"}, {"content_hash": "110ebc589df479fc01065ff1535b70e77e3d3daae5e6be19f132b665ff70c003", "fetched_at": "2026-08-29T10:10:09.987005+00:00", "kind": "site_page", "missing": false, "url": "https://secure-contracts.com/program-analysis/medusa/docs/src/project_configuration/overview.html"}, {"content_hash": "0393d2c5bce505afdadce5c051c6e78131b466958f7b7ed01a3ca29bba18981d", "fetched_at": "2026-08-29T10:10:09.988592+00:00", "kind": "site_page", "missing": false, "url": "https://secure-contracts.com/program-analysis/medusa/docs/src/project_configuration/fuzzing_config.html"}, {"content_hash": "a5e486ece59336ccd169ec52f870c0a6cb46bb638ae62f1c826e65b28fde1564", "fetched_at": "2026-08-29T10:10:09.990464+00:00", "kind": "site_page", "missing": false, "url": "https://secure-contracts.com/program-analysis/medusa/docs/src/project_configuration/testing_config.html"}, {"content_hash": "6aeab6d534ea683600af9d282bfd47a54ff537c4d4a475033aeffd46fabb2459", "fetched_at": "2026-08-29T10:10:09.992175+00:00", "kind": "site_page", "missing": false, "url": "https://secure-contracts.com/program-analysis/medusa/docs/src/project_configuration/chain_config.html"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:06:55.298733+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:06:55.298733+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:06:55.298733+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T02:28:13.994489+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "349e5211377d34c83afce508c04db1594e4313a775c509c52da6b7eeb0a7a240", "fetched_at": "2026-08-28T04:06:55.298733+00:00", "kind": "readme", "missing": false, "url": "https://github.com/crytic/building-secure-contracts"}, {"content_hash": "742a92f7db5305d186aee764e9b54289eb11e8174ee3aca4d9adc68372768253", "fetched_at": "2026-08-29T10:10:09.977386+00:00", "kind": "homepage", "missing": false, "url": "https://secure-contracts.com/"}, {"content_hash": "6cf1b177e2c055925192e666f490f62b72148585f3db619c0f30771d70595c15", "fetched_at": "2026-08-29T10:10:09.981851+00:00", "kind": "site_page", "missing": false, "url": "https://secure-contracts.com/program-analysis/medusa/docs/src/index.html"}, {"content_hash": "10869aaed0a9b175854fb203922b4e41d973adee0d7f71e4f678db4f34d3b323", "fetched_at": "2026-08-29T10:10:09.983624+00:00", "kind": "site_page", "missing": false, "url": "https://secure-contracts.com/program-analysis/medusa/docs/src/getting_started/installation.html"}, {"content_hash": "02d7c33bccccf56e23fb46cc3ce62b7396c207e55803059a3f9487f8ac81010a", "fetched_at": "2026-08-29T10:10:09.979847+00:00", "kind": "site_page", "missing": false, "url": "https://secure-contracts.com/program-analysis/echidna/introduction/installation.html"}, {"content_hash": "8683a44f8cb37cbc174a97386b1ed9b2eeacd63aeac17d384f3de8688463600b", "fetched_at": "2026-08-29T10:10:09.985404+00:00", "kind": "site_page", "missing": false, "url": "https://secure-contracts.com/program-analysis/medusa/docs/src/getting_started/first_steps.html"}, {"content_hash": "110ebc589df479fc01065ff1535b70e77e3d3daae5e6be19f132b665ff70c003", "fetched_at": "2026-08-29T10:10:09.987005+00:00", "kind": "site_page", "missing": false, "url": "https://secure-contracts.com/program-analysis/medusa/docs/src/project_configuration/overview.html"}, {"content_hash": "0393d2c5bce505afdadce5c051c6e78131b466958f7b7ed01a3ca29bba18981d", "fetched_at": "2026-08-29T10:10:09.988592+00:00", "kind": "site_page", "missing": false, "url": "https://secure-contracts.com/program-analysis/medusa/docs/src/project_configuration/fuzzing_config.html"}, {"content_hash": "a5e486ece59336ccd169ec52f870c0a6cb46bb638ae62f1c826e65b28fde1564", "fetched_at": "2026-08-29T10:10:09.990464+00:00", "kind": "site_page", "missing": false, "url": "https://secure-contracts.com/program-analysis/medusa/docs/src/project_configuration/testing_config.html"}, {"content_hash": "6aeab6d534ea683600af9d282bfd47a54ff537c4d4a475033aeffd46fabb2459", "fetched_at": "2026-08-29T10:10:09.992175+00:00", "kind": "site_page", "missing": false, "url": "https://secure-contracts.com/program-analysis/medusa/docs/src/project_configuration/chain_config.html"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:06:55.298733+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:06:55.298733+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T02:28:13.994489+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "349e5211377d34c83afce508c04db1594e4313a775c509c52da6b7eeb0a7a240", "fetched_at": "2026-08-28T04:06:55.298733+00:00", "kind": "readme", "missing": false, "url": "https://github.com/crytic/building-secure-contracts"}, {"content_hash": "742a92f7db5305d186aee764e9b54289eb11e8174ee3aca4d9adc68372768253", "fetched_at": "2026-08-29T10:10:09.977386+00:00", "kind": "homepage", "missing": false, "url": "https://secure-contracts.com/"}, {"content_hash": "6cf1b177e2c055925192e666f490f62b72148585f3db619c0f30771d70595c15", "fetched_at": "2026-08-29T10:10:09.981851+00:00", "kind": "site_page", "missing": false, "url": "https://secure-contracts.com/program-analysis/medusa/docs/src/index.html"}, {"content_hash": "10869aaed0a9b175854fb203922b4e41d973adee0d7f71e4f678db4f34d3b323", "fetched_at": "2026-08-29T10:10:09.983624+00:00", "kind": "site_page", "missing": false, "url": "https://secure-contracts.com/program-analysis/medusa/docs/src/getting_started/installation.html"}, {"content_hash": "02d7c33bccccf56e23fb46cc3ce62b7396c207e55803059a3f9487f8ac81010a", "fetched_at": "2026-08-29T10:10:09.979847+00:00", "kind": "site_page", "missing": false, "url": "https://secure-contracts.com/program-analysis/echidna/introduction/installation.html"}, {"content_hash": "8683a44f8cb37cbc174a97386b1ed9b2eeacd63aeac17d384f3de8688463600b", "fetched_at": "2026-08-29T10:10:09.985404+00:00", "kind": "site_page", "missing": false, "url": "https://secure-contracts.com/program-analysis/medusa/docs/src/getting_started/first_steps.html"}, {"content_hash": "110ebc589df479fc01065ff1535b70e77e3d3daae5e6be19f132b665ff70c003", "fetched_at": "2026-08-29T10:10:09.987005+00:00", "kind": "site_page", "missing": false, "url": "https://secure-contracts.com/program-analysis/medusa/docs/src/project_configuration/overview.html"}, {"content_hash": "0393d2c5bce505afdadce5c051c6e78131b466958f7b7ed01a3ca29bba18981d", "fetched_at": "2026-08-29T10:10:09.988592+00:00", "kind": "site_page", "missing": false, "url": "https://secure-contracts.com/program-analysis/medusa/docs/src/project_configuration/fuzzing_config.html"}, {"content_hash": "a5e486ece59336ccd169ec52f870c0a6cb46bb638ae62f1c826e65b28fde1564", "fetched_at": "2026-08-29T10:10:09.990464+00:00", "kind": "site_page", "missing": false, "url": "https://secure-contracts.com/program-analysis/medusa/docs/src/project_configuration/testing_config.html"}, {"content_hash": "6aeab6d534ea683600af9d282bfd47a54ff537c4d4a475033aeffd46fabb2459", "fetched_at": "2026-08-29T10:10:09.992175+00:00", "kind": "site_page", "missing": false, "url": "https://secure-contracts.com/program-analysis/medusa/docs/src/project_configuration/chain_config.html"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T02:28:13.994489+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "349e5211377d34c83afce508c04db1594e4313a775c509c52da6b7eeb0a7a240", "fetched_at": "2026-08-28T04:06:55.298733+00:00", "kind": "readme", "missing": false, "url": "https://github.com/crytic/building-secure-contracts"}, {"content_hash": "742a92f7db5305d186aee764e9b54289eb11e8174ee3aca4d9adc68372768253", "fetched_at": "2026-08-29T10:10:09.977386+00:00", "kind": "homepage", "missing": false, "url": "https://secure-contracts.com/"}, {"content_hash": "6cf1b177e2c055925192e666f490f62b72148585f3db619c0f30771d70595c15", "fetched_at": "2026-08-29T10:10:09.981851+00:00", "kind": "site_page", "missing": false, "url": "https://secure-contracts.com/program-analysis/medusa/docs/src/index.html"}, {"content_hash": "10869aaed0a9b175854fb203922b4e41d973adee0d7f71e4f678db4f34d3b323", "fetched_at": "2026-08-29T10:10:09.983624+00:00", "kind": "site_page", "missing": false, "url": "https://secure-contracts.com/program-analysis/medusa/docs/src/getting_started/installation.html"}, {"content_hash": "02d7c33bccccf56e23fb46cc3ce62b7396c207e55803059a3f9487f8ac81010a", "fetched_at": "2026-08-29T10:10:09.979847+00:00", "kind": "site_page", "missing": false, "url": "https://secure-contracts.com/program-analysis/echidna/introduction/installation.html"}, {"content_hash": "8683a44f8cb37cbc174a97386b1ed9b2eeacd63aeac17d384f3de8688463600b", "fetched_at": "2026-08-29T10:10:09.985404+00:00", "kind": "site_page", "missing": false, "url": "https://secure-contracts.com/program-analysis/medusa/docs/src/getting_started/first_steps.html"}, {"content_hash": "110ebc589df479fc01065ff1535b70e77e3d3daae5e6be19f132b665ff70c003", "fetched_at": "2026-08-29T10:10:09.987005+00:00", "kind": "site_page", "missing": false, "url": "https://secure-contracts.com/program-analysis/medusa/docs/src/project_configuration/overview.html"}, {"content_hash": "0393d2c5bce505afdadce5c051c6e78131b466958f7b7ed01a3ca29bba18981d", "fetched_at": "2026-08-29T10:10:09.988592+00:00", "kind": "site_page", "missing": false, "url": "https://secure-contracts.com/program-analysis/medusa/docs/src/project_configuration/fuzzing_config.html"}, {"content_hash": "a5e486ece59336ccd169ec52f870c0a6cb46bb638ae62f1c826e65b28fde1564", "fetched_at": "2026-08-29T10:10:09.990464+00:00", "kind": "site_page", "missing": false, "url": "https://secure-contracts.com/program-analysis/medusa/docs/src/project_configuration/testing_config.html"}, {"content_hash": "6aeab6d534ea683600af9d282bfd47a54ff537c4d4a475033aeffd46fabb2459", "fetched_at": "2026-08-29T10:10:09.992175+00:00", "kind": "site_page", "missing": false, "url": "https://secure-contracts.com/program-analysis/medusa/docs/src/project_configuration/chain_config.html"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T02:28:13.994489+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "349e5211377d34c83afce508c04db1594e4313a775c509c52da6b7eeb0a7a240", "fetched_at": "2026-08-28T04:06:55.298733+00:00", "kind": "readme", "missing": false, "url": "https://github.com/crytic/building-secure-contracts"}, {"content_hash": "742a92f7db5305d186aee764e9b54289eb11e8174ee3aca4d9adc68372768253", "fetched_at": "2026-08-29T10:10:09.977386+00:00", "kind": "homepage", "missing": false, "url": "https://secure-contracts.com/"}, {"content_hash": "6cf1b177e2c055925192e666f490f62b72148585f3db619c0f30771d70595c15", "fetched_at": "2026-08-29T10:10:09.981851+00:00", "kind": "site_page", "missing": false, "url": "https://secure-contracts.com/program-analysis/medusa/docs/src/index.html"}, {"content_hash": "10869aaed0a9b175854fb203922b4e41d973adee0d7f71e4f678db4f34d3b323", "fetched_at": "2026-08-29T10:10:09.983624+00:00", "kind": "site_page", "missing": false, "url": "https://secure-contracts.com/program-analysis/medusa/docs/src/getting_started/installation.html"}, {"content_hash": "02d7c33bccccf56e23fb46cc3ce62b7396c207e55803059a3f9487f8ac81010a", "fetched_at": "2026-08-29T10:10:09.979847+00:00", "kind": "site_page", "missing": false, "url": "https://secure-contracts.com/program-analysis/echidna/introduction/installation.html"}, {"content_hash": "8683a44f8cb37cbc174a97386b1ed9b2eeacd63aeac17d384f3de8688463600b", "fetched_at": "2026-08-29T10:10:09.985404+00:00", "kind": "site_page", "missing": false, "url": "https://secure-contracts.com/program-analysis/medusa/docs/src/getting_started/first_steps.html"}, {"content_hash": "110ebc589df479fc01065ff1535b70e77e3d3daae5e6be19f132b665ff70c003", "fetched_at": "2026-08-29T10:10:09.987005+00:00", "kind": "site_page", "missing": false, "url": "https://secure-contracts.com/program-analysis/medusa/docs/src/project_configuration/overview.html"}, {"content_hash": "0393d2c5bce505afdadce5c051c6e78131b466958f7b7ed01a3ca29bba18981d", "fetched_at": "2026-08-29T10:10:09.988592+00:00", "kind": "site_page", "missing": false, "url": "https://secure-contracts.com/program-analysis/medusa/docs/src/project_configuration/fuzzing_config.html"}, {"content_hash": "a5e486ece59336ccd169ec52f870c0a6cb46bb638ae62f1c826e65b28fde1564", "fetched_at": "2026-08-29T10:10:09.990464+00:00", "kind": "site_page", "missing": false, "url": "https://secure-contracts.com/program-analysis/medusa/docs/src/project_configuration/testing_config.html"}, {"content_hash": "6aeab6d534ea683600af9d282bfd47a54ff537c4d4a475033aeffd46fabb2459", "fetched_at": "2026-08-29T10:10:09.992175+00:00", "kind": "site_page", "missing": false, "url": "https://secure-contracts.com/program-analysis/medusa/docs/src/project_configuration/chain_config.html"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T02:28:13.994489+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "349e5211377d34c83afce508c04db1594e4313a775c509c52da6b7eeb0a7a240", "fetched_at": "2026-08-28T04:06:55.298733+00:00", "kind": "readme", "missing": false, "url": "https://github.com/crytic/building-secure-contracts"}, {"content_hash": "742a92f7db5305d186aee764e9b54289eb11e8174ee3aca4d9adc68372768253", "fetched_at": "2026-08-29T10:10:09.977386+00:00", "kind": "homepage", "missing": false, "url": "https://secure-contracts.com/"}, {"content_hash": "6cf1b177e2c055925192e666f490f62b72148585f3db619c0f30771d70595c15", "fetched_at": "2026-08-29T10:10:09.981851+00:00", "kind": "site_page", "missing": false, "url": "https://secure-contracts.com/program-analysis/medusa/docs/src/index.html"}, {"content_hash": "10869aaed0a9b175854fb203922b4e41d973adee0d7f71e4f678db4f34d3b323", "fetched_at": "2026-08-29T10:10:09.983624+00:00", "kind": "site_page", "missing": false, "url": "https://secure-contracts.com/program-analysis/medusa/docs/src/getting_started/installation.html"}, {"content_hash": "02d7c33bccccf56e23fb46cc3ce62b7396c207e55803059a3f9487f8ac81010a", "fetched_at": "2026-08-29T10:10:09.979847+00:00", "kind": "site_page", "missing": false, "url": "https://secure-contracts.com/program-analysis/echidna/introduction/installation.html"}, {"content_hash": "8683a44f8cb37cbc174a97386b1ed9b2eeacd63aeac17d384f3de8688463600b", "fetched_at": "2026-08-29T10:10:09.985404+00:00", "kind": "site_page", "missing": false, "url": "https://secure-contracts.com/program-analysis/medusa/docs/src/getting_started/first_steps.html"}, {"content_hash": "110ebc589df479fc01065ff1535b70e77e3d3daae5e6be19f132b665ff70c003", "fetched_at": "2026-08-29T10:10:09.987005+00:00", "kind": "site_page", "missing": false, "url": "https://secure-contracts.com/program-analysis/medusa/docs/src/project_configuration/overview.html"}, {"content_hash": "0393d2c5bce505afdadce5c051c6e78131b466958f7b7ed01a3ca29bba18981d", "fetched_at": "2026-08-29T10:10:09.988592+00:00", "kind": "site_page", "missing": false, "url": "https://secure-contracts.com/program-analysis/medusa/docs/src/project_configuration/fuzzing_config.html"}, {"content_hash": "a5e486ece59336ccd169ec52f870c0a6cb46bb638ae62f1c826e65b28fde1564", "fetched_at": "2026-08-29T10:10:09.990464+00:00", "kind": "site_page", "missing": false, "url": "https://secure-contracts.com/program-analysis/medusa/docs/src/project_configuration/testing_config.html"}, {"content_hash": "6aeab6d534ea683600af9d282bfd47a54ff537c4d4a475033aeffd46fabb2459", "fetched_at": "2026-08-29T10:10:09.992175+00:00", "kind": "site_page", "missing": false, "url": "https://secure-contracts.com/program-analysis/medusa/docs/src/project_configuration/chain_config.html"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 77, "longevity": 100, "rhythm": 8}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 2427, "days_push": 142, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 57, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}