# Welcome

Welcome to **PiperX**, the largest DEX backed by Story Foundation, consistently ranking #1 in user count and transaction volume on Story Odyssey. PiperX provides the best liquidity for $61T IP assets, including **Native $IP Token**, **IP-backed memes, RWIP, AI assets and agents**. PiperX is also the first **agent-native DEX** powering agent assets launch.&#x20;

<figure><img src="/files/KiA3lhUhBXVWlydmGZBS" alt=""><figcaption></figcaption></figure>

**Key Features:**

* **Fast-Swap Mode**: Learn how to enjoy low slippage and fast transactions, even during high traffic.
* **Add Liquidity**: Learn how to add LP for native IP-stablecoin pools and other new assets' pools.
* **Farming Rewards**: Learn how to earn extra rewards with Concentrated Liquidity AMM.
* **DeFAI**, DCA, etc. More advanced features will be released soon!

Join us as we create the next chapter in the story of decentralized finance, powered by IP.

| Navigation | Overview                | Website                                 |
| ---------- | ----------------------- | --------------------------------------- |
| PiperX App | Swap, farm and discover | <https://app.piperx.xyz/>               |
| Twitter    | Follow piper updates    | <https://x.com/PiperxProtocol>          |
| Discord    | Join piper community    | <https://discord.com/invite/M2pbcwYSHv> |
| Telegram   | Follow piper updates    | <https://t.me/+opV7wfvonZ5mMmFh>        |
| Website    | Learn PiperX            | <https://www.piperx.xyz/>               |

### Jump right in

<table data-view="cards"><thead><tr><th></th><th data-type="content-ref"></th><th data-hidden></th><th data-hidden data-type="content-ref"></th><th data-hidden data-card-target data-type="content-ref"></th><th data-hidden data-card-cover data-type="files"></th></tr></thead><tbody><tr><td>INTRODUCTION</td><td><a href="/pages/Zvukm7MAGL6ooitMTmpY">/pages/Zvukm7MAGL6ooitMTmpY</a></td><td></td><td><a href="/pages/Zvukm7MAGL6ooitMTmpY">/pages/Zvukm7MAGL6ooitMTmpY</a></td><td><a href="/pages/Zvukm7MAGL6ooitMTmpY">/pages/Zvukm7MAGL6ooitMTmpY</a></td><td><a href="/files/D2SknK8tFaD8ZuxDFMdS">/files/D2SknK8tFaD8ZuxDFMdS</a></td></tr><tr><td>USER GUIDE</td><td><a href="/pages/Zyz0MS01KE0ZXdbcMnvx">/pages/Zyz0MS01KE0ZXdbcMnvx</a></td><td></td><td></td><td><a href="/pages/Zyz0MS01KE0ZXdbcMnvx">/pages/Zyz0MS01KE0ZXdbcMnvx</a></td><td><a href="/files/1n8v4QX3gAQ0K3vxDzeo">/files/1n8v4QX3gAQ0K3vxDzeo</a></td></tr><tr><td>DEVELOPER</td><td><a href="/pages/R6eVFUrxa86M3eRQ8NLN">/pages/R6eVFUrxa86M3eRQ8NLN</a></td><td></td><td></td><td><a href="/pages/R6eVFUrxa86M3eRQ8NLN">/pages/R6eVFUrxa86M3eRQ8NLN</a></td><td><a href="/files/S5wsRG00JlAbhb7Kjay4">/files/S5wsRG00JlAbhb7Kjay4</a></td></tr></tbody></table>


# Terms of Use

Last updated on February 6, 2024

OUR SERVICES ARE NOT OFFERED TO PERSONS OR ENTITIES WHO RESIDE IN, ARE CITIZENS OF, ARE LOCATED IN, ARE INCORPORATED IN, OR HAVE A REGISTERED OFFICE IN THE UNITED STATES OR ANY RESTRICTED TERRITORY (AS DEFINED BELOW) (ANY SUCH PERSON OR ENTITY FROM A RESTRICTED TERRITORY BEING A “RESTRICTED PERSON”). USE OF A VIRTUAL PRIVATE NETWORK (“VPN”) TO CIRCUMVENT THESE RESTRICTIONS IS PROHIBITED.

These terms of use, together with any additional agreements, documents and terms incorporated by reference, which includes any other terms and conditions or other agreement that PiperX Protocol (“PiperX”, “we”, “us” and “our”) posts publicly or makes available to you or the person or entity you represent (“you” or “your”) (collectively, these “Terms”), are entered into between PiperX and you concerning your use of, and access to, our (a) websites, including piperx.xyz; (b) web applications; mobile applications and (c) all associated sites linked thereto by PiperX or its affiliates (collectively with any materials and services available therein, and successor website(s) or application(s) thereto, the “Site”).

As part of the Site, we provide a user interface (the “Platform”) to access (a) a decentralized exchange platform for trading cryptocurrencies and other blockchain-based assets (“Digital Assets”) in a decentralized, peer-to-peer manner, (b) an automated liquidity manager, (c) an integrated incentive layer and (d) a no-code token deployer factory (collectively, the “Protocol”). These Terms expressly cover your rights and obligations, and our disclaimers and limitations of legal liability, relating to your use of, and access to, the Site, the Platform, the Protocol and all related tools, applications, data, software and other services provided by us (collectively, the “Services”). By accessing or using the Site or the Services, you accept and agree to be bound by and to comply with these Terms. If you do not agree to these Terms, then you must not access or use the Site or the Services.

By accessing or using the Site or the Services, you agree that PiperX does not provide execution, settlement, or clearing services of any kind and is not responsible for the execution, settlement, or clearing of transactions automated through the Services.

### Use of the Services

Eligibility.&#x20;

* As a condition to accessing or using the Services or the Site, you represent and warrant that:
* if you are an individual, you are of legal age in the jurisdiction in which you reside and you have the legal capacity to enter into these Terms and be bound by them;
* if you are an entity, then you have the legal authority to accept these Terms;
* you are not a resident, national, or agent of, located in, incorporated or otherwise formed in, or have a registered office in, the United States;
* you are not a resident, national, or agent of, located in, incorporated or otherwise formed in, or have a registered office in, Antigua and Barbuda, Algeria, Bangladesh, Bolivia, Belarus, Burundi, Burma (Myanmar), Cote D'Ivoire (Ivory Coast), the regions of Crimea, Donetsk or Luhansk, Cuba, Democratic Republic of Congo, Ecuador, Iran, Iraq, Liberia, Libya, Magnitsky, Mali, Morocco, Nepal, North Korea, Somalia, Sudan, Syria, Venezuela, Yemen, Zimbabwe or any other country to which the United States, the United Kingdom or the European Union embargoes goods or imposes similar sanctions (collectively, “Restricted Territories”);
* you are not a member of any sanctions list or equivalent maintained by the United States government, the United Kingdom government, the European Union or the United Nations (a “Sanctioned Person”);
* you do not transact with or intend to transact with any Restricted Person or Sanctioned Person;
* you do not, and will not, use VPN software or any other privacy or anonymization tools or techniques to circumvent, or attempt to circumvent, any restrictions that apply to the Services; and
* your access to the Services (A) is not prohibited by and does not otherwise violate or assists you to violate any (1) laws, constitutions, treaties, statutes, codes, ordinances, principles of common and civil law and equity, orders, decrees, rules, regulations and municipal by-laws, whether domestic, foreign or international; (2) judicial, arbitral, administrative, ministerial, departmental and regulatory judgments, orders, writs, injunctions, decisions, rulings, decrees and awards of any (a) multinational or supranational body or organization, nation, government, state, province, country, territory, municipality, quasi-government, administrative, judicial or regulatory authority, agency, board, body, bureau, commission, instrumentality, court or tribunal or any political subdivision thereof, or any central bank (or similar monetary or regulatory authority) thereof, any taxing authority, any ministry or department or agency of any of the foregoing; (b) self-regulatory organization or stock exchange; (c) entity exercising executive, legislative, judicial, regulatory or administrative functions of or pertaining to government; or (d) any corporation or other entity owned or controlled, through stock or capital ownership or otherwise, by any of such entities or other bodies pursuant to the foregoing (each, a “Governmental Authority”); or (3) policies, practices and guidelines of, or contracts with, any Governmental Authority, which, although not actually having the force of law, are considered by such Governmental Authority as requiring compliance as if having the force of law, as the same may be amended from time to time and any successor thereto and in each case binding on, affecting or having jurisdiction over PiperX, you, the Site or the Services (collectively, “Applicable Laws”); and (B) does not contributes to or facilitates any illegal activity.

Acknowledgements.\
As a condition to accessing or using the Services or the Site, you acknowledge and agree that:

* from time to time the Site and the Services may be inaccessible or inoperable for any reason, including without limitation: (A) equipment malfunctions; (B) periodic maintenance procedures or repairs that we or any of its suppliers or contractors may undertake from time to time; (C) causes beyond our control or that we could not reasonably foresee; (D) disruptions and temporary or permanent unavailability of underlying software, including without limitation blockchain infrastructure; or (E) unavailability of third-party service providers or external partners for any reason;
* we reserve the right to suspend, restrict or modify access to the Site and the Services at any time in the event of any breach of these Terms, including, without limitation, if we reasonably believe any of your representations and warranties may be untrue or inaccurate, and we will not be liable to you, and you will hold us harmless from, any losses or damages you may suffer as a result of or in connection with the Site or the Services being inaccessible to you at any time or for any reason;
* we may change, replace, or discontinue (temporarily or permanently) some or all of the Services at any time in our sole discretion;
* the pricing information provided on the Site does not represent an offer, a solicitation of an offer, or any advice regarding, or recommendation to enter into, a transaction with PiperX;
* PiperX does not act as an agent for you or any other user of the Site or the Services;
* you are solely responsible for your use of the Services, including all of your transfers of Digital Assets;
* to the fullest extent not prohibited by Applicable Laws, we owe no fiduciary duties or liabilities to you or any other party, and that to the extent any such duties or liabilities may exist under Applicable Laws, you hereby irrevocably disclaim and waive all of such duties and liabilities and hold us harmless from any of the foregoing;
* you are solely responsible for reporting and paying any taxes applicable to your use of the Services;
* we have no control over, or liability for, the delivery, quality, safety, legality, or any other aspect of any Digital Assets that you may transfer to or from a third party and we are not responsible for ensuring that an entity with whom you transact with completes the transaction or is authorized to do so; and
* you bear the entire risk with any transactions in Digital Assets and in using the Services.

User Responsibilities.\
\
As a condition to accessing or using the Services or the Site, you covenant to PiperX the following:

* you (A) must provide all equipment, connectivity, and software necessary to connect to the Services and (B) are solely responsible for any costs and expenses, including Internet connection or mobile fees, which you incur when accessing the Services;
* in connection with using the Services, you will only transfer legally-obtained Digital Assets;
* you will comply with all Applicable Laws and obtain and maintain all applicable registrations or licenses under Applicable Laws in connection with using the Services, and you will not use the Site or the Services if the laws of your country, or any other Applicable Laws, prohibit you from doing so;
* any Digital Assets you use in connection with the Services are either (A) owned by you or (B) you are validly authorized to carry out actions using such Digital Assets; and
* in addition to complying with all restrictions, prohibitions, and other provisions of these Terms, you will (A) ensure that, at all times, all information that you provide on the Site and during your use of the Services is current, complete, and accurate and (B) maintain the security and confidentiality of your private keys associated with your Wallet (as defined below), passwords, API keys and other related credentials.
* Digital Wallet; Non-Custodial Services
* In order to use certain features of the Site and Services, you may be required to connect your digital asset wallet(s) or address(es) (collectively, “Wallet”) to the Platform. You acknowledge that we are not responsible for transferring, safeguarding, or maintaining your private keys or any assets associated with your Wallet. If you lose, mishandle or have stolen your Wallet private keys, you acknowledge that you may not be able to recover associated assets and that we are notresponsible for such loss.
* You acknowledge that you may disconnect your Wallet from the Platform at any time.
* You agree to notify us immediately if you suspect your linked Wallet has been compromised or otherwise suspect any security issues related to your use of the Services.
* You agree that you will not use the Services to transact with any digital currency that may be considered a security under Applicable Laws.
* You acknowledge and agree that we may restrict, suspend or close your Wallet and access to the Platform for any reason or no reason, including if we reasonably believe that you have breached any of the terms of this Agreement.
* Digital Assets that you purchase or use in relation to the Services may be held in one or more Wallets of yours. We do not operate, maintain, control or have custody over any contents of your Wallet. We accept no responsibility for, or liability to, you in connection with your Wallet and make no representations or warranties regarding how the Platform or the Services will operate with any specific Wallet. Any issues relating to your Wallet should be addressed to your Wallet provider.
* You acknowledge that we are not responsible for, and you agree to indemnify us for, any loss or damage arising from your failure to comply with the requirements hereunder.

**No Professional Advice or Fiduciary Duties**

All information provided in connection with your access and use of the Site and the Services is for informational purposes only and should not be construed as professional advice. You should not take, or refrain from taking, any action based on any information contained on the Site or any other information that we make available at any time, including, without limitation, blog posts, articles, links to third-party content, Discord content, Telegram content, news feeds, tutorials, tweets, and videos. Before you make any financial, legal, or other decisions involving the Services, you should seek independent professional advice from an individual who is licensed and qualified in the area for which such advice would be appropriate. The Terms are not intended to, and do not, create or impose any fiduciary duties on us. You further agree that the only duties and obligations that we owe you are those set out expressly in these Terms.

* Prohibited Activities
* By using the Site or the Services, you confirm that you will not use the Site or the Services to do any of the following (collectively, “Prohibited Uses”):
* violate any Applicable Laws including, without limitation, any applicable anti-money laundering and anti-terrorist financing laws and sanctions programs;
* engage in transactions involving items that infringe or violate any copyright, trademark, right of publicity or privacy or any other proprietary right under Applicable Laws, including but not limited to (i) sales, distribution, or access to counterfeit music, movies, software, or other licensed materials without the appropriate authorization from the rights holder (ii) use of PiperX’s intellectual property, name, or logo, including use of PiperX’s trade marks or service marks, without express consent from PiperX or in a manner that otherwise harms PiperX and (iii) any action that implies an untrue endorsement by or affiliation with PiperX;
* use the Site and/or the Services in any manner that could interfere with, disrupt, negatively affect, or inhibit other users from fully enjoying the Site and/or the Services, or that could damage, disable, overburden, or impair the functioning of the Site or the Services in any manner;
* circumvent any content-filtering techniques, security measures or access controls that PiperX employs on the Site, including without limitation through the use of a VPN;
* use any robot, spider, crawler, scraper, or other automated means or interface not provided by us to access the Site or the Services or to extract data, or introduce any malware, virus, Trojan horse, worm, logic bomb, drop-dead device, backdoor, shutdown mechanism or other harmful material into the Site or the Services;
* provide false, inaccurate, or misleading information while using the Site or the Services or engage in activity that operates to defraud PiperX, other users of the Services, or any other person;
* engage in improper or abusive trading practices, including (i) any fraudulent act or scheme to defraud, deceive, trick or mislead; (ii) trading ahead of another user of the Services or front-running; (iii) fraudulent trading; (iv) accommodation trading; (v) fictitious transactions; (vi) pre-arranged or non-competitive transactions; (vii) violations of bids or offers; (viii) cornering, or attempted cornering, of any Digital Assets; (ix) wash trading (i.e. entering buy and sell orders at the same or similar prices, volumes, and times for the purpose of generating trading volume); (x) spoofing (i.e. entering buy or sell orders without a bona fide intent to execute such orders and with the intent to cancel such orders before execution); (xi) manipulation (i.e. trading for the purpose of affecting the prices of Digital Assets and generating artificial prices); (xii) knowingly making any bid or offer for the purpose of making a market price that does not reflect the true state of the market; (xiii) entering orders for the purpose of entering into transactions without a net change in either party’s open positions but a resulting profit to one party and a loss to the other party, commonly known as a “money pass”; or (xiv) any other trading activity that, we have, in our sole discretion, determined to be abusive, improper or disruptive to the operation of the Services.
* use or access the Site or Services to transmit, stake, wrap, exchange or otherwise interact with Digital Assets that are the direct or indirect proceeds of any criminal or fraudulent activity, including without limitation terrorism or tax evasion;
* use the Site or the Services in any way that is, in our sole discretion, libelous, defamatory, profane, obscene, pornographic, sexually explicit, indecent, lewd, vulgar, suggestive, harassing, stalking, hateful, threatening, offensive, discriminatory, bigoted, abusive, inflammatory, fraudulent, deceptive, or otherwise objectionable or likely or intended to incite, threaten, facilitate, promote, or encourage hate, racial intolerance, or violent acts against others;
* use the Site or the Services from a jurisdiction that we have, in our sole discretion, determined is a jurisdiction where the use of the Site or the Services is prohibited;
* harass, abuse, or harm of another person or entity, including PiperX’s employees and service providers;
* impersonate another user of the Site or the Services or otherwise misrepresent yourself;
* use the Site or the Platform for any purposes other than using the Services; or
* encourage, induce or assist any third party to engage in any of the activities prohibited under this Section 3 or any other provision of these Terms.

