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:

  1. Project creates a pool and pays an access fee to the platform treasury.
  2. Project deposits reward tokens into an escrow smart contract.
  3. Pool goes ACTIVE — contributors, promoters, and marketers can join and submit posts.
  4. The scraper runs every 30 minutes, updating view counts and points.
  5. When the duration expires, the pool is marked ENDED.
  6. 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

#2UQ...c3d4
11,390 pts

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

x.com/user/status/1234567890+2,240 pts
views 2,100/likes 220/reposts 140
views 80% = 1,680+likes 10% = 440+reposts 10% = 120
x.com/user/status/9876543210+1,560 pts
views 1,100/likes 160/reposts 80
views 80% = 880+likes 10% = 320+reposts 10% = 160

Telegram Posts

t.me/channel/123456+1,680 pts
views 1,800/reactions 180
views 80% = 1,344+reactions 20% = 336
t.me/channel/789012+1,220 pts
views 1,400/reactions 120
views 80% = 976+reactions 20% = 244

Boosts

Holder Boost

70% of top holder

1.4×

Referral Boost

1.3×
Referred WalletTokensBoost
UQ...ab1212,400+0.18×
UQ...cd348,200+0.07×
UQ...ef564,100+0.05×
Final Score11,390 pts

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.

TierPoints RequiredBadgeDescription
Contributor0 pts (default)ContributorDefault tier for anyone who joins the platform. Start here and earn your way up.
Promoter500+ ptsPromoterEarned by reaching 500 total points. Shows you're actively driving real engagement.
Marketer5,000+ ptsMarketerTop-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)
              + referralBonusPoints

Example: 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.

🐦X / TWITTER
MetricPlatformCombined
Views
80%40%
Likes
10%5%
Reposts
10%5%
X / Twitter total50% of final score
✈️TELEGRAM
MetricPlatformCombined
Views
80%40%
Reactions
20%10%
Telegram total50% of final score
Single platform campaigns use only that platform's weights at 100%. Combined weights apply only when both are selected.

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.

Tip: The boost is relative, not absolute. Holding more than others matters as much as the raw amount.

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.

Note:The +500 bonus points are only awarded once per referral, and only if the referred user holds the pool's project token at the time they connect their wallet.

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

  1. Connect your TON wallet
  2. Go to Create a Pool
  3. Enter your project details (name, token symbol, jetton master address, X profile link, and Telegram channel link)
  4. 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
  5. Optionally link a specific post to promote (e.g. an announcement tweet or Telegram channel post)
  6. Configure pool: duration, total reward, reward slots
  7. Pay the access fee (TON or $mGRAM) to the platform treasury
  8. Deposit your reward tokens to the escrow contract
  9. Your pool goes live immediately

Pricing Table

Access fees are dollar-pegged and paid at live market prices:

DurationPay with $mGRAMPay 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.

Daily rate = Total reward tokens ÷ pool duration in days
Participants share = daily rate × days elapsed (distributed proportionally by points among top N winners at time of cancellation)
Project refund = daily rate × days remaining (returned to project owner wallet)
Access fee paid to the platform treasury is fully non-refundable
Example: A 7-day pool cancelled on day 4 → participants share 4/7 of rewards, project gets back 3/7, platform keeps the full access fee.

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

  1. Pool status automatically changes to ENDED when duration expires
  2. A final leaderboard snapshot is saved — results are frozen
  3. Platform admin and the project owner both review the final leaderboard before distribution is triggered
  4. Project owner receives a notification on their dashboard when their pool ends and can view the final frozen leaderboard
  5. Smart contract distributes tokens proportionally to top N wallets
  6. Remaining dust (rounding) is returned to the project owner wallet

Typical distribution time: within 24–48 hours of pool ending.

Have questions? Join our community.