Skip to content

Instantly share code, notes, and snippets.

@gayleQN
gayleQN / gist:3e7224de37d35ea923d7b9cb53826656
Created September 22, 2025 17:08
XRPL Wallet Monitor filter
// Returns { matchingTransactions } or null
const CONFIG = {
Wallets: [
'rEmnE8iCKY21cesiywotSDoQgTyaNAvgYX',
],
};
function main(payload) {
const wallets = new Set(CONFIG.Wallets);
@gayleQN
gayleQN / gist:a82ff9d6027c83206534778b35dca493
Last active October 16, 2025 18:58
Solana Wallet Monitoring with Key-Value Store
const tokenPrograms = new Set([
'TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA',
'TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb',
]);
const ignorablePrograms = new Set([
'Vote111111111111111111111111111111111111111',
'ComputeBudget111111111111111111111111111111',
'AddressLookupTab1e1111111111111111111111111',
]);
@gayleQN
gayleQN / gist:ce5fb7c31032cccc050679d8bc3f48b8
Last active October 27, 2025 16:09
EVM Wallet Monitoring with Key-Value Store List
async function main(stream) {
const LIST_NAME = "wallets";
const TRANSFER_TOPIC =
"0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef";
// --- helpers ---
const toArray = (x) => (Array.isArray(x) ? x : []);
const lower = (s) => (typeof s === "string" ? s.toLowerCase() : null);
const normalizeAddr = (s) => (s ? lower(s) : null);
const topicToAddr = (topic) => {
@gayleQN
gayleQN / gist:33318822542e6e9786d819239f6afa4d
Created May 28, 2025 20:29
EVM Wallet & ERC20 Transfers! QuickNode Streams filter sample code
const CONFIG = {
Wallets: [
'0xaaaaaa0000000000000000000000000000000000',
'0xbbbbbb0000000000000000000000000000000000'
],
ERC20: [
'0xaaaaaa0000000000000000000000000000000000',
'0xbbbbbb0000000000000000000000000000000000'
]
};
@gayleQN
gayleQN / gist:4df69ee5457a50f23d0555d4caf87a33
Created May 28, 2025 20:28
Pump.fun new token created! QuickNode Streams filter code example for Solana
function main(stream) {
const PUMP_FUN_PROGRAM = "6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P";
const matches = [];
for (const block of stream.data) {
for (const tx of block.transactions) {
if (!tx.meta || tx.meta.err) continue;
// Check if any inner instruction invokes pump.fun
const invokedPump = (tx.meta.innerInstructions || []).some(ix =>
@gayleQN
gayleQN / gist:94879643798ca9aa169065d69162251a
Created May 28, 2025 19:56
Uniswap V2/V3 pool creation Telegram Bot: QuickNode Streams filter code
function main(payload) {
const CONFIG = {
CHAT_ID: "<your_chat_id>",
SCAN_BASE_URL: "https://etherscan.io",
POOL_ABI: [
{
anonymous: false,
inputs: [
{ indexed: true, name: "token0", type: "address" },
{ indexed: true, name: "token1", type: "address" },