<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:cc="http://cyber.law.harvard.edu/rss/creativeCommonsRssModule.html">
    <channel>
        <title><![CDATA[Stories by Pump.fun on Medium]]></title>
        <description><![CDATA[Stories by Pump.fun on Medium]]></description>
        <link>https://medium.com/@pumpdotfun_?source=rss-d6e360eae26c------2</link>
        <image>
            <url>https://cdn-images-1.medium.com/fit/c/150/150/1*pf1754iCwsivi_d1w5yQuw@2x.jpeg</url>
            <title>Stories by Pump.fun on Medium</title>
            <link>https://medium.com/@pumpdotfun_?source=rss-d6e360eae26c------2</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Mon, 20 Apr 2026 03:53:21 GMT</lastBuildDate>
        <atom:link href="https://medium.com/@pumpdotfun_/feed" rel="self" type="application/rss+xml"/>
        <webMaster><![CDATA[yourfriends@medium.com]]></webMaster>
        <atom:link href="http://medium.superfeedr.com" rel="hub"/>
        <item>
            <title><![CDATA[How we 10x improved our React Native app startup time]]></title>
            <link>https://medium.com/@pumpdotfun_/how-we-10x-improved-our-react-native-app-startup-time-e98ff701dc66?source=rss-d6e360eae26c------2</link>
            <guid isPermaLink="false">https://medium.com/p/e98ff701dc66</guid>
            <category><![CDATA[javascript]]></category>
            <category><![CDATA[apps]]></category>
            <category><![CDATA[mobile-app-development]]></category>
            <category><![CDATA[trading]]></category>
            <category><![CDATA[react-native]]></category>
            <dc:creator><![CDATA[Pump.fun]]></dc:creator>
            <pubDate>Sat, 21 Feb 2026 14:22:29 GMT</pubDate>
            <atom:updated>2026-02-21T14:22:29.182Z</atom:updated>
            <content:encoded><![CDATA[<p><em>By Alex, Staff Engineer &amp; Team Lead @ Baton Corporation</em></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*yiR7TObfz_PvhKD6CplSPQ.png" /></figure><p>When the day came to introduce the world to the <a href="https://pump.fun/">Pump.fun</a> app (meme coin trading), it made sense to go all in with React Native, due to the small team and existing familiarity with JavaScript/React/etc. React Native has delivered on all those things, allowing us to rapidly build and support both major platforms while making the barrier of entry very straightforward for the existing folks used to building for the web with no/limited mobile experience (including myself).</p><p>The Pump.fun app mirrors the functionality of the website, as well as extending it in many areas, utilizing the functionality and features of smart phones to make the best possible experience. For example, features like notifications, biometric unlocking, etc.</p><p>This development velocity has been crucial to delivering so much customer value in a short time, but due to the nature of the app and the direction we wanted to take it in, to show as much real time price data as possible, we started to run into a few performance issues.</p><h3>Performance issues</h3><p>When a coin is very active, it can receive ~1000 trades a second, which our indexing service broadcasts over a <a href="https://nats.io/">Nats</a> subject over websockets. For some of our screens, we show 10 or more coins at a time, all which can be in this hot state, resulting in 10,000 events per second in a “worse case scenario”.</p><p>Naturally, the human eye could not perceive 1000 price updates a second, nor could React Native adequately render that many at once. To this end, we are throttling the updates at 5hz per coin, which can still result in 50 updates per second on some screens. These updates are rendered in the form of a flashing price change indicator powered by Reanimated (see an example in the right hand column of the home screen) and also power the mini graphs (also visible in the screenshot).</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*Dt71LFp-DtZmxC6JxDqImA.png" /></figure><p>When this screen receives a large number of price updates, our telemetry shows that the JS thread tends to drop significantly (can be in the 20FPS on high end devices), as well as the screen getting into a non nominal thermal state. We capture this telemetry by regular sampling of these metrics and sending them to DataDog, as well as some useful metadata such as the current route, device, etc so we can quickly see which screens are most problematic.</p><p>We needed to make this significantly better and the first thing was to find out where time is being spent on the JS thread.</p><h3>A solution?</h3><p>A colleague who was working on upgrading our app to Expo 54 recently also added a library <a href="https://github.com/margelo/react-native-release-profiler">React Native Release Profiler</a> that allows profiling in a release build, something we previously couldn’t easily do. We ran the movers screen for about 30 seconds and then looked at the heavy left view in <a href="https://www.speedscope.app/">Speedscope</a>. One of the first things that we saw was that about 3.5% of CPU time was spent applying styling via cssInterop, courtesy of <a href="https://www.nativewind.dev/">Nativewind</a>.</p><p>One of the first decisions made when initially setting up the app was to use Nativewind as Tailwind was also used in our web codebase, further reducing the barrier to entry. The library is working very well for us, and we hadn’t observed any issues prior to seeing this. The same colleague recommended we try out a new project called <a href="https://mgcrea.github.io/react-native-tailwind/">React Native Tailwind</a> (RNT) that converts the className prop to StyleSheet.create() calls during the build phase.</p><p>This seemed like an easy win, due to the fact that it should be a drop in replacement and then everything would just work at build time, resulting in much faster style application (numerous <a href="https://github.com/nativewind/nativewind/discussions/642">benchmarks</a> show that this method is the fastest way to set styling).</p><p>In the real world though, things don’t usually work out so easily. On adding this library, many parts of the app styling was broken. We wanted to push on anyway and try and get this working, as performance improvements which affect the runtime across the board (such as styling) usually pay a good dividend.</p><h3>Limitations of RNT</h3><p>One of the first things observed was that the library didn’t support (at the time) the size-n method of defining width and height in one class. I figured the fastest way to fix this would be to add a pre-processor Babel plugin that converts size-n into w-n and h-n and then let RNT do its job of converting them as normal. This seemed to work for those cases, but there were still a number of broken styles.</p><p>Some other ones that were not supported that we added support for are the “gap” classes, such as gap-n which decay to styles like column-gap and row-gap. These (and ones like it) are added as a separate StyleSheet object and then merged later into the one output from RNT in our postprocessor babel transform.</p><p>Another issue discovered was the <a href="https://www.nativewind.dev/docs/tailwind/interactivity/pointer-events">pointer-events-none</a> class which was not supported by RNT but actually worked in practice with Nativewind. These don’t become styles per se, but add the pointerEvents prop to a View/Text component.</p><p>Fortunately, during the build time phase, RNT logs the classes in use that it cannot convert, so it was reasonably trivial to go through each example and figure out why and how it’s used. To our surprise, we had about a dozen classes that flat out didn’t exist and even more “in use” that didn’t actually apply to React Native, but were carried over from Tailwind and marked as “web only” in the Nativewind documentation (we target only mobile platforms with our app).</p><h3>Establishing the baseline</h3><p>To stop the bleeding of this issue, I added a package that provides the <a href="https://github.com/francoismassart/eslint-plugin-tailwindcss/blob/master/docs/rules/no-custom-classname.md">no-custom-classname</a> <a href="https://eslint.org/">eslint</a> rule that would flag classes that didn’t exist in Tailwind. Unfortunately this seems like it was built for web only, so while it did capture flat out hallucinations, it wouldn’t capture the cases where we used a web only class.</p><p>In order to find these, I extended the config of our existing “forbidden classes” eslint rule to catch these web only classes. I implemented a blocklist based on the Nativewind documentation, and then went through each newly issued flagged by eslint with a small test harness, to verify that the class actually was useless in RN. This now gave us a good baseline that only useful classes would be added, but I still saw many classes flagged that RNT didn’t have support for. I added support for these remaining classes.</p><h3>Runtime classes are still necessary</h3><p>Some of the classes we used had to be present at runtime for Nativewind, such as the “safe” prefixed classes which determine a safe area to render something, using the safe insets. I considered extending the transformer to import and use useSafeInsets and add to the style attribute manually, but decided against it for now and just mark them as runtime classes and not process them during build time.</p><p>Some others are the “disabled” and “active” prefixes to classes. These are <a href="https://mgcrea.github.io/react-native-tailwind/guides/state-modifiers/">supported by RNT</a>, but only if you use the specific wrappers in the library, which I didn’t want to do for now (as we have hundreds of usages I’d need to manually verify). Some others were the <a href="https://www.nativewind.dev/docs/tailwind/transitions-animation/transition-property">transition</a> and <a href="https://www.nativewind.dev/docs/tailwind/transitions-animation/animation">animation</a> classes.</p><p>To make this work, the pre-processor rewrites any runtime classes to a expando-like prop to the component, which then a post-processor writes back to the className prop to be picked up by Nativewind during runtime.</p><h3>Dynamic classes aren’t convertible</h3><p>For many components we also use <a href="https://cva.style/docs">Class Variance Authority</a> in multiple places, and the library does not currently support these. For now, these are applied still at runtime. There is an <a href="https://github.com/mgcrea/react-native-tailwind/pull/4">open PR</a> (at time of writing) to add support for this.</p><h3>Class concatenation problems</h3><p>A lot of our existing design system components took a className prop which was merged with the existing className of the internal wrapper component, in order to customize the component. This seemed an anti-pattern, since we desired consistency in the design system, and all bets were off when giving this escape hatch to all implementers.</p><p>The biggest issue here however was that due to runtime className concatenation, we could not convert these safely to build time. This was made especially difficult by some components taking both a className <em>and</em> a style prop, but applying them to different components internally.</p><p>For example, if a component takes a className prop (which can be dynamic), which was joined with existing classes internally, and we convert those internal classes to style with the <a href="https://mgcrea.github.io/react-native-tailwind/guides/compile-time-tw/">tw template tag</a>, these will take precedence over the externally provided runtime className, resulting in broken styling (the className no longer overrides any existing classes as they’re now defined in the style prop).</p><p>In the example below, we cannot statically determine the className to apply here (well we could in this toy example with a little effort but imagine it comes from a deeper call stack), so if we render both of these components with identical props, the first one (using internal build time styles) will have a yellow background (unintended) and the second one (using runtime styles) will have a pink background (as intended).</p><pre>function getClassName() {<br>  return &quot;bg-pink-500&quot;;<br>}<br><br>// Build time internal styles<br>function ClassNameExample({<br>  className,<br>  style<br>}: {<br>  isActive: boolean;<br>  className: string;<br>  style: TwStyle;<br>}) {<br>  const backgroundColor = tw`bg-yellow-500`;<br>  return (<br>    &lt;View className={className} style={[backgroundColor.style, style]}&gt;<br>      &lt;Text&gt;👀&lt;/Text&gt;<br>    &lt;/View&gt;<br>  );<br>}<br><br>// Run time internal styles<br>function ClassNameExample2({<br>  className,<br>  style<br>}: {<br>  isActive: boolean;<br>  className: string;<br>  style: TwStyle;<br>}) {<br>  const backgroundColor = &quot;bg-yellow-500&quot;;<br>  return (<br>    &lt;View className={cn(backgroundColor, className)} style={style}&gt;<br>      &lt;Text&gt;👀&lt;/Text&gt;<br>    &lt;/View&gt;<br>  );<br>}<br><br>// Yellow background ❌<br>&lt;ClassNameExample className={getClassName()} /&gt;<br><br>// Pink background ✅<br>&lt;ClassNameExample2 className={getClassName()} /&gt;</pre><p>There are thousands of examples of these, so it’s not feasible to go and re-write each one right now and verify. The plan is to use more focused props where possible on building block/design system components, so we can apply the right styles internally, which will also have a win for consistency. We are currently overhauling these design system components.</p><p>In addition, we have an existing cn() function too which drops falsey values so we can do things like cn(“p-2”, isRed &amp;&amp; “bg-red-500”). This obviously isn’t supported by RNT as it’s unique to us. To make this existing pattern work, I converted it to string templates in the preprocessor, which RNT <em>does</em> support.</p><h3>Tooling</h3><p>During the process, it was very useful to be able to see the input file and the transformed file, to manually verify what the output is and if it appears correct. To that end, I put together a quick script that would show the input file on the left and the transformed file on the right, which made it simple to see if the code was doing the right thing. This was much quicker than trying to find the source code in the JS bundle in the RN developer tools, but I still used this to verify too (as we have multiple Babel transforms that work together outside of styling, such as the React Compiler).</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*1PL6-kh0srvi3whzziQYOw.png" /></figure><h3>Shipping it</h3><p>Due to the nature of this change, I considered it high risk as if I didn’t catch all cases correctly, the app’s UI could render wrong and the app would become unusable. I verified as many screens as we could, but the app is reasonably mature with a lot of surface area and there were many states the app could be in (first time user, funded user, etc). To increase confidence, I utilized the internal QA team with instructions to “test every single screen in every single state”.</p><p>The QA team completed this monumental task, and found a few issues with text being clipped. I fixed this by adding a line-height in the preprocessor for text sizes. Some complex screens with Reanimated also showed some strange behaviour, so I timeboxed fixes for these, and in some cases used the ignore functionality from Babel to skip converting some files, which in the end only amounted to a handful.</p><h3>The outcome</h3><p>Profiling the identical scenario on the native build, I was able to identify that the 3.5% of time spent during cssInterop dropped to 0.01%. I was very excited to see this! In addition to freeing up this runtime cost, I also saw faster route changes in the order of about 10%.</p><p>The biggest change, however, which we expected to influence but not to this magnitude, was the app startup time. On iOS, the app startup time in our telemetry averaged around 1.5s, and this dropped to about 110ms on the day I shipped this change to our customers. In addition, it became significantly faster on Android too.</p><p>Not only did we improve the general performance of our app, but we made the TTI much quicker for our users. Given this was a build time change, we couldn’t traditionally a/b test this change, but many previous experiments showed correlation between trading volume (one of our topline metrics) and performance improvements.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*TC2bKp5GHJjZcvi5lsg_fg.png" /></figure><p>Before &amp; after during the home screen rendering:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*UMrBjqIbReFCn9ZW5V8dCA.png" /></figure><h3>What’s next?</h3><p>One of the goals of RNT was to be able to drop Nativewind entirely, and save on the bundle size of this. Unfortunately, due to the aforementioned runtime classes and the way we joined them, this proved impossible for the time being.</p><p>Not long after we shipped this, RNT <a href="https://github.com/mgcrea/react-native-tailwind/issues/7">added support for size-n classes</a> so I was able to remove that portion of the pre-processor from our own code.</p><p>I will go further on converting more leftover runtime styles to build time where possible. We are currently building a new design system which will consider build time styles as a first principle, allowing us to squeeze a bit more performance.</p><p>Massive thank you to <a href="https://github.com/mgcrea">Olivier Louvignes</a> for the RNT library itself. be good to contribute some of the missing functionality in RNT back to the library itself to benefit all.</p><h3>Want to get involved?</h3><p>We’re hiring software engineers, data scientists and machine learning engineers for Baton Corporation, the development company behind Pump fun.</p><p>We helped develop one of the fastest growing crypto platforms in history, with ambitions to create a global consumer brand that tokenizes the world’s highest potential, early-stage ideas. Being the first mover in our space, we reward hard workers that think from first-principles, are data-driven, and love taking big risks.</p><p>With roles ranging between $300k-$1.5m in base salary + ~$75k-$500k in $PUMP tokens, we offer some of the most competitive compensation packages across every level of seniority.</p><p>Apply now: <a href="https://jobs.ashbyhq.com/batoncorporation">https://jobs.ashbyhq.com/batoncorporation</a></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=e98ff701dc66" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Pump.fun GitHub Creator Fee claiming guide]]></title>
            <link>https://medium.com/@pumpdotfun_/pump-fun-github-creator-fee-claiming-guide-d6f04af1acf6?source=rss-d6e360eae26c------2</link>
            <guid isPermaLink="false">https://medium.com/p/d6f04af1acf6</guid>
            <dc:creator><![CDATA[Pump.fun]]></dc:creator>
            <pubDate>Thu, 12 Feb 2026 19:20:53 GMT</pubDate>
            <atom:updated>2026-02-15T21:29:47.509Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*8RWK7IQTi7F6tF2khaJATw.png" /></figure><p>If you’re reading this, a community has launched a token for you on pump.fun and is asking you to “claim” it. You are likely receiving messages, questions, and may be unsure what this actually means.</p><p>This guide is here to help you understand what claiming a token means, what your options are, and how to confidently navigate your next steps.</p><p>Let’s start at the beginning.</p><p><strong>What is Pump.fun?</strong></p><p>Pump fun is a platform where creators, founders and communities can instantly launch &amp; trade tokens for free in just a few clicks.</p><p>Pump fun is responsible for billions of dollars in revenue, tens of millions of tokens launched &amp; has proved itself as the most exciting ecosystem on the internet for creators &amp; traders.</p><p>To get started, download the free Pump.fun mobile app: <a href="https://join.pump.fun/HSag/x">https://join.pump.fun/HSag/x</a></p><p><strong>What is a token?</strong></p><p>A token is a digital asset which represents a project, idea, person, or community that can be traded on the internet.</p><p>Pump.fun tokens are free to launch, with millions of traders actively participating in trading these tokens — some of which reach valuations in the billions.</p><p><strong>What are Creator Fees?</strong></p><p>Every Pump fun token uses Creator Fees, which means every trade on a token contributes a small percentage towards that token’s Creator Fees, which are then instantly claimable by fee recipients.</p><p>Creator Fees enable individuals, builders &amp; communities to bootstrap their projects or ideas with potentially significant rewards which can accelerate projects &amp; tokens further.</p><p>Rewarding creators means more alignment with token communities, as the more effort and success the creator drives towards the token community, the more trading takes place on the token, meaning more fees generated for the creator.</p><p><strong>Why were Creator Fees allocated to me?</strong></p><p>If Creator Fees were allocated to you, it’s a strong signal that people believe in your idea, your brand, or what you represent.</p><p>They see opportunity in you as a creator and want to support you.</p><p><strong>What happens if I claim Creator Fees?</strong></p><p>Claiming Creator Fees is your right as a creator and signals to a community that you have acknowledged the token and may engage with it in the future.</p><p>It is highly recommended that you claim Creator Fees from only one token, as token communities rally around a specific token which they feel best represents your project or idea, often deeming it the canonical token for you as a creator.</p><p>Claiming fees from multiple tokens may cause uncertainty in the community. If you have the privilege of having multiple token communities rallying behind you, reach out to our support team via Intercom on our mobile app or website.</p><p>Overall, claiming Creator Fees is an exciting moment for both token communities and creators which can lead to further interest &amp; growth.</p><p><strong>What does it mean to claim Creator Fees?</strong></p><p>Claiming Creator Fees is an action that can be seen by anyone, meaning traders &amp; token communities will be aware of which tokens you are claiming fees from.</p><p>Claiming fees signals your potential interest to token communities, and as such it is recommended that you are aware of the implications when it comes to claiming Creator Fees and engaging with token communities.</p><p>You should consider <strong>not</strong> claiming Creator Fees if:</p><ul><li>You don’t see yourself actively engaging with the token community.</li><li>You are unsure whether the token aligns with your idea, brand or project.</li><li>You are actively engaging with multiple token communities.</li></ul><p>If you claim Creator Fees and actively support the token community, you may open the door to a powerful, aligned community who’s ready to help you grow. Your support may unlock further alignment, momentum, and more opportunities.</p><p>If you claim Creator Fees but don’t want to be associated with your token, be honest &amp; transparent with the community. Transparency can prevent further speculation, tagging, and unwanted messages.</p><p><strong>If you decide to claim Creator Fees, here are a few important next steps to consider:</strong></p><p><strong>1. Reach out to Pump fun support</strong></p><p>Reach out to our support team via Intercom on our mobile app or website. Support may connect you with an affiliate who can provide tailored insights to help you better understand your situation and how to navigate it. Pump fun support has your &amp; the token community’s best interests in mind.</p><p><strong>2. Make sure you are supporting the right token community</strong></p><p>There may be multiple token communities asking you to claim fees on different tokens. While these tokens may be very similar in appearance, the community often decides which token they think should be the canonical token for you or your project.</p><p>Before claiming fees on a specific token, identify if you are claiming fees on the token which the token community thinks should be your canonical token.</p><p>Token communities may reach out to you to make you aware of a well-performing token for your project or idea. It’s important to make sure you are supporting the right community, as there may be multiple communities encouraging you to claim.</p><p>Each community &amp; token may differ in traction, social reach, market cap, and member count, so be thoughtful and selective in your decision.</p><p>Claiming &amp; engaging with multiple communities or claiming fees from multiple tokens at the same time may split attention and, in most cases, reduce momentum for all of them. This ultimately causes them to fade out, which results in significantly less creator fees generated.</p><p><strong>3. Consider if you want to hold some supply of your token</strong></p><p>Some token communities may offer to send you tokens as an additional incentive to claim fees &amp; support that token community. This aims to make you more aligned with your token community as well as rewarding you even more as the token grows.</p><p>Before claiming the fees, consider whether you’d like to purchase any tokens for yourself, or if community members are willing to make you more aligned with free tokens. You can do this by sharing your public wallet address and asking the community to send tokens directly to it. This is not a required step, but may be worth considering if you are prepared to support the token and community long term.</p><p><strong>4. Have a clear path</strong></p><p>Be prepared to stay active in the token community by posting updates, sharing progress, creating content, and answering questions.</p><p><strong>5. Ensure you trust the token you are claiming from</strong></p><p>Every token has one Coin Admin who can allocate fees, change fee allocations &amp; more. Every Coin Admin has privileges to update creator fee settings, unless they revoke their privileges, which is the maximum sign of trust.</p><p>To check if a Coin Admin has revoked their privileges, check the token on the Pump fun mobile app:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*12CrWrm0oajCwQQDhGNXMQ.png" /></figure><p><strong>How are creator fees allocated?</strong></p><p>Creator fees are managed by a Coin Admin, meaning one person can:</p><ul><li><strong>Edit fee recipients:</strong> <em>This allows the Coin Admin to add up to 10 fee recipients.</em></li><li><strong>Edit fee distribution:</strong> <em>This allows the Coin Admin to set specific percentages of fees to each recipient.</em></li><li><strong>Transfer admin privileges: </strong><em>Coin Admins can transfer their privileges to a new Coin Admin, thereby revoking their own privileges</em></li><li><strong>Revoke admin privileges: </strong><em>This is the highest signal of trust. Coin Admin’s can revoke all rights to editing creator fees, meaning all existing settings are permanently locked*</em></li></ul><p><em>*As part of Pump.fun’s Community Takeover system, some tokens may be approved for a manual community takeover which will result in a new Coin Admin being assigned and fee settings being unlocked.</em></p><p><strong>What to do after claiming creator fees</strong></p><p><strong>1. Once you claim the fees</strong>, make a public statement about the token, set expectations of what is coming and what people can expect from you:</p><p>For example:<em> “Hey guys! Thank you for all the support, I’ve decided to claim the fees for [TOKEN], here is what you can expect from me…”</em></p><p>As many tokens share the same name or ticker, the token community may want you to clarify which token you are referring to. To do this, you can share the contract address, which is a long string of characters specifc to your token, such as: pumpCmXqMfrsAkQ5r49WcJnRayYRqmXz6ae8H7H9Dfn</p><p>You can copy the contract address (CA) from the Pump fun mobile app:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*fvCr7R1CtVigBDIie72dRQ.png" /></figure><p><strong>2. Build trust </strong>—<strong> </strong>trust is the most important factor in whether people choose to support you. You build trust by being consistently active, supporting your community, etc. Without this, token communities may get the impression you are only interested in collecting fees.</p><p><strong>3. Align the token with your brand or idea;</strong> explain how the token connects to what you’re building, your vision, or your long-term direction.</p><p><strong>4. Use creator fees wisely; </strong>although it is completely up to you how the creator fees are used, directing a portion of them back into the project/token helps build trust and confidence in you.</p><p>For example, the fees can be used for marketing efforts, rewarding community members, or anything else needed to support the growth of your brand or idea.</p><p><strong>5. Stay safe; </strong>be very careful about who you choose to get help from. Crypto has many supportive people, but as with any industry where money is involved, there may be bad actors looking to capitalize on your momentum. If you have any questions, reach out to our support team via Intercom on our mobile app or website.</p><p><strong>6</strong>. <strong>Ignore hateful texts. </strong>The internet can be an unfriendly place, and unfortunately this may pertain to creators like yourself who are doing something great. The best approach is to ignore them and not give them any attention.</p><p><strong>Final notes</strong></p><p>With everything said, remember to have fun and keep building. Opportunities like this can be life changing, so give it your best. If you have any questions, reach out to our support team via Intercom on our website or mobile app and you may be connected with a Pump fun affiliate who can offer tailored insights specific to your situation.</p><blockquote><strong>Legal disclaimer: </strong>Trading fees are paid automatically by smart contracts on the Solana blockchain &amp; it’s generally legal to receive them anywhere it’s legal to receive crypto. Tokens like those launched on pump.fun aren’t intended to be securities and many governments, including in the US, have stated this. Don’t give financial advice.</blockquote><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=d6f04af1acf6" width="1" height="1" alt="">]]></content:encoded>
        </item>
    </channel>
</rss>