
Santa — The On-Chain Advent Calendar
Version 0.3 — November 2024
1. Executive Summary
Santa is a Solana-based token designed as a decentralised Advent Calendar.
The token launches on December 1st, and for 24 days (Dec 1 → Dec 24) the project reveals one gift each day.
All gifts are defined in advance and cryptographically committed using a Merkle tree before the start of the event to guarantee fairness.
Each day, a new gift is revealed on the website with its cryptographic proof and executed automatically on-chain according to the pre-defined rules.
The collected fees from token activity are distributed daily as follows:
| Beneficiary | Share | Purpose |
|---|---|---|
| 🎁 Holders & Investors | 40 % | Daily airdrops or rewards to active wallets |
| ❤️ Charities & NGOs | 40 % | Direct on-chain donations to verified causes |
| 🧑🎄 Founders & Operations | 20 % | Sustaining the project, operations, audits |
Each gift may use a different logic — e.g. top buyers of the day, randomised winners, or all collected fees directed to a specific charity — but all are executed automatically, verifiably, and without human intervention after launch.
2. Vision & Mission
Vision
Create a community-driven and social on-chain Advent Calendar that brings people together through the joy of giving. Using blockchain transparency, we make generosity fun, trusted, and accessible to everyone, everywhere — transforming the traditional advent calendar into a global celebration of sharing and impact.
Mission
To merge the excitement of DeFi and the festive season by creating a digital Advent Calendar that:
- Builds community — brings token holders together through daily shared experiences
- Rewards participation — distributes gifts to active community members daily
- Creates social impact — funds real-world charitable actions transparently
- Operates autonomously — executes automatically without human intervention
- Celebrates together — makes December a month of collective giving and receiving
3. The Advent Calendar Mechanics
3.1 Merkle Tree Commitment & Fairness
Before launch, the team uses a Merkle tree to cryptographically commit to all 24 gifts:
- Define the 24 daily gifts (one per day, with specific parameters)
- Generate unique salts — each gift gets a cryptographically secure random salt
- Create leaf hashes — each gift is hashed with its salt:
leaf_i = SHA256(gift_i + salt_i) - Build Merkle tree — the 24 leaf hashes form a binary tree
- Publish Merkle root — the root hash is published publicly (website + X account) before December 1st
- Daily reveals — each day, we publish: the gift, its salt, and a Merkle proof
- Public verification — anyone can verify that each revealed gift was part of the original commitment
Why Merkle Trees?
- ✅ Reveals one gift at a time without exposing future gifts
- ✅ Each gift can be independently verified
- ✅ Cryptographically guarantees no tampering after commitment
- ✅ Smaller proofs than revealing the entire list
3.2 Daily Revelation Process
Each day at 00:00 UTC:
- The corresponding gift is revealed on the website
- The gift data, salt, and Merkle proof are published
- Users can verify:
verify(gift, salt, proof, merkle_root) → true/false - The gift logic is executed automatically on-chain
3.3 Verification Example
Published Merkle Root (Nov 27, 2024):
75f2dc0e2be8bbb93a551ec211a1e980a7ef94a0511d49d54edb4039223b3d5e
Day 1 Reveal (Dec 1):
- Gift: { type: "proportional_holders", params: {...} }
- Salt: 7f4076416099bca849f361ad8974d233813856aaa1fab3c0eff308d94d669f65
- Proof: [hash1, hash2, hash3, hash4, hash5]
Verification:
1. Compute leaf = SHA256(gift + salt)
2. Use proof to compute path to root
3. Check if computed root matches published root ✓
4. Token Overview
| Attribute | Detail |
|---|---|
| Name | Santa |
| Symbol | $SANTA |
| Network | Solana (SPL standard) |
| Total Supply | 1 000 000 000 SANTA |
| Decimals | 9 |
| Launch Date | 1 December 2024 |
| Season Duration | December 1-24 (24 days) |
| Transaction Fee | ≈ 3 % to treasury |
| Allocation | Holders 40 % / NGOs 40 % / Founders 20 % |
| Liquidity Lock | 12 months (recommended) |
All token flows and daily distributions are verifiable on-chain.
5. Treasury & Automation
Daily Treasury
All transaction fees accumulate into the Santa Treasury, a multi-sig or program wallet.
At the end of each UTC day, the treasury balance is split and distributed per the gift of that day.
Node / Relayer Service
A backend service (Node.js + Solana Web3.js) continuously listens to token transactions.
At each day's closing time it:
- Retrieves all relevant transactions from Helius/QuickNode RPC
- Applies the pre-defined algorithm for the current gift (top N, time-window, random seed, etc.)
- Generates and submits distribution transactions to the network
- Publishes execution proofs (transaction hashes, winners list) publicly
Security
- Executions signed by a multi-sig (e.g. 3-of-5 founders + bot)
- Optional on-chain program for fully autonomous execution once validated
- All proofs – inputs, selection results, tx hashes – are published publicly
- Merkle root commitment prevents any changes to gift rules after launch
6. Deterministic Selection & Randomisation
To guarantee integrity:
- Each rule is fixed and public before launch (via the Merkle tree commitment)
- Randomisation, when needed, uses on-chain entropy:
seed = HMAC_SHA256(blockhash_of_day, salt) - The algorithm and results are reproducible by anyone
- All transaction data comes from verified RPC sources, archived for audit
- Minimum balance requirements prevent Sybil attacks
7. Technical Architecture (High Level)
| Component | Role |
|---|---|
| SANTA Token | SPL token contract on Solana |
| Santa Treasury | Collects daily transaction fees |
| Relayer Service | Listens to blockchain, computes daily outputs, prepares transfers |
| Multi-Sig / Execution Program | Signs & executes transfers securely |
| Website Dashboard | Shows calendar, revealed gifts, Merkle proofs, verification tool |
| Social Bot (X) | Posts daily gift reveal + link to on-chain proof |
| Merkle Verification | Client-side tool for users to verify commitments |
Infrastructure: redundant RPC providers (QuickNode, Helius, own node), secure key storage (Vault/HSM), monitoring, daily logs.
8. Governance & Transparency
Initial phase: managed by the founding team with open reporting.
Future phase: Santa DAO allowing community votes on:
- Charity selection for future seasons
- Gift types and distribution mechanisms
- Treasury parameters and fee structure
All treasury addresses and distributions remain public and auditable.
The Merkle root and daily proofs provide cryptographic transparency.
9. Charitable Framework
- 40 % of daily treasury directed to verified NGOs
- Each NGO wallet = verified address, listed on website with full details
- Donations occur directly on-chain (no intermediaries)
- End-of-season impact report summarises total donations and outcomes
Season 2024 NGO Partners
| Day | NGO | Focus Area | Wallet |
|---|---|---|---|
| 7 | Rainforest Foundation US | Environment & Indigenous Rights | 8r2EpKVHLf1ASuDtj2up8TDwjkTbHbDY94UcT7jcEQ1s |
| 14 | Electronic Frontier Foundation (EFF) | Digital Rights & Privacy | 7q6i7ohv1hkXTMk4maUSFkyBFTNivyQtvBxCEQnPR821 |
| 21 | Stay Happy FUNdation | Supporting Kids with Cancer | 818JcxjsEn1ZA1mqqEnPVsgqmAniN3mzViwMa9yD5GMB |
10. Season 2024 Gift Distribution
All 24 gifts were committed via Merkle root on November 27, 2024.
| Days | Type | Description |
|---|---|---|
| 1, 2, 4, 8, 11, 13, 16, 17, 19, 22, 23 | Proportional Holders | 40% distributed proportionally to all holders (min 100 tokens) |
| 3, 6, 9, 12, 18, 24 | Random Winners | 20 random winners share 40% of daily fees (min 1000 tokens) |
| 5, 10, 15, 20 | Top Buyers | Top 10 buyers of the day share 40% of daily fees |
| 7 | NGO Donation | 100% of daily fees → Rainforest Foundation US |
| 14 | NGO Donation | 100% of daily fees → Electronic Frontier Foundation |
| 21 | NGO Donation | 100% of daily fees → Stay Happy FUNdation |
Total: 11 proportional days, 6 random days, 4 top buyer days, 3 full NGO donation days.
11. Roadmap
| Phase | Period | Key Deliverables |
|---|---|---|
| 0 — Concept & Branding | Oct-Nov 2024 | Logo, website design, gift list definition, Merkle tree generation |
| 1 — Pre-Launch | Nov 27-30, 2024 | Merkle root publication, security audit, final testing |
| 2 — Launch | Dec 1, 2024 | Token mint, website live, relayer activated, Day 1 reveal |
| 3 — Season 1 | Dec 1-24, 2024 | Daily revelations & automatic distributions |
| 4 — Post-Season | Jan 2025 | Impact report, full audit, community feedback |
| 5 — Expansion | Q1-Q2 2025 | SantaDAO, NFT integration, Season 2 planning |
12. Risk Management
| Risk | Mitigation |
|---|---|
| RPC data tampering | Use multiple RPC sources (Helius + QuickNode) & publish proofs |
| Smart contract bugs | Independent audits before launch |
| Regulatory uncertainty | Legal advice on donation jurisdictions, KYC for NGOs |
| Sybil / spam attacks | Minimum balance requirements (100-1000 tokens) |
| Relayer downtime | Redundant nodes & manual fallback procedures |
| Merkle proof disputes | Public verification tool on website, open-source code |
| Market volatility | Clear communication about risk, no guaranteed returns |
13. Technical Appendix
A. Merkle Tree Construction
// 1. Hash each gift with its salt
function hashGiftLeaf(gift, salt) {
const { hash, ...giftWithoutHash } = gift; // Exclude hash field
const canonicalGift = JSON.stringify(giftWithoutHash, Object.keys(giftWithoutHash).sort());
return SHA256(canonicalGift + salt);
}
// 2. Build Merkle tree from leaves
function buildMerkleTree(leaves) {
let tree = [leaves];
let currentLevel = leaves;
while (currentLevel.length > 1) {
let nextLevel = [];
for (let i = 0; i < currentLevel.length; i += 2) {
if (i + 1 < currentLevel.length) {
nextLevel.push(SHA256(currentLevel[i] + currentLevel[i + 1]));
} else {
nextLevel.push(SHA256(currentLevel[i] + currentLevel[i]));
}
}
tree.push(nextLevel);
currentLevel = nextLevel;
}
return tree;
}
// 3. Get Merkle root
const root = tree[tree.length - 1][0];
B. Merkle Proof Verification
function verifyMerkleProof(leaf, proof, root, leafIndex) {
let hash = leaf;
let index = leafIndex;
for (const sibling of proof) {
const isRightNode = index % 2 === 1;
hash = isRightNode
? SHA256(sibling + hash)
: SHA256(hash + sibling);
index = Math.floor(index / 2);
}
return hash === root;
}
C. Top Buyers Algorithm
- Collect all buy transactions (00:00 → 23:59 UTC)
- Filter by minimum criteria (e.g., min 100 tokens purchased)
- Sort by volume (descending)
- Select top N buyers
- Compute proportional share:
share_i = volume_i / Σ(volume_topN) - Execute transfers via multi-sig
D. Deterministic Random Selection
// Use on-chain blockhash for deterministic randomness
const seed = HMAC_SHA256(blockhash_of_day, salt);
// Shuffle eligible wallets deterministically
function shuffle(wallets, seed) {
let rng = seedRandom(seed);
for (let i = wallets.length - 1; i > 0; i--) {
const j = Math.floor(rng() * (i + 1));
[wallets[i], wallets[j]] = [wallets[j], wallets[i]];
}
return wallets;
}
const shuffled = shuffle(eligibleWallets, seed);
const winners = shuffled.slice(0, N);
E. Proportional Distribution
// Distribute proportionally to all holders
const totalHoldings = holders.reduce((sum, h) => sum + h.balance, 0);
const dailyPool = treasuryBalance * 0.40;
for (const holder of holders) {
if (holder.balance >= minBalance) {
const share = (holder.balance / totalHoldings) * dailyPool;
executeTransfer(treasury, holder.wallet, share);
}
}
14. Conclusion
Santa combines the festive spirit of an Advent Calendar with the transparency and automation of blockchain technology. By using Merkle tree commitments, we guarantee that all 24 gifts are predetermined and verifiable, eliminating any possibility of manipulation.
The project aims to:
- ✅ Reward active community members daily
- ✅ Support meaningful charitable causes
- ✅ Demonstrate the power of transparent, automated giving
- ✅ Build a sustainable model for future seasonal events
Join us in making December 2024 a month of giving, transparency, and blockchain innovation! 🎄
Merkle Root Commitment (Season 2024):
75f2dc0e2be8bbb93a551ec211a1e980a7ef94a0511d49d54edb4039223b3d5e
Published: November 27, 2024
Verification: https://santa.example.com/verify
For technical questions, audit requests, or partnership inquiries, contact: team@santa.example.com