The foregoing activities are representative, but not exhaustive, of Prohibited Uses. If you are uncertain as to whether or not your use of the Site or the Services involves a Prohibited Use or have other questions about how these requirements apply to you, then please contact us at <contact@piperx.xyz>.

* Your Content

You hereby grant to us a royalty-free, fully paid-up, sublicensable, transferable, perpetual, irrevocable, non-exclusive, worldwide license to use, copy, modify, create derivative works of, display, perform, publish and distribute, in any form, medium, or manner, any content that is available to other users as a result of your use of the Site or the Services (collectively, “Your Content”), including, without limitation, for promoting PiperX, its affiliates, the Services or the Site. You represent and warrant that (a) you own Your Content or have the right to grant the rights and licenses in these Terms and (b) Your Content and our use of Your Content, as licensed herein, does not and will not violate, misappropriate or infringe on any third party’s rights.

Proprietary Rights

* You acknowledge that the Site or the Services may use, incorporate or link to certain open-source components and that your use of the Site or Services is subject to, and you will comply with, any applicable open-source licenses that govern any such open-source components (collectively, “Open-Source Licenses”). Without limiting the generality of the foregoing, you may not (i) resell, lease, lend, share, distribute, or otherwise permit any third party to use the Site or the Services; (ii) use the Site or the Services for time-sharing or service bureau purposes; or (iii) otherwise use the Site or the Services in a manner that violates any Open-Source Licenses.
* Excluding the open-source software described in Section 5(a), Your Content or third-party software that the Site or the Services incorporates you acknowledge and agree that PiperX owns the Site and the Services, including all technology, content, software, images, text, graphics, illustrations, logos, patents, trademarks, service marks, copyrights, photographs, audio, videos and music and all intellectual property rights related thereto and other materials used, displayed, or provided on the Site or in connection with the Services but excluding Your Content (the “Company Content”) including all intellectual property rights subsisting therein. PiperX hereby grants you a limited, revocable, transferable, license to access and use those portions of the Site and the Services that are proprietary to PiperX solely in accordance with these Terms. Except as explicitly provided herein, nothing in these Terms shall be deemed to create a license in or under any Company Content or intellectual property rights, and you agree not to sell, license, rent, modify, distribute, copy, reproduce, transmit, publicly display, publicly perform, publish, adapt, edit or create derivative works from any Company Content. Use of the Company Content for any purpose not expressly permitted by these Terms is strictly prohibited. Company Content is made available solely for your personal, non-commercial use and may not be copied, reproduced, published, republished, modified, mirrored, uploaded, posted, transmitted, displayed, encoded, translated or distributed in any form or in way, including by e-mail or other electronic means, or stored in any retrieval system of any nature in any way, without the express prior written consent of us or such third party that may own such Company Content in each instance. You agree to abide by all copyright and other proprietary notices, information and restrictions contained in the Company Content and any other material accessed through the Site.
* Any of PiperX’s product or service names, logos, and other marks used on the Site or as a part of the Services, including PiperX's name and logo are trademarks owned by PiperX, its affiliates, or its applicable licensors (collectively, the “PiperX Trademarks”). You may not copy, imitate, or use them without the prior written consent of PiperX or the applicable licensors, and notwithstanding to the contrary these Terms do not grant you any rights in the PiperX Trademarks. You may not remove, obscure, or alter any legal notices displayed in or along with the Services.
* You may choose to, or we may invite you to submit comments, feedback, or ideas about the Site and the Services, including without limitation about how to improve the Site or our Services (“Feedback”). By submitting any Feedback, you agree that (i) your disclosure is non-confidential, gratuitous, unsolicited and without restriction and will not place us under any fiduciary or other obligation, (ii) you grant to us a perpetual, worldwide, royalty-free, irrevocable, transferable, sublicensable, non-exclusive and fully paid-up right to copy, use, reproduce, modify, adapt, publish, create derivative works from, translate, transmit, display, distribute, market, promote, sell or offer for sale, rent or lease such information or materials or any portions thereof (including any ideas for new products or Services or modifications to existing products or Services) and/or products or Services which practice or embody, or are configured for use in practicing, such information or materials or any portion thereof, in any form or medium known or later developed, in furtherance of these Terms and the actions and transactions contemplated hereby, including the right to bring an action for infringement of these rights, (iii) we are free to use the Feedback without any additional compensation to you, and/or to disclose the Feedback on a non-confidential basis or otherwise to anyone and (iv) you will have no claim against for any actual or alleged infringement of any proprietary rights, rights of privacy or publicity, moral rights or rights of attribution in connection with our use of any Feedback you provide. You further acknowledge that, by acceptance of your submission, we do not waive any rights to use similar or related comments, feedback and ideas previously known to us, or developed by our employees, or obtained from sources other than you.
* You acknowledge and understand that the Services are non-custodial. When you deposit Digital Assets into any PiperX-developed smart contract, you retain control over those Digital Assets at all times. The private key associated with the Wallet from which you transfer Digital Assets is the only private key that can control the Digital Assets you transfer into PiperX-developed smart contracts. In some cases, you may withdraw Digital Assets from any PiperX-developed smart contract only to the digital address from which you deposited the Digital Assets.

Third Party Links

The Site or the Services may provide, or third parties may provide, links to other external sites, applications or resources. You acknowledge and agree that we are not responsible for the availability of such external sites, applications or resources, does not endorse and is not responsible or liable for any content, advertising, products, or other materials on or available from such sites or resources. You further acknowledge and agree that we shall not be responsible or liable, directly or indirectly, for any damage or loss caused or alleged to be caused by or in connection with use of or reliance on any such content, goods, or services available on or through any such site or resource.

* Modification, Suspension and Termination

We may, at our sole discretion, from time to time and with or without prior notice to you, modify, suspend or disable (temporarily or permanently) the Site or the Services, in whole or in part, for any reason whatsoever. Upon termination of your access, your right to use the Services will immediately cease. We will not be liable for, and you agree to indemnify us for, any losses suffered by you resulting from any modification to any Services or from any modification, suspension, or termination, for any reason, of your access to all or any portion of the Site or the Services.

Risks

* By using the Services or interacting with the Site in any way, you represent and warrant that you understand the inherent risks associated with cryptographic systems and blockchain-based networks; Digital Assets, including the usage and intricacies of native Digital Assets, smart contract-based tokens, and systems that interact with blockchain-based networks. PiperX does not own or control any of the underlying software through which blockchain networks are formed. In general, the software underlying blockchain networks is open source, such that anyone can use, copy, modify, and distribute it. By using the Services, you acknowledge and agree that (i) PiperX is not responsible for the operation of the software and networks underlying the Services, (ii) there exists no guarantee of the functionality, security, or availability of such software and such networks, and (iii) the underlying networks are subject to sudden changes in operating rules, such as those commonly referred to as “forks,” which may materially affect the Services.
* You acknowledge and agree that (i) blockchain networks use public/private key cryptography, (ii) you alone are responsible for securing your private keys, (iii) we do not have access to your private keys, (iv) losing control of your private keys will permanently and irreversibly deny you access to your Digital Assets, (v) neither PiperX nor any other person or entity will be able to retrieve or protect your Digital Assets and (vi) if your private keys are lost, then you will not be able to transfer your Digital Assets to any other blockchain address or wallet and if this occurs, then you will not be able to realize any value or utility from the Digital Assets that you may hold.
* The Services and your Digital Assets could be impacted by one or more regulatory inquiries or regulatory actions, which could impede or limit the ability of PiperX to continue to make available its proprietary software and, thus, could impede or limit your ability to access or use the Services.
* You acknowledge and understand that cryptography is a progressing field with advances in code cracking or other technical advancements, such as the development of quantum computers, which may present risks to Digital Assets and the Services, and could result in the theft or loss of your Digital Assets. To the extent possible, we intend to use commercially reasonable efforts to update or cause to be updated PiperX-developed smart contracts related to the Services to account for any advances in cryptography and to incorporate additional security measures necessary to address risks presented from technological advancements, but you agree that such intention does not guarantee or otherwise ensure full security of the Services.
* You acknowledge that the Services are subject to flaws and that you are solely responsible for evaluating any code provided by the Services or Site. This warning and others we provide in these Terms in no way evidence or represent an ongoing duty to alert you to all of the potential risks of utilizing the Services or accessing the Site.
* Although we intend to provide accurate and timely information on the Site and during your use of the Services, the Site and other information available when using the Services may not always be entirely accurate, complete, or current and may also include technical inaccuracies or typographical errors. To continue to provide you with as complete and accurate information as possible, information may be changed or updated from time to time without notice, including, without limitation, information regarding our policies. Accordingly, you should verify all information before relying on it, and all decisions based on information contained on the Site or as part of the Services are your sole responsibility. No representation is made as to the accuracy, completeness, or appropriateness for any particular purpose of any information distributed via the Site or otherwise when using the Services. Prices and pricing information may be higher or lower than prices available on platforms providing similar services.
* Any use or interaction with the Services requires a comprehensive understanding of applied cryptography and computer science to appreciate the inherent risks, including those listed above. You represent and warrant that you possess relevant knowledge and skills to appreciate and understand such risks. Any reference to a type of Digital Asset on the Site or otherwise during the use of the Services does not indicate our approval or disapproval of the technology on which the Digital Asset relies and should not be used as a substitute for your understanding of the risks specific to each type of Digital Asset.
* Use of the Services may carry financial risk. Digital Assets are, by their nature, highly experimental, risky, and volatile. Transactions entered in connection with the Services are irreversible, final and there are no refunds. You acknowledge and agree that you will access and use the Site and the Services at your own risk. The risk of loss in trading, staking, locking or otherwise interacting with Digital Assets can be substantial. You should, therefore, carefully consider whether such activities are suitable for you in light of your circumstances and financial resources. By using the Services, you represent and warrant that you have been, are, and will be solely responsible for making your independent appraisal and investigations into the risks of a given transaction and the underlying Digital Assets. You represent that you have sufficient knowledge, market sophistication, professional advice, and experience to make your evaluation of the merits and risks of any transaction conducted in connection with the Services or any Digital Asset. You accept all consequences of using the Services, including the risk that you may lose access to your Digital Assets indefinitely. All transaction decisions are made solely by you. Notwithstanding anything in these Terms, we accept no responsibility whatsoever for, and will in no circumstances be liable to you in connection with, your use of the Services.
* You and we agree to comply with all Applicable Laws and acknowledge that such compliance may require us to, upon request by government agencies, take certain actions or provide information, including without limitation information about you, which may not be in your best interests.
* You are responsible for all trades and transfer you place, including any erroneous orders that may be filled. We do not take any action to resolve erroneous trades or transfers that result from your errors.
* Any Services you interact with are entirely your own responsibility and liability, and we are not a party to the Protocol.
* At any time, your access to your Digital Assets may be suspended or terminated or there may be a delay in your access or use of your Digital Assets which may result in the Digital Assets diminishing in value.
* The Services may be suspended or terminated for any reason or no reason, which may limit your access to your Digital Assets.
* You hereby assume, and agree that PiperX will have no responsibility or liability for, the risks set forth in this Section 8. You hereby irrevocably waive, release and discharge all claims, whether known or unknown to you, against PiperX, its affiliates, and each of their respective shareholders, members, directors, officers, managers, employees, lawyers, accountants, advisors, agents, representatives, suppliers and contractors related to any of the risks set forth in this Section 8.
* Indemnification

You agree you will defend, indemnify, and hold harmless PiperX, its affiliates, and each of their respective shareholders, members, directors, officers, managers, employees, lawyers, agents, accountants, advisors, representatives, suppliers, and contractors (collectively, “Indemnified Parties”) from any claim, demand, lawsuit, action, proceeding, investigation, liability, damage, loss, cost or expense, including without limitation legal fees and expenses, arising out of or relating to: (a) your use of, access to or conduct in connection with, the Site, the Platform, Company Content, the Services or Digital Assets; (b) Digital Assets associated with your Wallets; (c) any Feedback, Your Content or user content you provide to PiperX including without limitation misleading, false, or inaccurate information; (d) your violation of these Terms; (e) your infringement or misappropriation of the rights of any other person or entity; (f) your wilful misconduct; (g) your violation of any Applicable Laws; or (h) any other party’s access and use of the Site, the Platform, Company Content or the Services with your Wallet, unique username, password or other appropriate security code. If you are obligated to indemnify any Indemnified Party, we (or, at its discretion, the applicable Indemnified Party) will have the right, in our sole discretion, to control any action or proceeding and to determine whether we wish to settle, and if so, on what terms, and you agree to corporate with us in connection with the foregoing.

Disclaimers

* We are a developer of open-source software. PiperX does not operate a Digital Asset exchange platform or offer trade execution or clearing services and, therefore, has no oversight, involvement, or control concerning your transactions using the Services. All transactions between users of PiperX-developed open-source software are executed peer-to-peer directly between the users’ digital addresses through a smart contract. You are responsible for complying with all Applicable Laws.
* You understand that PiperX is not registered or licensed by the U.S. Commodity Futures Trading Commission, the U.S. Securities and Exchange Commission or any other financial regulatory authority. No financial regulatory authority has reviewed or approved the use of the PiperX-developed open-source software. The Site and the PiperX-developed open-source software do not constitute advice or a recommendation concerning any commodity, security, or other Digital Asset or instrument. PiperX is not acting as an investment adviser or commodity trading adviser to any person or entity.
* PiperX does not own or control the underlying software protocols that are used in connection with the Services. In general, the underlying protocols are open source and anyone can use, copy, modify, and distribute them. PiperX is not responsible for the operation of the underlying protocols, and PiperX makes no guarantee of their functionality, security, or availability.
* TO THE MAXIMUM EXTENT PERMITTED UNDER APPLICABLE LAWS, YOU UNDERSTAND AND AGREE THAT THE SITE, THE PLATFORM AND THE SERVICES (AND ANY OF THEIR CONTENT OR FUNCTIONALITY) PROVIDED BY OR ON BEHALF OF US ARE PROVIDED ON AN “AS IS” AND “AS AVAILABLE” BASIS, AND WE EXPRESSLY DISCLAIM, AND YOU HEREBY WAIVE, ANY REPRESENTATIONS, CONDITIONS OR WARRANTIES OF ANY KIND, WHETHER EXPRESS OR IMPLIED, LEGAL, STATUTORY OR OTHERWISE, OR ARISING FROM STATUTE, OTHERWISE IN LAW, COURSE OF DEALING, OR USAGE OF TRADE, INCLUDING, WITHOUT LIMITATION, IMPLIED OR LEGAL WARRANTIES AND CONDITIONS OF MERCHANTABILITY, MERCHANTABLE QUALITY, QUALITY OR FITNESS FOR A PARTICULAR PURPOSE, TITLE, SECURITY, AVAILABILITY, RELIABILITY, ACCURACY, QUIET ENJOYMENT AND NON-INFRINGEMENT OF THIRD PARTY RIGHTS. WITHOUT LIMITING THE FOREGOING, WE DO NOT REPRESENT OR WARRANT THAT THE SITE, THE PLATFORM OR THE SERVICES (INCLUDING ANY DATA RELATING THERETO) WILL BE UNINTERRUPTED, AVAILABLE AT ANY PARTICULAR TIME, OR ERROR-FREE. FURTHER, WE DO NOT WARRANT THAT ERRORS IN THE SITE OR THE SERVICE ARE CORRECTABLE OR WILL BE CORRECTABLE.
* You acknowledge that your data on the Site or the Services may become irretrievably lost or corrupted or temporarily unavailable due to a variety of causes, and agree that, to the maximum extent permitted under Applicable Laws, we will not be liable for any loss or damage caused by denial-of-service attacks, software failures, viruses or other technologically harmful materials (including those which may infect your computer equipment), protocol changes by third-party providers, Internet outages, force majeure events or other disasters, scheduled or unscheduled maintenance, or other causes either within or outside our control.
* The disclaimer of implied warranties contained herein may not apply if and to the extent such warranties cannot be excluded or limited under the Applicable Law of the jurisdiction in which you reside.

