diff --git a/public/assets/partners.js b/public/assets/partners.js new file mode 100644 index 0000000..a54165b --- /dev/null +++ b/public/assets/partners.js @@ -0,0 +1,20 @@ +// Site-owner partner page: ?name=First greets the owner, ?promo=CODE rides along into the +// company placement link and the example builder link. Display only; placement and credits +// come from the join route and the promo code. +(function () { + const q = new URLSearchParams(location.search); + const name = String(q.get('name') || '').replace(/[^A-Za-zÀ-ɏ' -]/g, '').trim().slice(0, 30); + const promo = String(q.get('promo') || '').toUpperCase().replace(/[^A-Z0-9_-]/g, '').slice(0, 24); + const hello = document.getElementById('pkHello'); + if (hello && name) { hello.textContent = name + ', this page is for you. Your spot directly under the company at the top is reserved; activate with the $20 package to claim it.'; hello.style.display = 'block'; } + const cta = document.getElementById('pkCta'); + if (cta) { + const p = new URLSearchParams(); if (name) p.set('name', name); if (promo) p.set('promo', promo); + cta.href = '/join/company' + (p.toString() ? '?' + p.toString() : ''); + if (name) cta.textContent = 'Claim my spot, ' + name; + } + const ex = document.getElementById('pkExample'); + if (ex && promo) ex.textContent = 'https://instantadpay.com/join/yourname?promo=' + promo; + const sub = document.getElementById('pkCtaSub'); + if (sub && promo) sub.textContent = 'Free account by email. No password, no wallet today. The link below places you directly under the company and applies your code ' + promo + ' as well.'; +})(); diff --git a/public/partners.html b/public/partners.html new file mode 100644 index 0000000..df46a6c --- /dev/null +++ b/public/partners.html @@ -0,0 +1,134 @@ + + + + +For site owners | InstantAdPay + + + + + + + + + +
+
+

For site owners with a downline builder

+

I built the ad platform I always wanted to run. I want it in your builder.

+

A note from me, plus everything you need to list InstantAdPay in your builder and hand your members free ad credits with a code of your own.

+
+ +

+ +
+

Watch first: the whole platform in about five minutes. Free and paid members, the seven ad formats, how people get paid, and the offer for your builder.

+ +

Why I built it

+

You know I ran ad sites for years, the kind your members already know: buy a package, run banners and text ads, click for credits. Two of mine, Faucet Wave and Tier One Ads, ran on a licensed script. The vendor went out of business, their license server went dark, and it crippled licenses that were fully paid. The sites died overnight and nothing I could do would bring them back.

+

So I built InstantAdPay from scratch as part of the Crypto Team Build Network. No vendor, no license server, and the part that always went wrong on ad sites, the money, is handled by a verified smart contract on Polygon instead of by me. When a package sells, the contract splits the payment and sends it in the same transaction. I never hold member funds, so there is no back office, no payday, and nothing anyone can switch off.

+

Marty Bostick · Crypto Team Build Network

+ +

What InstantAdPay is

+

An advertising platform where the ad spend in your line pays you. Members join free with an email address, no password and no wallet on day one. They earn credits by viewing ads and can run their first campaign for zero dollars. When they want more reach they buy an ad package, and every package that sells is split by the contract the moment it sells.

+
+

Seven ad formats

Banners, text ads, login ads, solo ads to member inboxes, video, featured links and verified visits. Views are timed on the server, so a real person saw the ad.

+

Beyond the site

Banner and text ads also push out to Network Ad Space, a partner rotation across other member sites. Those impressions count in the member's stats.

+

WalletConnect built in

Full WalletConnect integration: members link MetaMask, Trust, Phantom, SafePal or any WalletConnect wallet with one tap, sign once, and buy or get paid straight from that wallet. No custody on my side.

+

Public, verified, immutable

Every payout is a public transaction on Polygon. The split percentages and qualification rules are constants in a verified contract that the operator cannot change.

+
+ +

How the money moves

+

Every ad package splits the same way, in the same transaction it sells in:

+
+
50%
direct sponsor
+
20%
level 2
+
10%
level 3
+
20%
platform
+
+

On a $20 package: $10 to the direct sponsor, $4 to level 2, $2 to level 3, $4 to the platform. If a level has no qualified member, that share passes up to the next qualified person above.

