Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Rasa offers the decentralized non-custodial liquidity market where users can participate as suppliers or borrowers. Suppliers provide liquidity to the market to earn a passive income, while borrowers can borrow in an over-collateralized (perpetually) or under-collateralized (one-block liquidity) fashion.
Rasa offers a comprehensive suite of features to facilitate decentralized finance (DeFi) operations.
Key Features
Decentralized and Trustless: Operates without a central authority, ensuring that all transactions are transparent and trustless.
Variety of Supported Assets: Supports a wide range of assets, allowing users to diversify their portfolios and manage risk effectively.
Dynamic Interest Rates: Utilizes advanced algorithms to provide competitive and dynamic interest rates for both lenders and borrowers.
Secure Collateral Management: Implements rigorous security protocols for collateral management, ensuring the safety of user funds.
Efficient Liquidation Mechanisms: Employs efficient liquidation processes to manage under-collateralized positions and protect the protocol's integrity.
Interoperability: Designed to integrate with DeFi platforms and services, enhancing its utility and user experience.
This tiered model incentivizes both lending and borrowing, ensuring sufficient liquidity and stable interest rates.
Collateral management is a crucial aspect of the Rasa Lending protocol, ensuring that loans are secure and the system remains stable. Key components of collateral management include:
Collateralization Ratio: The required ratio of collateral value to borrowed amount. This ratio ensures that loans are over-collateralized to protect against market volatility.
Health Factor: A measure of the safety of a borrower's loan, calculated as the ratio of the value of the collateral to the value of the borrowed assets. A higher health factor indicates a safer loan.
Collateral Types: Rasa Lending supports various types of collateral, each with its own collateralization ratio based on its risk profile.
Borrowers must maintain their collateral above the required ratio to avoid liquidation. The protocol continuously monitors the value of the collateral and the borrowed amount to ensure compliance.
The liquidation process in Rasa Lending ensures that the protocol remains solvent and that lenders' funds are protected. The key steps in the liquidation process are:
Triggering Liquidation: When a borrower's health factor falls below 1 (i.e., the value of their collateral is insufficient to cover their debt), the liquidation process is triggered.
Liquidation: Liquidators can liquidate the under-collateralized loans at a discount. The system incentivizes liquidators to repay the loan and sell the collateral, restoring the protocol's balance.
Repayment and Collateral Sale: The liquidator repays the borrower's loan and receives the collateral at a discount. This process ensures that the protocol remains solvent and that the liquidator is incentivized to participate.
Liquidations help maintain the stability and solvency of the Rasa Lending protocol, ensuring that lenders' funds are always protected.
Rasa Lending employs several risk parameters to ensure the stability and security of the protocol. These parameters are designed to manage risk and protect users from market volatility. Key risk parameters include:
Loan-to-Value (LTV) Ratio: The maximum amount a user can borrow relative to the value of their collateral. A lower LTV ratio indicates a more conservative borrowing limit, reducing the risk of liquidation.
Liquidation Threshold: The collateral value at which a loan becomes eligible for liquidation. This threshold is set to ensure that loans are adequately collateralized and to protect against sudden market downturns.
Liquidation Bonus: An additional incentive for liquidators, provided as a percentage of the collateral value. This bonus ensures that liquidators are adequately rewarded for their efforts in maintaining the protocol's stability.
Reserve Factor: A percentage of the interest paid by borrowers that is reserved for the protocol. This reserve acts as a safety buffer to cover potential losses and ensure the long-term sustainability of the protocol.
https://github.com/desync-labs/rasa-lending-platform-smart-contracts/blob/master/contracts/protocol/configuration/PoolAddressesProvider.sol
The PoolAddressesProvider
contract is the main registry of addresses that are part of or connected to the Rasa Lending, including permissioned roles. It acts as a factory of proxies and an admin of those proxies, with the right to change their implementations.
_marketId: The identifier of the Rasa Market.
_addresses: A mapping of registered addresses (bytes32 identifier
=> address registeredAddress
).
POOL: The identifier for the pool address.
POOL_CONFIGURATOR: The identifier for the pool configurator address.
PRICE_ORACLE: The identifier for the price oracle address.
ACL_MANAGER: The identifier for the ACL manager address.
ACL_ADMIN: The identifier for the ACL admin address.
PRICE_ORACLE_SENTINEL: The identifier for the price oracle sentinel address.
DATA_PROVIDER: The identifier for the data provider address.
getMarketId(): Returns the identifier of the Rasa Market.
getAddress(bytes32 id): Returns the registered address associated with the given identifier.
getPool(): Returns the address of the pool.
getPoolConfigurator(): Returns the address of the pool configurator.
getPriceOracle(): Returns the address of the price oracle.
getACLManager(): Returns the address of the ACL manager.
getACLAdmin(): Returns the address of the ACL admin.
getPriceOracleSentinel(): Returns the address of the price oracle sentinel.
getPoolDataProvider(): Returns the address of the pool data provider.
setMarketId(string memory newMarketId): Sets a new market identifier. Callable only by the owner.
setAddress(bytes32 id, address newAddress): Registers a new address with the given identifier. Callable only by the owner.
setAddressAsProxy(bytes32 id, address newImplementationAddress): Updates the implementation address of a proxy. Callable only by the owner.
setPoolImpl(address newPoolImpl): Sets a new pool implementation. Callable only by the owner.
setPoolConfiguratorImpl(address newPoolConfiguratorImpl): Sets a new pool configurator implementation. Callable only by the owner.
setPriceOracle(address newPriceOracle): Sets a new price oracle address. Callable only by the owner.
setACLManager(address newAclManager): Sets a new ACL manager address. Callable only by the owner.
setACLAdmin(address newAclAdmin): Sets a new ACL admin address. Callable only by the owner.
setPriceOracleSentinel(address newPriceOracleSentinel): Sets a new price oracle sentinel address. Callable only by the owner.
setPoolDataProvider(address newDataProvider): Sets a new pool data provider address. Callable only by the owner.
MarketIdSet(string indexed oldMarketId, string indexed newMarketId): Emitted when the market identifier is updated.
AddressSet(bytes32 indexed id, address indexed oldAddress, address indexed newAddress): Emitted when an address is registered or updated.
AddressSetAsProxy(bytes32 indexed id, address indexed proxyAddress, address indexed oldImplementationAddress, address newImplementationAddress): Emitted when a proxy address is set or updated.
PoolUpdated(address indexed oldPoolImpl, address indexed newPoolImpl): Emitted when the pool implementation is updated.
PoolConfiguratorUpdated(address indexed oldPoolConfiguratorImpl, address indexed newPoolConfiguratorImpl): Emitted when the pool configurator implementation is updated.
PriceOracleUpdated(address indexed oldPriceOracle, address indexed newPriceOracle): Emitted when the price oracle address is updated.
ACLManagerUpdated(address indexed oldAclManager, address indexed newAclManager): Emitted when the ACL manager address is updated.
ACLAdminUpdated(address indexed oldAclAdmin, address indexed newAclAdmin): Emitted when the ACL admin address is updated.
PriceOracleSentinelUpdated(address indexed oldPriceOracleSentinel, address indexed newPriceOracleSentinel): Emitted when the price oracle sentinel address is updated.
PoolDataProviderUpdated(address indexed oldDataProvider, address indexed newDataProvider): Emitted when the pool data provider address is updated.
ProxyCreated(bytes32 indexed id, address indexed proxyAddress, address indexed implementationAddress): Emitted when a new proxy is created.
Last modified: November 24, 2024
These Terms of Service (the "Agreement") explain the terms and conditions by which you may access and use the Products provided by Rasa DAO (referred to herein as "Rasahom", "we", "our", or "us"). The Products shall include, but shall not necessarily be limited to, (a) app.rasa.finance a website-hosted user interface (the "Interface" or "App"). You must read this Agreement carefully as it governs your use of the Products. By accessing or using any of the Products, you signify that you have read, understand, and agree to be bound by this Agreement in its entirety. If you do not agree, you are not authorized to access or use any of our Products and should not use our Products.
To access or use any of our Products, you must be able to form a legally binding contract with us. Accordingly, you represent that you are at least the age of majority in your jurisdiction (e.g., 18 years old in the United States) and have the full right, power, and authority to enter into and comply with the terms and conditions of this Agreement on behalf of yourself and any company or legal entity for which you may access or use the Interface. If you are entering into this Agreement on behalf of an entity, you represent to us that you have the legal authority to bind such entity.
You further represent that you are not (a) the subject of economic or trade sanctions administered or enforced by any governmental authority or otherwise designated on any list of prohibited or restricted parties (including but not limited to the list maintained by the Office of Foreign Assets Control of the U.S. Department of the Treasury) or (b) a citizen, resident, or organized in a jurisdiction or territory that is the subject of comprehensive country-wide, territory-wide, or regional economic sanctions by the United States. Finally, you represent that your access and use of any of our Products will fully comply with all applicable laws and regulations, and that you will not access or use any of our Products to conduct, promote, or otherwise facilitate any illegal activity.
NOTICE: This Agreement contains important information, including a binding arbitration provision and a class action waiver, both of which impact your rights as to how disputes are resolved. Our Products are only available to you — and you should only access any of our Products — if you agree completely with these terms.
The Interface provides a web or mobile-based means of access to a decentralized protocol on various public blockchains, including but not limited to Lisk, that allows users to trade and borrow certain compatible digital assets (the "Rasa" or the "Protocol").
The Interface is distinct from the Protocol and is one, but not the exclusive, means of accessing the Protocol. The Protocol itself has one version, designated as v1, which comprises open-source or source-available self-executing smart contracts that are deployed on various public blockchains, such as Lisk. Rasa does not directly control or operate any version of the Protocol on any blockchain network. All control and operation is performed by Rasa Decentralized Autonomous Organization (Rasa DAO, DAO). By using the Interface, you understand that you are not buying or selling digital assets from us. We do not operate any liquidity pools on the Protocol, control trade execution, or control the lending platform. When traders pay fees for trades, those fees accrue to liquidity providers for the Protocol. When users pay interest to the lending platform, those fees accrue to Rasa DAO revenue pool in DAO MultiSig Treasury (treasury). When liquidators are liquidating lending positions, this happens only in case they become undercollateralized, liquidators can't liquidate healthy positions, and the whole liquidation is governed and secured by an autonomous automatic liquidation mechanism. Liquidated collateral is a liquidator incentive, where a certain amount is taken as fees that accrue to the treasury. No borrowed asset will be taken from the borrower from the liquidation event. The whole liquidation process is described in the documentation. As a general matter, Rasa is not a liquidity provider into Protocol liquidity pools and liquidity providers are independent third parties. The Protocol was initially deployed on the Lisk blockchain (Lisk), and can be deployed on other blockchain networks including by parties other than Rasa. Deployments on other networks typically make use of cross-chain bridges, which allow assets native to one blockchain to be transferred to another blockchain. Please note that digital assets that have been "bridged" or "wrapped" to operate on other blockchain networks (including to blockchains compatible with the Ethereum Virtual Machine that are designed to ensure the Lisk blockchain can effectively process more transactions or other blockchains that are frequently referred to as "Layer 2" solutions) are distinct from the original Lisk mainnet asset.
To access the Interface, you must use a non-custodial wallet software, which allows you to interact with public blockchains. Your relationship with that non-custodial wallet provider is governed by the applicable terms of service (with respect to a third party wallet, the applicable terms of service of such third party). We do not have custody or control over the contents of your wallet and have no ability to retrieve or transfer its contents. By connecting your wallet to our Interface, you agree to be bound by this Agreement and all of the terms incorporated herein by reference.
We may from time to time in the future offer additional products, and such additional products shall be considered a Product as used herein, regardless of whether such product is specifically defined in this Agreement.
When you use any of our Products, you may also be using the products, services or content of one or more third parties. Your use of such third party products, services or content may be subject to separate policies, terms of use and fees of these third parties, and you agree to abide by and be responsible for such policies, terms of use and fees, as applicable.
We reserve the right, in our sole discretion, to modify this Agreement from time to time. If we make any material modifications, we will notify you by updating the date at the top of the Agreement and by maintaining a current version of the Agreement. All modifications will be effective when they are posted, and your continued accessing or use of any of the Products will serve as confirmation of your acceptance of those modifications. If you do not agree with any modifications to this Agreement, you must immediately stop accessing and using all of our Products.
We reserve the following rights, which do not constitute obligations of ours: (a) with or without notice to you, to modify, substitute, eliminate or add to any of the Products; (b) to review, modify, filter, disable, delete and remove any and all content and information from any of the Products.
We own all intellectual property and other rights in each of our Products and its respective contents, including, but not limited to, software, text, images, trademarks, service marks, copyrights, patents, designs, and its "look and feel." This intellectual property is available under the terms of our copyright licenses and our Trademark Guidelines. Subject to the terms of this Agreement, we grant you a limited, revocable, non-exclusive, non-sublicensable, non-transferable license to access and use our Products solely in accordance with this Agreement. You agree that you will not use, modify, distribute, tamper with, reverse engineer, disassemble or decompile any of our Products for any purpose other than as expressly permitted pursuant to this Agreement. Except as set forth in this Agreement, we grant you no rights to any of our Products, including any intellectual property rights.
You understand and acknowledge that the Protocol is not a Product and we do not directly control the Protocol.
By using any of our Products (including to list, post, promote, or display assets), you grant us a worldwide, non-exclusive, sublicensable, royalty-free license to use, copy, modify, and display any content, including but not limited to text, materials, images, files, communications, comments, feedback, suggestions, ideas, concepts, questions, data, or otherwise, that you post on or through any of our Products for our current and future business purposes, including to provide, promote, and improve the services. This includes any digital file, art, or other material linked to or associated with any assets that are displayed. You grant to us a non-exclusive, transferable, worldwide, perpetual, irrevocable, fully-paid, royalty-free license, with the right to sublicense, under any and all intellectual property rights that you own or control to use, copy, modify, create derivative works based upon any suggestions or feedback for any purpose.
You represent and warrant that you have, or have obtained, all rights, licenses, consents, permissions, power and/or authority necessary to grant the rights granted herein for any material that you list, post, promote, or display on or through any of our Products (including, but not limited to, any assets). You represent and warrant that such content does not contain material subject to copyright, trademark, publicity rights, or other intellectual property rights, unless you have necessary permission or are otherwise legally entitled to post the material and to grant us the license described above, and that the content does not violate any laws.
Our Products may contain references or links to third-party resources, including, but not limited to, information, materials, products, or services, that we do not own or control. In addition, third parties may offer promotions related to your access and use of our Products. We do not approve, monitor, endorse, warrant or assume any responsibility for any such resources or promotions. If you access any such resources or participate in any such promotions, you do so at your own risk, and you understand that this Agreement does not apply to your dealings or relationships with any third parties. You expressly relieve us of any and all liability arising from your use of any such resources or participation in any such promotions.
We reserve the right to cooperate with any law enforcement, court or government investigation or order or third party requesting or directing that we disclose information or content or information that you provide.
You agree not to engage in, or attempt to engage in, any of the following categories of prohibited activity in relation to your access and use of the Interface:
Intellectual Property Infringement. Activity that infringes on or violates any copyright, trademark, service mark, patent, right of publicity, right of privacy, or other proprietary or intellectual property rights under the law.
Cyberattack. Activity that seeks to interfere with or compromise the integrity, security, or proper functioning of any computer, server, network, personal device, or other information technology system, including, but not limited to, the deployment of viruses and denial of service attacks.
Fraud and Misrepresentation. Activity that seeks to defraud us or any other person or entity, including, but not limited to, providing any false, inaccurate, or misleading information in order to unlawfully obtain the property of another.
Market Manipulation. Activity that violates any applicable law, rule, or regulation concerning the integrity of trading markets, including, but not limited to, the manipulative tactics commonly known as "rug pulls", pumping and dumping, and wash trading.
Securities and Derivatives Violations. Activity that violates any applicable law, rule, or regulation concerning the trading of securities or derivatives, including, but not limited to, the unregistered offering of securities and the offering of leveraged and margined commodity products to retail customers in the United States.
Sale of Stolen Property. Buying, selling, or transferring of stolen items, fraudulently obtained items, items taken without authorization, and/or any other illegally obtained items.
Data Mining or Scraping. Activity that involves data mining, robots, scraping, or similar data gathering or extraction methods of content or information from any of our Products.
Objectionable Content. Activity that involves soliciting information from anyone under the age of 18 or that is otherwise harmful, threatening, abusive, harassing, tortious, excessively violent, defamatory, vulgar, obscene, pornographic, libelous, invasive of another's privacy, hateful, discriminatory, or otherwise objectionable.
Any Other Unlawful Conduct. Activity that violates any applicable law, rule, or regulation of the United States or another relevant jurisdiction, including, but not limited to, the restrictions and regulatory requirements imposed by U.S. law.
Each of the Products is a purely non-custodial application, meaning we do not ever have custody, possession, or control of your digital assets at any time. It further means you are solely responsible for the custody of the cryptographic private keys to the digital asset wallets you hold and you should never share your wallet credentials or seed phrase with anyone. We accept no responsibility for, or liability to you, in connection with your use of a wallet and make no representations or warranties regarding how any of our Products will operate with any specific wallet. Likewise, you are solely responsible for any associated wallet and we are not liable for any acts or omissions by you in connection with or as a result of your wallet being compromised.
This Agreement is not intended to, and does not, create or impose any fiduciary duties on us. To the fullest extent permitted by law, you acknowledge and agree that 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 at law or in equity, those duties and liabilities are hereby irrevocably disclaimed, waived, and eliminated. You further agree that the only duties and obligations that we owe you are those set out expressly in this Agreement.
You bear full responsibility for verifying the identity, legitimacy, and authenticity of assets that you purchase from third-party sellers and we make no claims about the identity, legitimacy, functionality, or authenticity of users or assets (and any content associated with such assets) visible on any of our Products.
One or more of our Products may not be available or appropriate for use in your jurisdiction. By accessing or using any of our Products, you agree that you are solely and entirely responsible for compliance with all laws and regulations that may apply to you.
Specifically, your use of our Products or the Protocol may result in various tax consequences, such as income or capital gains tax, value-added tax, goods and services tax, or sales tax in certain jurisdictions.
It is your responsibility to determine whether taxes apply to any transactions you initiate or receive and, if so, to report and/or remit the correct tax to the appropriate tax authority.
Assets may be subject to terms imposed by their creators with respect to the use of the Asset content and benefits associated with a given Asset. For example, when you click to get more details about any of the Assets visible on the Interface, you may notice a third party link to the creator's website. Such websites may include additional terms governing the use of the Asset that owners of the Asset will be required to comply with. We are not a party to any such intrinsic Asset terms, which are between creators, sellers, and buyers. The buyer and seller are entirely responsible for communicating, promulgating, agreeing to, and enforcing those terms, and you are solely responsible for reviewing such terms.
Blockchain transactions require the payment of transaction fees to the appropriate network ("Gas Fees"). Except as otherwise expressly set forth in the terms of another offer by Rasa, you will be solely responsible to pay the Gas Fees for any transaction that you initiate via any of our Products.
You expressly agree that you assume all risks in connection with your access and use of any of our Products. You further expressly waive and release us from any and all liability, claims, causes of action, or damages arising from or in any way relating to your use of any of our Products. If you are a California resident, you waive the benefits and protections of California Civil Code § 1542, which provides: "[a] general release does not extend to claims that the creditor or releasing party does not know or suspect to exist in his or her favor at the time of executing the release and that, if known by him or her, would have materially affected his or her settlement with the debtor or released party."
BY ACCESSING AND USING ANY OF OUR PRODUCTS, YOU REPRESENT THAT YOU ARE FINANCIALLY AND TECHNICALLY SOPHISTICATED ENOUGH TO UNDERSTAND THE INHERENT RISKS ASSOCIATED WITH USING CRYPTOGRAPHIC AND BLOCKCHAIN-BASED SYSTEMS, AND THAT YOU HAVE A WORKING KNOWLEDGE OF THE USAGE AND INTRICACIES OF DIGITAL ASSETS SUCH AS LISK, SO-CALLED STABLECOINS, AND OTHER DIGITAL TOKENS SUCH AS THOSE FOLLOWING THE LISK TOKEN STANDARD (ERC-20) OR SIMILAR (SUCH AS ERC-20 TOKEN STANDARD OR ETHER (ETH)).
IN PARTICULAR, YOU UNDERSTAND THAT THE MARKETS FOR THESE DIGITAL ASSETS ARE NASCENT AND HIGHLY VOLATILE DUE TO RISK FACTORS INCLUDING, BUT NOT LIMITED TO, ADOPTION, SPECULATION, TECHNOLOGY, SECURITY, AND REGULATION. YOU UNDERSTAND THAT ANYONE CAN CREATE A TOKEN, INCLUDING FAKE VERSIONS OF EXISTING TOKENS AND TOKENS THAT FALSELY CLAIM TO REPRESENT PROJECTS, AND ACKNOWLEDGE AND ACCEPT THE RISK THAT YOU MAY MISTAKENLY TRADE THOSE OR OTHER TOKENS. SO-CALLED STABLECOINS MAY NOT BE AS STABLE AS THEY PURPORT TO BE, MAY NOT BE FULLY OR ADEQUATELY COLLATERALIZED, AND MAY BE SUBJECT TO PANICS AND RUNS.
FURTHER, YOU UNDERSTAND THAT SMART CONTRACT TRANSACTIONS AUTOMATICALLY EXECUTE AND SETTLE, AND THAT BLOCKCHAIN-BASED TRANSACTIONS ARE IRREVERSIBLE WHEN CONFIRMED. YOU ACKNOWLEDGE AND ACCEPT THAT THE COST AND SPEED OF TRANSACTING WITH CRYPTOGRAPHIC AND BLOCKCHAIN-BASED SYSTEMS SUCH AS ETHEREUM ARE VARIABLE AND MAY INCREASE DRAMATICALLY AT ANY TIME. YOU FURTHER ACKNOWLEDGE AND ACCEPT THE RISK OF SELECTING TO TRADE IN EXPERT MODES, WHICH CAN EXPOSE YOU TO POTENTIALLY SIGNIFICANT PRICE SLIPPAGE AND HIGHER COSTS.
IF YOU ACT AS A BORROWER THROUGH THE INTERFACE, YOU UNDERSTAND THAT YOUR COLLATERAL TOKENS MAY LOSE SOME OR ALL OF THEIR VALUE WHILE THEY ARE SUPPLIED TO THE PROTOCOL THROUGH THE INTERFACE DUE TO THE FLUCTUATION OF PRICES OF TOKENS IN A TRADING PAIRS OR LIQUIDITY POOLS OR IN ANY OTHER SOURCE OF PRICE THAT IS USED FOR THOSE TOKENS.
IF YOU ACT AS A LIQUIDITY PROVIDER TO THE PROTOCOL THROUGH THE INTERFACE, YOU UNDERSTAND THAT YOUR DIGITAL ASSETS MAY LOSE SOME OR ALL OF THEIR VALUE WHILE THEY ARE SUPPLIED TO THE PROTOCOL THROUGH THE INTERFACE DUE TO THE FLUCTUATION OF PRICES OF TOKENS IN A TRADING PAIR OR LIQUIDITY POOL.
FINALLY, YOU UNDERSTAND THAT WE DO NOT MAKE ANY REPRESENTATION OR WARRANTY ABOUT THE SAFETY OR SOUNDNESS OF ANY CROSS-CHAIN BRIDGE, INCLUDING ITS USE FOR RASA DAO.
IN SUMMARY, YOU ACKNOWLEDGE THAT WE ARE NOT RESPONSIBLE FOR ANY OF THESE VARIABLES OR RISKS, DO NOT OWN OR CONTROL THE PROTOCOL, AND CANNOT BE HELD LIABLE FOR ANY RESULTING LOSSES THAT YOU EXPERIENCE WHILE ACCESSING OR USING ANY OF OUR PRODUCTS. ACCORDINGLY, YOU UNDERSTAND AND AGREE TO ASSUME FULL RESPONSIBILITY FOR ALL OF THE RISKS OF ACCESSING AND USING THE INTERFACE TO INTERACT WITH THE PROTOCOL.
EACH OF OUR PRODUCTS ARE PROVIDED ON AN "AS IS" AND "AS AVAILABLE" BASIS. TO THE FULLEST EXTENT PERMITTED BY LAW, WE DISCLAIM ANY REPRESENTATIONS AND WARRANTIES OF ANY KIND, WHETHER EXPRESS, IMPLIED, OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, THE WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. YOU ACKNOWLEDGE AND AGREE THAT YOUR USE OF EACH OF OUR PRODUCTS IS AT YOUR OWN RISK. WE DO NOT REPRESENT OR WARRANT THAT ACCESS TO ANY OF OUR PRODUCTS WILL BE CONTINUOUS, UNINTERRUPTED, TIMELY, OR SECURE; THAT THE INFORMATION CONTAINED IN ANY OF OUR PRODUCTS WILL BE ACCURATE, RELIABLE, COMPLETE, OR CURRENT; OR THAT ANY OF OUR PRODUCTS WILL BE FREE FROM ERRORS, DEFECTS, VIRUSES, OR OTHER HARMFUL ELEMENTS. NO ADVICE, INFORMATION, OR STATEMENT THAT WE MAKE SHOULD BE TREATED AS CREATING ANY WARRANTY CONCERNING ANY OF OUR PRODUCTS. WE DO NOT ENDORSE, GUARANTEE, OR ASSUME RESPONSIBILITY FOR ANY ADVERTISEMENTS, OFFERS, OR STATEMENTS MADE BY THIRD PARTIES CONCERNING ANY OF OUR PRODUCTS.
SIMILARLY, THE PROTOCOL IS PROVIDED "AS IS", AT YOUR OWN RISK, AND WITHOUT WARRANTIES OF ANY KIND. ALTHOUGH WE CONTRIBUTED TO THE INITIAL CODE FOR THE PROTOCOL, WE DO NOT PROVIDE, OWN, OR DIRECTLY CONTROL THE PROTOCOL, WHICH IS RUN AUTONOMOUSLY WITHOUT ANY HEADCOUNT BY SMART CONTRACTS DEPLOYED ON VARIOUS BLOCKCHAINS. UPGRADES AND MODIFICATIONS TO THE PROTOCOL ARE GENERALLY MANAGED IN A COMMUNITY-DRIVEN WAY BY HOLDERS OF THE RASA GOVERNANCE TOKEN. NO DEVELOPER OR ENTITY INVOLVED IN CREATING THE PROTOCOL WILL BE LIABLE FOR ANY CLAIMS OR DAMAGES WHATSOEVER ASSOCIATED WITH YOUR USE, INABILITY TO USE, OR YOUR INTERACTION WITH OTHER USERS OF, THE PROTOCOL, INCLUDING ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, PUNITIVE OR CONSEQUENTIAL DAMAGES, OR LOSS OF PROFITS, CRYPTOCURRENCIES, TOKENS, OR ANYTHING ELSE OF VALUE. WE DO NOT ENDORSE, GUARANTEE, OR ASSUME RESPONSIBILITY FOR ANY ADVERTISEMENTS, OFFERS, OR STATEMENTS MADE BY THIRD PARTIES CONCERNING ANY OF OUR PRODUCTS.
WE ALSO CANNOT GUARANTEE THAT ANY ASSETS VISIBLE THROUGH THE USE OF OUR PRODUCTS WILL ALWAYS REMAIN VISIBLE AND/OR AVAILABLE TO BE BOUGHT, SOLD, OR TRANSFERRED.
ANY PAYMENTS OR FINANCIAL TRANSACTIONS THAT YOU ENGAGE IN WILL BE PROCESSED VIA AUTOMATED SMART CONTRACTS. ONCE EXECUTED, WE HAVE NO CONTROL OVER THESE PAYMENTS OR TRANSACTIONS, NOR DO WE HAVE THE ABILITY TO REVERSE ANY PAYMENTS OR TRANSACTIONS.
WE MAY PROVIDE INFORMATION ABOUT TOKENS IN OUR PRODUCTS SOURCED FROM THIRD-PARTY DATA PARTNERS THROUGH FEATURES SUCH AS RARITY SCORES, TOKEN EXPLORER OR TOKEN LISTS. WE MAY ALSO PROVIDE WARNING LABELS FOR CERTAIN TOKENS. THE PROVISION OF INFORMATIONAL MATERIALS DOES NOT MAKE TRADES IN THOSE TOKENS SOLICITED; WE ARE NOT ATTEMPTING TO INDUCE YOU TO MAKE ANY PURCHASE AS A RESULT OF INFORMATION PROVIDED. ALL SUCH INFORMATION PROVIDED BY ANY OF OUR PRODUCTS IS FOR INFORMATIONAL PURPOSES ONLY AND SHOULD NOT BE CONSTRUED AS INVESTMENT ADVICE OR A RECOMMENDATION THAT A PARTICULAR TOKEN IS A SAFE OR SOUND INVESTMENT. YOU SHOULD NOT TAKE, OR REFRAIN FROM TAKING, ANY ACTION BASED ON ANY INFORMATION CONTAINED IN ANY OF OUR PRODUCTS. BY PROVIDING TOKEN INFORMATION FOR YOUR CONVENIENCE, WE DO NOT MAKE ANY INVESTMENT RECOMMENDATIONS TO YOU OR OPINE ON THE MERITS OF ANY TRANSACTION OR OPPORTUNITY. YOU ALONE ARE RESPONSIBLE FOR DETERMINING WHETHER ANY INVESTMENT, INVESTMENT STRATEGY OR RELATED TRANSACTION IS APPROPRIATE FOR YOU BASED ON YOUR PERSONAL INVESTMENT OBJECTIVES, FINANCIAL CIRCUMSTANCES, AND RISK TOLERANCE.
You agree to hold harmless, release, defend, and indemnify us and our officers, directors, employees, contractors, agents, affiliates, and subsidiaries from and against all claims, damages, obligations, losses, liabilities, costs, and expenses arising from: (a) your access and use of any of our Products; (b) your violation of any term or condition of this Agreement, the right of any third party, or any other applicable law, rule, or regulation; (c) any other party's access and use of any of our Products with your assistance or using any device or account that you own or control; and (d) any dispute between you and (i) any other user of any of the Products or (ii) any of your own customers or users.
UNDER NO CIRCUMSTANCES SHALL WE OR ANY OF OUR OFFICERS, DIRECTORS, EMPLOYEES, CONTRACTORS, AGENTS, AFFILIATES, OR SUBSIDIARIES BE LIABLE TO YOU FOR ANY INDIRECT, PUNITIVE, INCIDENTAL, SPECIAL, CONSEQUENTIAL, OR EXEMPLARY DAMAGES, INCLUDING, BUT NOT LIMITED TO, DAMAGES FOR LOSS OF PROFITS, GOODWILL, USE, DATA, OR OTHER INTANGIBLE PROPERTY, ARISING OUT OF OR RELATING TO ANY ACCESS OR USE OF OR INABILITY TO ACCESS OR USE ANY OF THE PRODUCTS, NOR WILL WE BE RESPONSIBLE FOR ANY DAMAGE, LOSS, OR INJURY RESULTING FROM HACKING, TAMPERING, OR OTHER UNAUTHORIZED ACCESS OR USE OF ANY OF THE PRODUCTS OR THE INFORMATION CONTAINED WITHIN IT, WHETHER SUCH DAMAGES ARE BASED IN CONTRACT, TORT, NEGLIGENCE, STRICT LIABILITY, OR OTHERWISE, ARISING OUT OF OR IN CONNECTION WITH AUTHORIZED OR UNAUTHORIZED USE OF ANY OF THE PRODUCTS, EVEN IF AN AUTHORIZED REPRESENTATIVE OF RASA HAS BEEN ADVISED OF OR KNEW OR SHOULD HAVE KNOWN OF THE POSSIBILITY OF SUCH DAMAGES. WE ASSUME NO LIABILITY OR RESPONSIBILITY FOR ANY: (A) ERRORS, MISTAKES, OR INACCURACIES OF CONTENT; (B) PERSONAL INJURY OR PROPERTY DAMAGE, OF ANY NATURE WHATSOEVER, RESULTING FROM ANY ACCESS OR USE OF THE INTERFACE; (C) UNAUTHORIZED ACCESS OR USE OF ANY SECURE SERVER OR DATABASE IN OUR CONTROL, OR THE USE OF ANY INFORMATION OR DATA STORED THEREIN; (D) INTERRUPTION OR CESSATION OF FUNCTION RELATED TO ANY OF THE PRODUCTS; (E) BUGS, VIRUSES, TROJAN HORSES, OR THE LIKE THAT MAY BE TRANSMITTED TO OR THROUGH THE INTERFACE; (F) ERRORS OR OMISSIONS IN, OR LOSS OR DAMAGE INCURRED AS A RESULT OF THE USE OF, ANY CONTENT MADE AVAILABLE THROUGH ANY OF THE PRODUCTS; AND (G) THE DEFAMATORY, OFFENSIVE, OR ILLEGAL CONDUCT OF ANY THIRD PARTY.
WE HAVE NO LIABILITY TO YOU OR TO ANY THIRD PARTY FOR ANY CLAIMS OR DAMAGES THAT MAY ARISE AS A RESULT OF ANY PAYMENTS OR TRANSACTIONS THAT YOU ENGAGE IN VIA ANY OF OUR PRODUCTS, OR ANY OTHER PAYMENT OR TRANSACTIONS THAT YOU CONDUCT VIA ANY OF OUR PRODUCTS OR ANY LOSS OF FUNDS THAT MAY BE CAUSED BY USAGE OF LENDING PLATFORM. EXCEPT AS EXPRESSLY PROVIDED FOR HEREIN, WE DO NOT PROVIDE REFUNDS FOR ANY PURCHASES THAT YOU MIGHT MAKE ON OR THROUGH ANY OF OUR PRODUCTS.
WE MAKE NO WARRANTIES OR REPRESENTATIONS, EXPRESS OR IMPLIED, ABOUT LINKED THIRD PARTY SERVICES, THE THIRD PARTIES THEY ARE OWNED AND OPERATED BY, THE INFORMATION CONTAINED ON THEM, ASSETS AVAILABLE THROUGH THEM, OR THE SUITABILITY, PRIVACY, OR SECURITY OF THEIR PRODUCTS OR SERVICES. YOU ACKNOWLEDGE SOLE RESPONSIBILITY FOR AND ASSUME ALL RISK ARISING FROM YOUR USE OF THIRD-PARTY SERVICES, THIRD-PARTY WEBSITES, APPLICATIONS, OR RESOURCES. WE SHALL NOT BE LIABLE UNDER ANY CIRCUMSTANCES FOR DAMAGES ARISING OUT OF OR IN ANY WAY RELATED TO SOFTWARE, PRODUCTS, SERVICES, AND/OR INFORMATION OFFERED OR PROVIDED BY THIRD-PARTIES AND ACCESSED THROUGH ANY OF OUR PRODUCTS.
SOME JURISDICTIONS DO NOT ALLOW THE LIMITATION OF LIABILITY FOR PERSONAL INJURY, OR OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS LIMITATION MAY NOT APPLY TO YOU. IN NO EVENT SHALL OUR TOTAL LIABILITY TO YOU FOR ALL DAMAGES (OTHER THAN AS MAY BE REQUIRED BY APPLICABLE LAW IN CASES INVOLVING PERSONAL INJURY) EXCEED THE AMOUNT OF ONE HUNDRED U.S. DOLLARS ($100.00 USD) OR ITS EQUIVALENT IN THE LOCAL CURRENCY OF THE APPLICABLE JURISDICTION.
THE FOREGOING DISCLAIMER WILL NOT APPLY TO THE EXTENT PROHIBITED BY LAW.
These terms constitute the entire agreement between you and us with respect to the subject matter hereof. This Agreement supersedes any and all prior or contemporaneous written and oral agreements, communications and other understandings (if any) relating to the subject matter of the terms.
You may not assign or transfer this Agreement, by operation of law or otherwise, without our prior written consent. Any attempt by you to assign or transfer this Agreement without our prior written consent shall be null and void. We may freely assign or transfer this Agreement. Subject to the foregoing, this Agreement will bind and inure to the benefit of the parties, their successors and permitted assigns.
In connection with your historic or current use of one or more of our Products, we may provide you certain incentives, prizes or rewards for completing certain activities, such as completing a certain number of transactions ("User Rewards"). Details regarding the criteria for earning a reward will be described within the applicable Product or official Rasaom documentation. Upon satisfaction of the criteria for obtaining a reward and subject to your compliance with the associated rewards terms, this Agreement, and applicable law — to be determined exclusively by Rasa — we will use commercially reasonable efforts to promptly transfer the earned reward to the digital wallet that you designate or have connected to the applicable Product. We reserve the right to change, modify, discontinue or cancel any rewards programs (including the frequency and criteria for earning such User Rewards), at any time and without notice to you.
We are not registered with the U.S. Securities and Exchange Commission as a national securities exchange or in any other capacity. You understand and acknowledge that we do not broker supply and borrow orders on your behalf. We also do not facilitate the execution or settlement of your orders, which occur entirely on public distributed blockchains like Lisk. As a result, we do not (and cannot) guarantee market best pricing or best execution through our Products or when using our Auto Routing feature, which routes trades across liquidity pools on the Protocol only. Any references in a Product to "best price" does not constitute a representation or warranty about pricing available through such Product, on the Protocol, or elsewhere.
We may provide any notice to you under this Agreement using commercially reasonable means, including using public communication channels. Notices we provide by using public communication channels will be effective upon posting.
If any provision of this Agreement shall be determined to be invalid or unenforceable under any rule, law, or regulation of any local, state, or federal government agency, such provision will be changed and interpreted to accomplish the objectives of the provision to the greatest extent possible under any applicable law and the validity or enforceability of any other provision of this Agreement shall not be affected.
Last modified: November 24, 2024
Core Components
PoolAddressesProviderRegistry: 0x9Ad4e877597DB4158453706cE667513ACbd0FA3D
SupplyLogic: 0xBB2aaC11B06FB264CdD04291C71EC2fc997A4b1c
BorrowLogic: 0x0680B9Aec84f6183e20473481ea592E6957EB28b
LiquidationLogic: 0x24B044c139f5b048640d16a95183a8Cf228e4227
EModeLogic: 0xB478C3a2f8653eA8D0C03c70170a80a8c4960cA8
BridgeLogic: 0x5397887ebC87be9E83D2F3723f31E2eAbE53d61b
ConfiguratorLogic: 0xe547face9e500870c9a2Eb245a0C155Bd677ddf1
FlashLoanLogic: 0x8224bdDE156C243a7B2e40620Fc0354b2fFfb82C
PoolLogic: 0xa6158EdDd90952C3b45Ea36B4e9450f59bd3Db49
Treasury
Treasury-Controller: 0xcD8d86eFA40481333e62c1A351a9115614e67333
Treasury-Implementation: 0x7c93d788944EE2e2Cf8Cc22422040C55672BB845
TreasuryProxy: 0x4AfEdE13823912b3103D2B31e04Ea2f9ccF1F09B
Pool Configuration
PoolAddressesProvider-Ethereum: 0xDca1A174BccF03366aB72bb156718A5719D44023
PoolDataProvider-Ethereum: 0x904A08D1401B4640b886f7bAaf10F248A1dDA33D
Pool-Implementation: 0x49dC6c197d75E77537F7a4467d49a1eCc4f89137
PoolConfigurator-Implementation: 0xa9059602554F343a5063c70434A92a9721b85958
Access Control
ACLManager-Ethereum: 0xBB3C4345568184403cD8baE3550D85d4C5cA0DAa
Oracles
FallbackOracle-Ethereum: 0x29bc90C8eB896c290283F9EA338716F5fBE497B0
RASAOracle-Ethereum: 0x286835fb2Ec6a893B0D1B0ee8C8aF28773F21F19
Proxy Contracts
Pool-Proxy-Ethereum: 0x617a09f69493560f23B8Da05ADf98CE3B52d7A99
PoolConfigurator-Proxy-Ethereum: 0x902fa59532B46Ec1834F911bB7Bc51A6172332dE
Emissions and Incentives
EmissionManager: 0x534C201fd057992c14adbb17fc77ed4B787CE562
IncentivesV2-Implementation: 0x7a3CdA19484Eb4AB1B6ec5070744C0422EEaB8b1
IncentivesProxy: 0x0e6F4a44b17Df36a62Bac756b1922d3657F401CC
Tokens
RSToken-Ethereum: 0x27FB34A8899E417e2a63A4c815E50A6231fA4bb4
DelegationAwareRSToken-Ethereum: 0xc17BfA9E759313Af94b51305606B0dCEe2fCaE9e
StableDebtToken-Ethereum: 0x0e047d99b2C65011CA0585462a131d9ae52fc199
VariableDebtToken-Ethereum: 0xaF6E61f0d5583a6b3Fb7D70C122516132c816C48
Rate Strategies
ReserveStrategy-rateStrategyVolatileOne: 0x1a9E7cA1dBb8db98fa2BC06faA5b865De33F652f
ReserveStrategy-rateStrategyStableOne: 0x1fAfF2Cdc6E3ede94F8abEC6e4899d9836e01719
ReserveStrategy-rateStrategyStableTwo: 0xaC83D5a1DB5F5FCeA12cCBE017E3596E48b7C0fd
Asset Tokens
WETH-RSToken-Ethereum: 0x817a34792482afB67703a74d2dBD15eA7E8b3E55
WETH-VariableDebtToken-Ethereum: 0x50533E5c61528C0A24454525D145D9C71F3F98B2
WETH-StableDebtToken-Ethereum: 0x5e7220738e09be7C255921d00E066e6c2F1D4537
LSK-RSToken-Ethereum: 0xeB3cb4bB6B5Dc2498E3733B485a6DD70a080258b
LSK-VariableDebtToken-Ethereum: 0x2B55f6fEC3e90A0E8EB5eA46E69074BC71B6e14C
LSK-StableDebtToken-Ethereum: 0x774774b402052819f5de4C2ECcF89Cc404871d4f
USDT-RSToken-Ethereum: 0xda1624daE22C0f3A55b3B0e55EE719a01F99eE58
USDT-VariableDebtToken-Ethereum: 0xc519587aa4776FFa88F31Eade21F1DAB21Be8Da9
USDT-StableDebtToken-Ethereum: 0xf9C43b551ed0792b5b62C5B9fB339F93B351906A
Utilities
WrappedTokenGatewayV3: 0x49261f66c91cC02BEF40C4ad4Be843407AF14414
WalletBalanceProvider: 0xb51b66413284c4182596005f18Bf5620a3B1D836
UiIncentiveDataProviderV3: 0x1EdEaA95dEb0eA5925E2Ff134cAB2ec1075bf0a5
UiPoolDataProviderV3: 0xC077a91e7F2D0b4EfCC2772aE4c6A28967e68d39
https://github.com/desync-labs/rasa-lending-platform-smart-contracts/blob/master/contracts/protocol/pool/L2Pool.sol
The L2Pool
contract is a calldata-optimized extension of the Pool contract in the Rasa Lending protocol. It allows users to interact with the protocol using a compact calldata representation, reducing transaction costs on rollups. Users can supply, withdraw, borrow, repay, and perform other standard lending operations with optimized calldata.
POOL_REVISION
: Version of the pool contract.
ADDRESSES_PROVIDER
: Reference to the PoolAddressesProvider contract.
initialize
: Initializes the pool with the PoolAddressesProvider.
setReserveInterestRateStrategyAddress
: Sets the interest rate strategy address for a reserve.
setConfiguration
: Sets the configuration for a reserve.
updateBridgeProtocolFee
: Updates the bridge protocol fee.
updateFlashloanPremiums
: Updates the flash loan premiums.
configureEModeCategory
: Configures an e-mode category.
setUserEMode
: Sets the user's e-mode category.
resetIsolationModeTotalDebt
: Resets the isolation mode total debt for a reserve.
rescueTokens
: Rescues tokens sent to the contract.
getReserveData
: Returns the reserve data for an asset.
getUserAccountData
: Returns the user's account data.
getConfiguration
: Returns the configuration of a reserve.
getUserConfiguration
: Returns the user's configuration.
getReserveNormalizedIncome
: Returns the normalized income for a reserve.
getReserveNormalizedVariableDebt
: Returns the normalized variable debt for a reserve.
getReservesList
: Returns the list of reserves.
getReserveAddressById
: Returns the address of a reserve by its ID.
MAX_STABLE_RATE_BORROW_SIZE_PERCENT
: Returns the maximum stable rate borrow size percentage.
BRIDGE_PROTOCOL_FEE
: Returns the bridge protocol fee.
FLASHLOAN_PREMIUM_TOTAL
: Returns the total flash loan premium.
FLASHLOAN_PREMIUM_TO_PROTOCOL
: Returns the protocol's share of the flash loan premium.
MAX_NUMBER_RESERVES
: Returns the maximum number of reserves.
getEModeCategoryData
: Returns the data of an e-mode category.
getUserEMode
: Returns the e-mode category of a user.
supply
: Supplies assets to the pool.
supplyWithPermit
: Supplies assets to the pool with a permit.
withdraw
: Withdraws assets from the pool.
borrow
: Borrows assets from the pool.
repay
: Repays borrowed assets.
repayWithPermit
: Repays borrowed assets with a permit.
repayWithRSTokens
: Repays borrowed assets using RS tokens.
swapBorrowRateMode
: Swaps the borrow rate mode.
rebalanceStableBorrowRate
: Rebalances the stable borrow rate.
setUserUseReserveAsCollateral
: Sets a user's reserve as collateral.
liquidationCall
: Executes a liquidation call.
flashLoan
: Executes a flash loan.
flashLoanSimple
: Executes a simple flash loan.
finalizeTransfer
: Finalizes a transfer of assets.
initReserve
: Initializes a reserve.
dropReserve
: Drops a reserve.
rescueTokens
: Rescues tokens from the contract
Pool
contract):Supply: Emitted when assets are supplied to the pool.
Withdraw: Emitted when assets are withdrawn from the pool.
Borrow: Emitted when assets are borrowed from the pool.
Repay: Emitted when borrowed assets are repaid.
FlashLoan: Emitted when a flash loan is executed.
SwapBorrowRateMode: Emitted when the borrow rate mode is swapped.
RebalanceStableBorrowRate: Emitted when the stable borrow rate is rebalanced.
SetUserUseReserveAsCollateral: Emitted when a user sets a reserve as collateral.
LiquidationCall: Emitted when a liquidation call is executed.
ReserveDataUpdated: Emitted when reserve data is updated.
MintUnbacked: Emitted when unbacked assets are minted.
BackUnbacked: Emitted when unbacked assets are backed.
MintToTreasury: Emitted when assets are minted to the treasury.
InitializeReserve: Emitted when a reserve is initialized.
DropReserve: Emitted when a reserve is dropped.
SetReserveInterestRateStrategyAddress: Emitted when the interest rate strategy address for a reserve is set.
SetConfiguration: Emitted when the configuration of a reserve is set.
UpdateBridgeProtocolFee: Emitted when the bridge protocol fee is updated.
UpdateFlashloanPremiums: Emitted when flash loan premiums are updated.
ConfigureEModeCategory: Emitted when an e-mode category is configured.
SetUserEMode: Emitted when a user's e-mode category is set.
ResetIsolationModeTotalDebt: Emitted when the isolation mode total debt is reset.
RescueTokens: Emitted when tokens are rescued.
There are no additional events defined specifically in the L2Pool
contract. It leverages the compact calldata representation to optimize the inherited functionalities from the Pool
contract without adding new events.
https://github.com/desync-labs/rasa-lending-platform-smart-contracts/blob/master/contracts/protocol/tokenization/StableDebtToken.sol
The StableDebtToken
is a specialized token in the Rasa Lending used to track borrowing positions at a stable interest rate. This token does not inherit from IERC20
to save on code size and avoids standard ERC20 functionalities such as transfers and approvals, given its non-transferable nature.
Initialized: Emitted when the token is initialized.
underlyingAsset
: Address of the underlying asset.
pool
: Address of the associated pool.
incentivesController
: Address of the incentives controller.
debtTokenDecimals
: Decimals of the debt token.
debtTokenName
: Name of the debt token.
debtTokenSymbol
: Symbol of the debt token.
params
: Encoded parameters for additional initialization.
Mint: Emitted when new stable debt is minted.
user
: Address of the user who triggered the minting.
onBehalfOf
: Address receiving the stable debt tokens.
amount
: Amount minted (user-entered amount + balance increase from interest).
currentBalance
: Balance of the user based on the previous balance and balance increase from interest.
balanceIncrease
: Increase in balance since the last action of the user onBehalfOf
.
newRate
: Rate of the debt after the minting.
avgStableRate
: Next average stable rate after the minting.
newTotalSupply
: Next total supply of the stable debt token after the action.
Burn: Emitted when stable debt is burned.
from
: Address from which the debt will be burned.
amount
: Amount being burned (user-entered amount - balance increase from interest).
currentBalance
: Balance of the user based on the previous balance and balance increase from interest.
balanceIncrease
: Increase in balance since the last action of from
.
avgStableRate
: Next average stable rate after the burning.
newTotalSupply
: Next total supply of the stable debt token after the action.
initialize
Initializes the debt token.
Parameters:
pool
: The pool contract that is initializing this contract.
underlyingAsset
: The address of the underlying asset of this debt token.
incentivesController
: The smart contract managing potential incentives distribution.
debtTokenDecimals
: The decimals of the debt token, same as the underlying asset's.
debtTokenName
: The name of the token.
debtTokenSymbol
: The symbol of the token.
params
: Encoded parameters for additional initialization.
getAverageStableRate
Returns the average rate of all the stable rate loans.
Returns:
The average stable rate.
getUserLastUpdated
Returns the timestamp of the last update of the user.
Parameters:
user
: The address of the user.
Returns:
The timestamp.
getUserStableRate
Returns the stable rate of the user's debt.
Parameters:
user
: The address of the user.
Returns:
The stable rate of the user.
balanceOf
Returns the balance of a user.
Parameters:
account
: The address of the user.
Returns:
The balance of the user.
mint
Mints debt tokens to the onBehalfOf
address.
Parameters:
user
: The address receiving the borrowed underlying.
onBehalfOf
: The address receiving the debt tokens.
amount
: The amount of debt tokens to mint.
rate
: The rate of the debt being minted.
Returns:
bool
: True if it is the first borrow, false otherwise.
uint256
: The total stable debt.
uint256
: The average stable borrow rate.
burn
Burns debt of user
.
Parameters:
from
: The address from which the debt will be burned.
amount
: The amount of debt tokens getting burned.
Returns:
uint256
: The total stable debt.
uint256
: The average stable borrow rate.
getSupplyData
Returns the principal, the total supply, the average stable rate, and the timestamp for the last update.
Returns:
uint256
: The principal.
uint256
: The total supply.
uint256
: The average stable rate.
uint40
: The timestamp of the last update.
getTotalSupplyAndAvgRate
Returns the total supply and the average stable rate.
Returns:
uint256
: The total supply.
uint256
: The average rate.
totalSupply
Returns the total supply of the stable debt tokens.
Returns:
The total supply.
getTotalSupplyLastUpdated
Returns the timestamp of the last update of the total supply.
Returns:
The timestamp.
principalBalanceOf
Returns the principal debt balance of the user.
Parameters:
user
: The address of the user.
Returns:
The debt balance of the user since the last burn/mint action.
UNDERLYING_ASSET_ADDRESS
Returns the address of the underlying asset of this stable debt token.
Returns:
The address of the underlying asset.
The following ERC20 functions are not implemented because StableDebtToken
is non-transferable:
transfer
allowance
approve
transferFrom
increaseAllowance
decreaseAllowance
Last modified: November 24, 2024
This Privacy Policy (the “Policy”) explains how Rasa DAO ("Rasa", the “Company”, “we”, “us” or “our”) collects, uses, and shares data in connection with the Rasa web app (app.rasa.finance), rasa.finance website and all of our other properties, products, and services (the “Services”). Your use of the Services is subject to this Policy as well as our Terms of Service.
Rasa is a decentralized autonomous organization (DAO) that operates app.rasa.finance among other products and services.
Rasa is a censorship-resistant set of smart contracts deployed across various Layer 1 and Layer 2 chains. It is not governed by Rasa.
Rasa does not collect and store personal data, such as first name, last name, street address, date of birth, email address, or IP address.
Rasa collects non-identifiable data, such as public on-chain data, and limited off-chain data like device type, browser version, etc. This is to help drive production vision, not track users.
Rasa continues to explore methods to further protect consumers' privacy, such as opt-out prompts, migrating to privacy-centric tooling and deploying proxies to anonymize network traffic.
Users are empowered to explore client-side privacy techniques and tools.
Any material changes to privacy will be reflected in an updated privacy policy.
Privacy is central to everything we do at the Company. And we've enshrined transparency as one of our Company values. Accordingly, we aspire to be transparent about what little data we do collect. We do not maintain user accounts and do not collect and store personal data, such as your name or internet protocol (“IP”) address. When you interact with the Services, we collect only:
Publicly-available blockchain data. When you connect your non-custodial blockchain wallet to the Services, we collect and log your publicly-available blockchain address to learn more about your use of the Services and to screen your wallet for any prior illicit activity. We screen your wallet using intelligence provided by leading blockchain analytics providers. Note that blockchain addresses are publicly-available data that are not created or assigned by us or any central party, and by themselves are not personally identifying.
Information from localStorage and other tracking technologies. We and our third-party services providers may access and collect information from localStorage, mobile deviceID, cookies, web beacons, and other similar technologies to provide and personalize the Services and features of the Services for you across sessions. For example, we may use this information to remember tokens you import, star, or add to your shopping bag. We may also use this information to learn about your preferences, your use of the Services, and our interactions with you. Information we collect from these technologies may include things such as browser type, referring/exit pages, operating system, device or browser language, and other device information. We group and analyze these user journeys collectively, in the aggregate, to improve our product user experience.
Information from other sources. We may receive information about your wallet address or transactions made through the Services from our service providers in order to comply with our legal obligations and prevent the use of our Services in connection with fraudulent or other illicit activities.
Survey or usability information. If you participate in a survey or usability study with us, we will record any biographical information you directly provide to us (for example, your name, email, and job title), the responses you provide to us, and your interactions with the Services.
Correspondence. We will receive any communications and information you provide directly to us via email, customer support, social media, or another support channel (such as Twitter or Discord), or when you participate in any surveys or questionnaires.
Biographical information. If you apply for a job with us, we collect all information provided through our Jobs form, including name, email phone, work and immigration status, and any other resume, cover letter, or free form text you include.
We use the data we collect in accordance with your instructions, including any applicable terms in our Terms of Service, and as required by law. We may also use data for the following purposes:
Providing the Services. We use the data we collect to provide, maintain, customize and improve our Services and features of our Services.
Customer support. We may use information to provide customer support for and answer inquiries about the Services. Safety and security. We may use data to protect against, investigate, and stop fraudulent, unauthorized, or illegal activity. We may also use it to address security risks, solve potential security issues such as bugs, enforce our agreements, and protect our users and Company.
Legal compliance. We may use the information we collect as needed or requested by regulators, government entities, and law enforcement to comply with applicable laws and regulations.
Aggregated data. We may use some of the information we collect or access to compile aggregated data that helps us learn more about how users use the Services and where we can improve your experience.
We may share or disclose the data we collect:
With service providers. We may share your information with our service providers and vendors to assist us in providing, delivering, and improving the Services. For example, we may share your wallet address with service providers like Infura and Cloudflare to provide technical infrastructure services, your wallet address with blockchain analytics providers to detect, prevent, and mitigate financial crime and other illicit or harmful activities, and your activity on our social media pages with our analytics provider to learn more about you interact with us and the Services.
To comply with our legal obligations. We may share your data in the course of litigation, regulatory proceedings, compliance measures, and when compelled by subpoena, court order, or other legal procedure. We may also share data when we believe it is necessary to prevent harm to our users, our Company, or others, and to enforce our agreements and policies, including our Terms of Service.
Safety and Security. We may share data to protect against, investigate, and stop fraudulent, unauthorized, or illegal activity. We may also use it to address security risks, solve potential security issues such as bugs, enforce our agreements, and protect our users, Company, and ecosystem.
Business changes. We may transfer or share data to another entity in the event of a merger, acquisition, bankruptcy, dissolution, reorganization, asset or stock sale, or other business transaction.
With your consent. We may share your information any other time you provide us with your consent to do so.
We do not share your information with any third parties for any marketing purposes whatsoever.
We use services provided by Google and other third parties that use tracking technology such as cookies, deviceID, and localStorage, to collect information about your use of the Services and our interactions with you. You can opt out of having your online activity and device data collected through these third-party services, including by:
Blocking cookies in your browser by following the instructions in your browser settings. For more information about cookies, including how to see the cookies on your device, manage them, and delete them, visit www.allaboutcookies.org.
Blocking or limiting the use of your advertising ID on your mobile device through the device settings.
Using privacy plug-ins or browsers. Certain browsers and browser extensions can be configured to block third-party cookies and trackers.
Using the platform opt-out provided by Google at https://adssettings.google.com. You can learn more about how Google uses your information by reviewing Google’s privacy policy at https://policies.google.com/privacy.
Using advertising industry opt-out tools on each device or browser where you use the Services, available at http://optout.aboutads.info and http://optout.networkadvertising.org.
We may integrate technologies operated or controlled by other parties into parts of the Services. For example, the Services may include links that hyperlink to websites, platforms, and other services not operated or controlled by us. Please note that when you interact with these other parties, including when you leave the Site, those parties may independently collect information about you and solicit information from you. You can learn more about how those parties collect and use your data by consulting their privacy policies and other terms.
We implement and maintain reasonable administrative, physical, and technical security safeguards to help protect data from loss, theft, misuse, unauthorized access, disclosure, alteration, and destruction. Nevertheless, transmission via the internet is not completely secure and we cannot guarantee the security of information about you. You are responsible for all of your activity on the Services, including the security of your blockchain network addresses, cryptocurrency wallets, and their cryptographic keys.
The Services are intended for a general audience and are not directed at children. We do not knowingly receive personal information from children. If you believe we have received personal information about a child under the age of 18, please contact us at [email protected].
The California Consumer Privacy Act of 2018 (“CCPA”) requires certain businesses to provide a CCPA Notice to California residents to explain how we collect, use, and share their personal information, and the rights and choices we offer California residents regarding our handling of their information.
Privacy Practices. We do not “sell” personal information as defined under the CCPA. Please review the “Sharing and Disclosure of Information” section above for further details about the categories of parties with whom we share information.
Privacy Rights. The CCPA gives individuals the right to request information about how we have collected, used, and shared your personal information. It also gives you the right to request a copy of any information we may maintain about you. You may also ask us to delete any personal information that we may have received about you. Please note that the CCPA limits these rights, for example, by prohibiting us from providing certain sensitive information in response to access requests and limiting the circumstances under which we must comply with a deletion request. We will respond to requests for information, access, and deletion only to the extent we are able to associate, with a reasonable effort, the information we maintain with the identifying details you provide in your request. If we deny the request, we will communicate the decision to you. You are entitled to exercise the rights described above free from discrimination.
Submitting a Request. You can submit a request for information, access, or deletion to [email protected].
Identity Verification. The CCPA requires us to collect and verify the identity of any individual submitting a request to access or delete personal information before providing a substantive response.
Authorized Agents. California residents can designate an “authorized agent” to submit requests on their behalf. We will require the authorized agent to have a written authorization confirming their authority.
We process personal data for the purposes described in the section titled “How We Use Data” above. Our bases for processing your data include: (i) you have given consent to the process to us or our service provides for one or more specific purposes; (ii) processing is necessary for the performance of a contract with you; (iii) processing is necessary for compliance with a legal obligation; and/or (iv) processing is necessary for the purposes of the legitimate interested pursued by us or a third party, and your interests and fundamental rights and freedoms do not override those interests.
Your rights under the General Data Protection Regulations (“GDPR”) include the right to (i) request access and obtain a copy of your personal data, (ii) request rectification or erasure of your personal data, (iii) object to or restrict the processing of your personal data; and (iv) request portability of your personal data. Additionally, you may withdraw your consent to our collection at any time. Nevertheless, we cannot edit or delete information that is stored on a particular blockchain. Information such as your transaction data, blockchain wallet address, and assets held by your address that may be related to the data we collect is beyond our control.
To exercise any of your rights under the GDPR, please contact us at [email protected]. We may require additional information from you to process your request. Please note that we may retain information as necessary to fulfill the purpose for which it was collected and may continue to do so even after a data subject request in accordance with our legitimate interests, including to comply with our legal obligations, resolves disputes, prevent fraud, and enforce our agreements.
If we make material changes to this Policy, we will notify you via the Services. Nevertheless, your continued use of the Services reflects your periodic review of this Policy and other Company terms, and indicates your consent to them.
If you have any questions about this Policy or how we collect, use, or share your information, please contact us at [email protected].
Understanding Rasa Lending
Rasa Lending allows users to lend and borrow cryptocurrencies. By providing liquidity to the protocol, lenders earn interest on their deposits, while borrowers can access these funds by providing collateral. The platform operates without intermediaries, leveraging smart contracts to automate and secure transactions.
Lender: A user who deposits assets into the Rasa Lending platform to earn interest.
Borrower: A user who borrows assets from the Rasa Lending platform by providing collateral.
Collateral: Assets pledged by borrowers to secure their loans and minimize the risk of default.
Interest Rate: The percentage of interest paid by borrowers on their loans or earned by lenders on their deposits. Rates are determined dynamically based on supply and demand.
Liquidity Pool: A collection of assets provided by lenders, available for borrowers to draw from.
Liquidation: The process of selling a borrower's collateral when their loan falls below the required collateral ratio to protect the protocol from losses.
Lending: Users deposit their assets into the Rasa Lending protocol, adding liquidity to the platform. In return, they receive interest-bearing tokens representing their share of the liquidity pool.
Borrowing: Users can borrow assets from the liquidity pool by providing collateral. The amount they can borrow is determined by the collateral's value and the protocol's collateralization requirements.
Interest Rates: Interest rates for both lenders and borrowers are dynamically adjusted based on the utilization rate of the liquidity pool. Higher utilization leads to higher interest rates, incentivizing more deposits and balancing supply and demand.
Collateral Management: Borrowers must maintain a collateral ratio above a certain threshold to avoid liquidation. If the value of their collateral falls below this threshold, the protocol will automatically liquidate a portion of the collateral to repay the loan and maintain system stability.
Liquidation: When a borrower's collateral ratio drops below the required level, the protocol triggers a liquidation process. Liquidators can purchase the under-collateralized loans at a discount, incentivizing them to repay the loan and sell the collateral.
Rasa Lending's contract architecture is facilitating seamless interactions between various components of the protocol. The architecture consists of several core smart contracts that handle different aspects of the lending and borrowing process. This modular approach ensures that each contract has a well-defined role, enhancing maintainability and scalability.
These smart contracts are the AAVE V3 direct fork. They are battle-tested on various networks and are considered safe.
Key Contracts and Their Roles
LendingPool: The central contract that manages deposits, withdrawals, borrowing, and repayments. It interacts with other contracts to execute these operations and maintain the protocol's state.
LendingPoolCore: Stores the protocol's internal data, such as user balances, reserve configurations, and interest rate models. It serves as the data layer for the LendingPool contract.
LendingPoolConfigurator: Allows authorized entities to configure the protocol's parameters, such as interest rate models, collateral factors, and reserve assets. It ensures that the protocol can be updated and optimized as needed.
InterestRateStrategy: Determines the interest rates for borrowing and lending based on the utilization rates of the asset pools. Multiple strategies can be implemented to accommodate different assets and market conditions.
CollateralManager: Manages collateral for borrowers, ensuring that loans are properly collateralized and initiating the liquidation process when necessary.
PriceOracle: Provides real-time price data for assets, enabling accurate calculation of collateral values and ensuring that loans remain adequately collateralized.
Contract Interactions and Data Flow
The interaction between contracts in Rasa Lending follows a well-defined flow to ensure efficiency and security. Here’s how these interactions typically occur:
User Interaction: Users interact with the LendingPool contract to deposit assets, borrow funds, repay loans, and withdraw assets.
Data Access: The LendingPool contract interacts with the LendingPoolCore contract to access and update user balances, reserve configurations, and other protocol data.
Interest Calculation: When users deposit or borrow assets, the LendingPool contract calls the InterestRateStrategy contract to determine the applicable interest rates based on current utilization rates.
Collateral Management: When a user borrows assets, the LendingPool contract interacts with the CollateralManager contract to verify collateral requirements and manage collateral deposits.
Price Updates: The PriceOracle contract continuously updates asset prices, which are used by the LendingPool and CollateralManager contracts to assess collateral values and determine liquidation thresholds.
Liquidation: If a borrower's collateral falls below the required threshold, the CollateralManager contract initiates the liquidation process, interacting with the LendingPool contract to repay the loan and sell the collateral.
https://github.com/desync-labs/rasa-lending-platform-smart-contracts/blob/master/contracts/protocol/tokenization/RSToken.sol
The RSToken is an interest-bearing token used within the Rasa Lending. It represents the user's stake in the underlying assets supplied to the protocol. This document provides details on the storage, functions, and events related to the RSToken contract.
name() external view returns (string memory)
: Returns the name of the token.
symbol() external view returns (string memory)
: Returns the symbol of the token.
decimals() external view returns (uint8)
: Returns the decimals of the token.
totalSupply() public view returns (uint256)
: Returns the total supply of the token.
balanceOf(address account) public view returns (uint256)
: Returns the balance of the specified account.
transfer(address recipient, uint256 amount) external returns (bool)
: Transfers tokens from the caller to the specified recipient.
allowance(address owner, address spender) external view returns (uint256)
: Returns the allowance of the spender for the owner's tokens.
approve(address spender, uint256 amount) external returns (bool)
: Approves the spender to use the specified amount of the caller's tokens.
transferFrom(address sender, address recipient, uint256 amount) external returns (bool)
: Transfers tokens from the sender to the recipient using the allowance mechanism.
getIncentivesController() external view returns (IRASAIncentivesController)
: Returns the address of the incentives controller.
setIncentivesController(IRASAIncentivesController controller) external
: Sets a new incentives controller.
mint(address caller, address onBehalfOf, uint256 amount, uint256 index) external returns (bool)
: Mints tokens to the specified user.
burn(address from, address receiverOfUnderlying, uint256 amount, uint256 index) external
: Burns tokens from the specified user and transfers the underlying asset to the specified receiver.
mintToTreasury(uint256 amount, uint256 index) external
: Mints tokens to the treasury.
transferOnLiquidation(address from, address to, uint256 value) external
: Transfers tokens during liquidation.
transferUnderlyingTo(address target, uint256 amount) external
: Transfers the underlying asset to the specified target.
handleRepayment(address user, address onBehalfOf, uint256 amount) external
: Handles repayment of the underlying asset.
permit(address owner, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s) external
: Approves spending of tokens using a signed message.
BalanceTransfer(address indexed from, address indexed to, uint256 value, uint256 index)
: Emitted during the transfer of tokens.
Mint(address indexed caller, address indexed onBehalfOf, uint256 value, uint256 balanceIncrease, uint256 index)
: Emitted during the minting of tokens.
Burn(address indexed from, address indexed target, uint256 value, uint256 balanceIncrease, uint256 index)
: Emitted during the burning of tokens.
Transfer(address indexed from, address indexed to, uint256 value)
: Emitted during the transfer of tokens.
Approval(address indexed owner, address indexed spender, uint256 value)
: Emitted when approval for spending is granted.
To cover the most important flows: supply, borrow, repay and withdraw an asset, follow the steps below.
Go to
Connect your Web3 wallet (such as ) and make sure your network is set to the intended chain (i.e., ).
Choose the asset to Supply.
You can investigate the for this asset to make the decision. Clock "Details" button.
Click "Supply" button.
Enter the amount of the asset you would like to supply.
Click "Supply Asset"
If this is your first time supplying this asset you may be required to approve the asset transfer before the actual transfer (depending on the asset type).
Sign and send the transaction in your Wallet.
Wait for the transaction to be processed.
Once the transaction has gone through, you'll see your asset supply in "Your supplies".
Now, you can borrow assets against your collateral. Be careful only to borrow a little; otherwise, your position may be liquidated. The simplest metric for the position risk is the health factor.
Choose an asset to borrow and click "Borrow" button.
Enter the amount of the asset you would like to borrow. Pay attention to the Health Factor.
Click "Borrow Asset"
Sign and send the transaction in your Wallet.
Wait for the transaction to be processed.
Once the transaction has gone through, you'll see your asset borrowed in "Your borrows".
If you have significant borrowing positions, your ability to withdraw your supply may be restricted. You need to repay all your borrowed assets with interest to withdraw all your supplies.
Choose the asset to repay and click "Repay" button.
Enter the amount of the asset you would like to repay.
Click "Repay Asset"
If this is your first time repaying this asset you may be required to approve the asset transfer before the actual transfer (depending on the collateral type).
Sign and send the transaction in your Wallet.
Wait for the transaction to be processed.
Once the transaction has gone through, you'll see changes in "Your borrows".
Choose the asset to withdraw and click "Withdraw" button.
Enter the amount of the asset you would like to withdraw.
Click "Withdraw Asset"
Sign and send the transaction in your Wallet.
Wait for the transaction to be processed.
Once the transaction has gone through, you'll see changes in "Your supplies".
Pay attention to your Health Factor. If it becomes too small, your supplied assets may be liquidated to restore it. In that case, you will lose your supply.
There are 2 ways how to manage your Health Factors:
Supply more assets
Repay your borrowed assets
https://github.com/desync-labs/rasa-lending-platform-smart-contracts/blob/master/contracts/protocol/tokenization/VariableDebtToken.sol
The VariableDebtToken
contract is part of the Rasa Lending. It tracks users' borrowing positions at variable interest rates. This token is non-transferable and can only be minted or burned by the lending pool.
DEBT_TOKEN_REVISION
: Version of the debt token.
_underlyingAsset
: The address of the underlying asset.
POOL
: Reference to the main Pool contract.
_incentivesController
: Incentives controller for the token.
approveDelegation
: Delegates borrowing power to a user.
delegationWithSig
: Delegates borrowing power via signature.
setIncentivesController
: Sets the incentives controller.
balanceOf
: Returns the debt balance of a user.
totalSupply
: Returns the total supply of the debt token.
borrowAllowance
: Returns the borrow allowance for a user.
name
: Returns the name of the token.
symbol
: Returns the symbol of the token.
decimals
: Returns the number of decimals.
getIncentivesController
: Returns the incentives controller address.
UNDERLYING_ASSET_ADDRESS
: Returns the underlying asset address.
Mint/Burn Functions:
mint
: Mints debt tokens to a user.
burn
: Burns debt tokens from a user.
The following standard ERC20 functions are disabled as this is a non-transferable token:
transfer
allowance
approve
transferFrom
increaseAllowance
decreaseAllowance
These functions revert with an OPERATION_NOT_SUPPORTED
error if called.
Mint
: Emitted when tokens are minted.
Burn
: Emitted when tokens are burned.
BorrowAllowanceDelegated
: Emitted when borrow allowance is delegated.
Transfer
: Emitted when tokens are transferred (disabled in this contract).
Approval
: Emitted when approval is given (disabled in this contract).
Initialized
: Emitted when the contract is initialized.