Exclusion of Consequential Damages

* You acknowledge and agree that in no event shall the Indemnified Parties be liable for any incidental, indirect, special, punitive, consequential or similar damages or liabilities whatsoever (including, without limitation, damages for loss of fiat, assets, data, information, revenue, opportunities, use, goodwill, profits or other business or financial benefit) arising out of or in connection with the Site, the Platform, Company Content or the Services and any of their content and functionality, any execution or settlement of a transaction, any performance or non-performance of the Site, the Services, the Platform, your Digital Assets or any other product, service or other item provided by or on behalf of PiperX, whether under contract, tort (including negligence), civil liability, statute, strict liability, breach of warranties, or under any other theory of liability, and whether or not the Indemnified Parties have been advised of, knew of or should have known of the possibility of such damages and notwithstanding any failure of the essential purpose of these Terms or any limited remedy hereunder. In addition, you acknowledge and agree that PiperX shall not be in any way responsible for the execution or settlement of transactions between users of PiperX-developed open-source software.
* Limitation of Liability
* Under no circumstances will any Indemnified Party be responsible for any damage, loss or injury resulting from hacking, tampering or other unauthorized access or use of the Site, the Platform, the Services or the Company Content and other information contained therein. To the maximum extent permitted by Applicable Laws, we assume no liability or responsibility for any (i) errors, mistakes, or inaccuracies of content; (ii) personal injury or property damage, of any nature whatsoever, resulting from your access to or use of our Site, the Platform, Company Content or the Services; (iii) any unauthorized access to or use of our secure servers and/or any and all personal information stored therein; (iv) any interruption or cessation of transmission to or from the Site, the Platform or the Services; (v) any bugs, viruses, trojan horses, or the like that may be transmitted to or through our Site, the Platform, Company Content or the Services by any third party; (vi) any errors or omissions in any content or for any loss or damage incurred as a result of the use of any content posted, emailed, transmitted, or otherwise made available through the Site, the Platform or the Services; and/or (vii) Your Content or the defamatory, offensive, or illegal conduct of any third party You agree that if, notwithstanding the other provisions of these Terms, an Indemnified Party is found to be liable for any claim, demand, lawsuit, action, proceeding, investigation, liability, damage, loss, cost or expense, such Indemnified Party’s liability shall in no event exceed the amount of the fees paid by you to PiperX under these Terms, if any, in the one-month period immediately preceding the event giving rise to the claim for liability, if any.
* This limitation of liability section applies whether the alleged liability is based on contract, tort, negligence, strict liability, or any other basis, even if we have been advised of the possibility of such damage. The foregoing limitation of liability shall apply to the fullest extent permitted by Applicable Laws.
* Force Majeure

We will have no responsibility or liability for any failure or delay in performance of the Site, the Platform or any of the Services, or any loss or damage that you may incur, due to any circumstance or event beyond our control, including any (a) flood, extraordinary weather conditions, earthquake, or other act of God, (b) fire, (c) war, (d) insurrection, (e) riot, (f) labour dispute, (g) accident, (h) epidemic or pandemic, (i) action of government, (j) new laws or regulations or change in existing laws or regulations or the interpretation or enforcement of any of the foregoing, (k) communications, (l) power failure, (m) equipment or software unavailability, disruption or malfunction, (n) hacking or other attack on the Site, the Platform or the Services, (o) the unavailability, disruption or malfunction of any network or blockchains or (p) the unavailability, disruption or malfunction of the Internet.

* Survival

The following sections of these Terms will survive any termination of your access to the Site or the Services, regardless of the reasons for its expiration or termination, in addition to any other provision which by law or by its nature should survive: Sections 4 through 18.

* Governing Law

The interpretation and enforcement of these Terms, and any dispute related to these Terms, the Site or the Services, will be governed by and construed and enforced under the laws of Panama without regard to conflict of law rules or principles (whether of Panama or any other jurisdiction) that would cause the application of the laws of any other jurisdiction. You agree that we may initiate a proceeding related to the enforcement or validity of our intellectual property rights in any court having jurisdiction. For any other proceeding that is not subject to arbitration under these Terms, the courts located in Panama will have exclusive jurisdiction. You waive any objection to venue in any such courts.

* Dispute Resolution and Arbitration
* PLEASE READ THE FOLLOWING SECTION CAREFULLY BECAUSE IT REQUIRES YOU TO ARBITRATE CERTAIN DISPUTES AND CLAIMS WITH PiperX AND LIMITS HOW YOU CAN SEEK RELIEF FROM PiperX. ALSO, ARBITRATION PRECLUDES YOU FROM SUING IN COURT OR HAVING A JURY TRIAL.
* You and we agree that any dispute arising out of or related to these Terms, the Site or the Services is personal to you and us and that any dispute will be resolved solely through individual action, and will not be brought as a class arbitration, class action, or any other type of representative proceeding.
* Except for disputes in which you or we seek injunctive or other equitable relief for the alleged unlawful use of intellectual property, you and we waive all rights to a jury trial and to have any dispute arising out of or related to these Terms or the Services resolved in court. Instead, for any dispute or claim that you have against us or relating in any way to the Site or the Services, you agree to first contact us and attempt to resolve the claim informally by sending a written notice of your claim (“Notice”) to us by email at <contact@piperx.xyz>.\
  \
  The Notice must: (i) include your name, residence address, email address, and telephone number; (ii) describe the nature and basis of the claim; and (iii) set forth the specific relief sought. Our notice to you will be similar in form to that described above. If you and PiperX cannot reach an agreement to resolve the claim within thirty (30) days after such Notice is received, then either party may submit the dispute to binding arbitration administered by the Centro de Conciliación y Arbitraje de PanamáCentre (“CeCAP”) or, under the limited circumstances set forth above, in court. All disputes submitted to the CeCAP will be resolved through confidential, binding arbitration before one arbitrator (the “Arbitrator”). The place of arbitration shall be Panama unless the parties agree otherwise and shall be conducted under CeCAP’s Arbitration Regulation (the “CeCAP Rules”). The language to be used in the arbitral proceedings shall be English. The most recent version of the CeCAP Rules are available on the CeCAP website and are hereby incorporated by reference. You either acknowledge and agree that you have read and understand the CeCAP Rules or waive your opportunity to read the CeCAP Rules and waive any claim that the CeCAP Rules are unfair or should not apply for any reason.
* The Arbitrator will have exclusive authority to make all procedural and substantive decisions regarding any dispute and to grant any remedy that would otherwise be available in court, including the power to determine the question of arbitrability. The Arbitrator may conduct only an individual arbitration and may not consolidate more than one individual’s claims, preside over any type of class or representative proceeding or preside over any proceeding involving more than one individual.
* The Arbitrator, PiperX, and you will maintain the confidentiality of any arbitration proceedings, judgments and awards, including, but not limited to, all information gathered, prepared, and presented for purposes of the arbitration or related to the dispute(s) therein. The Arbitrator will have the authority to make appropriate rulings to safeguard confidentiality unless the law provides to the contrary. The duty of confidentiality does not apply to the extent that disclosure is necessary to prepare for or conduct the arbitration hearing on the merits, in connection with a court application for a preliminary remedy or in connection with a judicial challenge to an arbitration award or its enforcement, or to the extent that disclosure is otherwise required by law or judicial decision.
* You and PiperX agree that for any arbitration you initiate, you will pay the filing fee and all other CeCAP fees and costs. For any arbitration initiated by PiperX, PiperX will pay all CeCAP fees and costs. You and PiperX agree that the courts of Panama have exclusive jurisdiction over the enforcement of an arbitration award.
* Any claim arising out of or related to these Terms or the Services must be filed within one year after such claim arose; otherwise, the claim is permanently barred, which means that you and PiperX will not have the right to assert the claim.
* If any portion of this Section 16 is found to be unenforceable or unlawful for any reason: (i) the unenforceable or unlawful provision shall be severed from these Terms; (ii) severance of the unenforceable or unlawful provision shall have no impact whatsoever on the remainder of this Section 16 or the parties’ ability to compel arbitration of any remaining claims on an individual basis under this Section 16; and (iii) to the extent that any claims must therefore proceed on a class, collective, consolidated, or representative basis, such claims must be litigated in a civil court of competent jurisdiction and not in arbitration, and the parties agree that litigation of those claims shall be stayed pending the outcome of any individual claims in arbitration. Further, if any part of this Section 16 is found to prohibit an individual claim seeking injunctive relief, then that provision will have no effect to the extent such relief is allowed to be sought out of arbitration, and the remainder of this Section 16 will be enforceable.
* Amendments

We reserve the right, at our sole discretion, to amend these Terms from time to time. If we make changes, we will provide you with notice of such changes, which may include providing notice through the Services or updating the date at the top of these Terms. Unless we state otherwise in our notice, all such modifications are effective immediately, and your continued use of the Site and the Services after we provide that notice will confirm your acceptance of the changes. If you do not agree to the amended Terms, then you must stop using the Site and the Services.

General

* You acknowledge and agree that our privacy policy, which is available at [Privacy Policy](https://app.kodiak.finance/#/privacy), is incorporated herein by reference and forms part of these Terms.
* You consent to receive all communications, agreements, documents, receipts, notices, and disclosures electronically (collectively, our “Communications”) that we provide in connection with these Terms, the Site or any Services. You agree that we may provide our Communications to you by posting them on the Site or by emailing them to you at the email address you provide in connection with using the Services, if any.
* Any right or remedy of any Indemnified Party set forth in these Terms is in addition to, and not in lieu of, any other right or remedy whether described in these Terms or under Applicable Laws, whether at law or in equity. The failure or delay of such Indemnified Party in exercising any right, power, or privilege under these Terms shall not operate as a waiver thereof.
* The invalidity or unenforceability of any provision of these Terms shall not affect the validity or enforceability of any other provision of these Terms, all of which shall remain in full force and effect.
* You acknowledge and agree that we will have no responsibility or liability for any failure or delay in performance of the Site or any of the Services, or any loss or damage that you may incur, due to any circumstance or event beyond our control, including without limitation any flood, extraordinary weather conditions, earthquake, or other act of God, fire, war, insurrection, riot, labor dispute, accident, action of government, communications, power failure, or equipment or software malfunction.
* You agree that you may not assign or transfer any right to use the Site or the Services, or any of your rights or obligations under these Terms, without our express prior written consent, including by operation of law or in connection with any change of control, which may be withheld at our sole discretion. We may assign or transfer any or all of our rights or obligations under these Terms, in whole or in part, without notice or obtaining your consent or approval.
* Headings of sections are for convenience only and shall not be used to limit or construe such sections.
* These Terms contain the entire agreement between you and PiperX and supersede all prior and contemporaneous understandings between the parties regarding the Site and the Services.
* In the event of any conflict between these Terms and any other agreement you may have with us, these Terms will control unless the other agreement specifically identifies these Terms and declares that the other agreement supersedes these Terms.
* You agree that, except as otherwise expressly provided in this Agreement, there shall be no third-party beneficiaries to the Agreement other than the Indemnified Parties.

<br>


# What is PiperX

<figure><img src="/files/bWBigh85bHDf9GumfgK8" alt=""><figcaption></figcaption></figure>

Programmable-IP-er Exchange (**PiperX**) is the first and largest decentralized exchange on **Story L1**, the world’s **IP blockchain** for **$61T** IP asset&#x73;**.**&#x20;

As the **#1 dAPP** in user count and transaction volume, we offer the best liquidity layer for **IP-backed assets** like **memes**, **Real-World IP (RWIP)**, and **agents**. PiperX provide both standard(V2) and concentrated(V3) liquidity pools.&#x20;

Powering **native $IP tokens** and new assets, PiperX ensures **low slippage** and **fast transactions**, even during high traffic, with our **Fast-Swap Mode**. Earn rewards through our **Concentrated Liquidity AMM** and become a part of the **IP journey**.

{% hint style="info" %}
Want to learn more about Story's vision to onboard the $61T IP assets on chain? Read [their vision](https://www.story.foundation/blog)&#x20;
{% endhint %}

### **Why is PiperX the best DEX on Story？**

* **Unmatched Liquidity & Flexibility**: PiperX offers both **standard (V2)** and **concentrated (V3)** liquidity pools, ensuring the best liquidity solutions for diverse IP assets. Whether you're dealing with high-volume assets or long-tail IP, our liquidity options have you covered.
* **Low Slippage, Lightning-Speed Transactions**: With our **Fast-Swap Mode**, PiperX ensures lightning-fast transactions and negligible slippage—even during periods of peak traffic. No more waiting for trades to settle.
* **Rewarding Liquidity Providers**: By using our **Concentrated Liquidity AMM**, liquidity providers are rewarded for their contributions to the ecosystem, giving you an opportunity to earn while fueling the next big IP breakout.

<figure><img src="/files/BGLMLFpqEefmDcdilZDu" alt=""><figcaption></figcaption></figure>

### Who will benefit from PiperX's success?

* **IP Asset Owners (Creators, IP Companies, etc.)**: PiperX provides a liquid marketplace for your IP, allowing for direct monetization, greater visibility, and new ways to engage with investors and fans. No more slow licensing processes.
* **Investors (Crypto-Native & Non-Crypto Native)**: With access to a whole new asset class—IP-backed assets—you can diversify your portfolio and seek new investment opportunities that are more transparent, profitable, and exciting.
* **IP dApp Builders**: By integrating PiperX’s liquidity into your dApp, you can seamlessly launch and scale IP-driven projects. Whether you're building an IP-backed meme coin or a new gaming asset, we provide the foundation for success.

### What is problem PiperX solving?

In one word: "the liquidity problem of $61T IP assets". At its core, PiperX addresses the **liquidity problem** that has plagued the IP market for years. With a fragmented market, slow licensing processes, and limited liquidity, it’s been nearly impossible for creators and investors to engage with these valuable assets. But PiperX is changing the game.

### How is PiperX solving the liquidity problem for IP assets?

PiperX has three core products to solve liquidity problem for IP assets:

* **AMM with Concentrated Liquidity**: By offering concentrated liquidity pools, PiperX ensures efficient, low-slippage trading for both popular and niche IP assets, providing a seamless experience for creators, traders, and investors alike.
* **Creativity Incentive Engine**: We incentivize liquidity creation for IP assets by integrating **AI**, **IP-backed memes**, and **RWIP**, making the marketplace more vibrant and accessible. This ensures liquidity growth in areas traditionally underserved.
* **DaVinci – Agent-Native DeFi Infrastructure**: PiperX introduces the **first-ever agent-native DeFi infrastructure**, **DaVinci**, empowering agents to launch IP assets directly onto the platform, simplifying the process of managing and monetizing intellectual property.

**We’re More Than Just a DEX—We’re Part of the Story Ecosystem.** PiperX is proud to be fully integrated with Story’s ecosystem of partners, working together to make IP-backed assets a central part of the DeFi landscape. These collaborations enhance our platform’s reach and capabilities, creating new opportunities for users and making PiperX the most robust, trustworthy, and scalable IP exchange.

**The Future of IP Asset Trading Starts Here.** We’re just scratching the surface. PiperX is not only solving the liquidity problem for IP assets but is also building the most vibrant, engaged, and rewarding ecosystem in the blockchain space. Whether you’re a creator, investor, or developer, PiperX is the future of IP on the blockchain.

Join us as we create the next chapter in the story of decentralized finance, powered by IP.


# What is IPFi

{% hint style="info" %}
Want to learn more about IPFi? Read [A Way to 10x the IP Market: Why we need IPFi](https://medium.com/@piperxprotocol/a-way-to-10x-the-ip-market-why-we-need-ipfi-93b2e9a3eea3)
{% endhint %}

### PiperX aims to be the liquidity layer and complete IPFi platform. But what is IPFi?&#x20;

Below content are from Story's Head of DeFi I.P. Morgan:

What is IPFi? I’d like to start with the end, with what IPFi can unlock on Story in the long term. IP is already a multi-trillion asset class, and it is possible to make it even many times bigger by enabling higher transparency (cheaper to price), accessibility (ease of funding) and composability of IP assets (larger franchises than ever before). To increase the capacity for IP to create more financial value, many layers of financial infrastructure will be needed.

The end state of IPFi should therefore be able to support the creation, transaction and financialization of trillions of dollars of IP assets. Further down the road, IPFi must among other things.

• Be mature enough to facilitate capital formation of hundreds of millions of dollars for any individual mega-scale IP project, while providing clear attribution to each single party involved and easily track the numerous derivative IP • Facilitate deep liquidity and low-slippage trading of IP assets created by both individual small-time creators and leading global media franchises. New generation AMMs will be born on Story to bridge the liquidity fragmentation of distinct IP assets. • Enable IP as an institutional-grade asset class on par with Bitcoin, equities, debt and other financial derivatives, attracting institutional-scale capital to invest in IP.

These mechanisms must also be open and permissionless, in line with the Web3 ethos of decentralized and permissionless access, while respecting what IP creators define in their license terms on Story. This will allow not just established IP creators to participate in IPFi markets, but also up and coming IP builders. Who will be the next J. K. Rowling or George R. R. Martin?

To achieve this vision, Story IPFi will be built in steps, starting from the basic building blocks of core DeFi, which focuses on the existing trading, money markets, liquid staking and launchpad features common in DeFi. While these DeFi infrastructure may not uniquely serve IP, core DeFi infrastructure has been battle-tested and is flexible enough to meet many existing demands on IP financialization. Many existing IP projects and users will use these existing DeFi infrastructure, and existing token formats to capture value. Users will also still need to use existing DeFi infrastructure to leverage their capital for different IP financial plays. Many DeFi teams are already building these functionalities on Story and we expect this layer to be the first to go live on Story.

After core DeFi, we can build Structured IPFi infrastructure on top of it. These are the IPFi rails which will gradually tackle the trillions of IP assets yet to come onchain, or are for the first time coming onchain from web2. Structured IPFi refers to a more nuanced and purpose-specific financial infrastructure which serves more established IP projects with sophisticated needs. Some ideas here I've been thinking about are

a) can successful IP creators leverage their characters and franchises as collateral to expand their work with debt financing/CDPs, instead of having to sign their IP away to large distributors in web2?

b) can royalty-bearing, web2 IP be tokenized into RWAs onchain and provide entincing yield?

