S

Solana Investigation Tool

Given a wallet address, track the movement of tokens.

Created on 29th May 2022

S

Solana Investigation Tool

Given a wallet address, track the movement of tokens.

The problem Solana Investigation Tool solves

A public blockchain is what it is 'public', So the movement of funds to different wallets documented gives it an extra layer of transparency and security.

Currently, there aren't tools like breadcrumbs on the solana chain, Indexers are still a hassle to get your hands on in this space. Especially tools like this are the need of the hour when things like Luna happen.

So this script runs for a particular wallet and indexes all the spl token transactions that happened, It also provides a graphql layer on top to query relevant data.

PS. Also with modifications to this script, you can really put out data from the transaction parsed as you please.
ex. You could find to which address the tokens were transferred to, etc.
The schema of tables that get populated looks like

| mint | blocktime | amt | diff | sol_change | txn_hash |

The returned data looks like this for a particular token address of a given wallet.
As shown below in the result returned from hasura, we can see the wallet had

199.817177

and there was a

200

credit to this account at said date (

blocktime

) and it's corresponding hash (

txn_hash

), The updated balance is

399.817177

in the following transaction and it goes on...

{ "amt": 199.817177, "diff": 200.00000000000003, "sol_change": 0, "blocktime": 1639582020, "txn_hash": "4rodPm1e6FWAa3YNUJB3tkeEQ8NBzvtpdxK6AMxYzY3m7vZ3xvqeycU4VEE5VB82BrcKiyFAo3wCyaksKewdjmcY" },{ "amt": 399.817177, "diff": -200.00000000000003, "sol_change": 0, "blocktime": 1639582169, "txn_hash": "4X2cw9JbM85cUk8pRBCcb7TCsxpLb5qLr6HPjZTCRQ6sigdDmhsGGigzaSgJthhXzacpzXrHZAFPg4a6RJ9hq7ub" },

Challenges I ran into

This is a hacky solution that pulls data from an RPC node. This would definitely require more testing to be robust and be really used in production.

There are times when a transaction gets repeatedly returned basically leading to duplicate calls. This can be troublesome as it can lead to huge RPC loads that could even lead to your app getting blacklisted because of spam.

Also, this is a one-time setup to modify the script to pull data of your interest from the fetched parsed transaction, In this case, it is focused more on just the funds moving in and out of a given wallet address.

This is still a WIP and needs refinement for mainstream adoption.

Technologies used

Cheer Project

Cheering for a project means supporting a project you like with as little as 0.0025 ETH. Right now, you can Cheer using ETH on Arbitrum, Optimism and Base.

Discussion

Builders also viewed

See more projects on Devfolio