{
  "fetched_at": "2026-10-18T13:36:50Z",
  "source_url": "https://www.kaggle.com/competitions/forta-protect-web3/data",
  "pages": [
    {
      "name": "data-description",
      "content": "## File Descriptions\n\n### Training and Test Data\n\n*   **train.csv** - Ethereum Externally Owned Accounts and their ground truth values.\n*   **test.csv** - Ethereum Externally Owned Accounts to identify as phishing scammers. \n*   **eoa_tx_(train|test).zip** - List of transactions where Ethereum EOAs were involved as a sender or a receiver. All transactions were executed before January 16, 2022. For the test set, all transactions were executed before July 18, 2022. \n*   **eoa_trace_(train|test).zip** - List of internal transactions triggered inside EOA’s transactions and internal transactions where EOA were involved as a sender or receiver. All internal transactions are executed before January 16, 2022. For the test set, all internal transactions were executed before July 18, 2022. \n*   **eoa_log_(train|test).zip** - List of event logs produced by EOA’s transactions and internal transactions.\n* **one_order.zip** - Folder of csv files on EOAs’ first-degree neighbor’s transaction activity. \n*   **one_order_from_in_stats_(train|test).csv** - Incoming transaction value and time related statistics for EOAs’ first-degree neighbors who sent a transaction to the EOAs (aka “from neighbor”)\n*   **one_order_from_out_stats_(train|test).csv** - Outgoing transaction value and time related statistics for EOAs’ first-degree neighbors who sent a transaction to the EOAs (aka “from neighbor”)\n*   **one_order_to_in_stats_(train|test).csv** - Incoming transaction value and time related statistics for EOAs’ first-degree neighbors who received a transaction from the EOAs (aka “to neighbor”)\n*   **one_order_to_out_stats_(train|test).csv** - Outgoing transaction value and time related statistics for EOAs’ first-degree neighbors who received a transaction from the EOAs (aka “to neighbor”)\n\n### Sample Submission & Data Description\n*   **sample_submission.csv** - example submission.\n*   **data_description.md** - Full description of each column.",
      "isPublished": false,
      "hasIsPublished": false,
      "postTitle": "",
      "hasPostTitle": false,
      "mimeType": "",
      "hasMimeType": false
    },
    {
      "name": "Description",
      "content": "# What is Forta?\n\n[Forta](https://forta.org/) is a real-time detection network for security & operational monitoring of blockchain activity\nAs a decentralized monitoring network, Forta detects threats and anomalies on DeFi, NFT, governance, bridges, and other Web3 systems in real-time to protect the web3 ecosystem.\n\n[![Forta Intro Youtube Video](https://user-images.githubusercontent.com/3497137/188163437-70d0ae07-ce0c-4840-aad8-08612bcaf211.gif)](https://www.youtube.com/watch?v=FNj_Kqc3fe8)\n\n[Forta Blog Post introducing this competition](https://forta.org/blog/predicting-phishing-kaggle/)\n\n[Watch a 2-minute clip on how Forta protects Web3](https://www.youtube.com/watch?v=FNj_Kqc3fe8)\n\n# Problem Statement\n\nChainalysis estimated scam losses of 7.7 billion dollars for 2021 in [their 2022 cyber crime report](https://go.chainalysis.com/2022-Crypto-Crime-Report.html). In August alone, [Web3Rekt](https://www.web3rekt.com/) recorded 34 scams, targeting web3 users ranging from NFT owners to De-Fi users. The owners of [NFT: Bored Ape Yacht Club](https://opensea.io/collection/boredapeyachtclub) fell victim to a scam (see [New BAYC Owner Scammed Just Two Hours After Purchasing $116K NFT\n](https://beincrypto.com/new-bayc-owner-scammed-just-two-hours-after-purchasing-116k-nft) ). On August 9th, 2022, Curve Finance users were tricked into token approvals, and their wallets were quickly drained (see [Curve Finance Rekt](https://rekt.news/curve-finance-rekt/)).\n\nThese attacks are commonly referred to as [ice phishing attacks](https://forta.org/blog/how-to-derail-a-120-million-dollar-hack/). On the Forta Network, there is a heuristic-based bot that attempts to identify these ice phishing attacks (see [Ice Phishing 2.0 bot](https://explorer.forta.network/bot/0x8badbf2ad65abc3df5b1d9cc388e419d9255ef999fb69aac6bf395646cf01c14)). However, the bot emits false positive alerts, identifying many approval events that are not part of an actual scam.\n\nMachine learning can surface potential threats with high confidence and reduce most false alarms often seen in heuristic based systems. For example, ML can detect future phishing activity by analyzing past phishing attacks and transaction flow. The authors of a research paper: [“Who Are the Phishers?“](https://arxiv.org/abs/1911.09259) gathered phishing related labels from [Etherscan](https://etherscan.io/accounts/label/phish-hack) and [CryptoScamDB](https://github.com/CryptoScamDB/EtherScamDB), and created a ML solution that detects phishing attacks with 92.7% precision and 89.3% recall. A ML model like this can be deployed in a [Forta detection bot](https://docs.forta.network/en/latest/getting-started/). Block by block or for every incoming transaction, the bot can invoke the model to predict if any addresses are involved in a phishing attack. \n\n# Objective\n\nYour goal is to develop a machine learning model that can accurately predict if an Ethereum Externally Owned Account (EOA) is a phishing scammer. For each `Id` in the test set, your task is to predict the value of the `target`: 0 for benign EOAs, 1 for phishing scammers. \n\nThe training set includes a random sample of unlabelled EOAs and a small sample (<1%) of EOAs involved in phishing scams. The labels were derived from addresses labeled with `phish/hack` on [Etherscan](https://etherscan.io/accounts/label/phish-hack). \n\nWe provided train/test EOA transactions, traces, logs, and even statistics on one-degree neighbors' transactions for a given timeframe. The data is time-sliced in the following way:\n\n-  Train transactions and metadata executed before January 16, 2022. \n-  Test transactions and metadata executed before July 18, 2022.\n\nYou are free to use all or some of the provided data. We also provided additional data sources you can tap into in the [Tutorial and Resources section](https://www.kaggle.com/competitions/forta-protect-web3/overview/tutorials-and-resources).\n",
      "isPublished": false,
      "hasIsPublished": false,
      "postTitle": "",
      "hasPostTitle": false,
      "mimeType": "",
      "hasMimeType": false
    },
    {
      "name": "Evaluation",
      "content": "## Evaluation\n\nSubmissions are evaluated on [Average Precision](https://scikit-learn.org/stable/modules/generated/sklearn.metrics.average_precision_score.html). Average Precision calculates average precision of all prediction scores at different thresholds. This metric produces a value between 0 and 1 where a value closer to 1 indicates that your model can accurately detect all past phishing scammer EOAs without mislabelling too many benign EOAs as phishing scammers. \n\n## Submission File Format\n\nThe file should contain a header and have the following format:\n```\nId,Predicted\n42,0.99\n43,0.25\n44,0.53\n....\n```\nYou can download an example submission file (sample_submission.csv) on the [Data page](http://www.kaggle.com/competitions/forta/data).",
      "isPublished": false,
      "hasIsPublished": false,
      "postTitle": "",
      "hasPostTitle": false,
      "mimeType": "",
      "hasMimeType": false
    },
    {
      "name": "rules",
      "content": "## One account per participant\nYou cannot sign up to Kaggle from multiple accounts and therefore you cannot submit from multiple accounts.\n\n## No private sharing outside teams\nPrivately sharing code or data outside of teams is not permitted. It's okay to share code if made available to all participants on the forums.\n\n## Team Mergers\nTeam mergers are allowed and can be performed by the team leader. In order to merge, the combined team must have a total submission count less than or equal to the maximum allowed as of the merge date. The maximum allowed is the number of submissions per day multiplied by the number of days the competition has been running.\n\n## Team Limits\nThe maximum team size is 5.\n\n## Submission Limits\nYou may submit a maximum of 5 entries per day.\n\nYou may select up to 2 final submissions for judging.\n\n",
      "isPublished": false,
      "hasIsPublished": false,
      "postTitle": "",
      "hasPostTitle": false,
      "mimeType": "",
      "hasMimeType": false
    },
    {
      "name": "Tutorials And Resources",
      "content": "# Ethereum Intro\n\n- [Intro to Ethereum](https://ethereum.org/en/developers/docs/intro-to-ethereum/)\n- [Solidity, Blockchain, and Smart Contract Course – Beginner to Expert Python Tutorial](https://youtu.be/M576WGiDBdQ)\n\n# Additional Data Sources\n\n- [Luabase](https://luabase.com) - Query blockchain data with SQL and request data in real-time via an API.\n- [Etherscan API](https://etherscan.io/apis) - Data from Etherscan's Ethereum (ETH) Block Explorer\n- [Ethplorer API](https://github.com/EverexIO/Ethplorer/wiki/Ethplorer-API) - Query information about Ethereum tokens, balances, addresses, history of transactions, contracts, and more.\n- [BigQuery Public Blockchain Datasets](https://github.com/blockchain-etl/public-datasets) - Available to query using BigQuery on Google Cloud Platform.\n\n# Phishing Detection Academic Research\n\n- [Who Are the Phishers? Phishing Scam Detection on Ethereum via Network Embedding](https://arxiv.org/abs/1911.09259)\n- [Phishing Scam Detection on Ethereum: Towards Financial Security for\nBlockchain Ecosystem](https://www.ijcai.org/proceedings/2020/0621.pdf)\n\n## Notebooks and Tutorials\n\n- [Benchmark model: Easy Ensemble with One-order neighbor features](https://www.kaggle.com/code/mgw917/benchmark-model-easyensemble)\n- [How to tell if an address is a smart contract or an EOA?](https://web3py.readthedocs.io/en/stable/web3.eth.html#web3.eth.Eth.get_code)\n\n# More about Forta\n\n- [Forta Docs](https://docs.forta.network/en/latest/)\n- [Doc: Data Science and Machine Learning on Forta](https://docs.forta.network/en/latest/ds-and-ml/)\n- [Blog: Three Ways Machine Learning Can Detect Web3 Security Threats](https://forta.org/blog/three-ways-machine-learning-can-detect-web3-security-threats/)\n",
      "isPublished": false,
      "hasIsPublished": false,
      "postTitle": "",
      "hasPostTitle": false,
      "mimeType": "",
      "hasMimeType": false
    },
    {
      "name": "Prizes",
      "content": "# Competition Prizes\n\n**1st Prize:** A Unique Forta POAP and getting featured on [Forta Blogs](https://forta.org/blog/) and on [Twitter](https://twitter.com/FortaNetwork). \n**2nd Prize**: A Unique Forta POAP and getting featured on [Forta Blogs](https://forta.org/blog/) and on [Twitter](https://twitter.com/FortaNetwork)\n**3rd Prize**: A Unique Forta POAP and getting featured on [Forta Blogs](https://forta.org/blog/) and on [Twitter](https://twitter.com/FortaNetwork)\n\nTo be eligible for a prize, you will be asked to:\n- share code with documentation\n- submit a valid email and Discord username through this [Google form](https://docs.google.com/forms/d/e/1FAIpQLSet5F1DeO52wDavMEB2a1sI1vyH8qc-SRJ6l7IkkoRVYeCw4Q/viewform)\n\nFor any questions, please contact a Forta Moderator on Discord: https://discord.gg/ehKhTDmbHT",
      "isPublished": false,
      "hasIsPublished": false,
      "postTitle": "",
      "hasPostTitle": false,
      "mimeType": "",
      "hasMimeType": false
    }
  ]
}