c) if individual IPs are highly risky and unpredictable, can retail investors access bundled opportunities to make IP investment safer and more predictable?

There are also some novel issues that do not have existing solutions within crypto or DeFi. For Experimental IPFi, there are exciting novel problems which can be solved by aspirational and creative builders. Some of these that come to mind are

a) how do we build an oracle to discover the price of royalty-bearing IP assets, given that their ongoing royalties mean that they're always financially valuable?

b) if Story is an open system which enables IP registrations by anyone, how do we enable financial mechanisms which promote authentic and valuable IP registrations, and deprioritize malicious or accidental bad registrations in a broad manner?

c) can we build a robust onchain arbitration/judicial system in which we can arbitrate IP disputes effectively and quickly without resorting to offchain legal settlement, incentivizing good disputes and penalizing malicious actors?

Many seasoned teams are already building solutions to tackle some of these new challenges and opportunities as we speak.

Additionally, we also need better infrastructure to support IPFi. In order to onboard and unlock trillions worth of IP assets onchain, some of these infrastructure need to be iterated on

• A better on/offramp suite of products which allows IP creators to operate onchain without needing to understand too much about blockchain technology

• Better price oracles for both web2 and web3 IP assets, such that web2 IPs can successfully assetize onchain and become composable with DeFi infrastructure

• Connections with web2-oriented distribution channels (e.g. Youtube, Netflix) for IP which meet where the existing users are

As Story opens up a vertical of permissionless IP Legos, I envision that there will be many new IP needs that can be solved via IPFi. The above questions only scratch the surface. I look forward to working with builders who are thinking about the above questions and more. Feel free to DM me if you are part of a team looking to build a protocol, or a builder looking to get started.


# DeFAI

Coming soon.


# User Guide One Pager

Welcome to **PiperX**, the **1st and largest DEX** backed by Story Foundation, consistently ranking **#1** in user count and transaction volume on Story Odyssey Testnet. Learn and trade **Native $IP Token**, the next big I**P-backed memes, RWIP, AI and agents**. More advanced features will be released soon!

**Key Features Guide**

* **Fast-Swap Mode**: Learn how to enjoy low slippage and fast transactions, even during high traffic.
* **Add Liquidity**: Learn how to add LP for native IP-stablecoin pools and other new assets' pools.
* **Farming Rewards**: Learn how to earn extra rewards with Concentrated Liquidity AMM.

Follow the guide to start enjoying the best trading experience on PiperX!

<table data-view="cards"><thead><tr><th></th><th data-type="content-ref"></th><th data-hidden data-card-target data-type="content-ref"></th><th data-hidden data-card-cover data-type="files"></th></tr></thead><tbody><tr><td></td><td><a href="/pages/s6DacYpWfXpsZ9jeN30p">/pages/s6DacYpWfXpsZ9jeN30p</a></td><td><a href="/pages/s6DacYpWfXpsZ9jeN30p">/pages/s6DacYpWfXpsZ9jeN30p</a></td><td><a href="/files/mfBrkIuXysFhMoxtEbgB">/files/mfBrkIuXysFhMoxtEbgB</a></td></tr><tr><td></td><td><a href="/pages/YWAXUJpqf7skOV9oLGCb">/pages/YWAXUJpqf7skOV9oLGCb</a></td><td><a href="/pages/YWAXUJpqf7skOV9oLGCb">/pages/YWAXUJpqf7skOV9oLGCb</a></td><td><a href="/files/CFTY4uLvzUAlZ2Ba4P7x">/files/CFTY4uLvzUAlZ2Ba4P7x</a></td></tr><tr><td></td><td><a href="/pages/5V3v8sk1Z3Er9crzIfDK">/pages/5V3v8sk1Z3Er9crzIfDK</a></td><td><a href="/pages/5V3v8sk1Z3Er9crzIfDK">/pages/5V3v8sk1Z3Er9crzIfDK</a></td><td><a href="/files/2InROLsENUnMZVRDNUkR">/files/2InROLsENUnMZVRDNUkR</a></td></tr><tr><td></td><td><a href="/pages/PzgOJ1udKKkEVQmOEu7t">/pages/PzgOJ1udKKkEVQmOEu7t</a></td><td><a href="/pages/PzgOJ1udKKkEVQmOEu7t">/pages/PzgOJ1udKKkEVQmOEu7t</a></td><td><a href="/files/xYpuTMSnp9X7qnwK7qT0">/files/xYpuTMSnp9X7qnwK7qT0</a></td></tr><tr><td></td><td><a href="/pages/JLXhWTE1I9h16zTam2Dl">/pages/JLXhWTE1I9h16zTam2Dl</a></td><td><a href="/pages/JLXhWTE1I9h16zTam2Dl">/pages/JLXhWTE1I9h16zTam2Dl</a></td><td><a href="/files/K5n1j9JN7YADNK3qZnep">/files/K5n1j9JN7YADNK3qZnep</a></td></tr><tr><td></td><td><a href="/pages/kog2KKRAlpu1mfwoSQk5">/pages/kog2KKRAlpu1mfwoSQk5</a></td><td><a href="/pages/kog2KKRAlpu1mfwoSQk5">/pages/kog2KKRAlpu1mfwoSQk5</a></td><td><a href="/files/bsGYtGXPbiij5mKhI8Vo">/files/bsGYtGXPbiij5mKhI8Vo</a></td></tr></tbody></table>

#### 🔒 Important Safety Reminder

Before performing any swap or transaction on PiperX:

1. **Check your wallet network carefully**
   * PiperX is deployed on **Story mainnet**.
   * Ensure your wallet (MetaMask or other) is set to **Story network**, not Ethereum mainnet or any other network.
2. **Verify contract addresses**
   * Only interact with official PiperX contracts listed in our docs.
3. **Double-check transaction details**
   * Amounts, token symbols, and network before confirming.
4. **Be cautious of external links or messages**
   * Only follow instructions from PiperX official channels.


# How to Bridge

## 🪄 How to Bridge Assets to the Story Layer 1 Chain

Whether you're entering the Story ecosystem for the first time or need $IP to interact with dApps like PiperX, this guide walks you through **how to bridge ETH or USDC from other chains to Story**.

***

### ✅ Option 1: Use **Debridge**

**Best for bridging + swapping into $IP in one step**

Debridge supports **direct bridging** from Ethereum and other chains into **Story**, and even lets you **receive $IP directly** (Story’s gas/token utility).

#### 🔧 Steps:

1. Go to **app.debridge.finance**
2. Connect your Web3 wallet (e.g., MetaMask)
3. Choose:
   * **From Chain:** Ethereum
   * **Asset:** ETH or USDC
   * **To Chain:** Story
   * **Target Asset on Story:**

     * ✅ Option 1: **WETH** or **USDC.e**
     * ✅ Option 2 (Recommended): **Directly into $IP**

     <figure><img src="/files/CPQGxS6w2pTH4q2WYPHQ" alt=""><figcaption></figcaption></figure>
4. Give permission and Confirm the transaction and wait for bridging to complete.

   <figure><img src="/files/OGqex8ZVI8vocWsJ6Oza" alt=""><figcaption></figcaption></figure>
5. If you received $IP, you’re ready to interact with any Story-based dApp!

### ✅ Option 2: Use **Stargate**

**Best for simple bridging (swap to $IP separately)**

Stargate supports bridging to Story, but requires a follow-up swap to get $IP.

#### 🔧 Steps:

