← Back
duwqijlk

duwqijlk/cielo-debank

Cielo wallet feed client and DeBank wallet age lookup

View on GitHub ↗
Stars
6
Forks
3
Watchers
6
Open issues
0
Contributors
1
Language
Python
License
MIT License
Default branch
main
Created Oct 1, 2026Updated Oct 1, 2026

Star growth

Today—
This week—
This month—

Star history will appear here once this repo has been tracked for a couple of days.

README

cielo-debank

English · 中文

Monitor EVM wallets through Cielo. Each event looks up the wallet age on DeBank, then sends a Telegram message.

This client talks to undocumented website endpoints. They can change or rate-limit without notice. Do not commit session_state.json or debank_network_full.json.

English

Install

pip install -r requirements.txt

Cielo

login creates a throwaway key in ./session_state.json, signs Cielo's login message, and stores the session cookie. The key holds no assets. The cookie is a live credential.

Copy env.example to .env and fill in your own bot:

TELEGRAM_BOT_TOKEN=
TELEGRAM_CHAT_ID=
DEBANK_CACHE=./debank_network_full.json
python -m cielo_debank login
python -m cielo_debank follow 0xYourWallet --label demo
python -m cielo_debank list
python -m cielo_debank unfollow 0xYourWallet
python -m cielo_debank notify-test
python -m cielo_debank listen

listen is the full path: Cielo websocket, then DeBank born_at, then one Telegram message. It renews ws_token near expiry and appends JSON lines to tx_events.log. The same transaction is not sent twice after a reconnect. Free Cielo accounts track at most 250 wallets.

Default chains are ethereum, arbitrum, base, bnb, hyperevm, plasma, monad. Override with --chains ethereum,base.

DeBank wallet age

DeBank's born_at needs a signature produced by their frontend bundle, plus a browser TLS fingerprint. Put a captured debank_network_full.json in the working directory, or set DEBANK_CACHE to its path. That file is DeBank's JavaScript and is not included here.

python -m cielo_debank age 0x8ADdeD25F8CcE417C1E19aAD91fb6dDCB9917d2c

listen always runs this lookup before Telegram. Wallets 7 days old or newer are marked new. A failed lookup is still notified as 钱包年龄: 查询失败.

中文

链路是固定的:Cielo 推送一笔交易,DeBank 查这个钱包的年龄,然后发一条 Telegram。接口是网站逆向来的,没有 SLA,协议随时可能变。

安装

pip install -r requirements.txt

Cielo 监控

把 env.example 复制成 .env,填你自己的机器人,不要提交这个文件:

TELEGRAM_BOT_TOKEN=
TELEGRAM_CHAT_ID=
DEBANK_CACHE=./debank_network_full.json
python -m cielo_debank login
python -m cielo_debank follow 0xYourWallet --label demo
python -m cielo_debank list
python -m cielo_debank unfollow 0xYourWallet
python -m cielo_debank notify-test
python -m cielo_debank listen
  • login 在当前目录生成 session_state.json(抛弃型私钥 + cookie)。私钥不持有资产,cookie 仍然是登录凭证,已在 .gitignore 里。
  • follow / unfollow 都调用 walletDiscovery.toggleWalletFollow。未关注时是关注,已关注时是删除。关注之后会再调 editWallet,把链限制在 ethereum、arbitrum、base、bnb、hyperevm、plasma、monad。
  • listen 按顺序做三件事:收 Cielo 的 wss://api.cielo.finance/v1/ws,用 DeBank 查 born_at,再给 TELEGRAM_CHAT_ID 发一条消息。token 快过期会自动续期。同一笔交易的多条 transfer 会先合并。重连重放不会发第二次。
  • notify-test 只发一条 notify ok,用来确认机器人配置。
  • 缺 bot token、chat id,或找不到 DeBank JS 缓存时,listen 会直接退出。
  • 免费账户最多 250 个钱包。

DeBank 钱包年龄

签名要靠本地缓存的 DeBank 前端 JS(debank_network_full.json),仓库不带这个文件。放到当前目录,或设置环境变量 DEBANK_CACHE。

python -m cielo_debank age 0x8ADdeD25F8CcE417C1E19aAD91fb6dDCB9917d2c

age 单独读 data.user.desc.born_at。listen 每笔交易都会先走这一步,再通知。7 天及以内会标成新钱包。查失败时通知里写 钱包年龄: 查询失败,这条交易仍会发出。