# Entry Requirements for the Mining **Published by:** [Bitcoinu](https://paragraph.com/@bitcoinu/) **Published on:** 2025-03-20 **URL:** https://paragraph.com/@bitcoinu/entry-requirements-for-the-mining ## Content Entry RequirementsBitcoinu mining recruits participants via posts on X every block (4 days). Newly issued BTCu is allocated to the winners selected through a lottery. The lottery algorithm and allocation rules are explained in another article, but this section outlines the minimum requirements necessary to enter. To enter Bitcoinu mining, you must meet the following conditions. If any of these conditions are not met, even if selected, the allocation will be zero.Each account can submit one entry per block.Applicants can only apply for posts that were submitted by their own accounts.The account must be public, not private.Unverified accounts must be at least one year old since creation. (This restriction does not apply to verified accounts.)It must be a post that was published during the period of the block that was participated in.The post must not be deleted for at least 3 days after the block ends.The post must have at least 50 impressions 3 days after the block ends.The post must include the hashtag #Bitcoinu.The post must contain at least 20 characters.At least one of the keywords (listed below) must be included within the first 30 characters of the post.KeywordsThe keywords are as follows: All participants may use keywords from any language on this list.Program Code// List of keywords const KEYWORDS = [ "BitcoinuPost to Earn", "Bye Bitcoin", "Sell Bitcoin", "BTCu is the true DigitalGold", "Bitcoin's Fatal Flaw", "ETH is the Internet Money", "BTCu是真正的数字黄金", "比特币的致命缺陷", "ETH是互联网货币", "BTCu ही सच्ची डिजिटल सोना है", "बिटकॉइन की घातक खामी", "ETH इंटरनेट मुद्रा है", "BTCu es el verdadero oro digital", "El defecto fatal de Bitcoin", "ETH es el dinero de Internet", "BTCu est le véritable or numérique", "Le défaut fatal du Bitcoin", "ETH est la monnaie d'Internet", "BTCu هو الذهب الرقمي الحقيقي", "العيب القاتل للبيتكوين", "ETH هو مال الإنترنت", "BTCu হল সত্যিকারের ডিজিটাল সোনা", "বিটকয়েনের মারাত্মক ত্রুটি", "ETH হল ইন্টারনেট মুদ্রা", "BTCu é o verdadeiro ouro digital", "A falha fatal do Bitcoin", "ETH é o dinheiro da Internet", "BTCu — это настоящие цифровое золото", "Фатальный недостаток Биткойна", "ETH — это интернет-деньги", "ビットコいぬ", "BTCuは真のデジタルゴールド", "ビットコインの致命的な欠陥", "ETHはインターネット通貨", "BTCu ist das wahre digitale Gold", "Der fatale Defekt von Bitcoin", "ETH ist das Internet-Geld", "BTCu는 진정한 디지털 골드입니다", "비트코인의 치명적인 결함", "ETH는 인터넷 화폐입니다", "BTCu là vàng kỹ thuật số thực sự", "Lỗi chí mạng của Bitcoin", "ETH là tiền Internet", "BTCu è il vero oro digitale", "Il difetto fatale di Bitcoin", "ETH è la moneta di Internet", "BTCu คือทองดิจิทัลที่แท้จริง", "ข้อบกพร่องร้ายแรงของบิตคอยน์", "ETH คือเงินอินเทอร์เน็ต", "BTCu gerçek dijital altındır", "Bitcoin'in ölümcül kusuru", "ETH internet parasıdır", "BTCu to prawdziwe cyfrowe złoto", "Śmiertelna wada Bitcoina", "ETH to pieniądz internetowy", "BTCu — це справжнє цифрове золото", "Фатальна вада Біткоїна", "ETH — це інтернет-гроші", "BTCu is het echte digitale goud", "Het fatale defect van Bitcoin", "ETH is het internetgeld", "BTCu ਹੀ ਅਸਲ ਡਿਜਿਟਲ ਸੋਨਾ ਹੈ", "ਬਿਟਕੋਇਨ ਦੀ ਘਾਤਕ ਖਾਮੀ", "ETH ਇੰਟਰਨੈੱਟ ਮਨੀ ਹੈ", "BTCu నిజమైన డిజిటల్ బంగారం", "బిట్‌కాయిన్ యొక్క ఘోరమైన లోపం", "ETH ఇంటర్నెట్ డబ్బు", "BTCu हे खरे डिजिटल सोने आहे", "बिटकॉइनची घातक त्रुटी", "ETH ही इंटरनेट मुद्रा आहे", "BTCu உண்மையான டிஜிட்டல் தங்கம்", "பிட்காயின் மாரடித்த குறைபாடு", "ETH இணைய பணமாகும்", "BTCu حقیقی ڈیجیٹل سونا ہے", "بِٹ کوائن کی مہلک خامی", "ETH انٹرنیٹ پیسہ ہے", "BTCu iku emas digital sejati", "Kelemahan fatal Bitcoin", "ETH iku dhuwit internet", "BTCu ni dhahabu halisi ya Kidijitali", "Kasoro kubwa ya Bitcoin", "ETH ni pesa ya Mtandao", "BTCu طلای دیجیتال واقعی است", "نقص مهلک بیت کوین", "ETH پول اینترنتی است", "BTCu shine gaske zinariya dijital", "Babban lahani na Bitcoin", "ETH shine kuɗin intanet", "BTCu သည် စစ်မှန်သော ဒစ်ဂျစ်တယ်ရွှေနဲသည်", "Bitcoin၏ ပြင်းထန်သော ချို့ယွင်းချက်", "ETH သည် အင်တာနက်ငွေ ဖြစ်သည်" ]; /** * A function that waits for a specified time (to avoid API rate limits) * @param {number} ms - Wait time in milliseconds * @return {Promise} - A promise that resolves after the wait time is completed */ function sleep(ms) { return new Promise(resolve => setTimeout(resolve, ms)); } /** * A function that checks if any of the specified keywords are present in the first 30 characters of the text * @param {string} text - The text to check * @return {boolean} - Returns true if a keyword is found, otherwise false */ function containsKeyword(text) { if (!text) return false; // Get the first 30 characters of the text const firstThirtyChars = text.substring(0, 30); // Check if any of the keywords are included return KEYWORDS.some(keyword => firstThirtyChars.includes(keyword)); } /** * A function that checks if a post meets specific criteria * @param {Object} postData - Post data * @param {Object} post - The post to validate * @param {number} startTime - Start time of the specified period (UNIX timestamp) * @param {number} endTime - End time of the specified period (UNIX timestamp) * @return {Object} - The validation result */ function validatePost(postData, post, startTime, endTime) { const errors = []; const postDetail = postData.data.find(p => p.id === post.post_id); // Check if data exists if (!postDetail) { return { status: false, errors: ['Failed to retrieve post data. The post ID may be incorrect, the post may have been deleted, or the post may be protected.'] }; } // Retrieve author information const author = postData.includes.users.find(user => user.id === postDetail.author_id); if (!author) { return { status: false, errors: ['Failed to retrieve author data. The user may have been deleted or the account may be protected.'] }; } // 1. Check if the author_id matches the input value if (postDetail.author_id !== post.author_id) { errors.push('Author ID does not match'); } // 2. For unverified accounts, check if the account was created more than 1 year ago if (!author.verified) { const userCreatedAt = new Date(author.created_at).getTime(); const oneYearInMs = 365 * 24 * 60 * 60 * 1000; if (endTime < userCreatedAt + oneYearInMs) { errors.push('Unverified accounts must be created more than 1 year before the end time'); } } // 3. Check if the account is public if (author.protected) { errors.push('Account is private'); } // 4. Check if the hashtag #Bitcoinu is included let hasBitcoinuHashtag = false; if (postDetail.entities && postDetail.entities.hashtags) { hasBitcoinuHashtag = postDetail.entities.hashtags.some(tag => tag.tag.toLowerCase() === 'bitcoinu' ); } if (!hasBitcoinuHashtag) { errors.push('Hashtag #Bitcoinu is not included'); } // 5. Check if the text is at least 20 characters long if (!postDetail.text || postDetail.text.length < 20) { errors.push('Text must be at least 20 characters'); } // 6. Check if any of the specified keywords are found within the first 30 characters of the text if (!containsKeyword(postDetail.text)) { errors.push('No specified keyword found in the first 30 characters of the text'); } // 7. Check if the post was created within the specified time period const postCreatedAt = new Date(postDetail.created_at).getTime(); if (postCreatedAt < startTime || postCreatedAt > endTime) { errors.push('Post was not created within the specified time period'); } // 8. Check if the impression count is at least 50 if (!postDetail.public_metrics || postDetail.public_metrics.impression_count < 50) { errors.push('Impression count must be at least 50'); } return { status: errors.length === 0, errors: errors.length > 0 ? errors : [] }; } ## Publication Information - [Bitcoinu](https://paragraph.com/@bitcoinu/): Publication homepage - [All Posts](https://paragraph.com/@bitcoinu/): More posts from this publication - [RSS Feed](https://api.paragraph.com/blogs/rss/@bitcoinu): Subscribe to updates