https://github.com/akacdev/sinkingyachts
A C# library for detecting Discord/Steam phishing links using the Sinking Yachts API.
https://github.com/akacdev/sinkingyachts
anti-phishing anti-scam discord phish phishing scam sinking-yachts steam
Last synced: 9 months ago
JSON representation
A C# library for detecting Discord/Steam phishing links using the Sinking Yachts API.
- Host: GitHub
- URL: https://github.com/akacdev/sinkingyachts
- Owner: akacdev
- License: mit
- Created: 2022-06-18T18:12:02.000Z (over 3 years ago)
- Default Branch: master
- Last Pushed: 2024-02-04T20:17:56.000Z (about 2 years ago)
- Last Synced: 2025-06-10T02:11:55.777Z (9 months ago)
- Topics: anti-phishing, anti-scam, discord, phish, phishing, scam, sinking-yachts, steam
- Language: C#
- Homepage: https://www.nuget.org/packages/SinkingYachts
- Size: 299 KB
- Stars: 16
- Watchers: 3
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
Awesome Lists containing this project
README
# Sinking Yachts 🐟
A C# library for detecting Discord/Steam phishing links using the Sinking Yachts API.
> **Warning**
> Sinking Yachts is currently in the process of being discontinued and replaced with the upstream [Fish Fish API](https://fishfish.gg).
> Expect this library to eventually become archived and marked as deprecated.
> Daily statistics have already been shut down.
## Usage
Available on NuGet as `SinkingYachts`, methods are available under the public class `YachtsClient`.
https://www.nuget.org/packages/SinkingYachts
## Features
- Made with **.NET 6**
- Fully async
- Access to a Discord-related phishing database of over `15 500` confirmed malicious domains
- Regex matching of domains and automatic phishing detection
- Different modes for storing and loading phishing domains
- Instant updates through **WebSocket events**
- Domain whitelisting to decrease false positives
- Customizable caching to decrease load
## Example Project
Under the `Example` directory you can find a working demo Discord bot that implements this library.
```rust
07.09. 19:13:59 [Discord] Discord.Net v3.8.0 (API v9)
07.09. 19:13:59 [Gateway] Connecting
07.09. 19:14:01 [Gateway] Connected
07.09. 19:14:02 [Bot] Ready to protect your server from 15601 phishing domains
07.09. 19:14:02 [Bot] Domains added within the past day: 8
07.09. 19:14:02 [Bot] Domains deleted within the past day: 0
07.09. 19:14:02 [Gateway] Ready
```
## Code Samples
### Check message content
```csharp
bool isPhishing = await Yachts.IsPhishing("hello https://hypesquadacademy-apply.ml");
//👉 True
```
### Check a domain
```csharp
bool isPhishing = await Yachts.IsPhishingDomain("warning-selectioneventhype.gq");
//👉 True
```
### Get the latest domains
```csharp
string[] domains = (await Yachts.GetRecent(TimeSpan.FromDays(1))).Where(x => x.Type == ChangeType.Add).SelectMany(x => x.Domains).ToArray();
//👉 steamcommunitysiv.top, wvwww-roblox.com, discord-download.win, steamcoumunity.eu, streamcummonity.com, streamcommunity.org, join-event-hypesquad.com, steamcommunityzowe.top
```
### Get the database size
```csharp
int size = await Yachts.GetDatabaseSize();
//👉 15601
```
## Available methods
- Task GetRecent(TimeSpan time)
- Task GetRecent(int seconds)
- Task IsPhishing(string content)
- Task IsPhishingDomain(string domain)
- Task GetDatabaseSize()
- Task GetPhishingDomains()
## Available events (requires `StorageMode.LocalWS`)
- EventHandler\ DomainAdded
- EventHandler\ DomainDeleted
## Statistics from the past week
| Date | New domains found |
| :---: | :---: |
| 10.11.2022 | + `37` |
| 11.11.2022 | + `14` |
| 12.11.2022 | + `25` |
| 13.11.2022 | + `23` |
| 14.11.2022 | + `21` |
| 15.11.2022 | + `30` |
| 16.11.2022 | + `14` |
## Recently flagged domains
```ruby
stcommunity.click
steamppowered.store
steamcommunltu.online
steamncommnuity.com
staemconnunity.ru
steamcomrunity.ru
dlscordjbost.com
steamcommynltiy.net.ru
steamcommynltiy.pp.ru
steancommunutty.ru
hypesquad-gg.com
```
## Missing domains
Found a Discord/Steam phishing domain that isn't yet present in the database? Send it into the `#domain-reports` channel on our Discord server or open an **issue** in this repository.
## Resources
The official Sinking Yachts Discord server has disabled invites at the moment. This will be updated once the server is open to the public again.
- Official website: https://sinking.yachts
- Email: admin@fishfish.gg, sinkingyachts@gmail.com
- GitHub: https://github.com/SinkingYachts
- Blog: https://sinking.yachts/blog/