1. Visit [**stargate.finance/bridge**](https://stargate.finance/bridge)
2. Connect your wallet
3. Bridge assets:

   * **From Chain:** Ethereum
   * **Asset:** ETH or USDC
   * **To Chain:** Story
   * **Target Asset:** WETH or USDC.e
   * 💡 *Enable “Apply Gas on Destination” to receive $IP for gas fees!*

   <figure><img src="/files/0aXOvA5eiwq50qFEsazE" alt=""><figcaption></figcaption></figure>
4. Once assets arrive on Story, go to [**PiperX**](https://app.piperx.xyz)
5. **Swap your WETH or USDC.e → $IP**

   <figure><img src="/files/ChrXG5I4dSTsOFvZGIY7" alt=""><figcaption></figcaption></figure>

Now you're ready to use any dApp on Story Chain.


# How to Swap

1\. Visit [**https://app.piperx.xyz/**](https://app.piperx.xyz/) and click the "Connect Wallet" button. We support various wallets, including **MetaMask, OKX Wallet, Binance Wallet**, WalletConnect, and more. Please be very cautious if you're using a wallet not listed here. **Always double-check your wallet is set to the Story network before confirming any PiperX transaction.**

<figure><img src="/files/CeZHBSuHjA3Dfonpp9My" alt=""><figcaption><p>Wallet Option</p></figcaption></figure>

2. Choose your target asset and Enter the amount.

<figure><img src="/files/pTi0CnB3deo5ZENvaC6a" alt=""><figcaption><p>Swap Page</p></figcaption></figure>

<div align="center"><figure><img src="/files/QlBAzujUxjDJpPGZsHdJ" alt="" width="271"><figcaption><p>Select Token Page</p></figcaption></figure></div>

3. Set your **Slippage tolerance** and **Deadline** for this trade. In this example, we will use a 3% slippage tolerance and 5 min dealine.

<figure><img src="/files/kpzL4weGKvXYr4AXAEWA" alt="" width="563"><figcaption><p>Swap Setting</p></figcaption></figure>

4. After everything is set up, review information and click "Submit" button to proceed with this transaction and you will receive your target asset in a few seconds.

<figure><img src="/files/MwOTbQPrm3t8nPg0ZJJn" alt="" width="563"><figcaption><p>Review info and Click "Submit" if everything is good.</p></figcaption></figure>

<figure><img src="/files/t7SnGUfYmrFGzmAiQfep" alt="" width="375"><figcaption><p>Swap Progress</p></figcaption></figure>

<figure><img src="/files/e0gBxAQcj81xpUG6eaZR" alt="" width="375"><figcaption><p>Successful Swap</p></figcaption></figure>


# How to Add Liquidity

PiperX provide both Concentrated Liquidity Pool(V3) and Standard Liquidity Pool(V2).

{% hint style="info" %}
Providing liquidity on a DEX creates **impermanent loss risk**. If you do not understand how this affects liquidity positions, make sure you educate yourself on this first.
{% endhint %}

1. **Select "Pools" in navigation menu** to check out all the listed trading pools on PiperX and choose the pools that you want to provide liquidity. Or Select "**Liquidity**" in navigation menu to directly add liquidity.

<figure><img src="/files/pN2IKoVBHhQ5gvm1r19e" alt=""><figcaption><p>All Liquidity</p></figcaption></figure>

<figure><img src="/files/f3aNlr4pPNPlOsW3WrZx" alt=""><figcaption><p>Concentrated Liquidity Pool(V3)</p></figcaption></figure>

<figure><img src="/files/T72N7I6rPBkIHZywcbnG" alt=""><figcaption><p>Standard Liquidity Pool(V2)</p></figcaption></figure>

2. **Enter the amount of assets** on any side of the target liquidity pool.&#x20;

Below is an example of adding liquidity in concentrated liquidity pools(V3).

<figure><img src="/files/wwl401XyEm6VNcupifxj" alt=""><figcaption><p>Add Liquidity in Concentrated Liquidity Pool(V3)</p></figcaption></figure>

**Set the price range** for the position using the sliders on the graph, manually entering the min price and max price, or clicking the + and - buttons.

* **Narrow Range**: Higher rewards if the price stays within this range, but fewer active liquidity opportunities outside the range.
* **Wide Range**: Provides stability, but may earn fewer rewards as liquidity is spread over a broader price range.

<figure><img src="/files/BlSUUTRyhlCvV2JG8xie" alt="" width="563"><figcaption><p><strong>Set the price range in</strong> Concentrated Liquidity Pool(V3)</p></figcaption></figure>

Besides Concentrated Liquidity Pool(V3), we also provide options to add liquidity on Standard Liquidity Pool(V2).

<figure><img src="/files/pwRQUSB7xCy8SSLadfCy" alt="" width="563"><figcaption><p>Add Liquidity in Standard Liquidity Pool(V2)</p></figcaption></figure>

3. After you successfully added the liquidity to the target pool, you will see "Success" notification.

<figure><img src="/files/fTRUUJhdXLGGjoqEvnFe" alt="" width="375"><figcaption><p>Add Liquidity Progress</p></figcaption></figure>

<figure><img src="/files/zwFfzZuXOVXE3gDNbczp" alt="" width="357"><figcaption><p>Add Liquidity Success</p></figcaption></figure>

4. You will see and manage your position under "Position tab"

<figure><img src="/files/FtvjGZGuJzhRBM0BtJcM" alt=""><figcaption></figcaption></figure>


# How to Claim LP Rewards

1. To claim LP rewards or manage a position, click '**Position**' in the navigation menu and click "**Claim**" for LP rewards.

<figure><img src="/files/gLgGctOB8oOzo7nsWQJN" alt=""><figcaption></figcaption></figure>

2. After you successfully claim LP rewards to the target pool, you will see "Success" notification.

<figure><img src="/files/kANTqYuhkArepqkXchON" alt="" width="545"><figcaption><p>Claim LP Rewards Progress</p></figcaption></figure>

<figure><img src="/files/h1cTU9aDNsnGXuIrDfaZ" alt="" width="500"><figcaption><p>Claim LP Rewards Success</p></figcaption></figure>


# How to Create a New Pool

The process of **creating a new pool** is very similar to **adding liquidity** to an existing pool (**Link**: [Add Liquidity Guide with Screenshot](https://app.gitbook.com/o/1LvRO01dCbtMHcRqpINj/s/CsAm8Yo8Gt4vdHmhcg9b/~/changes/27/user-guide/how-to-add-liquidity)). The key difference is that when you create a new pool, you are providing liquidity for a pool that has never existed before.&#x20;

In this guide we use an example of creating a new pool in **concentrated liquidity pools(V3).**

1. Select "**Liquidity**" in navigation menu and select "Concentrated" liquidity pools.&#x20;

<figure><img src="/files/DBD1CAY73Sqnvmu1UJMg" alt=""><figcaption><p>Navigate to create a pool</p></figcaption></figure>

2. When creating a new pool, please specify the **token pair** you would like to set up.&#x20;

<figure><img src="/files/wvCUDr4fgMoDllhOWpWd" alt=""><figcaption><p>Choose token pairs</p></figcaption></figure>

3. Select a **fee tier** for the pool you are going to create. There are 3 tiers that are supported now, which are 0.05%, 0.3% and 1% respectively. For most non-stable trading pairs, 0.3% is always the most adopted fee tier. For a relatively rare asset that is rarely traded, 1% can be selected to give enough motivation to LPs. 0.01% and 0.05% are usually used for stable trading pairs. Please select a suitable fee tier for your pool if you want the pool you created to be utilized by more transactions.

<figure><img src="/files/b84caAHpummZLPFf1ZKj" alt=""><figcaption></figcaption></figure>

4. Set an **initial price** for the pool. Please specify a reasonable starting price, otherwise you may need to bear excessive impermanent loss. Besides, you need to set **a price range** which you want to allocate your initial liquidity into. The initial price must be within the range you selected.
   1. **Narrow Range**: Higher rewards if the price stays within this range, but fewer active liquidity opportunities outside the range.
   2. **Wide Range**: Provides stability, but may earn fewer rewards as liquidity is spread over a broader price range.

<figure><img src="/files/XeX6GAum9C59aVKhkd4f" alt=""><figcaption></figcaption></figure>

4. **Enter the amount of tokens** on any side of the target liquidity pool. After setting all basic parameters, you need to enter the liquidity amount you want to provide to the pool as initial liquidity. Just input the amount for one of the tokens, the amount for the other one will be automatically calculated according to the starting price and the price range you select.

<figure><img src="/files/k0SGNIssHe7HyKTmm88Y" alt=""><figcaption></figcaption></figure>

6. You’ve entered all needed parameters, you can submit to create the pool and approve your wallet to add initial liquidity. You’ll get your position NFT after your liquidity is successfully added.

<figure><img src="/files/gA3l9pn0njQAwBI3hsqJ" alt="" width="444"><figcaption></figcaption></figure>

<figure><img src="/files/2KeJv07uW0N6jQ1x5lm3" alt="" width="463"><figcaption></figcaption></figure>


# How to Remove Liquidity

1. **Navigate to Your Position:** Go to the "Position" section in the PiperX interface to view all your active liquidity positions.
2. **Click on the "-" Button:** For the position from which you wish to remove liquidity, click on the "-" button next to the position.&#x20;

<figure><img src="/files/C7kpTNXpqvu6teuTWrHV" alt=""><figcaption></figcaption></figure>

3. **Adjust Liquidity Removal Percentage:** Use the slider to select the percentage of liquidity you want to remove. You can adjust it to your desired amount.

<figure><img src="/files/mwW4sZM8I0yEIv9LnOqT" alt=""><figcaption></figcaption></figure>

4. **Confirm the Removal:** Once you've selected the amount, confirm "**Decrease**" button, and the liquidity will be removed from your position.

<figure><img src="/files/uEplplpYTSfjnIPel6Bl" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/r3P6lceeJTY6jzSrWaLA" alt="" width="301"><figcaption></figcaption></figure>

<figure><img src="/files/9qoGi0x2MdBGc7xowTBY" alt="" width="310"><figcaption></figcaption></figure>


# How to Farm

PiperX provides farms for both concentrated and standard liquidity pools. In this guide, we use **concentrated liquidity farming**(similar to Uniswap V3) as an example.&#x20;

{% hint style="info" %}
All numbers in the screenshot are **example values from Devnet** – just for user guide!\
⚠️**Always do your own research** before farming! Providing liquidity on a DEX can expose you to **impermanent loss risk**.&#x20;
{% endhint %}

1. **Providing Liquidity to Pools offering Farming Rewards**

* Navigate to the '**Pool**' Section and click "**Farms Only**" to See Farming Pools

<figure><img src="/files/P6rHAN6zpFs5285DmXHn" alt=""><figcaption></figcaption></figure>

* Providing Liquidity into a Concentrated Liquidity Pool(V3) based on your chosen price range. In return, you'll receive **NFT-based LP tokens** that represent your unique liquidity position within the set price range. (**Link**: [Add Liquidity Guide with Screenshot](https://app.gitbook.com/o/1LvRO01dCbtMHcRqpINj/s/CsAm8Yo8Gt4vdHmhcg9b/~/changes/27/user-guide/how-to-add-liquidity))

<figure><img src="/files/8rNShFduRPWbsuNd7Blw" alt=""><figcaption></figcaption></figure>

2. **Staking Your LP Tokens for Extra APR  for a Concentrated Liquidity Pool(V3)**

* **Navigate to the 'Position' Tab:** After providing liquidity, go to the ‘Position’ tab where you’ll see your liquidity positions listed.
* **Click 'Stake' on Your  LP Token:** Find your position and click on the ‘Stake’ button next to it. Staking your LP token locks it into the platform, allowing you to earn additional APR rewards on top of the fees generated within your price range.

<figure><img src="/files/HGHTMJnUAlZ9NgNLNclW" alt=""><figcaption></figcaption></figure>

* **Confirm the Stake:** Select the LP token to stake, confirm the amount, and complete the staking transaction. By staking your LP token (NFT), you’ll start earning additional rewards, such as $IP or other farming incentives.

<figure><img src="/files/GgpY1TKRMKNaRmaFpBF3" alt="" width="366"><figcaption></figcaption></figure>

<figure><img src="/files/8DidrOGhSG8gNikfmRVC" alt="" width="369"><figcaption></figcaption></figure>

#### **3. Claim/Monitor Your Rewards**

* **Track Your Earnings:** As your LP token is staked, you will earn rewards from trading fees and the extra APR. You can track this in real-time under "Staked Concentrated/Standard" tab via the ‘Position’ tab. (Please note after you stake LP tokens, your position will move from "Concentrated/Standard" tab to "Staked Concentrated/Standard" tab.)

<figure><img src="/files/dBXpylM33SQxGBcEYENS" alt=""><figcaption></figcaption></figure>

* **Monitor Fees:** Keep an eye on the fees generated by your position, which depend on the trades within your selected price range.

<figure><img src="/files/wIudEwzo9WPo7ZHBhtLR" alt=""><figcaption></figcaption></figure>

* **Claim Rewards:** If you wish to claim the rewards earned, you can do so at any time from the ‘Position’ section by clicking harvest.

<figure><img src="/files/wRBCbljZmlp9Mrvwe6xm" alt=""><figcaption></figcaption></figure>

#### **4. Withdrawing or Adjusting Your Position**

1. **Unstake Your LP Token:** If you want to withdraw your LP token, go to the ‘Position’ tab and click ‘Unstake’. This action will allow you to remove your liquidity from the pool.

<figure><img src="/files/tKt8GelnDupdOdgyyKCY" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/6bt0DQsSN6DNKiZPkVHA" alt="" width="304"><figcaption></figcaption></figure>

<figure><img src="/files/k2bT4rImNOi4YLhDBaJA" alt="" width="302"><figcaption></figcaption></figure>

1. **Adjust Your Position:** You can also change your price range or add more liquidity to a different position by withdrawing and reinvesting your assets.


# Smart Contracts

<table data-view="cards"><thead><tr><th></th><th data-hidden data-card-target data-type="content-ref"></th><th data-hidden data-card-cover data-type="files"></th></tr></thead><tbody><tr><td>MAINNET CONTRACTS</td><td><a href="/pages/b0XrIf7y5b6kjSm0GvAh">/pages/b0XrIf7y5b6kjSm0GvAh</a></td><td><a href="/files/6jnNbDawksN6FaivTbsM">/files/6jnNbDawksN6FaivTbsM</a></td></tr><tr><td>AENEID CONTRACTS</td><td><a href="/pages/0zoHYdOSlm4XxWCyDJaJ">/pages/0zoHYdOSlm4XxWCyDJaJ</a></td><td><a href="/files/uepD4M1dE44SiEQWft69">/files/uepD4M1dE44SiEQWft69</a></td></tr></tbody></table>


# Mainnet

## Deployed Contract Address (Mainnet and Aeneid)&#x20;

Please find the deployed contract address on Story Mainnet and Aeneid below

<table><thead><tr><th width="224">Contract</th><th>Address</th></tr></thead><tbody><tr><td>PiperX V2 Factory</td><td>0x6D3e2f58954bf4E1d0C4bA26a85a1b49b2e244C6</td></tr><tr><td>PiperX V2 Router</td><td>0x674eFAa8C50cBEF923ECe625d3c276B7Bb1c16fB</td></tr><tr><td>Wrapper IP token</td><td>0x1514000000000000000000000000000000000000</td></tr><tr><td>PiperX V3 Factory</td><td>0xb8c21e89983B5EcCD841846eA294c4c8a89718f1</td></tr><tr><td>PiperX V3 Swap Router</td><td>0x8295c195CEe31404ea082d253a140310b9a0A37e</td></tr><tr><td>PiperX V3 Position Manager</td><td>0x700722D24f9256Be288f56449E8AB1D27C4a70ca</td></tr><tr><td>PiperX V3 Swap Quoter (Mainnet)</td><td>0xe8CabF9d1FFB6CE23cF0a86641849543ec7BD7d5</td></tr><tr><td>PiperX Aggregator </td><td>0xf706FCb6C1E580B5070fAB19e8C1b44f095b3640</td></tr></tbody></table>


# Aeneid

## Deployed Contract Address (Aeneid)&#x20;

Please find the deployed contract address on Story Odyssey below, note that they are subjected to change in the new testnet/mainnet waves

<table><thead><tr><th width="224">Contract</th><th>Address</th></tr></thead><tbody><tr><td>PiperX V2 Factory</td><td>0x6D3e2f58954bf4E1d0C4bA26a85a1b49b2e244C6</td></tr><tr><td>PiperX V2 Router</td><td>0x674eFAa8C50cBEF923ECe625d3c276B7Bb1c16fB</td></tr><tr><td>Wrapper IP token</td><td>0x1514000000000000000000000000000000000000</td></tr><tr><td>PiperX V3 Factory</td><td>0xb8c21e89983B5EcCD841846eA294c4c8a89718f1</td></tr><tr><td>PiperX V3 Swap Router</td><td>0x8295c195CEe31404ea082d253a140310b9a0A37e</td></tr><tr><td>PiperX V3 Position Manager</td><td>0x700722D24f9256Be288f56449E8AB1D27C4a70ca</td></tr><tr><td>PiperX V3 Swap Quoter (Aeneid)</td><td>0x8812d810EA7CC4e1c3FB45cef19D6a7ECBf2D85D</td></tr></tbody></table>


# Integrations (Smart Contracts)

## Installation

The following section of the doc illustrate how to integrate with PiperX V2 and V3 smart contracts in your app using TypeScript. Please make sure you have ethers and piperx sdk installed.


# Create Pool


# Integrations (TypeScript)

## Installation

The following section of the doc illustrate how to integrate with PiperX V2 and V3 smart contracts in your app using TypeScript. Please make sure you have `ethers` library installed.

```
npm install ethers
```

## Wallet Integration

In all the following SDK examples, it require user to use a wallet provider library to interact with blockchain. We use ethers library as example, but you could get signer from other wallet providers.

```javascript
import { ethers } from 'ethers'
export const signer = new ethers.Wallet(privateKey, provider)
```


# Swap

## Integrating Swap to website

Integrating the PiperX Aggregator swap functionality to your website makes it easy for you to leverge the liquidity from PiperX without the needs of maintain your own pools. Some example applications including swapping staked $IP tokens to $IP tokens on the LSD website, allow users to buy NFT with stable coins (auto swap stable coins to $IP) on the NFT marketplace.&#x20;

### Steps to Integration

There are three steps in conducting a swap: 1) prepare input, 2) approve tokens, 3) conduct swap. You need to install PiperX sdk and import it to proceed.

#### 0. Prepare Input

You need the following inputs before you can conduct a swap

```typescript
token1_address: address, // if it is $IP native token, use WIP_ADDRESS
token2_address: address, // if it is $IP native token, use WIP_ADDRESS
amount1: bigint, // amount of token 1 you want to give
amount2Min: bigint, // minimal number of token 2 you want to receive
expire_time: bigint// expiration timestamp for a swap
signer: ethers.Signer. //
```

Note that, if you are swapping $IP token, you should pass in the PiperX wrapped $IP token address, because the $IP token is not a ERC-20 token. For example, if you are swapping from staked $IP token to $IP token, please use wrapped $IP address `WIP_ADDRESS`

#### 1. Finding the best swap path

Depends on the swaps that you plan to do, we will use a universal router to find the best swap path, either through standard (V2) or concentrated (V3) path.

```typescript
const res = await fetch(`https://piperxdb.piperxprotocol.workers.dev/api/swap/swapExactToken?tokenIn=${tokenIn}&tokenOut=${tokenOut}&amount=${amount}&type=exactInput&isAggregator=true`);
const { universalRoutes, num } = await res.json();
```

#### 2. Approve tokens

Before performing a swap, you must approve the Aggregator contract to spend your input token. The approval is required regardless of which route (V2 or V3) is selected by the Aggregator.

```javascript
const AGGREGATOR_ADDRESS = "0xf706FCb6C1E580B5070fAB19e8C1b44f095b3640"

export const approveForAggregator = async (
  token: string,
  amount: bigint,
  signer: ethers.Signer
) => {
  try {
    const tokenContract = new ethers.Contract(token, erc20_abi, signer);
    const tx = await tokenContract.approve(AGGREGATOR_ADDRESS, amount);
    return await tx.wait();
  } catch (e) {
    console.error("approveForAggregator failed", e);
    throw e;
  }
}
```

#### 3. conduct swap

{% file src="/files/f9SuIgvvJPv9nZOD8rjI" %}

All swaps are now executed through the Aggregator contract, which handles both V2 and V3 routes automatically. You can use the following function to perform the swap using the prepared universalRoutes. Please export the aggregator\_abi from the attached `aggregator_abi.ts` file

```typescript
export const swapViaAggregator = async (
  universalRoutes: any[],
  signer: ethers.Signer
) => {
  try {
    const aggregatorContract = new ethers.Contract(AGGREGATOR_ADDRESS, aggregator_abi, signer);
    const tx = await aggregatorContract.executeMultiPath(universalRoutes);
    return await tx.wait();
  } catch (e) {
    console.error("swapViaAggregator failed", e);
    throw e;
  }
}

```


# SDKs

{% hint style="info" %}

## This is SDKs for Odyssey(Story Final Testnet)

{% endhint %}

## Installation

The PiperX SDK is a powerful toolkit for integrating the best liquidity layer on Story Network into your applications. To start using the PiperX SDK, you can easily download the npm package by running the command

`npm i @piperx/sdk`&#x20;

## Deployed Contract Address&#x20;

Please find the deployed contract address below, note that they are subjected to change in the new testnet waves

<table><thead><tr><th width="224">Contract</th><th>Address</th></tr></thead><tbody><tr><td>PiperX V2 Factory</td><td>0x700722D24f9256Be288f56449E8AB1D27C4a70ca</td></tr><tr><td>PiperX V2 Router</td><td>0x8812d810EA7CC4e1c3FB45cef19D6a7ECBf2D85D</td></tr><tr><td>Wrapper IP token</td><td>0xe8CabF9d1FFB6CE23cF0a86641849543ec7BD7d5</td></tr><tr><td>PiperX V3 Factory</td><td>0xf3d448d7A83F749695c49d8411247fC3868fB633</td></tr><tr><td>PiperX V3 Swap Router</td><td>0xbBb8B63596d5447a12Ddee557ac9fA326f42B57D</td></tr><tr><td>PiperX V3 Position Manager</td><td>0xf03c65d9be145746f800E2781eD140F6dd238F38</td></tr></tbody></table>

## Wallet Integration

In all the following SDK examples, it require user to use a wallet provider library to interact with blockchain. We use ethers library as example, but you could get signer from other wallet providers.

```javascript
import { ethers } from 'ethers'
export const signer = new ethers.Wallet(privateKey, provider)
```


# Swap

This page illustrate how to integrate PiperX swap functionality to your Dapps and website.

## Integrating Swap to website

Integrating the PiperX swap functionality to your website makes it easy for you to leverge the liquidity from PiperX without the needs of maintain your own pools. Some example applications including swapping staked $IP tokens to $IP tokens on the LSD website, allow users to buy NFT with stable coins (auto swap stable coins to $IP) on the NFT marketplace.&#x20;

### Steps to Integration

There are three steps in conducting a swap: 1) prepare input, 2) approve tokens, 3) conduct swap. You need to install PiperX sdk and import it to proceed.

```typescript
import { routingExactInput } from '@piperx/sdk/src/routing'
import { swap, routerTokenApproval } from '@piperx/sdk/src/core'
import { WIP_ADDRESS } from '@piperx/sdk/src/constant'
```

#### Prepare Input

You need the following inputs before you can conduct a swap

```typescript
token1_address: address, // if it is $IP native token, use WIP_ADDRESS
token2_address: address, // if it is $IP native token, use WIP_ADDRESS
amount1: bigint, // amount of token 1 you want to give
amount2Min: bigint, // minimal number of token 2 you want to receive
expire_time: bigint// expiration timestamp for a swap
signer: ethers.Signer. //
```

Note that, if you are swapping $IP token, you should pass in the PiperX wrapped $IP token address, because the $IP token is not a ERC-20 token. For example, if you are swapping from staked $IP token to $IP token, please use wrapped $IP address `WIP_ADDRESS`

#### Finding the best swap path

Depends on the swaps that you plan to do, we will use a universal router to find the best swap path, either through standard (V2) or concentrated (V3) path.

```typescript
let {bestRoute, max} = routingExactInput(token1_address, token2_address, amount1, signer)
```

#### Approve tokens

Then you need to approve the router to use your token before swap

```typescript
await routerTokenApproval(token1_address, amount1, bestRoute, signer)
```

#### Conduct swap

Depends on the swaps that you plan to do, we will call different functions from the PiperX V2 or V3 contract. One could use the follow universal swap API to deal with different swap cases.

```typescript
await swap(amount1, amount2Min, path, expire_time, signer)
```


# Create Pool

This page illustrate how to integrate PiperX create pool functionality to your Dapps and website.

## Integrating Create pool to website

Integrating the PiperX swap functionality to your website makes it easy for you to leverge the liquidity from PiperX without the needs of maintain your own pools. Some example applications includes memecoin launchpads want to automatically creating pools on PiperX. Note that this is only creating the pool on blockchain. To make your pool visible in the PiperX frontend website, please contact the team to get it listed. &#x20;

## Pool Type

There are two different pool types on PiperX, standard (V2) pool and concentrated liquidity (V3) pool. In short, standard pool is more suitable to tokens that expect to have high price votality such as memecoins, and concentrated liquidity pool is more suitable to tokens that expected to low price votality, such as stable coins.&#x20;

Here is a table about two pools

| Pool Type        | Standard Pool              | Concentrated Liquidity             |
| ---------------- | -------------------------- | ---------------------------------- |
| Price volatility | High                       | Low                                |
| Example pools    | Meme coins (chillguy - IP) | Stable coins (USDT - USDC)         |
| Earn fees        | Medium                     | High when your liquidity is active |

Please find how to create the two types of pools in following sections.


# Standard Pool

### Steps to Integration

There are three steps in conducting a create pool: 1) prepare input, 2) approve tokens, 3) conduct create pool. You need to install PiperX sdk and import it to proceed.

```javascript
import { v2AddLiquidity, v2RouterTokenApproval, } from '@piperx/sdk/src/core'
import { WIP_ADDRESS } from '@piperx/sdk/src/constant'
```

#### Prepare Input

You need the following inputs before you can create a pool&#x20;

```typescript
token1_address: address, // if it is $IP native token, use WIP_ADDRESS
token2_address: address, // if it is $IP native token, use WIP_ADDRESS
amount1: bigint, // amount of token 1 you want to deposit to the pool
amount2: bigint, // amount of token 2 you want to deposit to the pool
amount1Min: bigint, // minimal amount of token 1 you want to deposit to the pool
amount2Min: bigint, // minmial amount of token 2 you want to deposit to the pool
expire_time: bigint// expiration timestamp for a swap
signer: ethers.Signer
```

Note that, if you are creating pool with $IP token, you should pass in the PiperX wrapped $IP token address, because the $IP token is not a ERC-20 token. For example, if you are create  $IP to $USDC pool, please use wrapped $IP address `WIP_ADDRESS`

#### Approve tokens

You need to approve the router contract to both your tokens to create this pool

```typescript
await v2RouterTokenApproval(token1_address, amount1, signer)
await v2RouterTokenApproval(token2_address, amount2, signer)
```

#### Creating the pool

```typescript
await v2AddLiquidity(
    token1: string,
    token2: string,
    amount1: bigint,
    amount2: bigint,
    amount1Min: bigint,
    amount2Min: bigint,
    expire_time: bigint,
    signer: ethers.Signer
)
```


# Concentrated Pool

### Steps to Integration

There are three steps in conducting a create pool: 1) prepare input, 2) approve tokens, 3) conduct create pool. You need to install PiperX sdk and import it to proceed.

```javascript
import { v3AddLiquidity, v3PositionManagerTokenApproval, v3CreatePool } from '@piperx/sdk/src/core'
import { WIP_ADDRESS } from '@piperx/sdk/src/constant'
```

#### Prepare Input

You need the following inputs before you can create a pool&#x20;

<pre class="language-typescript"><code class="lang-typescript">token1_address: address, // if it is $IP native token, use WIP_ADDRESS
token2_address: address, // if it is $IP native token, use WIP_ADDRESS
amount1: bigint, // amount of token 1 you want to deposit to the pool
amount2: bigint, // amount of token 2 you want to deposit to the pool
amount1Min: bigint, // minimal amount of token 1 you want to deposit to the pool
<strong>amount2Min: bigint, // minmial amount of token 2 you want to deposit to the pool
</strong>initital_price: bigint, 
// initial price for token2 / token1, 
// note that, this is purely token2 amount / token1 amount, so you have to
// convert the decimal beforehand.
tickLower: number, // define the lower range of your liquidity provision priceLower = 1.0001^tickLower
tickUpper: number, // define the upper range of your liquidity provision priceUpper = 1.0001^tickUpper
expire_time: bigint// expiration timestamp for creating the pool
signer: ethers.Signer
</code></pre>

Note that, if you are creating pool with $IP token, you should pass in the PiperX wrapped $IP token address, because the $IP token is not a ERC-20 token. For example, if you are create  $IP to $USDC pool, please use wrapped $IP address `WIP_ADDRESS`

#### Approve tokens

You need to approve the router contract to both your tokens to create this pool

```typescript
await v3PositionManagerTokenApproval(token1_address, amount1, signer)
await v3PositionManagerTokenApproval(token2_address, amount2, signer)
```

#### Creating the pool

```typescript
await v3CreatePool(token0, token1, fee, initialPrice, signer)
await v3AddLiquidity(
    token1: string,
    token2: string,
    amount1: bigint,
    amount2: bigint,
    amount1Min: bigint,
    amount2Min: bigint,
    tickLower: number,
    tickUpper: number,
    fee: number
    expire_time: bigint,
    signer: ethers.Signer
)
```


# Add Liquidity

The API for add liquidity is very similar to [create pool](/developer/sdks/create-pool)

## Pool Type

There are two different pool types on PiperX, standard (V2) pool and concentrated liquidity (V3) pool. In short, standard pool is more suitable to tokens that expect to have high price votality such as memecoins, and concentrated liquidity pool is more suitable to tokens that expected to low price votality, such as stable coins.&#x20;

Here is a table about two pools

<table><thead><tr><th width="192">Pool Type</th><th>Standard Pool</th><th>Concentrated Liquidity</th></tr></thead><tbody><tr><td>Price volatility</td><td>High</td><td>Low</td></tr><tr><td>Example pools</td><td>Meme coins (chillguy - IP)</td><td>Stable coins (USDT - USDC)</td></tr><tr><td>Earn fees</td><td>Medium</td><td>High when your liquidity is active</td></tr></tbody></table>

Please find how to add liquidity to the two types of pools in following sections.


# Standard Pool

### Steps to Integration

There are three steps in adding liquidity: 1) prepare input, 2) approve tokens, 3) conduct add liquidity. You need to install PiperX sdk and import it to proceed.

```javascript
import { v2AddLiquidity, v2RouterTokenApproval, } from '@piperx/sdk/src/core'
import { WIP_ADDRESS } from '@piperx/sdk/src/constant'
```

#### Prepare Input

You need the following inputs before you can create a pool&#x20;

```typescript
token1_address: address, // if it is $IP native token, use WIP_ADDRESS
token2_address: address, // if it is $IP native token, use WIP_ADDRESS
amount1: bigint, // amount of token 1 you want to deposit to the pool
amount2: bigint, // amount of token 2 you want to deposit to the pool
amount1Min: bigint, // minimal amount of token 1 you want to deposit to the pool
amount2Min: bigint, // minmial amount of token 2 you want to deposit to the pool
expire_time: bigint// expiration timestamp for a swap
signer: ethers.Signer
```

Note that, if you are add liquidity for $IP token, you should pass in the PiperX wrapped $IP token address, because the $IP token is not a ERC-20 token. For example, if you are add to $IP to $USDC pool, please use wrapped $IP address `WIP_ADDRESS`

#### Approve tokens

You need to approve the router contract to both your tokens to create this pool

```typescript
await v2RouterTokenApproval(token1_address, amount1, signer)
await v2RouterTokenApproval(token2_address, amount2, signer)
```

#### Add the liquidity

```typescript
await v2AddLiquidity(
    token1: string,
    token2: string,
    amount1: bigint,
    amount2: bigint,
    amount1Min: bigint,
    amount2Min: bigint,
    expire_time: bigint,
    signer: ethers.Signer
)
```


# Concentrated Pool

### Steps to Integration

There are three steps in adding liquidity: 1) prepare input, 2) approve tokens, 3) conduct add liquidity. You need to install PiperX sdk and import it to proceed.

```javascript
import { v3AddLiquidity, v3PositionManagerTokenApproval } from '@piperx/sdk/src/core'
import { WIP_ADDRESS } from '@piperx/sdk/src/constant'
```

#### Prepare Input

You need the following inputs before you can create a pool&#x20;

<pre class="language-typescript"><code class="lang-typescript">token1_address: address, // if it is $IP native token, use WIP_ADDRESS
token2_address: address, // if it is $IP native token, use WIP_ADDRESS
amount1: bigint, // amount of token 1 you want to deposit to the pool
amount2: bigint, // amount of token 2 you want to deposit to the pool
amount1Min: bigint, // minimal amount of token 1 you want to deposit to the pool
<strong>amount2Min: bigint, // minmial amount of token 2 you want to deposit to the pool
</strong>tickLower: number, // define the lower range of your liquidity provision priceLower = 1.0001^tickLower
tickUpper: number, // define the upper range of your liquidity provision priceUpper = 1.0001^tickUpper
expire_time: bigint// expiration timestamp for creating the pool
signer: ethers.Signer
</code></pre>

Note that, if you are add liquidity for $IP token, you should pass in the PiperX wrapped $IP token address, because the $IP token is not a ERC-20 token. For example, if you are add to $IP to $USDC pool, please use wrapped $IP address `WIP_ADDRESS`

#### Approve tokens

You need to approve the router contract to both your tokens to create this pool

```typescript
await v3PositionManagerTokenApproval(token1_address, amount1, signer)
await v3PositionManagerTokenApproval(token2_address, amount2, signer)
```

#### Creating the pool

```typescript
await v3AddLiquidity(
    token1: string,
    token2: string,
    amount1: bigint,
    amount2: bigint,
    amount1Min: bigint,
    amount2Min: bigint,
    tickLower: number,
    tickUpper: number,
    fee: number
    expire_time: bigint,
    signer: ethers.Signer
)
```


# Remove Liquidity

## Integrating remove liquidity to website

Integrating the PiperX remove liquidity functionality to your website makes it easy for you to manage the liquidity from PiperX pools.

## Pool Type

There are two different pool types on PiperX, standard (V2) pool and concentrated liquidity (V3) pool. In short, standard pool is more suitable to tokens that expect to have high price votality such as memecoins, and concentrated liquidity pool is more suitable to tokens that expected to low price votality, such as stable coins.&#x20;

Here is a table about two pools

<table><thead><tr><th width="192">Pool Type</th><th>Standard Pool</th><th>Concentrated Liquidity</th></tr></thead><tbody><tr><td>Price volatility</td><td>High</td><td>Low</td></tr><tr><td>Example pools</td><td>Meme coins (chillguy - IP)</td><td>Stable coins (USDT - USDC)</td></tr><tr><td>Earn fees</td><td>Medium</td><td>High when your liquidity is active</td></tr></tbody></table>

Please find how to remove liquidity to the two types of pools in following sections.


# Standard Pool

### Steps to Integration

There are three steps in removing liquidity: 1) prepare input, 2) approve tokens, 3) conduct remove liquidity. You need to install PiperX sdk and import it to proceed.

<pre class="language-javascript"><code class="lang-javascript"><strong>import { v2RemoveLiquidity, v2RouterTokenApproval } from '@piperx/sdk/src/core'
</strong>import { WIP_ADDRESS } from '@piperx/sdk/src/constant'
import { v2ComputeAddress } from '@piperx/sdk/src/constant'
</code></pre>

#### Prepare Input

You need the following inputs before you can remove a liquidity&#x20;

```typescript
token1_address: address, // if it is $IP native token, use WIP_ADDRESS
token2_address: address, // if it is $IP native token, use WIP_ADDRESS
liquidity: bigint, // amount of lp token you want to remove to the pool
amount1Min: bigint, // minimal amount of token 1 you want to receive
amount2Min: bigint, // minmial amount of token 2 you want to receive 
expire_time: bigint// expiration timestamp for a swap
signer: ethers.Signer.
```

Note that, if you are add liquidity for $IP token, you should pass in the PiperX wrapped $IP token address, because the $IP token is not a ERC-20 token. For example, if you are remove from to $IP to $USDC pool, please use wrapped $IP address `WIP_ADDRESS`

#### Approve tokens

You need to approve the router contract to both your tokens to create this pool

```typescript
let lp_token_address = v2ComputeAddress(token1, token2)
await v2RouterTokenApproval(lp_token_address, amount1, signer)
```

#### Remove the liquidity

```typescript
await v2RemoveLiquidity(
    token1: string,
    token2: string,
    liquidity: bigint,
    amount1Min: bigint,
    amount2Min: bigint,
    expire_time: bigint,
    signer
)
```


# Concentrated Pool

### Steps to Integration

There are three steps in removing liquidity: 1) prepare input, 2) approve tokens, 3) conduct remove liquidity. You need to install PiperX sdk and import it to proceed.

<pre class="language-javascript"><code class="lang-javascript"><strong>import { v3RemoveLiquidity, v3PositionManagerApproval } from '@piperx/sdk/src/core'
</strong>import { WIP_ADDRESS } from '@piperx/sdk/src/constant'
</code></pre>

#### Prepare Input

You need the following inputs before you can remove a liquidity&#x20;

```typescript
token1_address: address, // if it is $IP native token, use WIP_ADDRESS
token2_address: address, // if it is $IP native token, use WIP_ADDRESS
tokenId: number // id of the liquidity that you want to remove
liquidity: bigint, // amount of lp token you want to remove to the pool
amount1Min: bigint, // minimal amount of token 1 you want to receive
amount2Min: bigint, // minmial amount of token 2 you want to receive 
expire_time: bigint// expiration timestamp for a swap
signer: ethers.Signer.
```

Note that, when remove $IP token, you should pass in the PiperX wrapped $IP token address, because the $IP token is not a ERC-20 token. For example, if you are removing liquidity from $IP - $USDC pool, please use wrapped $IP address `WIP_ADDRESS.`

#### Remove the liquidity

```typescript
await v3RemoveLiquidity(
    token1_address: string,
    token2_address: string,
    tokenId: number
    liquidity: bigint,
    amount1Min: bigint,
    amount2Min: bigint,
    expire_time: bigint,
    signer
)
```


# Fetch Price Data

## Fetch Price Feed data for pool

You could fetch real-time price data for a given pool

<pre class="language-typescript"><code class="lang-typescript">import { v2GetPrice, v2GetPriceWithDecimals } from '@piperx/sdk/src/core'
import { v3GetPrice, v3GetPriceWithDecimals } from '@piperx/sdk/src/core'


<strong>price = v2GetPrice(
</strong>    token1: string, // token 1 address
    token2: string, // token 2 address
) 

<strong>price = v2GetPriceWithDecimals(
</strong>    token1: string,
    token2: string,
    decimal1: number,
    decimal2: number
) 

price = v3GetPrice(
    token1: string, // token 1 address
    token2: string, // token 2 address
    fee: number, // 500, 3000, 10000 represent 0.05%, 0.3%, 1% fee
) 

price = v3GetPriceWithDecimals(
    token1: string,
    token2: string,
    decimal1: number,
    decimal2: number,
    fee: number, // 500, 3000, 10000 represent 0.05%, 0.3%, 1% fee
) 
</code></pre>

We have four APIs for fetching the price. The `v2GetPrice` and `v3GetPrice` will return the real price (1 token1 = X token2) based on the token amount in contract (not considering decimal). If you want the user-facing price, you should use `v2GetPriceWithDecimals and v3GetPriceWithDecimals`. However, you have to pass the decimals of both tokens.


# APIs

### Requirement

The PiperX APIs provide a way to query PiperX standard (v2) and concentrated pools (v3) status. The below examples demonstrated how to query them. Note that PiperX API implemented [CORS Policy](https://aws.amazon.com/what-is/cross-origin-resource-sharing/#:~:text=Cross%2Dorigin%20resource%20sharing%20\(CORS\)%20is%20an%20extension%20of,that%20are%20public%20or%20authorized.). Therefore, if you want to use PiperX APIs from your deployed site (<https://example.xyz>), you need to contact PiperX team first to add your site.

### DEX Stats

Get TVL and Volume of PiperX

Example query

```bash
curl https://piperxdb.piperxprotocol.workers.dev/api/piperxapi/tvl
```

Example output

```json
{
  "dex": {
    "id": "piperx",
    "name": "PiperX",
    "totalVolumeUSD": "49432841143971", // decimal 6 for USD
    "totalVolumeNative": "15038256415533119426220899", // decimal 18 for native token
    "tvlUSD": "6979210444605",
    "tvlNative": "1034401251952740102208458"
  }
}
```

###

### Recent Transactions

Recent swap transactions on a list of pools

Example query&#x20;

```bash
curl -X POST \
-H "Content-Type: application/json"
-d '{"pairAddresses": ["0x4a170A20Dd1ff838C99d49Ac18b517a339206E83"]}'
https://piperxdb.piperxprotocol.workers.dev/api/piperxapi/recentSwaps
```

Example output

```json
{
  "tokenSwaps": [
    {
      "timestamp": "1740996085000000",
      "token0Amount": "29425453054133087415",
      "token1Amount": "200000000",
      "zeroForOne": false,
      "amountUSD": "200000000", // decimal 6 for USD
      "account": {
        "id": "0xd49eeafa6bdbcc551f462c5a582959a9b7a2efdb"
      }
    },
    {
      "timestamp": "1740996059000000",
      "token0Amount": "10005484788346883",
      "token1Amount": "67988",
      "zeroForOne": false,
      "amountUSD": "67988",
      "account": {
        "id": "0x7e093ba1474b79481f9b87d66c99a819f25e82e2"
      }
    }]
}
```

### Get All Tokens&#x20;

Fetch all tokens and their price on PiperX V2 and V3 pool, including those tokens without transactions (price = 0)

Example query&#x20;

```bash
curl https://piperxdb.piperxprotocol.workers.dev/api/piperxapi/getAllTokens
```

Example output

```json
{
  "tokens": [
    {
      "id": "0x0149d87e919967148b18b09f3ef6fd87ad55ad6f",
      "name": "Test",
      "symbol": "TESTT",
      "decimals": 18,
      "latestPriceUSD": "0", // token without any transactions
      "latestPriceNative": "0"
    },
    {
      "id": "0x1514000000000000000000000000000000000000",
      "name": "Wrapped IP",
      "symbol": "WIP",
      "decimals": 18,
      "latestPriceUSD": "6757786", // to convert to real price, use latestPriceUSD /1e(24-decimals), i.e., 1 IP = 6.7577 USD
      "latestPriceNative": "1000000000000000000" // to convert to real price, use latestPriceNative /1e(36-decimals), i.e., 1 IP = 1 IP
    }
}
```

###

### Token Historical Prices

Fetch a list of tokens' historical price

Example query&#x20;

```bash
curl -X POST \
-H "Content-Type: application/json" 
-d '{"addresses": ["0x1514000000000000000000000000000000000000"]}' 
https://piperxdb.piperxprotocol.workers.dev/api/piperxapi/getAllTokenPrices
```

Example output

```json
{
  "tokens": {
    "0x1514000000000000000000000000000000000000": {
      "symbol": "WIP",
      "now": "4.450893",
      "1h": "4.466922",
      "2h": "4.466922",
      "3h": "4.4358",
      "4h": "4.462126",
      "5h": "4.546206",
      "6h": "4.608218",
      "7h": "4.601109",
      "8h": "4.783078",
      "9h": "4.622222",
      "10h": "4.315662",
      "11h": "4.325639",
      "12h": "4.380279",
      "13h": "4.229204",
      "14h": "4.170735",
      "15h": "4.171767",
      "16h": "4.232448",
      "17h": "4.249791",
      "18h": "4.262093",
      "19h": "4.286277",
      "20h": "4.256168",
      "21h": "4.217988",
      "22h": "4.285186",
      "23h": "4.31172",
      "24h": "4.305063",
      "1d": "4.170735",
      "2d": "4.352007",
      "3d": "4.619924",
      "4d": "3.493126",
      "5d": "3.099228",
      "6d": "3.043802",
      "7d": "3.190185"
    }
  },
  "timestamp": 1752495887019
}
```


# Faucet (Odyssey)

We deployed a few faucet contracts to facilitate swaps and other DeFi/IPFi usage on Story Testnet. Please find the deployed addresses and the statistics below:

<table><thead><tr><th width="148">Contract</th><th>Address</th><th data-type="number">Drip Amount</th><th>Frequency Limit</th></tr></thead><tbody><tr><td>WETH</td><td>0x1C13B2B65d55dF06FF43528E736Db2F8e372E692</td><td>0.01</td><td>1 day</td></tr><tr><td>WBTC</td><td>0x656afb1968bC39Cf3937f68CC6089F10cf47C1F7</td><td>0.001</td><td>1 day</td></tr><tr><td>USDC</td><td>0x40fCa9cB1AB15eD9B5bDA19A52ac00A78AE08e1D</td><td>10</td><td>1 day</td></tr><tr><td>USDT</td><td>0x02F75bdBb4732cc6419aC15EeBeE6BCee66e826f</td><td>10</td><td>1 day</td></tr></tbody></table>

The below is the contract abi, please call **drip** function for faucet drops.

```typescript
"abi": [
    {
      "constant": false,
      "inputs": [],
      "name": "acceptOwnership",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "internalType": "address",
          "name": "spender",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "tokens",
          "type": "uint256"
        }
      ],
      "name": "approve",
      "outputs": [
        {
          "internalType": "bool",
          "name": "success",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "internalType": "address",
          "name": "spender",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "tokens",
          "type": "uint256"
        },
        {
          "internalType": "bytes",
          "name": "data",
          "type": "bytes"
        }
      ],
      "name": "approveAndCall",
      "outputs": [
        {
          "internalType": "bool",
          "name": "success",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "tokenOwner",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "spender",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "tokens",
          "type": "uint256"
        }
      ],
      "name": "Approval",
      "type": "event"
    },
    {
      "constant": false,
      "inputs": [],
      "name": "drip",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "_from",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "_to",
          "type": "address"
        }
      ],
      "name": "OwnershipTransferred",
      "type": "event"
    },
    {
      "constant": false,
      "inputs": [
        {
          "internalType": "uint256",
          "name": "newInterval",
          "type": "uint256"
        }
      ],
      "name": "setDripInterval",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "internalType": "uint256",
          "name": "newMultiplier",
          "type": "uint256"
        }
      ],
      "name": "setPremiumMultiplier",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "internalType": "address",
          "name": "user",
          "type": "address"
        },
        {
          "internalType": "bool",
          "name": "status",
          "type": "bool"
        }
      ],
      "name": "setPremiumUser",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "internalType": "uint256",
          "name": "newAmount",
          "type": "uint256"
        }
      ],
      "name": "setRegularDripAmount",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "tokens",
          "type": "uint256"
        }
      ],
      "name": "transfer",
      "outputs": [
        {
          "internalType": "bool",
          "name": "success",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "from",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "tokens",
          "type": "uint256"
        }
      ],
      "name": "Transfer",
      "type": "event"
    },
    {
      "constant": false,
      "inputs": [
        {
          "internalType": "address",
          "name": "tokenAddress",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "tokens",
          "type": "uint256"
        }
      ],
      "name": "transferAnyERC20Token",
      "outputs": [
        {
          "internalType": "bool",
          "name": "success",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "internalType": "address",
          "name": "from",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "tokens",
          "type": "uint256"
        }
      ],
      "name": "transferFrom",
      "outputs": [
        {
          "internalType": "bool",
          "name": "success",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "internalType": "address",
          "name": "_newOwner",
          "type": "address"
        }
      ],
      "name": "transferOwnership",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "payable": true,
      "stateMutability": "payable",
      "type": "fallback"
    },
    {
      "constant": true,
      "inputs": [
        {
          "internalType": "address",
          "name": "tokenOwner",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "spender",
          "type": "address"
        }
      ],
      "name": "allowance",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "remaining",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "internalType": "address",
          "name": "tokenOwner",
          "type": "address"
        }
      ],
      "name": "balanceOf",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "balance",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "decimals",
      "outputs": [
        {
          "internalType": "uint8",
          "name": "",
          "type": "uint8"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "dripInterval",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "name": "isPremiumUser",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "name": "lastDripTime",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "name",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "newOwner",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "owner",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "premiumMultiplier",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "regularDripAmount",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "symbol",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "totalSupply",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    }
  ],
