ChatbotX
Open-source ManyChat alternative, built for AI. Omnichannel marketing across WhatsApp, TikTok, Facebook, Instagram, Telegram, Zalo, Email, API, and Webchat 🤖
The simple ad network. Advertisers paste a link and a daily budget. Publishers paste one tag and get paid to their wallet. Crypto in, crypto out.
MarketingTypeScript · ShellGitHub @moshcoderOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Run ads, or earn from your site, in crypto. The simple front door to the crawlproof ad network. Web, API, CLI, TUI, MCP.
Taken from the repository README
Loading the full README.
Read the full README ↗Run ads, or earn from your site, in crypto. The simple front door to the crawlproof ad network, the way pay.agent is to CoinPay.
</body>, add a USDC wallet.
You earn about 5¢ of each paid click; withdraw from $5, straight to your wallet.Sign in with CoinPay. No other account, no forms.
curl -fsSL https://ad.network.pit.world/install.sh | sh, or bunx @profullstack/adnetworkclaude mcp add adnetwork -e ADNETWORK_KEY=an_… -- bunx @profullstack/adnetwork mcpPOST /api/v1/ads {"url": "…", "daily_usd": 5}, POST /api/v1/deposits {"amount_usd": 25} (answers a CoinPay checkout_url: any coin or PayPal),
POST /api/v1/sites {"site": "example.com"}; full list at https://ad.network.pit.world/help#agentsadnetwork run https://example.com --daily 5 # an ad
adnetwork fund 25 # CoinPay link: any coin or PayPal
adnetwork site example.com # the tag to paste
adnetwork wallet example.com 0x… usdc_pol
adnetwork withdraw example.com
ad.network runs on two crawlproof accounts. One owns every advertiser's campaigns and holds their budget; ad.network keeps each advertiser's share (deposits in, minus what their ads spent) and pauses anyone who reaches zero, checking every five minutes. The other owns every publisher's slots, each paying its own wallet through CoinPay, so ad.network never holds a publisher's money. They are two accounts because crawlproof books an ad served on its own owner's slot as a free self-deal.
Deposits buy ad budget at face value ($1 = $1 of clicks) through crawlproof's partner deposit API. A site is yours once we see your tag on it: every tag carries a claim code for one person, and withdrawals wait for it.
@profullstack/redeem-credits, unit usd_cents) are ad credit. Mint on dev2:
cd /opt/ad.network && bun node_modules/@profullstack/redeem-credits/dist/cli.js mint --db /root/.local/share/ad-network/ad-network.db --unit usd_cents --amount 1000 --prefix AD --label "for X" [--max N] [--expires 90d]
(also list, revoke <id>). Redeem at /me ("Have a code?"), POST /api/v1/credits/redeem, adnetwork redeem, MCP redeem_credit_code.@profullstack/affiliates): 3 per account, /invites, /i/<code> (cookie an_invite, accepted at the CoinPay sign-in, or paste the code on /invites). One accepted invite per account, accounts under 7 days old; senders must be a day old. Both sides get ADNETWORK_INVITE_BONUS_CENTS (default 500) of ad credit, except throwaway addresses, the inviter's own mailbox (+tag / Gmail dots), house accounts; the inviter's half stops at ADNETWORK_INVITE_MONTHLY_CAP (5) per 30 days.POST /api/ads/v1/grants): it lands on the shared advertiser account as ad_bonus_credits, which runs ads but pays no publisher, so credit nobody paid for can never be withdrawn as crypto. Then a deposits row (coin credit, id credit:<source>) adds it to the person's balance here. Both are idempotent on the source.Customer webhooks via @profullstack/webhooks (Standard Webhooks signatures, CloudEvents bodies, durable
outbox in the same SQLite file, retried for about three days, SSRF-guarded URLs). Each event goes to the
account it is about: ad.created, ad.started / ad.paused (reason: requested, funded, no_budget),
ad.deleted, budget.exhausted, deposit.completed, deposit.failed, credit.added, site.added,
site.verified, site.lost (someone else proved a site you never did), site.removed, payout.requested.
Manage them at /me#webhooks, /api/v1/webhooks (list, create, test, rotate, deliveries, delete; API key),
adnetwork webhooks / adnetwork webhook add|test|rotate|rm|log, or MCP create_webhook and friends.
bun install
ADNETWORK_KEY=$(openssl rand -hex 32) ADNETWORK_COINPAY_CLIENT_ID=cp_… \
ADNETWORK_ADVERTISER_TOKEN=crp_… ADNETWORK_PUBLISHER_TOKEN=crp_… bun src/server.ts
Settings: ADNETWORK_KEY (seals sign-in state, signs claim codes; no CoinPay token is stored: sign-in reads your payout wallets once and drops it),
ADNETWORK_COINPAY_CLIENT_ID / _SECRET (CoinPay OAuth client, scopes
openid profile email wallet:read), ADNETWORK_ADVERTISER_TOKEN /
ADNETWORK_PUBLISHER_TOKEN (crawlproof API tokens; the advertiser account must be
in crawlproof's ADS_PARTNER_USER_IDS), ADNETWORK_DB, PORT (8800),
CRAWLPROOF_URL, CRAWLPROOF_SITE_ID (analytics), ADNETWORK_ORIGIN.
Deploy: bin/install.sh (OpenInstall) on dev2, vault profullstack/ad-network--prod;
nginx vhost ad.network.pit.world with a cert from pit-proxy-cert.
MIT