Hei, saya Mike Kuykendall — 20+ tahun sebagai software engineer, mantan Staff Sergeant USAF, ayah dari dua anak, dan sekarang orang di balik Delta Zero Labs (@_MikeKuykendall di X).
Selama bertahun-tahun saya menjalani kehidupan RPC. Ingin semua transfer ERC20 untuk wallet whale sejak 2020? Jalankan skrip yang melakukan loop eth_getLogs dengan rentang 10.000 blok, tangani batas rate, coba lagi pada 429, paginasi, deduplikasi, decode ABI sendiri, simpan di suatu tempat… bilas dan ulangi untuk swap DEX, tick oracle, likuidasi.
Satu proyek akhir pekan berubah menjadi tagihan Alchemy $400/bulan dan archive node 14 TB yang menghabiskan SSD saya. Saya bersumpah harus ada cara yang lebih baik.
Dan memang ada.
Saya membangun (dan sekarang menjual) dataset Parquet production-grade, fully decoded, genesis-to-tip untuk Ethereum mainnet, BSC, dan Sepolia. Satu download. Satu file (atau set yang dipartisi dengan rapi). Nol RPC selamanya. Query 7,77 miliar event BSC atau 334 juta event Sepolia dalam hitungan detik di laptop Anda dengan DuckDB atau Polars.
Ini bukan indexer atau subgraph lainnya. Ini adalah data yang seharusnya Anda ekstrak sendiri — tetapi sudah selesai, didecode, diklasifikasikan berdasarkan signal_type, dikompresi, dan siap untuk dimiliki selamanya.
Dalam postingan ini saya memberikan panduan langkah demi langkah yang saya harap saya miliki dua tahun lalu. Di akhir, Anda akan tahu persis cara untuk:
Mari kita hilangkan pajak RPC bersama-sama.
Pemeriksaan realitas cepat (Anda sudah tahu ini, tapi mari kita kuantifikasi rasa sakitnya):
Saya lelah dengan itu. Jadi saya menulis mesin ekstraksi zero-RPC (Fused Semantic Execution yang sedang dipatenkan — FSE). Ini membaca data chain mentah sekali, mendecode setiap event ke dalam kolom yang bersih, menandainya dengan signal_type, dan membuangnya langsung ke Parquet.
Hasilnya? Dataset seperti:
Semua dikirimkan sebagai Parquet. Kolumnar, sangat terkompresi (5–10× lebih kecil dari CSV), siap predicate pushdown, bekerja dengan setiap alat data modern.
Setiap baris adalah satu event yang didecode. Berikut adalah kolom inti yang akan Anda gunakan setiap hari (spesifikasi lengkap 19 kolom ada di dokumen download):
Satu baris = satu record yang sangat jelas dan siap untuk analisis. Tidak perlu decoding ABI dalam kode Anda lagi.
Pergi ke sample resmi:
https://huggingface.co/datasets/MikeKuykendall/ethereum-signals-sample
Atau mirror Kaggle: https://www.kaggle.com/datasets/mikekuykendall/ethereum-onchain-signals
Download file Parquet (~5–10 MB, 10.000 baris terstratifikasi yang mencakup setiap signal_type).
Saya merekomendasikan DuckDB — ini ajaib untuk ini.
pip install duckdb pandas pyarrow
# atau hanya brew install duckdb di Mac
Buka Jupyter notebook atau hanya DuckDB CLI.
Python + Pandas (untuk eksplorasi kecil)
import pandas as pd
df = pd.read_parquet("ethereum_signals_sample.parquet")
print(df.shape) # (10000, 19)
print(df['signal_type'].value_counts())
print(df.head())
DuckDB SQL (di sinilah keajaiban terjadi — nol memori untuk file besar)
-- Launch DuckDB
duckdb
-- Attach the sample
SELECT * FROM read_parquet('ethereum_signals_sample.parquet') LIMIT 10;
"Berapa banyak transfer ERC20 yang telah dilakukan alamat ini?"
SQL
SELECT COUNT(*) as transfers,
SUM(amount) as total_volume
FROM read_parquet('your_full_dataset.parquet')
WHERE from_address = '0x1234...'
OR to_address = '0x1234...'
AND signal_type = 'ERC20_Transfer';
"10 token teratas berdasarkan jumlah transfer pada 2024"
SQL
SELECT contract_address,
COUNT(*) as tx_count
FROM read_parquet('your_full_dataset.parquet')
WHERE signal_type = 'ERC20_Transfer'
AND timestamp >= 1704067200 -- 1 Jan 2024
AND timestamp < 1735689600 -- 1 Jan 2025
GROUP BY contract_address
ORDER BY tx_count DESC
LIMIT 10;
"Semua swap Uniswap V3 untuk pool tertentu, dengan dampak harga"
SQL
SELECT timestamp,
amount0,
amount1,
sqrtPriceX96,
(amount1::double / NULLIF(amount0,0)) as price_impact
FROM read_parquet('full_dataset.parquet')
WHERE signal_type = 'UniswapV3_Swap'
AND contract_address = '0x88e6a0c2ddd26feeb64f039a2c41296fcb3f5640' -- USDC/ETH 0.05%
ORDER BY block_number DESC
LIMIT 1000;
"Tick harga Chainlink untuk ETH/USD dari waktu ke waktu" (sempurna untuk backtesting)
SQL
SELECT
date_trunc('day', to_timestamp(timestamp)) as day,
AVG(price) as avg_eth_price
FROM read_parquet('full_dataset.parquet')
WHERE signal_type = 'Chainlink_PriceUpdate'
AND contract_address = '0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419' -- ETH/USD
GROUP BY day
ORDER BY day;
Tips pro: DuckDB juga dapat membaca folder yang dipartisi:
SQL
SELECT COUNT(*) FROM read_parquet('mainnet_parquets/*.parquet');
Ini secara otomatis menggunakan predicate pushdown — filtering pada block_number atau signal_type melewati 99% data di disk. Anda akan query miliaran baris lebih cepat daripada kebanyakan orang bisa scroll Twitter.
Catatan penyimpanan: Set lengkap BSC besar tetapi dapat dikompresi dan berjalan baik di mesin RAM 64 GB. Untuk alur kerja yang lebih besar, cukup spin up box Hetzner murah dengan RAM 128 GB dan DuckDB masih mengalahkan cloud warehouse dalam hal biaya.
Satu pembeli memberi tahu saya: "Saya membatalkan paket RPC $1.200/bulan saya pada hari yang sama dataset tiba."
PendekatanBiayaKecepatan untuk Riwayat 3 TahunPemeliharaanKepemilikanLoop RPC Mentah$200–2000/bulanJam–hariKonstanAnda membangun kembaliSubgraphs/The GraphGratis–berbayarCepat tapi tidak lengkapRisiko providerTidakCryo self-extractWaktu Anda + nodeHari untuk ekstrakBerkelanjutanYaDelta Zero ParquetSatu kali $999+DetikNolSelamanya
1.000 pembeli pertama di mainnet/BSC mendapat diskon 25% dengan kode EARLY25 saat checkout.
Pertanyaan? DM saya di X @_MikeKuykendall atau bergabung dengan channel Telegram yang tertaut di situs. Saya menjawab setiap pertanyaan — ini adalah operasi solo milik veteran dan saya benar-benar peduli agar Anda menang dengan data.
Berhenti membayar sewa untuk data yang seharusnya milik Anda.
Download sample. Jalankan query. Kemudian jangan pernah panggil eth_getLogs lagi.
Sampai jumpa on-chain (offline).
— Mike Kuykendall Delta Zero Labs P.S. Chain drop berikutnya akan segera hadir. Ingin akses awal + tipe sinyal khusus? DM saya.
I Ditched RPC Hell for Good: Your Complete Genesis-to-Tip Parquet Handbook for Lightning-Fast… awalnya dipublikasikan di Coinmonks on Medium, di mana orang-orang melanjutkan percakapan dengan menyoroti dan merespons cerita ini.