```


# API

### Requirement

The PiperX APIs provide a way to query PiperX standard (v2) and concentrated pools (v3) status. The below examples demonstrated how to query them. Note that PiperX API implemented [CORS Policy](https://aws.amazon.com/what-is/cross-origin-resource-sharing/#:~:text=Cross%2Dorigin%20resource%20sharing%20\(CORS\)%20is%20an%20extension%20of,that%20are%20public%20or%20authorized.). Therefore, if you want to use PiperX APIs from your deployed site (<https://example.xyz>), you need to contact PiperX team first to add your site.


# Dex API

> This section provides access to PiperX decentralized exchange (DEX) statistics, including Total Value Locked (TVL) and trading volume across all liquidity pools. > Useful for dashboards, analytics

#### Overview

Use this endpoint to get **TVL** and **total volume** statistics of PiperX DEX.

***

#### &#x20;Endpoint

<mark style="color:blue;background-color:purple;">**`[GET]`**</mark>  `https://piperxdb.piperxprotocol.workers.dev/api/piperxapi/tvl`

***

#### Example Request

```bash
curl https://piperxdb.piperxprotocol.workers.dev/api/piperxapi/tvl
```

**Example Response**

```json
{
  "dex": {
    "id": "piperx",
    "name": "PiperX",
    "totalVolumeUSD": "49432841143971",
    "totalVolumeNative": "15038256415533119426220899",
    "tvlUSD": "6979210444605", 
    "tvlNative": "1034401251952740102208458" 
  }
}

```