+

Qualification is earned, never bought. Every direct buyer pays their sponsor 50% from their very first package. Two qualifying buyers, people who bought a $20 or larger package, open level 2. Five open level 3. Until a level opens, its share climbs to the next qualified member above, which is why the plan rewards the people who actually build.

+ + + + + + + +
PackagePriceCredits
Micro$5500
Activation, the qualifying buy$202,000
Builder$505,500
Growth$10012,000
Leader$25032,500
+ +

What your members get

+ + +
+

What you get for listing it in your builder

+ +
+ +

Setting it up takes about fifteen minutes

+
    +
  1. Claim your spot with the button below. It places you directly under the company at the top. Join with your email and pick your username; your own invite link is live immediately: instantadpay.com/join/yourname.
  2. +
  3. Send me your username and the site you are listing it on. I mint your code with the credit amount we agree on.
  4. +
  5. Add InstantAdPay to your downline builder with your link plus the code: https://instantadpay.com/join/yourname?promo=YOURCODE. Members who click it land under you and their credits apply the moment their account exists.
  6. +
  7. Use the banners and text ads from the kit. Members who already have an account can type the code into the "Have a promo code?" box on their Overview.
  8. +
  9. Link a wallet, switch on payouts, and activate with at least the $20 package. That claims your spot at the top and makes you a qualifying buyer in your own right.
  10. +
+ +
+ Claim your spot at the top +

Free account by email. No password, no wallet today. The link below places you directly under the company.

+ Claim my spot +
+ +

The honest part

+

InstantAdPay sells advertising. Members earn from the ad packages people in their line buy, and nothing else. There is no earn-without-referring option, on purpose, because sites that pay you just for buying in are the ones that collapse. No income is guaranteed, results depend on effort, and cryptocurrency involves risk of loss. The contract, the ledger and every payout are public, so you never have to take my word for any of it.

+

Marty Bostick · marty@marketingwithmarty.com · t.me/cryptoteambuild

+ + +
+ + + + diff --git a/public/promo/partner-overview.jpg b/public/promo/partner-overview.jpg new file mode 100644 index 0000000..8e82e2d Binary files /dev/null and b/public/promo/partner-overview.jpg differ diff --git a/server.js b/server.js index 63162b9..c9dd215 100644 --- a/server.js +++ b/server.js @@ -28,7 +28,7 @@ const tank = require('./tank'); // holding tank: unsponsored free members, a const legacy = require('./legacy'); // Faucet Wave / Tier One Ads bridge: welcome-back credits for listed emails const traffic = require('./traffic'); // public page views by referring domain (admin Traffic tab) const promos = require('./promos'); // partner promo codes -> free ad credits (link ?promo=CODE or the dashboard box) -const TRAFFIC_PAGES = new Set(['/', '/ledger', '/contract', '/shorts', '/plays', '/wallets', '/launch']); +const TRAFFIC_PAGES = new Set(['/', '/ledger', '/contract', '/shorts', '/plays', '/wallets', '/launch', '/partners']); let tankWaitCache = null; // dashboard: who is waiting for a sponsor (refreshed every minute) const geo = require('./geo'); // viewer country -> tier (DB-IP lite), for campaign targeting const burner = require('./burner'); // automatic on-chain credit burns (inert without ENGINE_KEY) @@ -2129,6 +2129,7 @@ const server = http.createServer(async (req, res) => { if (p === '/admin') return sendFile(res, path.join(PUBLIC_DIR, 'admin.html')); if (p === '/shorts') return sendFile(res, path.join(PUBLIC_DIR, 'shorts.html')); if (p === '/plays') return sendFile(res, path.join(PUBLIC_DIR, 'plays.html')); + if (p === '/partners') return sendFile(res, path.join(PUBLIC_DIR, 'partners.html')); // site-owner kit (Marty, 2026-09-12) if (p === '/wallets') return sendFile(res, path.join(PUBLIC_DIR, 'wallets.html')); if (p === '/launch') return sendFile(res, path.join(PUBLIC_DIR, 'launch.html')); if (/^\/view\/[a-f0-9]{32}$/.test(p)) return sendFile(res, path.join(PUBLIC_DIR, 'view.html'));