Documentation
Everything you need to know about GRAMKETING.
Overview
What is GRAMKETING?
GRAMKETING is a Web3 performance marketing platform built on the TON blockchain. It connects projects that want to grow their community, holders and investors with contributors, promoters, and marketers who want to earn rewards for their content.
Projects create reward pools funded with their own tokens. Participants — Contributors, Promoters, and Marketers — compete by posting about the project on X (Twitter) and Telegram. At the end of a pool's duration, rewards are distributed proportionally based on each participant's accumulated points.
Everything runs on TON — wallets connect via TON Connect 2.0, payments are made in TON or $mGRAM, and reward distribution is handled by a Tact smart contract.
How Pools Work
A pool has a lifecycle:
- Project creates a pool and pays an access fee to the platform treasury.
- Project deposits reward tokens into an escrow smart contract.
- Pool goes ACTIVE — contributors, promoters, and marketers can join and submit posts.
- The scraper runs every 30 minutes, updating view counts and points.
- When the duration expires, the pool is marked ENDED.
- Platform admin triggers distribution — rewards flow to winners' wallets.
How the Leaderboard Works
The leaderboard ranks all participants by total points. Points are updated every 30 minutes when the scraper runs. Each update is saved as a snapshot in the database.
The leaderboard is public — anyone can view it. Click any participant's row to see their full stats breakdown.
Detailed scoring example
Final Score Formula
(3,800 + 2,900) × 1.4 × 1.3 = 11,390 pts
Content Performance
X Points
3,800
Telegram Points
2,900
X / Twitter Posts
Telegram Posts
Boosts
Holder Boost
70% of top holder
Referral Boost
1.3×Reward Distribution
Rewards are distributed proportionally based on each participant's share of total points. If the pool has 10 reward slots, the top 10 point-earners share the pool.
Example: 3-slot pool, 1,000,000 tokens total Alice: 5,000 pts → 50% share → 500,000 tokens Bob: 3,000 pts → 30% share → 300,000 tokens Carol: 2,000 pts → 20% share → 200,000 tokens
Distribution is triggered by the platform admin after pool end. The smart contract sends tokens directly from escrow to each winner's wallet.
For Contributors, Promoters & Marketers
Participant Tiers
Every wallet that joins GRAMKETING is assigned a tier based on their total points earned across all pools. Tiers are calculated dynamically and update in real time as you earn points.
| Tier | Points Required | Badge | Description |
|---|---|---|---|
| Contributor | 0 pts (default) | Contributor | Default tier for anyone who joins the platform. Start here and earn your way up. |
| Promoter | 500+ pts | Promoter | Earned by reaching 500 total points. Shows you're actively driving real engagement. |
| Marketer | 5,000+ pts | Marketer | Top-tier status for proven performers. Displayed in gold on leaderboards and public profiles. |
Tier badges are shown on the leaderboard, your public stats page, and your dashboard. They reflect your total lifetime points across all pools — not just one pool.
How to Connect Your X Account
Go to Dashboard → Account Settings → enter your X username (without the @). This links your X handle to your wallet address so submissions can be attributed to you.
Full Twitter OAuth is coming in a future update for automatic post detection.
How to Connect Your Telegram Account
Go to Dashboard → Account Settings → enter your Telegram username. This enables Telegram post submission and future bot notifications.
Submitting Posts
Open a pool page → Submit tab → paste your X or Telegram post URL. Supported formats:
X: https://x.com/username/status/1234567890 Telegram: https://t.me/yourchannel/456
After submission, the post is queued for the next scrape cycle. Views are updated within 30 minutes.
Telegram: Channel Posts Only
Only posts from public Telegram channels are supported — not group messages, private chats, or DMs. Channel posts have a public URL in the format t.me/yourchannel/123 and are the only post type where view counts are publicly accessible. Group messages and DMs do not expose view data, so they cannot be tracked or verified.
Daily Submission Limits
You can submit a maximum of 2 posts per day per pool. This applies across both platforms — 2 X posts, 2 Telegram posts, or one of each.
The daily limit resets at midnight UTC. Submitted posts are scraped continuously until the pool ends.
How Points Are Calculated
Each platform scores your posts differently, then boosts are applied pool-wide:
── Per-post scoring ──────────────────────────────
X post score = (views × 0.8 + likes × 0.1 + reposts × 0.1) / 10
(minimum 100 views to qualify)
Telegram score = (views × 0.8 + reactions × 0.2) × 2
── Campaign weighting ────────────────────────────
X-only pool : contentScore = xPoints
Telegram-only : contentScore = telegramPoints
Both (50 / 50) : contentScore = xPoints × 0.5 + telegramPoints × 0.5
── Boosts (recalculated each scrape cycle) ───────
holderBoost = 1.0 + (yourBalance / topBalanceInPool) → 1.0x – 2.0x
referralBoost = 1.0 + (yourReferredTotal / topInPool) → 1.0x – 2.0x
── Final score ───────────────────────────────────
totalPoints = (contentScore × holderBoost × referralBoost)
+ referralBonusPointsExample: X-only pool, 10,000 views, 200 likes, 50 reposts → raw score = (8,000 + 20 + 5) / 10 = 802.5 pts. With holderBoost 1.4x and referralBoost 1.2x → 802.5 × 1.4 × 1.2 ≈ 1,348 pts.
Scoring System
Points are weighted differently per platform. When both platforms are active in a pool, each contributes 50% to your final score. The table below shows how each metric is weighted within its platform, and the equivalent combined weight.
Holder Boost (Proportional, 1.0x – 2.0x)
Every scrape cycle, the platform checks each participant's balance of the pool's project token via the TON RPC. Your holder boost is calculated relative to the highest holder in the pool — not against a fixed threshold.
holderBoost = 1.0 + (yourBalance / topBalanceInPool) Examples (pool top holder = 100,000 tokens): You hold 100,000 → 1.0 + 1.0 = 2.0x (maximum) You hold 50,000 → 1.0 + 0.5 = 1.5x You hold 10,000 → 1.0 + 0.1 = 1.1x You hold 0 → 1.0 + 0.0 = 1.0x (no boost)
The boost range is always 1.0x (no tokens) to 2.0x (top holder). As other participants buy or sell tokens, everyone's boost adjusts proportionally each cycle.
Referral System
Every pool participant gets a unique referral link. Share it to bring new participants to the pool.
When a referred friend connects their wallet and holds the pool's project token:
- You earn +500 bonus points (one-time, flat, per qualifying referral)
- Their token holdings contribute to your ongoing referral boost
Referral Boost (Proportional, 1.0x – 2.0x)
Just like the holder boost, your referral boost is calculated pool-wide — relative to the participant with the highest total referred holdings.
referredTotal = sum of token balances of all YOUR token-holding referrals referralBoost = 1.0 + (referredTotal / topReferredTotalInPool) Examples (pool top referrer's total = 200,000 tokens): You referred users holding 200,000 total → 2.0x (maximum) You referred users holding 100,000 total → 1.5x You referred users holding 20,000 total → 1.1x No token-holding referrals → 1.0x (no boost)
The referral boost range is always 1.0x to 2.0xand is recalculated on each scrape cycle as referred users buy or sell tokens. Only referrals who currently hold > 0 project tokens contribute to your boost.
How Points Can Decrease
Points are recalculated on every scrape cycle. Your total can decrease if:
- You sell project tokens — your holder boost drops proportionally (or to 1.0x if you sell everything)
- Another participant buys more tokens and becomes the new top holder — everyone else's holder boost decreases relative to the new top
- A referred friend sells tokens — their balance no longer contributes to your referral boost, which recalculates downward
- A competing referrer gains more referred holdings than you — your referral boost decreases relative to the new pool maximum
Base post scores (views, likes, reposts, reactions) are cumulative and can only increase as posts accumulate more engagement. Only the boost multipliers fluctuate between cycles.
For Projects
How to Create a Pool
- Connect your TON wallet
- Go to Create a Pool
- Enter your project details (name, token symbol, jetton master address, X profile link, and Telegram channel link)
- Choose your Campaign Type:
- X + Telegram — both platforms count, 50/50 split
- X Only — only X posts are scored
- Telegram Only — only Telegram posts are scored
- Optionally link a specific post to promote (e.g. an announcement tweet or Telegram channel post)
- Configure pool: duration, total reward, reward slots
- Pay the access fee (TON or $mGRAM) to the platform treasury
- Deposit your reward tokens to the escrow contract
- Your pool goes live immediately
Pricing Table
Access fees are dollar-pegged and paid at live market prices:
| Duration | Pay with $mGRAM | Pay with TON |
|---|---|---|
| 1 Week | $100 | $125 |
| 2 Weeks | $199 | $249 |
| 3 Weeks | $299 | $374 |
| 4 Weeks | $399 | $499 |
Prices are USD-pegged. The exact token amount is calculated at time of payment using CoinGecko live prices.
How Escrow Works
When you create a pool, a GramketingPool smart contract is deployed on TON. You then transfer your reward tokens to this contract.
The contract:
- Holds tokens securely until pool ends
- Can only distribute to winners via platform admin instruction
- Supports pro-rata cancellation if a pool is ended early
- Is publicly verifiable on TON Scan
Pool Cancellation Policy
If a pool is cancelled before it ends, rewards are split using a daily rate formula so participants are fairly compensated for the time elapsed.
Setting Reward Slots
Reward slots define how many participants receive rewards. Minimum is 3. All slots share the prize pool proportionally by points.
Recommendation: set more slots (10–20) to attract more participants. Even rank #15 earns something, which incentivizes broader participation.
What Happens When a Pool Ends
- Pool status automatically changes to ENDED when duration expires
- A final leaderboard snapshot is saved — results are frozen
- Platform admin and the project owner both review the final leaderboard before distribution is triggered
- Project owner receives a notification on their dashboard when their pool ends and can view the final frozen leaderboard
- Smart contract distributes tokens proportionally to top N wallets
- Remaining dust (rounding) is returned to the project owner wallet
Typical distribution time: within 24–48 hours of pool ending.