`tvlUSD` has 6 decimals and `tvlNative` has 18 decimals.


# Pool Transaction API

> Returns recent swap transactions from specified PiperX pool addresses. > Supports real-time monitoring of on-chain trading activity for analytics and debugging.

**Overview**\
Use this endpoint to fetch recent swap transactions from specified pools. This is helpful for analyzing trading activity and user behavior in real time.

***

#### Endpoint

<mark style="color:blue;background-color:purple;">**`[GET]`**</mark>  `https://piperxdb.piperxprotocol.workers.dev/api/piperxapi/recentSwaps`&#x20;

***

#### Request Body

```json
{
  "pairAddresses": [
    "0x4a170A20Dd1ff838C99d49Ac18b517a339206E83"
  ]
}
```

\
**Example Request**

```json
curl -X POST \
  -H "Content-Type: application/json" \
  -d '{"pairAddresses": ["0x4a170A20Dd1ff838C99d49Ac18b517a339206E83"]}' \
  https://piperxdb.piperxprotocol.workers.dev/api/piperxapi/recentSwaps

```

**Example Response**

```json
{
  "tokenSwaps": [
    {
      "timestamp": "1740996085000000",
      "token0Amount": "29425453054133087415",
      "token1Amount": "200000000",
      "zeroForOne": false,
      "amountUSD": "200000000",
      "account": {
        "id": "0xd49eeafa6bdbcc551f462c5a582959a9b7a2efdb"
      }
    },
    {
      "timestamp": "1740996059000000",
      "token0Amount": "10005484788346883",
      "token1Amount": "67988",
      "zeroForOne": false,
      "amountUSD": "67988",
      "account": {
        "id": "0x7e093ba1474b79481f9b87d66c99a819f25e82e2"
      }
    }
  ]
}
o
```

`amountUSD` has 6 decimals.


# Price API

> Provides real-time and historical price data for tokens listed on PiperX. > Supports querying tokens without transactions (price = 0) and up to 7 days of hourly snapshots.

### 1. Get All Tokens

Fetch all tokens and their latest price on PiperX (V2 & V3), including tokens without transactions.

**Endpoint**

<mark style="color:blue;background-color:purple;">**`[GET]`**</mark>  `https://piperxdb.piperxprotocol.workers.dev/api/piperxapi/getAllTokens`

**Example Request**

```json
curl https://piperxdb.piperxprotocol.workers.dev/api/piperxapi/getAllTokens
```

**Example Response**

```json
{
  "tokens": [
    {
      "id": "0x1514000000000000000000000000000000000000",
      "name": "Wrapped IP",
      "symbol": "WIP",
      "decimals": 18,
      "latestPriceUSD": "6757786",
      "latestPriceNative": "1000000000000000000"
    }
  ]
}
```

### 2. Get Historical Token Prices

Fetch 24-hour and 7-day price history of one or more tokens.

**Endpoint**

<mark style="color:blue;background-color:purple;">**`[POST]`**</mark>  `https://piperxdb.piperxprotocol.workers.dev/api/piperxapi/getAllTokenPrices`

**Request Body**

```json
{
  "addresses": ["0x1514000000000000000000000000000000000000"]
}
```

> **Note**: If the `addresses` field is omitted or left empty, the API will return historical price data for **all tokens**.

