CryptTracker Task Request: Discord Detective Bot for Communities
GitHub Repository
https://github.com/livefreensmart/crypttracker
Project Background
CryptTracker was born during the Utopian Hackathon. It was initially coded to investigate an account's wallet transactions:
- outgoing transfers to exchanges, taking note of the memo for the external wallet address
- incoming transfers to the account, taking note of the "from" account for voting ring investigation
The anti-abuse community need open source powerful tools for detecting abuse. We currently don't have any. We use Steemworld.org and SteemD, as well as other Steem dApps.
Steemcleaners have some tools but we don't know what they are. They are not available for everyone to use.
We are very limited to manually searching for patterns. Opening multiple tabs is a resource hog. SteemWorld only goes back 7 days*. SteemD shows everything and filtering through other transactions is a pain.
Communities like Tasteem and Artisteem also need a way to detect abuse. With SMT on the horizon, communities need to be vigilant on rewarding only authentic and quality community members.
I almost forgot to mention Utopian. The moderators at Utopian also need a detective tool!
Unveiling abusive network of accounts on the platform is the first goal for CryptTracker. There are various tools mentioned under "Other Resources" below. But CryptTracker aims to minimize the manual matching and eye scanning that abuse fighters do.
Details
It is time to create a public Discord bot. We need to make this tool available for the different Steem Discord Guilds.
For Phase 1, we need below commands implemented
walletmatch memo
Description: Given a memo (exchange wallet address) find other accounts transferring to it
Input: (required) (string) memo, usually exchange wallet address
Constraints: Filter transfers to exchange accounts. Memo can also be a partial search.
Output: List of unique Steemit accounts sending to the given memo
Example
command: walletmatch 10234890
output: oneko thetnaung kinggyi kopholone
transfermatch account1 account2
Description: Check transfer relationship between 2 non-exchange accounts
Input: (required) (string) 2 accounts are required to start looking for a possible connection
Constraints: account1 and account 2 should not be any of the exchange accounts in exchange accounts
Output: List of all similar transactions that both accounts share.
Output | Description |
---|---|
memo abcde-123456-fghij789 | both used the same wallet to withdraw funds |
transfers from account3 | both received funds from account3 |
transfers to account4 | both transferred to account4 |
Example
command: transfermatch thetnaung kinggyi
output(s):
transfers to oneko
memo 44f4ea71-2b71-4ad0-b2b8-86a84b383101
memo 10234890
accountmatch partialname
Description: Check account names similar to the given text
Input: (required) (string) partial text of an account name
Constraints: N/A
Output: List of accounts starting, ending, containing or patterned to the given text.
Example
command: accountmatch jekis
output: jekisan jekisan1 jekisan2 jekisan3 jekisan7
command: accountmatch lock
output: numlock capslock scrollock
Note: We know there is a vote farm that uses keyboard keys as names. We need more ideas on this accountmatch command. Ideally, the output should be:
numlock capslock scrollock prtsc shift alt tab ctrl
Components
Sections of the GitHub repo that will be affected once the task will be completed:
- New file steemtectivebot.py for Discord implementation.
- New file steemtective.py for all commands. steemtectivebot should reference this module for command calls. We want to separate it for future CLI implementation.
- Update exchange accounts if applicable
- Update requirements if applicable
Other References
- Crokkon discussed the logic of a script he coded to identify a network of accounts with Steemit Inc SP delegation.
- Klye had a similar concept 2 years ago but only for monitoring deposits.
- Steemworld.org has a tool for Transfer Search and is not limited to 7-days. We need a similar tool a little bit more flexible.
- Steemyy has a Transfer Viewer tool but you have to specify an account name. We need a similar tool a little bit more flexible.
Deadline
No hard deadline. It would be nice to complete them within 2 weeks.
Communication
Contact me on Discord lovenfreedom#5290 or join us at SteemFlagRewards Discord
Thanks for the task request, @lovenfreedom! It's a great task request with a great goal. There isn't anything that's unclear to me and you have done a great job of laying out exactly what you want, how and why + additional tips and resources. A great example of a task request for others.
Only thing I was wondering is if it must be coded in Python? I know there a few people on Utopian who have built Discord bots and could take on the task, but I think the majority of them used JavaScript.
Anyway, regardless of the chosen language, good luck finding someone who can implement it!
Your contribution has been evaluated according to Utopian policies and guidelines, as well as a predefined set of questions pertaining to the category.
To view those questions and the relevant answers related to your post, click here.
Need help? Write a ticket on https://support.utopian.io/.
Chat with us on Discord.
[utopian-moderator]
I'm partial to Python, but it's not a requirement.
If anyone's up to taking this task using JavaScript, I'm all for it.
Thanks for the review, Amos. I do hope we get this up and running soon.
Thank you for your review, @amosbastian! Keep up the good work!
That's a very cool task request!
I assume the reason steemcleaners keep their tools restricted is to try and stay one step ahead of the abuse. Once abusers know the search techniques they will have a better chance of evading them.
Thank you!
I share the same thought. Steemcleaners tools are restricted so the abusers can't dodge how they are caught.
This task request is something I've been meaning to program but just can't get to it. The "commands" are special filters on what's already out there so there's no point in making it a private tool.
Hi @lovenfreedom!
Your post was upvoted by @steem-ua, new Steem dApp, using UserAuthority for algorithmic post curation!
Your post is eligible for our upvote, thanks to our collaboration with @utopian-io!
Feel free to join our @steem-ua Discord server
Hey, @lovenfreedom!
Thanks for contributing on Utopian.
We’re already looking forward to your next task request!
Get higher incentives and support Utopian.io!
Simply set @utopian.pay as a 5% (or higher) payout beneficiary on your contribution post (via SteemPlus or Steeditor).
Want to chat? Join us on Discord https://discord.gg/h52nFrV.
Vote for Utopian Witness!
Wow, it might be fun to work on this :P
Hello, thank you for the interest. However, there's already a PR waiting to be approved.
Feel free to suggest any features you think would help us detect abuse!
Hi man, I'm gonna give this a shot if it hasn't been taken already. I can see someone else has forked it but I feel it's something I'd be able to finish today.
Hi @sisygoboom,
It's already taken and almost done. I'm about ready to approve the PR so please don't put any effort into it. We'll have another TR after this so I'll keep you in mind.
No bother, I thought I'd challenge myself anyway and got the wallet match done this morning :) keep me in mind for future tasks! sisygoboom#6775
Ah well, that's a great motivation indeed :) There will be some complex logic on the next commands we have in mind for phase 2 of this project.