{"id":197290,"name":null,"description":"Guidelines and training material to write secure smart contracts","url":"https://github.com/crytic/building-secure-contracts","last_synced_at":"2025-09-10T05:00:24.029Z","repository":{"id":37266207,"uuid":"233102473","full_name":"crytic/building-secure-contracts","owner":"crytic","description":"Guidelines and training material to write secure smart contracts","archived":false,"fork":false,"pushed_at":"2025-08-26T16:21:57.000Z","size":6783,"stargazers_count":2390,"open_issues_count":55,"forks_count":369,"subscribers_count":34,"default_branch":"master","last_synced_at":"2025-09-03T12:06:49.528Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://secure-contracts.com/","language":"Solidity","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/crytic.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":"CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2020-01-10T17:58:29.000Z","updated_at":"2025-09-02T18:19:41.000Z","dependencies_parsed_at":"2023-02-18T06:45:40.632Z","dependency_job_id":"9acc4bfd-004c-484f-bd50-35bdf7c70d9c","html_url":"https://github.com/crytic/building-secure-contracts","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/crytic/building-secure-contracts","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/crytic%2Fbuilding-secure-contracts","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/crytic%2Fbuilding-secure-contracts/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/crytic%2Fbuilding-secure-contracts/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/crytic%2Fbuilding-secure-contracts/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/crytic","download_url":"https://codeload.github.com/crytic/building-secure-contracts/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/crytic%2Fbuilding-secure-contracts/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":274414785,"owners_count":25280640,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-10T02:00:12.551Z","response_time":83,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"owner":{"login":"crytic","name":"Crytic","uuid":"48330002","kind":"organization","description":"Blockchain Security, by @trailofbits ","email":"opensource@trailofbits.com","website":"https://www.trailofbits.com/","location":"New York, NY","twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/48330002?v=4","repositories_count":66,"last_synced_at":"2025-05-07T23:35:13.975Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/crytic","funding_links":[],"total_stars":21801,"followers":1157,"following":0,"created_at":"2022-11-12T08:36:30.550Z","updated_at":"2025-05-07T23:35:13.975Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/crytic","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/crytic/repositories"},"packages":[],"commits":{"id":1793176,"full_name":"crytic/building-secure-contracts","default_branch":"master","committers":[{"name":"Gustavo Grieco","email":"31542053+ggrieco-tob","login":"ggrieco-tob","count":146},{"name":"Feist Josselin","email":"josselin@trailofbits.com","login":"montyly","count":143},{"name":"0xphaze","email":"0xphaze@gmail.com","login":"0xPhaze","count":74},{"name":"suryansh-tob","email":"119709610+suryansh-tob","login":"suryansh-tob","count":46},{"name":"Emilio López","email":"emilio.lopez@trailofbits.com","login":"elopez","count":27},{"name":"Dan Guido","email":"dan@trailofbits.com","login":"dguido","count":21},{"name":"tuturu-tech","email":"elvis.skozdopolj@trailofbits.com","login":"tuturu-tech","count":13},{"name":"Guillermo Larregay","email":"guillermo.larregay@trailofbits.com","login":"glarregay-tob","count":11},{"name":"Kamil Chmielewski","email":"45183584+ChmielewskiKamil","login":"ChmielewskiKamil","count":10},{"name":"technovision99","email":"25871300+technovision99","login":"technovision99","count":10},{"name":"damilola edwards","email":"damilolaedwards@gmail.com","login":"damilolaedwards","count":10},{"name":"bohendo","email":"bohendo@skiff.com","login":null,"count":10},{"name":"Alex Groce","email":"agroce@gmail.com","login":"agroce","count":9},{"name":"Anish Naik","email":"anish.naik@trailofbits.com","login":"anishnaik","count":8},{"name":"dependabot[bot]","email":"49699333+dependabot[bot]","login":"dependabot[bot]","count":8},{"name":"Nat Chin","email":"natalie.chin@trailofbits.com","login":null,"count":7},{"name":"Maciej Domanski","email":"38883201+ahpaleus","login":"ahpaleus","count":7},{"name":"Michael Colburn","email":"michael.colburn@trailofbits.com","login":null,"count":5},{"name":"Vara Prasad Bandaru","email":"vara.bandaru@trailofbits.com","login":null,"count":5},{"name":"Tarun Bansal","email":"tarunbhm@gmail.com","login":"tarunbhm","count":5},{"name":"Ronald Eytchison","email":"ronald.eytchison@trailofbits.com","login":"reytchison","count":5},{"name":"Chris Dahlheimer","email":"chris.dahlheimer@trailofbits.com","login":"cdahlheimer","count":5},{"name":"Anders Helsing","email":"77003845+nop4e71","login":"nop4e71","count":4},{"name":"Samuel E. Moelius III","email":"samuel.moelius@trailofbits.com","login":"smoelius","count":4},{"name":"alpharush","email":"0xalpharush@protonmail.com","login":"0xalpharush","count":4},{"name":"Paweł Płatek","email":"e2.8a.95@gmail.com","login":"GrosQuildu","count":3},{"name":"Lucas_M","email":"421871384@qq.com","login":"slendermaan","count":3},{"name":"Ardis Lu","email":"ardisglu@gmail.com","login":"ardislu","count":3},{"name":"hwomackToB","email":"150697619+hwomackToB","login":"hwomackToB","count":3},{"name":"nisedo","email":"73041332+nisedo","login":"nisedo","count":3},{"name":"broccolirob","email":"robert.schneider@trailofbits.com","login":null,"count":3},{"name":"Paul Razvan Berg","email":"hello@paulrberg.com","login":"PaulRBerg","count":2},{"name":"Simone","email":"79767264+smonicas","login":"smonicas","count":2},{"name":"James Olds","email":"james.olds@trailofbits.com","login":"oldsj","count":2},{"name":"Artur Cygan","email":"artur.cygan@trailofbits.com","login":"arcz","count":1},{"name":"Alexander Remie","email":"rmi7","login":"rmi7","count":1},{"name":"AlehN","email":"natsevsky@gmail.com","login":"AlehNat","count":1},{"name":"laterlaugh","email":"166613655+laterlaugh","login":"laterlaugh","count":1},{"name":"kshitiz305","email":"kshitiz305@live.com","login":"kshitiz305","count":1},{"name":"davidhq","email":"david.krmpotic@gmail.com","login":"davidhq","count":1},{"name":"bohendo","email":"8527067+bohendo","login":"bohendo","count":1},{"name":"bart1e","email":"bartolwodzinski@op.pl","login":"bart1e","count":1},{"name":"Yuvraj Rodage","email":"jayrajrodge2001@gmail.com","login":"Jayrajrodage","count":1},{"name":"Travis Peters","email":"traviswp@gmail.com","login":"traviswpeters","count":1},{"name":"isk.eth","email":"iskander.andrews@protonmail.com","login":null,"count":1},{"name":"Tadashi","email":"tadasho@gmail.com","login":"htadashi","count":1},{"name":"Supernovahs.eth","email":"91280922+supernovahs","login":"supernovahs","count":1},{"name":"Sunil Srivatsa","email":"sunilsrivatsa@gmail.com","login":"alphastorm","count":1},{"name":"Sam Uwe Alws","email":"sam@samalws.com","login":"samalws","count":1},{"name":"Rappie","email":"jasper@rappie.com","login":"rappie","count":1},{"name":"CJ42","email":"cavallerajean@gmail.com","login":"CJ42","count":1},{"name":"David Lee","email":"juhyunglee1435@gmail.com","login":"davidlee1435","count":1},{"name":"Filipe Casal","email":"fcasal","login":"fcasal","count":1},{"name":"Greg Otto","email":"gregory.otto@trailofbits.com","login":"gregotto","count":1},{"name":"Gregory Barnes","email":"gregkbarnes","login":"gregkbarnes","count":1},{"name":"Kyle","email":"kyletrusler@gmail.com","login":"Namaskar-1F64F","count":1},{"name":"Lebid Yuriy","email":"ylebid@gmail.com","login":"enginer","count":1},{"name":"Luboš Harašta","email":"105925890+lubos-harasta","login":"lubos-harasta","count":1},{"name":"MK-BG","email":"mannykhan@bitgo.com","login":"MK-BG","count":1},{"name":"Matt Solomon","email":"matt@mattsolomon.dev","login":"mds1","count":1},{"name":"Michalis Kargakis","email":"kargakis@protonmail.com","login":"0xmichalis","count":1},{"name":"Mike Martel","email":"78176606+mmartel","login":"mmartel","count":1},{"name":"tserg","email":"8017125+tserg","login":"tserg","count":1},{"name":"Pradhumna Pancholi","email":"pnpancholi@protonmail.com","login":"PradhumnaPancholi","count":1},{"name":"Owen Shen","email":"owenshen24@gmail.com","login":"sudo-owen","count":1}],"total_commits":652,"total_committers":65,"total_bot_commits":8,"total_bot_committers":1,"mean_commits":10.03076923076923,"dds":0.7760736196319018,"past_year_committers":[{"name":"Feist Josselin","email":"josselin.feist@gmail.com","login":"montyly","count":31},{"name":"ggrieco-tob","email":"gustavo.grieco@trailofbits.com","login":"ggrieco-tob","count":20},{"name":"Tarun Bansal","email":"tarunbhm@gmail.com","login":"tarunbhm","count":5},{"name":"Anish Naik","email":"anish.naik@trailofbits.com","login":"anishnaik","count":4},{"name":"nisedo","email":"73041332+nisedo","login":"nisedo","count":3},{"name":"Emilio López","email":"emilio.lopez@trailofbits.com","login":"elopez","count":3},{"name":"laterlaugh","email":"166613655+laterlaugh","login":"laterlaugh","count":1},{"name":"hwomackToB","email":"150697619+hwomackToB","login":"hwomackToB","count":1},{"name":"dependabot[bot]","email":"49699333+dependabot[bot]","login":"dependabot[bot]","count":1},{"name":"MK-BG","email":"mannykhan@bitgo.com","login":"MK-BG","count":1},{"name":"James Olds","email":"oldsj","login":"oldsj","count":1},{"name":"Ardis Lu","email":"ArdisGLu@gmail.com","login":"ardislu","count":1}],"past_year_total_commits":72,"past_year_total_committers":12,"past_year_total_bot_commits":1,"past_year_total_bot_committers":1,"past_year_mean_commits":6.0,"past_year_dds":0.5694444444444444,"last_synced_at":"2025-05-27T18:56:57.678Z","last_synced_commit":"b2c07d5d84c44e53c64369eb871dda50118b277b","created_at":"2024-09-21T07:01:21.449Z","updated_at":"2025-05-27T18:56:57.730Z","commits_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories/crytic%2Fbuilding-secure-contracts/commits","host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2025-09-10T00:25:43.995Z","repositories_count":5545114,"commits_count":878229909,"contributors_count":32458717,"owners_count":919815,"icon_url":"https://github.com/github.png","host_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories"}},"issues_stats":{"full_name":"crytic/building-secure-contracts","html_url":"https://github.com/crytic/building-secure-contracts","last_synced_at":"2025-09-06T04:06:24.415Z","status":null,"issues_count":40,"pull_requests_count":184,"avg_time_to_close_issue":44410917.76190476,"avg_time_to_close_pull_request":10337305.522292994,"issues_closed_count":21,"pull_requests_closed_count":157,"pull_request_authors_count":41,"issue_authors_count":13,"avg_comments_per_issue":1.0,"avg_comments_per_pull_request":0.6195652173913043,"merged_pull_requests_count":120,"bot_issues_count":0,"bot_pull_requests_count":11,"past_year_issues_count":3,"past_year_pull_requests_count":56,"past_year_avg_time_to_close_issue":19624.0,"past_year_avg_time_to_close_pull_request":667363.6428571428,"past_year_issues_closed_count":1,"past_year_pull_requests_closed_count":42,"past_year_pull_request_authors_count":13,"past_year_issue_authors_count":3,"past_year_avg_comments_per_issue":0.3333333333333333,"past_year_avg_comments_per_pull_request":0.14285714285714285,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":5,"past_year_merged_pull_requests_count":39,"created_at":"2024-09-21T07:01:21.589Z","updated_at":"2025-09-06T04:06:24.417Z","repository_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/crytic%2Fbuilding-secure-contracts","issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/crytic%2Fbuilding-secure-contracts/issues","issue_labels_count":{"Echidna":6,"Manticore":5,"help wanted":5,"documentation":4,"Intermediate level":3,"New exercise":2,"question":2,"Slither":2,"high priority":2,"enhancement":1,"good first issue":1},"pull_request_labels_count":{"dependencies":11,"github_actions":11,"Echidna":3,"documentation":2,"New exercise":2},"issue_author_associations_count":{"MEMBER":30,"NONE":10},"pull_request_author_associations_count":{"MEMBER":91,"CONTRIBUTOR":69,"NONE":24},"issue_authors":{"montyly":23,"ggrieco-tob":5,"dguido":2,"tjuwhy":1,"mingbaile":1,"Strapontin":1,"Silur":1,"Jaime-Iglesias":1,"marceljay":1,"kevinjanada":1,"RayXpub":1,"chista0x":1,"quan-tob":1},"pull_request_authors":{"montyly":40,"ggrieco-tob":39,"dependabot[bot]":11,"0xPhaze":11,"elopez":11,"anishnaik":8,"broccolirob":7,"damilolaedwards":6,"nisedo":5,"technovision99":4,"MK-BG":3,"tarunbhm":2,"laterlaugh":2,"sambacha":2,"ardislu":2,"devtooligan":2,"PaulRBerg":2,"hwomackToB":2,"dguido":2,"rappie":2,"ADK0010":1,"mgcolburn":1,"hacker-DOM":1,"reytchison":1,"rmi7":1,"deepwaters-greg":1,"Namaskar-1F64F":1,"ghost":1,"fontanellag":1,"sudo-owen":1,"ojiubasi-motif":1,"oldsj":1,"S3v3ru5":1,"bohendo":1,"alphastorm":1,"feliam":1,"ehennenfent":1,"cdahlheimer":1,"GrosQuildu":1,"gregkbarnes":1,"PradhumnaPancholi":1},"host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2025-09-09T00:00:11.778Z","repositories_count":10197651,"issues_count":32265666,"pull_requests_count":101815552,"authors_count":10741256,"icon_url":"https://github.com/github.png","host_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories","owners_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/owners","authors_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors"},"past_year_issue_labels_count":{},"past_year_pull_request_labels_count":{"dependencies":5,"github_actions":5},"past_year_issue_author_associations_count":{"NONE":3},"past_year_pull_request_author_associations_count":{"MEMBER":27,"CONTRIBUTOR":23,"NONE":6},"past_year_issue_authors":{"mingbaile":1,"quan-tob":1,"Strapontin":1},"past_year_pull_request_authors":{"montyly":22,"nisedo":5,"dependabot[bot]":5,"anishnaik":5,"elopez":3,"MK-BG":3,"ggrieco-tob":3,"sambacha":2,"tarunbhm":2,"damilolaedwards":2,"rappie":2,"oldsj":1,"ojiubasi-motif":1},"maintainers":[{"login":"montyly","count":61,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/montyly"},{"login":"ggrieco-tob","count":44,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/ggrieco-tob"},{"login":"elopez","count":11,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/elopez"},{"login":"dguido","count":4,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/dguido"},{"login":"mgcolburn","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/mgcolburn"}],"active_maintainers":[{"login":"montyly","count":21,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/montyly"},{"login":"elopez","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/elopez"},{"login":"ggrieco-tob","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/ggrieco-tob"}]},"events":{"total":{"CreateEvent":24,"IssuesEvent":2,"WatchEvent":181,"DeleteEvent":49,"MemberEvent":1,"IssueCommentEvent":11,"PushEvent":49,"PullRequestReviewCommentEvent":2,"PullRequestReviewEvent":10,"PullRequestEvent":64,"ForkEvent":30},"last_year":{"CreateEvent":24,"IssuesEvent":2,"WatchEvent":181,"DeleteEvent":49,"MemberEvent":1,"IssueCommentEvent":11,"PushEvent":49,"PullRequestReviewCommentEvent":2,"PullRequestReviewEvent":10,"PullRequestEvent":64,"ForkEvent":30}},"keywords":[],"dependencies":[{"ecosystem":"actions","filepath":".github/workflows/check_links.yml","sha":null,"kind":"manifest","created_at":"2023-02-18T06:45:40.328Z","updated_at":"2023-02-18T06:45:40.328Z","repository_link":"https://github.com/crytic/building-secure-contracts/blob/master/.github/workflows/check_links.yml","dependencies":[{"id":7755747365,"package_name":"actions/checkout","ecosystem":"actions","requirements":"master","direct":true,"kind":"composite","optional":false},{"id":7755747368,"package_name":"gaurav-nelson/github-action-markdown-link-check","ecosystem":"actions","requirements":"v1","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/ci.yml","sha":null,"kind":"manifest","created_at":"2023-02-18T06:45:40.383Z","updated_at":"2023-02-18T06:45:40.383Z","repository_link":"https://github.com/crytic/building-secure-contracts/blob/master/.github/workflows/ci.yml","dependencies":[{"id":7755747369,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v3","direct":true,"kind":"composite","optional":false},{"id":7755747370,"package_name":"actions/setup-python","ecosystem":"actions","requirements":"v4","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/deploy.yml","sha":null,"kind":"manifest","created_at":"2023-02-18T06:45:40.440Z","updated_at":"2023-02-18T06:45:40.440Z","repository_link":"https://github.com/crytic/building-secure-contracts/blob/master/.github/workflows/deploy.yml","dependencies":[{"id":7755747375,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v3","direct":true,"kind":"composite","optional":false},{"id":7755747376,"package_name":"actions/upload-pages-artifact","ecosystem":"actions","requirements":"v1","direct":true,"kind":"composite","optional":false},{"id":7755747377,"package_name":"actions/deploy-pages","ecosystem":"actions","requirements":"v1","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/echidna.yml","sha":null,"kind":"manifest","created_at":"2023-02-18T06:45:40.466Z","updated_at":"2023-02-18T06:45:40.466Z","repository_link":"https://github.com/crytic/building-secure-contracts/blob/master/.github/workflows/echidna.yml","dependencies":[{"id":7755747381,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v3","direct":true,"kind":"composite","optional":false},{"id":7755747382,"package_name":"actions/setup-node","ecosystem":"actions","requirements":"v3","direct":true,"kind":"composite","optional":false},{"id":7755747383,"package_name":"crytic/echidna-action","ecosystem":"actions","requirements":"v2","direct":true,"kind":"composite","optional":false}]}],"score":11.97618767180461,"created_at":"2025-09-09T03:28:25.522Z","updated_at":"2025-10-07T08:43:06.302Z","avatar_url":"https://github.com/crytic.png","language":"Solidity","category":null,"sub_category":null,"monthly_downloads":0,"funding_links":[],"readme_doi_urls":[],"works":{},"citation_counts":{},"total_citations":0,"keywords_from_contributors":["solidity","academic-papers","conference-presentations","security-reviews","static-analysis","vyper","vulnerability-detection","symbolic-execution","differential-testing","ganache"],"project_url":"https://science.ecosyste.ms/api/v1/projects/197290","html_url":"https://science.ecosyste.ms/projects/197290"}