**Example Request**

```json
curl -X POST \
-H "Content-Type: application/json" \
-d '{"addresses": ["0x1514000000000000000000000000000000000000"]}' \
https://piperxdb.piperxprotocol.workers.dev/api/piperxapi/getAllTokenPrices
```

**Example Response**

```json
{
  "tokens": {
    "0x1514000000000000000000000000000000000000": {
      "symbol": "WIP",
      "now": "4.450893",
      "1h": "4.466922",
      "2h": "4.466922",
      "3h": "4.4358",
      "4h": "4.462126",
      "5h": "4.546206",
      "6h": "4.608218",
      "7h": "4.601109",
      "8h": "4.783078",
      "9h": "4.622222",
      "10h": "4.315662",
      "11h": "4.325639",
      "12h": "4.380279",
      "13h": "4.229204",
      "14h": "4.170735",
      "15h": "4.171767",
      "16h": "4.232448",
      "17h": "4.249791",
      "18h": "4.262093",
      "19h": "4.286277",
      "20h": "4.256168",
      "21h": "4.217988",
      "22h": "4.285186",
      "23h": "4.31172",
      "24h": "4.305063",
      "1d": "4.170735",
      "2d": "4.352007",
      "3d": "4.619924",
      "4d": "3.493126",
      "5d": "3.099228",
      "6d": "3.043802",
      "7d": "3.190185"
    }
  },
  "timestamp": 1752495887019
}
```


# Aggregator API

> PiperX Aggregator exposes a set of APIs that allow developers to easily query optimal rates for a token swap.\
> These APIs return additional swap data such as the precise swap route, routing parameters, and the encoded calldata required to interact with the Aggregator smart contract.

## Public API

<table><thead><tr><th>Environment</th><th width="415.07421875">URL</th></tr></thead><tbody><tr><td>Story mainnet</td><td><code>https://piperxdb.piperxprotocol.workers.dev</code></td></tr></tbody></table>

### Supported Networks

| Chain ID | Network       |
| -------- | ------------- |
| 1514     | Story Mainnet |

## API Documentation

### Get swap quote

<mark style="color:blue;background-color:purple;">**`[GET]`**</mark>  `https://piperxdb.piperxprotocol.workers.dev/api/swap/swapExactToken`

Returns the best swap quote based on the provided parameters.

<details>

<summary><strong>QUERY PARAMETERS</strong></summary>

&#x20;**`tokenIn`** **(string, required)**

**The address of the input token**\
Example: `0xF1815bd50389c46847f0Bda824eC8da914045D14`

***

**`tokenOut` (string, required)**

**The address of the output token**\
Example: `0x855bd6a8c5046d97c4e063e90e40f0f010d5423a`

***

&#x20;**`amount` (string, required)**

**Amount of the input token in base units (raw integer)**\
Example: `1000000` means 1 token if the input token has 6 decimals.

***

&#x20;**`type` (string, required)**

**Routing type**

* Possible values: `exactInput`, `exactOutput`
* Default: `exactInput`
* If `exactInput`, `amount` means input amount
* If `exactOutput`, `amount` means target output amount

***

**`isAggregator` (boolean, optional)**

**Whether to use aggregator route logic**

* Default: `false`
* If `true`, will search multiple DEXes to optimize route.

</details>

***

<details>

<summary>Response <strong>Schema</strong></summary>

**`num` (string, required)**

Final output amount calculated by the router, in raw base units.

***

&#x20;**`universalRoutes` (array, required)**

Route list. Each route contains:

* `route` (array) of hops\
  Each hop includes:
  * `routerAddress` (string)
  * `poolType` (number) — `0 = V2`, `1 = V3`
  * `tokenIn` (string)
  * `tokenOut` (string)
  * `fee` (number) — e.g. `3000`
  * `weight` (number)
* `percent` (number)
* `amountIn` (string)
* `amountOut` (string)

</details>

<details>

<summary> <strong>Response</strong></summary>

```json
{
  "num": "string",
  "universalRoutes": [
    {
      "route": [
        {
          "routerAddress": "string",
          "poolType": 0,
          "tokenIn": "string",
          "tokenOut": "string",
          "fee": 0,
          "weight": 0
        }
      ],
      "percent": 0,
      "amountIn": "string",
      "amountOut": "string"
    }
  ]
}
```

</details>

### Example Request

```bash
curl 'https://piperxdb.piperxprotocol.workers.dev/api/swap/swapExactToken?'\
'tokenIn=0xF1815bd50389c46847f0Bda824eC8da914045D14&'\
'tokenOut=0x02353a3BD5c9668159cF9Fd54AC61b03212FCf41&'\
'amount=1000000&type=exactInput&isAggregator=true'
```

### **Example Response**

```json
{
  "num": "457977361510434403631",
  "universalRoutes": [
    {
      "route": [
        {
          "routerAddress": "0x8295c195CEe31404ea082d253a140310b9a0A37e",
          "poolType": 1,
          "tokenIn": "0xF1815bd50389c46847f0Bda824eC8da914045D14",
          "tokenOut": "0xbab93b7ad7fe8692a878b95a8e689423437cc500",
          "fee": 3000,
          "weight": 0.010360735915986746
        },
        {
          "routerAddress": "0x8295c195CEe31404ea082d253a140310b9a0A37e",
          "poolType": 1,
          "tokenIn": "0xbab93b7ad7fe8692a878b95a8e689423437cc500",
          "tokenOut": "0x1514000000000000000000000000000000000000",
          "fee": 3000,
          "weight": 0.004157898814527259
        },
        {
          "routerAddress": "0x1062916B1Be3c034C1dC6C26f682Daf1861A3909",
          "poolType": 1,
          "tokenIn": "0x1514000000000000000000000000000000000000",
          "tokenOut": "0x02353a3BD5c9668159cF9Fd54AC61b03212FCf41",
          "fee": 3000,
          "weight": 0.18184197356998186
        }
      ],
      "percent": 100,
      "amountIn": "1000000",
      "amountOut": "457977361510434403631"
    }
  ]
}
```

#### Protocol

#### Supported DEXes in Aggregator Mode (`isAggregator=true`)

When `isAggregator=true`, the PiperX Aggregator automatically selects the best route across the following DEXes:

| DEX Name         | Description                        |
| ---------------- | ---------------------------------- |
| **PiperX V2**    | Classic V2-based AMM on PiperX     |
| **StoryHunt V3** | V3 liquidity on Story chain        |
| **PiperX V3**    | Optimized V3-style pools on PiperX |

These DEXes are automatically included in the route discovery — no need to manually specify protocols.


# Swap Widget

A lite version of PiperX Swap Aggregator that can be embedded into your own dApp. Complete your integration in one line.

### Code snippet

PiperX Swap Widget is designed to work anywhere the web runs.

```typescript
<iframe src="https://widget.piperx.xyz" width={600} height={600} frameBorder="0"></iframe>
```

<figure><img src="/files/DzjzQi76KNPYhOqdkVCf" alt=""><figcaption></figcaption></figure>


# Links

Here are key resources and links to learn more about PiperX

<table><thead><tr><th width="142">Navigation</th><th>Overview</th><th>Link</th></tr></thead><tbody><tr><td>PiperX App</td><td>Swap, farm and discover</td><td><a href="https://app.piperx.xyz/">https://app.piperx.xyz/</a></td></tr><tr><td>Twitter</td><td>Follow piper updates</td><td><a href="https://x.com/PiperxProtocol">https://x.com/PiperxProtocol</a></td></tr><tr><td>Discord</td><td>Join piper community</td><td><a href="https://discord.com/invite/M2pbcwYSHv">https://discord.com/invite/M2pbcwYSHv</a></td></tr><tr><td>Telegram</td><td>Follow piper updates</td><td><a href="https://t.me/+opV7wfvonZ5mMmFh">https://t.me/+opV7wfvonZ5mMmFh</a></td></tr><tr><td>Website</td><td>Learn PiperX</td><td><a href="https://www.piperx.xyz/">https://www.piperx.xyz/</a></td></tr></tbody></table>


# Media Kit

You could find our media kit on [google drive](https://drive.google.com/drive/u/0/folders/1SJLc8pscGbdI2SyVbQK_IPZOya9aJAFn)&#x20;

<figure><img src="/files/5wXkSCIaJanOdu1DjDyk" alt=""><figcaption></figcaption></figure>

{% file src="/files/ZmV7oq5ryN1DPz3oThq6" %}

{% file src="/files/5wXkSCIaJanOdu1DjDyk" %}

<figure><img src="/files/VNHi0cNkhzjJ14P7eYmC" alt="" width="265"><figcaption></figcaption></figure>

<figure><img src="/files/s076cAiO2V6x1cK09IrE" alt="" width="265"><figcaption></figcaption></figure>

{% file src="/files/VNHi0cNkhzjJ14P7eYmC" %}

{% file src="/files/s076cAiO2V6x1cK09IrE" %}


# Community Support

If you have any questions about the community, support is available in our community channel:

🤖 Discord: <https://discord.com/invite/M2pbcwYSHv> (#support-ticket)

📻 Telegram: <https://t.me/+opV7wfvonZ5mMmFh> (#help-center)


# IP Alpha Miles Program

### What is IP Alpha Miles Program?&#x20;

IP Alpha Miles track your activity on PiperX. It is your fast pass to exclusive perks from IP Alpha Partners and PiperX.&#x20;

### What is IP Alpha Partners?&#x20;

IP Alpha Partners are top projects shaping onchain IP and IPFi, featured on PiperX through exclusive campaigns and perks.

### IP Alpha Mile Rules

<figure><img src="/files/TzfpWZxAgSK6RK0YF0dq" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
Visit our [IP Alpha website](https://app.piperx.xyz/#/alpha) to start becoming a PiperX OG!
{% endhint %}


# What is PiperX

<figure><img src="/files/OQABYRqGpvFjvM4C9Ze4" alt=""><figcaption></figcaption></figure>

Programmable-IP-er Exchange (PiperX) is the ultimate DEX and liquidity layer on [Story L1](https://www.story.foundation), the world's first IP blockchain. While Story aims at onboarding a new RWA - IP, representing a $3T market, PiperX aims at building the best liquidity layer for those new assets. &#x20;

{% hint style="info" %}
Want to learn more about Story's vision to onboard the $3T IP assets on chain? Read [their vision](https://www.story.foundation/media/vision)&#x20;
{% endhint %}

### Who will be benefited from PiperX's success?

* **IP asset owners** (creators, IP companies, etc.): owners will be benfited from a liquid market for their assets, making them easier to monetize.
* **Investors/Users** (crypto-native and non-crypto-native): investors will get access to a new RWA asset class: IP asset. They can either diversify their existing investment, or seeking for alphas here.
* **IP Dapp builders**: builders could plug in the liquidity of PiperX to help their Dapp's. For example, for builders building IP meme coin launchpad, they could deploy to PiperX after creating the coins.

### What problem is PiperX solving?

In one word: "the liquidity problem of IP assets". As any new on-chain asset class, there is no liquid market for IP assets on Story, making users and asset owners has no motivations to participate. Additionally, IP assets are diverse, meaning there are many long-tail assets with low liquidity, making price discovery incredibly difficult.

### How is PiperX solving the liquidity problem for IP assets?

PiperX has three core products to solve liquidity problem for IP assets:

* **AMM DEX** powers seamless trading for IP assets via concentrated liquidity.
* **Proof-of-creativity Voting** identifies high quality IP asset pools, and generate yields for voters.
* **BoostPad** brings extra liquidity to high quality IP asset pools through incentives.&#x20;

&#x20;&#x20;


# Page


# What is IPFi

{% hint style="info" %}
Want to learn more about IPFi? Read [A Way to 10x the IP Market: Why we need IPFi](https://medium.com/@piperxprotocol/a-way-to-10x-the-ip-market-why-we-need-ipfi-93b2e9a3eea3)
{% endhint %}

### PiperX aims to be the liquidity layer and complete IPFi platform. But what is IPFi?&#x20;

Below content are from Story's Head of DeFi I.P. Morgan:

What is IPFi? I’d like to start with the end, with what IPFi can unlock on Story in the long term. IP is already a multi-trillion asset class, and it is possible to make it even many times bigger by enabling higher transparency (cheaper to price), accessibility (ease of funding) and composability of IP assets (larger franchises than ever before). To increase the capacity for IP to create more financial value, many layers of financial infrastructure will be needed.

The end state of IPFi should therefore be able to support the creation, transaction and financialization of trillions of dollars of IP assets. Further down the road, IPFi must among other things.

• Be mature enough to facilitate capital formation of hundreds of millions of dollars for any individual mega-scale IP project, while providing clear attribution to each single party involved and easily track the numerous derivative IP • Facilitate deep liquidity and low-slippage trading of IP assets created by both individual small-time creators and leading global media franchises. New generation AMMs will be born on Story to bridge the liquidity fragmentation of distinct IP assets. • Enable IP as an institutional-grade asset class on par with Bitcoin, equities, debt and other financial derivatives, attracting institutional-scale capital to invest in IP.

These mechanisms must also be open and permissionless, in line with the Web3 ethos of decentralized and permissionless access, while respecting what IP creators define in their license terms on Story. This will allow not just established IP creators to participate in IPFi markets, but also up and coming IP builders. Who will be the next J. K. Rowling or George R. R. Martin?

To achieve this vision, Story IPFi will be built in steps, starting from the basic building blocks of core DeFi, which focuses on the existing trading, money markets, liquid staking and launchpad features common in DeFi. While these DeFi infrastructure may not uniquely serve IP, core DeFi infrastructure has been battle-tested and is flexible enough to meet many existing demands on IP financialization. Many existing IP projects and users will use these existing DeFi infrastructure, and existing token formats to capture value. Users will also still need to use existing DeFi infrastructure to leverage their capital for different IP financial plays. Many DeFi teams are already building these functionalities on Story and we expect this layer to be the first to go live on Story.

After core DeFi, we can build Structured IPFi infrastructure on top of it. These are the IPFi rails which will gradually tackle the trillions of IP assets yet to come onchain, or are for the first time coming onchain from web2. Structured IPFi refers to a more nuanced and purpose-specific financial infrastructure which serves more established IP projects with sophisticated needs. Some ideas here I've been thinking about are

a) can successful IP creators leverage their characters and franchises as collateral to expand their work with debt financing/CDPs, instead of having to sign their IP away to large distributors in web2?

b) can royalty-bearing, web2 IP be tokenized into RWAs onchain and provide entincing yield?

c) if individual IPs are highly risky and unpredictable, can retail investors access bundled opportunities to make IP investment safer and more predictable?

There are also some novel issues that do not have existing solutions within crypto or DeFi. For Experimental IPFi, there are exciting novel problems which can be solved by aspirational and creative builders. Some of these that come to mind are

a) how do we build an oracle to discover the price of royalty-bearing IP assets, given that their ongoing royalties mean that they're always financially valuable?

b) if Story is an open system which enables IP registrations by anyone, how do we enable financial mechanisms which promote authentic and valuable IP registrations, and deprioritize malicious or accidental bad registrations in a broad manner?

c) can we build a robust onchain arbitration/judicial system in which we can arbitrate IP disputes effectively and quickly without resorting to offchain legal settlement, incentivizing good disputes and penalizing malicious actors?

Many seasoned teams are already building solutions to tackle some of these new challenges and opportunities as we speak.

Additionally, we also need better infrastructure to support IPFi. In order to onboard and unlock trillions worth of IP assets onchain, some of these infrastructure need to be iterated on

• A better on/offramp suite of products which allows IP creators to operate onchain without needing to understand too much about blockchain technology

• Better price oracles for both web2 and web3 IP assets, such that web2 IPs can successfully assetize onchain and become composable with DeFi infrastructure

• Connections with web2-oriented distribution channels (e.g. Youtube, Netflix) for IP which meet where the existing users are

As Story opens up a vertical of permissionless IP Legos, I envision that there will be many new IP needs that can be solved via IPFi. The above questions only scratch the surface. I look forward to working with builders who are thinking about the above questions and more. Feel free to DM me if you are part of a team looking to build a protocol, or a builder looking to get started.


