keyma.sh Ads.txt file
<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/_next/static/css/8c28582ada1ee99a.css" as="style"/><link rel="stylesheet" href="/_next/static/css/8c28582ada1ee99a.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/_next/static/chunks/polyfills-c67a75d1b6f99dc8.js"></script><script src="/eg-ads.js" defer="" data-nscript="beforeInteractive"></script><script src="/_next/static/chunks/webpack-ffa4a0429c050e89.js" defer=""></script><script src="/_next/static/chunks/framework-bb5c596eafb42b22.js" defer=""></script><script src="/_next/static/chunks/main-fc9d9fdd568355f3.js" defer=""></script><script src="/_next/static/chunks/pages/_app-5db5a7e1a9548539.js" defer=""></script><script src="/_next/static/chunks/2cca2479-dac5b667aa940b1c.js" defer=""></script><script src="/_next/static/chunks/291-0f1eb63c126ce03b.js" defer=""></script><script src="/_next/static/chunks/503-85015e367c742431.js" defer=""></script><script src="/_next/static/chunks/218-1b298b4a6da6e792.js" defer=""></script><script src="/_next/static/chunks/pages/index-682b0f6c9baa2401.js" defer=""></script><script src="/_next/static/ZVW_8NvpM68IIJ48BtfIT/_buildManifest.js" defer=""></script><script src="/_next/static/ZVW_8NvpM68IIJ48BtfIT/_ssgManifest.js" defer=""></script></head><body><script>0</script><div id="__next" data-reactroot=""><div class="Toastify"></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"_nextI18Next":{"initialI18nStore":{"en":{"translation":{"other":{"account_banned":"Your account has been banned, please contact support@keymash.io!","twitch_none":"No one is streaming right now :( Come back later or start streaming!","grades":{"passed":"Passed","failed":"Failed"},"finished":"Finished","gameover":"Game Over","lists":{"locales":"Languages","types":"Types"},"debug":{"title":"Bug Reporting","message":"If you experience one or more of the issues below, please click the button below and email support@keymash.io with as much information regarding how you initially received it and how to recreate it. The more information provided will help us as it will allow us to recreate your exact issue and resolve it.","list":{"0":"Sudden disconnect in the middle of a match","1":"Your WPM/CPM no longer updating for yourself or other players","2":"Your progress bar no longer updating for yourself or other players","3":"Not seeing the end match results despite finishing the match"}}},"button":{"save":"Save!","retry":"Retry","back":"Back","next":"Next","close":"Close","leave":"Leave","enable":"Enable","disable":"Disable","spectator":"Spectator","join":"Join","ladder":"Ladder","lobby":"Lobby","newgame":"New Game","letsgo":"Let's Go!"},"charts":{"lowest":"Lowest","highest":"Highest"},"options":{"yes":"Yes","no":"No","random":"Random","quotes":"Quotes","dict":"Dictionary","custom":"Custom","purchase":"Purchase"},"form":{"message":"Enter a message..."},"statistics":{"wpm_abbreviation":"WPM","cpm_abbreviation":"CPM","wpm":"Words Per Minute","cpm":"Characters Per Minute","time":"Elapsed Time","won":"Won","lost":"Lost","ratio":"Ratio","coins":"Coins","accuracy":"Accuracy","achievements":"Achievements","exp_abbreviation":"EXP","playtime":"Playtime","exp_total":"Total Experience","exp":"Experience","wpm_fastest":"Fastest Match","mistakes":"Mistakes","grade":"Grade","records":"Records","total":"Total","tournaments":"Tournaments","top5":"Top 5","levelUp":"Congratulations, you are now"},"component":{"spectator":{"help_title":"Spectator Help","help_1":"1. To exit the match, use the button on the top left corner.","help_2":"2. Beside each player is a triangle with a color, this color will be matching with the caret/cursor on the text.","help_3":"3. For gamemodes utilizing the round system you will notice a highlighted orb for each round won and lost.","help_4":"4. When each player is finished make sure to hit the button on the top left corner to go back to lobby. This is intentionally made to not fully redirect you just in case you wish to see the statistics provided."},"bottombar":{"about":"About Us","tos":"Terms of Service","privacy":"Privacy Policy","trello":"Trello","patreon":"Patreon","contribute":"Contribute","guidelines":"Community Guidelines","shortcuts":"Keyboard Shortcuts","faq":"Frequently Asked Questions","troubleshooting":"Troubleshooting","faqM":"FAQ","issueTracker":"Issue Tracker","github":"GitHub"},"navbar":{"home":"Home","news":"News","play":"Play","leaders":"Leaderboards","discord":"Discord","practice":"Practice","twitch":"Twitch","shop":"Shop","challenges":"Challenges","achievements":"Achievements","statistics":"Statistics","matches":"Matches","recent_matches":"Recent Matches","tournaments":"Competitions","settings":"Settings","matchmaking":"Matchmaking","logout":"Logout","login":"Sign In","notifications":"Notifications","custom":"Custom"},"auth":{"discord":"Login with Discord","facebook":"Login with Facebook","google":"Login with Google"}},"page":{"banned":{"title":"You have been banned","text":"Your account has been indefinitely banned, this can be caused by a violation in our Terms and Services or cheating. If you have any questions, please contact us at"},"guest":{"title":"Your Guest account has been reset","text":"Thank you for playing! We are glad that you are enjoying the game and we recommend that you create an account in order to save your progress in the future. For context, we remove Guest accounts that are older than 7 days."},"match":{"completed":"Match Completed","mistakes":"Mistakes","no_mistakes":"Awesome! You did not make a mistake during this match.","suspended":"You have been suspended from this match due to cheating.","time_out":"You have run out of time to complete the match. Better luck next time!","reconnect_failed":"We have failed to reconnect you back to the match.","many_mistakes":"You have made too many mistakes","statistics_unsaved":"Your statistics have not been saved for this match","connect_lost":"Connection lost, retrying","reconnect":"Reconnecting","highscores":"Highscores","personal":"Personal Best"},"error404":{"title":"The page you are looking for does not exist.","message":"If you were redirected to this page in error then please contact"},"shop":{"title":"Shop","featured":"Featured","borders":"Borders","playercards":"Playercards","banners":"Banners"},"custom":{"configuration":"Configuration","title":"Title","privacy":"Privacy","mode":"Mode","guests":"Allow Guests?","text":"Text","invite":"Invite","match":"Match","custom":"Custom","status":{"title":"Status","lobby":"In Lobby","game":"In Game"},"unlisted":"Unlisted","public":"Public","countdown":"Countdown","startmatch":"Start Match","error":{"team_size":"Your team sizes must be exact in order to start the match.","unsaved":"You must save your changes in order to start."},"chat":"Please refrain from posting any sensitive and/or confidential messages."},"challenges":{"title":"Daily Challenges","about":{"title":"Welcome to Daily Challenges","text":"Every day you will get two challenges that you can complete in return for rewards such as in-game currency.","text2":"Challenges are automatically generated per day and are not based on your current skill level, or based on your activity. These challenges are generated in a way that may promote you to play the game more, and even expand into places that you typically do not visit while playing!"}},"achievements":{"personal_best":"Personal Best","matches_played":"Matches Played","matches_won":"Matches Won","playtime":"Total Playtime"},"login":{"title":"Sign In","descr":"Select from one the following options"},"home":{"matches_new":"Newest Matches","matches_high":"Recent Highscores","tournaments":{"title":"Daily Competitions!","content1":"We host tournaments to test typists skills \u003c1\u003eevery day\u003c/1\u003e. With an additional tournament every Sunday for a chance to win \u003c1\u003eDiscord Nitro\u003c/1\u003e.","button":"Start competing now!"},"lobbies":"Public Lobbies","links":"Useful Links","news":"Latest News","slogan":"Take your typing to the next level","hero":{"content1":"If you have any questions or concerns, don't hesitate to contact us on Discord or directly through \u003c1\u003esupport@keymash.io\u003c/1\u003e.","content2":"Oh yeah, forgot to mention... We are always looking for community contribution including text submissions, language translations and more! \u003c1\u003eClick here\u003c/1\u003e to learn more.","button":"Start typing now!"},"schools":{"title":"Can schools use this?","button":"Start learning!","content1":" \u003c1\u003eAbsolutely\u003c/1\u003e. Our Learning center is offered to any typist with or without an account however we strongly recommend having an account to save progress.","content2":"This service is \u003c1\u003efree\u003c/1\u003e for anyone around the world and we use a simple grading system based off the United States."},"custom":{"title":"Playing with friends is so easy","content1":"Within a click of a button you can start your own private room where any of your friends and family can join in. We offer full customization and even allow the ability to watch another player type!","button":"Create a lobby!"}},"leaderboards":{"level":"Highest Level","time":"Most Played","speed":"Fastest Speed","wins":"Most Wins"},"tournaments":{"title":"Competitions","join":"Join Ladder","play":"Play Now","starts":"Starts","ends":"Ends","finished":"Finished","info":"Information","rules":"Rules","players":"Players","bracket":"Bracket","qualified":"Qualified","notqualified":"Not Qualified","qualification":"Qualifications","ladders":"Ladders","none":"No players have participated yet, be the first!"},"queue":{"shortcut":"Did you know that using \u003c1\u003eCTRL+ALT+I\u003c/1\u003e can get you here faster?","titles":{"casual":"Casual","competitive":"Competitive","playNow":"Play Now","latestNews":"Latest News","archiveNews":"Archive","lobbies":"Public Lobbies","competitions":"Competitions","streams":"Live on Twitch"},"quickplay":{"title":"Quick Play","description":"Join a match, anywhere, instantly, worldwide."},"custom":{"title":"Custom","description":"Play with your friends and family.","create":"Create","browse":"Browse","public":"Public Lobbies","online":"Lobbies Online","none":"There are currently no public lobbies."},"practice":"You are playing in a \u003c1\u003epractice\u003c/1\u003e match. Your scores will not be saved.","cooldown":"You are already in a match, please wait {{count}} second then try again.","cooldown_plural":"You are already in a match, please wait {{count}} seconds then try again.","random":{"title":"Random","description":"Let us decide for you."},"quotes":{"title":"Quotes","description":"Play matches that only use quotes from movies, music and authors."},"dictionary":{"title":"Dictionary","description":"Play matches that only use dictionary texts."}},"notifications":{"title":"Notifications","none":"You have no notifications.","markread":"Mark as Read","remove":"Remove All","removeconfirm":"Are you sure you want to remove your notifications?"},"profile":{"inventory":"Inventory","purchaseMore":"Visit Shop","refresh":"This page will refresh after pressing save changes.","profile":"Profile","account":"Account","personal":"Personal","information":"Information","personalize":"Personalize","joined":"Joined","progress":"Progress Over Time","colorBlindMode":"Color Blind Mode","smoothCaretSpeed":"Smooth Caret Speed","smoothCaret":"Smooth Caret (beta)","adsGameplay":"Side Ads","gameplayParticipantStyle":"Participants Style","networkStrength":"Network Strength","focusMode":"Focus Mode","performanceMode":"Performance Mode","inputbox":"Hide Input Box?","displayname":"Username","defaultworld":"Default World","about":"About Me","general":"General","fullname":"Name","level":"Level","age":"Age","years_old":"years old","dob":"Date of Birth","showOnline":"Show Online Status","gender":"Gender","locale":"Language","country":"Country","simplifyHome":"Simplify Home?","keyboard":{"title":"Keyboard","layout":"Keyboard Layout","brand":"Keyboard Brand","model":"Keyboard Model"},"config":"Config","gameplay":"Gameplay","sound":"Sound","wpm":"WPM or CPM?","navbar":"Navbar Style","border":"Picture Border","playercards":"Playercards","borders":"Borders","banners":"Banners","streamerMode":"Enable Streamer Mode","matchTextSize":"Match Text Size","matchTextScroll":"Match Text Scroll","matchBoxSize":"Match Box Size","hideWPM":"Hide WPM in Match","countdownBeep":"Countdown Beep","matchFinishBeep":"Match Finish Beep","upscaleMatchContainer":"Match Container Size","matchContainerTransparent":"Match Container Transparent","matchTextType":"Match Text Type","customChatBeep":"Lobby Chat Beep","globalChatBeep":"Global Chat Beep","rankUpSound":"Rank Up Sound","rankDownSound":"Rank Down Sound","shortcutHome":"Go to Home","shortcutExit":"Exit Match","shortcutPlayRandom":"Play Now (Random)","shortcutPlayQuotes":"Play Now (Quotes)","shortcutPlayDictionary":"Play Now (Dictionary)","shortcutGameRedo":"Redo Match","shortcuts":"Keyboard Shortcuts","rightToLeft":"Right to Left"}}}}},"initialLocale":"en","userConfig":{"i18n":{"localeDetection":false,"defaultLocale":"en","locales":["en","fr-FR","es-MX","pt-BR","de-DE","no","hr","nl","it-IT","ar","el-GR","zh-Hans-CN"]},"debug":false,"defaultNS":"translation","localePath":"/usr/src/app/public/locales","react":{"useSuspense":false},"default":{"i18n":{"localeDetection":false,"defaultLocale":"en","locales":["en","fr-FR","es-MX","pt-BR","de-DE","no","hr","nl","it-IT","ar","el-GR","zh-Hans-CN"]},"debug":false,"defaultNS":"translation","localePath":"/usr/src/app/public/locales","react":{"useSuspense":false}}}},"newsData":[{"_id":"EeL7Jywr5pnF7EJ2z","increment":71,"slug":"august-2023-update:-performance-points-new-statistics,-removed-ranked","title":"August 2023 Update: Performance Points New Statistics, Removed Ranked Leaderboards","content":"**Statistics \u0026 Results Overhaul:**\n\n- We have started including competition/ladder matches to be mixed with your Public matches\n - This required us to re-calculate wins, losses, quits, records such as wpm, exp, etc\n- All statistics have been re-calcuated from the beginning of time\n - We have also added a \"Reconcile\" service to help assure the quality and accuracy of data\n - This will re-calculate all of your records and other statistics that you see on your profile.\n - Experience and Playtime are already being measured in competition/ladder matches, so we did not touch these (we may later on though)\n - This system may have some flaws in the beginning, and we are fine tuning it as we go along\n - If you feel your data is incorrect such as your highest wpm record, let us know so we can investigate it for accuracy.\n - Expect your data to be changed and different, this doesn't always mean it is incorrect.\n\n**Performance Point System:**\n\n- We have started the early process of this system.\n- All texts have been assigned a difficulty rating\n- All matches (including old results from 2020/2021) have been recalculated to have a performance point\n - All future matches do this as well - and again, this is for public and competition/ladder matches.\n- The next plan is to reflect the frontend to use this new measurement as a permanent solution\n- For now though, the hard part is mostly done\n\nRemoved Deprecated Features/Functionality:\n- Ranked leaderboards and all data has been removed (this was deprecated a month or so ago)\n- Career Points and all data has been removed (being replaced with Performance Point system)\n \n**Other Changes:**\n\n- Refactored leaderboard logic to be a bit cleaner, we're still performing some optimizations on this though.\n- Refactored Game End logic to be slightly cleaner, this should hopefully give a slight boost in performance.\n- Added better debugging between Database and Socket communication, this will help us give even more performance increases in the future.\n\n**Expected Changes in the Future:**\n\n- Database optimizations to increase overall performance\n- Frontend cleanup to reduce memory usage for users\n- Better integration with Typing Stats\n- Moving Statistics to Players Collection (eliminate `playerStatistics`)","thumbnail":1,"created":1692052083},{"_id":"F5o4uQsyyTmNgqaET","increment":70,"slug":"keymasters-has-officially-started!","title":"Keymasters has officially started!","content":"Hi everyone, hope you are all having a great weekend! The qualifiers are now open for all participants to find the fastest typists out there for a chance to win a total of $2500 in prizes for those that make it into the FINALS.\n\n**To join, simply follow the link provided and click \"ENTER\"!**\n\n\u003e https://keymash.io/competitions/keymasters-2023/\n\n**Important details:**\n\n1. Ensure you have both a Keymash account and a TypingStats account. *(Refer to the TypingStats Discord for instructions on linking your accounts.)* https://discord.gg/U5UdJkxHsJ\n2. To get on the leaderboard, complete at least 20 matches. Your average WPM will be calculated based on the last 20 matches.\n3. Quitting a match will result in a WPM score of 0, which will lower your overall average. You can keep playing to try to increase your average score.","thumbnail":4,"created":1690045432}],"tournamentsData":[{"tournamentId":"892d77fc-8156-4d30-afa7-aba9a71dc582","locale":"en","name":"Daily Consistency Ladder (Jul 17, 2025)","info":"This is an automated ladder that is ran daily by Keymash.\n\nThere are tournaments that are hosted every day from Sunday to Saturday and lasts 24 hours from its initial creation. We also provide these tournaments in different languages.\n\nAny questions in regards to these ladders can be addressed at support@keymash.io or directly in our Discord server.","prizing":0,"prizingJSON":"[{\"type\":\"currency\",\"value\":5000},{\"type\":\"currency\",\"value\":3500},{\"type\":\"currency\",\"value\":2000},{\"type\":\"currency\",\"value\":2000},{\"type\":\"currency\",\"value\":1000},{\"type\":\"currency\",\"value\":1000},{\"type\":\"currency\",\"value\":1000},{\"type\":\"currency\",\"value\":1000},{\"type\":\"currency\",\"value\":500},{\"type\":\"currency\",\"value\":500},{\"type\":\"currency\",\"value\":500},{\"type\":\"currency\",\"value\":500},{\"type\":\"currency\",\"value\":250},{\"type\":\"currency\",\"value\":250},{\"type\":\"currency\",\"value\":250},{\"type\":\"currency\",\"value\":250}]","startTime":1752714188.577,"endTime":1752800468.577,"created":1752714068.577,"totalPlayers":17,"status":1},{"tournamentId":"bc77cd17-6296-4738-a026-fb673a15877e","locale":"en","name":"Daily Speed Ladder (Jul 17, 2025)","info":"This is an automated ladder that is ran daily by Keymash.\n\nThere are tournaments that are hosted every day from Sunday to Saturday and lasts 24 hours from its initial creation. We also provide these tournaments in different languages.\n\nAny questions in regards to these ladders can be addressed at support@keymash.io or directly in our Discord server.","prizing":0,"prizingJSON":"[{\"type\":\"currency\",\"value\":5000},{\"type\":\"currency\",\"value\":3500},{\"type\":\"currency\",\"value\":2000},{\"type\":\"currency\",\"value\":2000},{\"type\":\"currency\",\"value\":1000},{\"type\":\"currency\",\"value\":1000},{\"type\":\"currency\",\"value\":1000},{\"type\":\"currency\",\"value\":1000},{\"type\":\"currency\",\"value\":500},{\"type\":\"currency\",\"value\":500},{\"type\":\"currency\",\"value\":500},{\"type\":\"currency\",\"value\":500},{\"type\":\"currency\",\"value\":250},{\"type\":\"currency\",\"value\":250},{\"type\":\"currency\",\"value\":250},{\"type\":\"currency\",\"value\":250}]","startTime":1752714188.563,"endTime":1752800468.563,"created":1752714068.564,"totalPlayers":21,"status":1}],"challengesData":[],"mode":"","loaded":true},"__N_SSP":true},"page":"/","query":{},"buildId":"ZVW_8NvpM68IIJ48BtfIT","isFallback":false,"gssp":true,"locale":"en","locales":["en","fr-FR","es-MX","pt-BR","de-DE","no","hr","nl","it-IT","ar","el-GR","zh-Hans-CN"],"defaultLocale":"en","scriptLoader":[{"src":"https://www.google-analytics.com/analytics.js","strategy":"afterInteractive"}]}</script></body></html>