Skip to main content

V3 Liquidity for Dummies on the QuickSwap DEX

April 2nd 2024

Share on Social Platforms

Hey there, Dragons! The word on the block(chain) is that everyone is enjoying QuickSwap’s V3 DEX more than ever.


But listen, V3 protocols are cutting-edge stuff. Unless you’re an expert, there’s a good chance you could be enjoying your V3 liquidity even more – not to mention benefiting from it a LOT more. To ensure dragons can squeeze every last drop of liquidity out of the market, every last decimal of yields out of their capital, and make the most of Automated Liquidity Management (ALM), QuickSwap has put together the ultimate guide for the V3 Liquidity high-life.

Best of all: it’s super simple and super, you know, quick! Let’s dive in.

Line Break Blog

V3 Liquidity in a Nutshell

The arrival of V3 DEXs marked a major milestone for decentralised marketplaces and left the V2 paradigm in the dust. QuickSwap’s V3 DEX is an especially powerful model that maximises returns while minimising downside risks such as impermanent loss (IL) for LPs and price slippage for traders. In effect, the QuickSwap V3 DEX brings a host of powerful new features that make its Automated Market Maker (AMM) vastly more efficient, and offer unprecedented customisability to LPs.

Concentrated Liquidity

On the QuickSwap V3 DEX, concentrated liquidity is a direct result of the customisable liquidity management features that the platform offers to LPs. With liquidity management, LPs may select designated price ranges for which to support trades. In other words, LPs can concentrate their liquidity within price ranges in order to mitigate the risks associated with impermanent loss, increase capital efficiency, and maximise returns, all while enhancing liquidity for traders. It’s a win-win that makes a world of difference on both sides of a trade.

And when it comes to earning yields, LPs have it easier than ever before. Adding and removing liquidity and claiming rewards associated with an LP position is never more than a couple clicks away.


Let’s take a look at a case example. And by the way, feel free to follow along and run the numbers on your own using the QuickSwap V3 Strategy Simulator. It’s a slick platform QuickSwap developed in-house to help LPs, projects, and users fine-tune their trading and LP strategies to get the most out of their V3 experience. Now, onto some MATIC/ETH fun!


For the above MATIC/ETH position, the LP provided liquidity in a range 50% above and 50% below spot price.

 

Per the QuickSwap V3 Strategy Simulator, this LP position is 4.16x (416%) more efficient than a standard V2 position.

Translation: $25K of liquidity in such a position would effectively function as $104,000 worth of liquidity on a standard V2 DEX. Wild numbers, huh? Just wait until you see what else is possible.

 

For the exact same MATIC/ETH pair above, if an LP elects to provide liquidity in a range 10% above and 10% below spot price, it gets even better. Here, the handy QuickSwap V3 Strategy Simulator calculates a 20.33x (2,033%) increase in efficiency. That means that for this price range, $25k of liquidity would effectively function as the equivalent of $508,250 of liquidity on a standard V2 DEX.

For traders, liquidity that is concentrated within a designated price range means dramatically less slippage. For LPs, on the other hand, it means superior returns, sufficient capital to ensure a smooth trading experience, and a lot less sleep lost worrying about impermanent loss.

 

Talk about more for less.

 

Now, while the dangers of excessive price concentration do exist – mainly, inhibiting price discovery – yields for LPing in a designated price range will also decrease as liquidity becomes more concentrated. Hence, natural free market dynamics tend to smooth out liquidity and optimise price ranges so that markets are sufficiently liquid to curb excessive volatility and still permit healthy price discovery. In addition, the QuickSwap V3 DEX offers Automated Liquidity Management (ALM) to help LPs adjust their strategies in response to changing market dynamics on the fly – but more on that in a second.

Line Break Blog

Customising Concentrated Liquidity

In the V3 scene, LPs have a lot more benefit to reap than meets the eye. For one, LPs do not have to provide liquidity on both sides equally, as in the example above. To that end, LPs can provide 100% of their liquidity on one side of a pair – either within a price range, or at a specific price level.

On this accord, V3 liquidity management actually enables users to set the equivalent of limit orders, price floors, or price ceilings, or even to dollar-cost average (DCA) into positions across an extended price range. By DCAing effectively, whales, funds, projects, and other large-volume token holders can gradually offload positions into the market without introducing any undue sell pressure or corresponding volatility. The same functions can be implemented on the buy side – that is, above spot price – for individuals and organisations looking to DCA into positions.

 

Now, time for another case example exhibiting the power of one-sided LPing on the QuickSwap V3 DEX – this time on the MATIC/USD pair.


For the MATIC/USDC pair above, the MATIC spot price is 1.066. By establishing a one-sided LP position between 1.0024 and 1.0517 fully below spot, an LP deposits 100% USDC.

During a period of higher sell pressure, such a position supports MATIC with additional USDC, without creating opposing sell-side pressure against new buyers of MATIC. Essentially, a one-sided LP position increases depth on one side of a trading pair, while leaving the other side as is.

The tighter the range, the more resistance there is to price movement in the direction of the one-sided liquidity position. While the position stands to stabilise the token price, it can also prevent price discovery in the same direction. A user electing to LP in the below-spot range in this case example may either be a project contributing to price stability, or an LP setting a range to DCA into MATIC.

To the contrary, an LP may provide liquidity in a range above the current token price in order to DCA out of MATIC as the price increases, without creating undue sell pressure or volatility.

Line Break Blog

Automated Liquidity Management (ALM) on QuickSwap

Now that you’re up-to-speed on the power of creative LPing on the QuickSwap V3 DEX, you’re really going to love ALM.

Even with V3 Liquidity in place, crypto markets are volatile, unpredictable, and operating around the clock. ALM is composed of a set of smart contracts that continually readjust the parameters of an LP’s position in response to changing market dynamics – most commonly, in response to price movement.

When prices shift, ALM contracts abstract away active liquidity management by rebalancing assets, resetting price ranges, and reinvesting LP rewards to optimise for compound returns. It’s a true set-and-forget liquidity solution that allows LPs to strategise, lock in their parameters, and rest easy knowing that their strategies will be maintained and optimised over time in order to maximise returns and respond optimally to evolving market conditions.

On the QuickSwap DEX V3, LPs can enjoy all the best of strategic V3 liquidity management without any of the painstaking daily adjustments, while traders enjoy peak liquidity, refined price points, and minimal slippage. And, with ALM in action, QuickSwap is truly the decentralised one-stop platform for set-and-forget and earn-and-compound LPing.

Well, what are you waiting for? It’s time to get your liquidity game on today.

Get started.

36.06MBMemory Usage720msRequest Duration
Joomla! Version4.4.9
PHP Version8.1.32
Identityguest
Response200
Templateyootheme
Database
Server
mysql
Version
10.6.20-MariaDB-cll-lve
Collation
latin1_swedish_ci
Conn Collation
utf8mb3_general_ci
$_GET
[]
$_POST
[]
$_SESSION
array:1 [ "joomla" => "***redacted***" ]
$_COOKIE
[]
$_SERVER
array:51 [ "PATH" => "/usr/local/bin:/bin:/usr/bin" "HTTP_ACCEPT" => "text/html,application/xhtm...
session
array:3 [ "counter" => 1 "timer" => array:3 [ "start" => 1743446617 "last" => 1743446617...
registry
array:3 [ "data" => [] "initialized" => false "separator" => "." ]
user
array:18 [ "id" => 0 "name" => null "username" => null "email" => null "password" => "***r...
  • afterLoad (4.08MB) (32.69ms)
  • afterInitialise (11.4MB) (179ms)
  • afterRoute (2.19MB) (33.54ms)
  • beforeRenderComponent com_content (24.64KB) (489μs)
  • Before Access::preloadComponents (all components) (461.38KB) (4.13ms)
  • After Access::preloadComponents (all components) (126.34KB) (1.16ms)
  • Before Access::preloadPermissions (com_content) (3.88KB) (26μs)
  • After Access::preloadPermissions (com_content) (129.77KB) (721μs)
  • Before Access::getAssetRules (id:303 name:com_content.article.193) (10.8KB) (25μs)
  • After Access::getAssetRules (id:303 name:com_content.article.193) (27.73KB) (402μs)
  • afterRenderComponent com_content (13.45MB) (380ms)
  • afterDispatch (92.56KB) (9.58ms)
  • beforeRenderRawModule mod_menu () (389.61KB) (25.36ms)
  • afterRenderRawModule mod_menu () (166.23KB) (4.99ms)
  • beforeRenderModule mod_menu () (696B) (9μs)
  • afterRenderModule mod_menu () (4.21KB) (303μs)
  • beforeRenderRawModule mod_finder () (2.39KB) (24μs)
  • afterRenderRawModule mod_finder () (1.85MB) (15.67ms)
  • beforeRenderModule mod_finder () (704B) (10μs)
  • afterRenderModule mod_finder () (3.27KB) (268μs)
  • beforeRenderRawModule mod_custom () (2.68KB) (917μs)
  • afterRenderRawModule mod_custom () (38.3KB) (1.96ms)
  • beforeRenderModule mod_custom () (704B) (10μs)
  • afterRenderModule mod_custom () (1.23KB) (191μs)
  • beforeRenderRawModule mod_finder () (3.96KB) (1.41ms)
  • afterRenderRawModule mod_finder () (6.2KB) (1.35ms)
  • beforeRenderModule mod_finder () (704B) (8μs)
  • afterRenderModule mod_finder () (1.23KB) (201μs)
  • beforeRenderRawModule mod_menu () (736B) (24μs)
  • afterRenderRawModule mod_menu () (35.34KB) (3.07ms)
  • beforeRenderModule mod_menu () (696B) (9μs)
  • afterRenderModule mod_menu () (1.23KB) (201μs)
  • beforeRenderRawModule mod_yootheme_builder (Mobile Dialog) (560B) (25μs)
  • afterRenderRawModule mod_yootheme_builder (Mobile Dialog) (27.42KB) (9.98ms)
  • beforeRenderModule mod_yootheme_builder (Mobile Dialog) (720B) (10μs)
  • afterRenderModule mod_yootheme_builder (Mobile Dialog) (1.25KB) (214μs)
  • beforeRenderRawModule mod_custom () (13.24KB) (1.36ms)
  • afterRenderRawModule mod_custom () (944B) (391μs)
  • beforeRenderModule mod_custom () (704B) (10μs)
  • afterRenderModule mod_custom () (2.59KB) (247μs)
  • beforeRenderRawModule mod_custom () (64.36KB) (927μs)
  • afterRenderRawModule mod_custom () (896B) (379μs)
  • beforeRenderModule mod_custom () (704B) (9μs)
  • afterRenderModule mod_custom () (2.52KB) (233μs)
  • afterRender (422.78KB) (8.42ms)
  • 1 x afterRenderComponent com_content (13.45MB) (52.76%)
    379.83ms
    1 x afterInitialise (11.4MB) (24.85%)
    178.93ms
    1 x afterRoute (2.19MB) (4.66%)
    33.54ms
    1 x afterLoad (4.08MB) (4.54%)
    32.69ms
    1 x beforeRenderRawModule mod_menu () (389.61KB) (3.52%)
    25.36ms
    1 x afterRenderRawModule mod_finder () (1.85MB) (2.18%)
    15.67ms
    1 x afterRenderRawModule mod_yootheme_builder (Mobile Dialog) (27.42KB) (1.39%)
    9.98ms
    1 x afterDispatch (92.56KB) (1.33%)
    9.58ms
    1 x afterRender (422.78KB) (1.17%)
    8.42ms
    1 x afterRenderRawModule mod_menu () (166.23KB) (0.69%)
    4.99ms
    1 x Before Access::preloadComponents (all components) (461.38KB) (0.57%)
    4.13ms
    1 x afterRenderRawModule mod_menu () (35.34KB) (0.43%)
    3.07ms
    1 x afterRenderRawModule mod_custom () (38.3KB) (0.27%)
    1.96ms
    1 x beforeRenderRawModule mod_finder () (3.96KB) (0.2%)
    1.41ms
    1 x beforeRenderRawModule mod_custom () (13.24KB) (0.19%)
    1.36ms
    1 x afterRenderRawModule mod_finder () (6.2KB) (0.19%)
    1.35ms
    1 x After Access::preloadComponents (all components) (126.34KB) (0.16%)
    1.16ms
    1 x beforeRenderRawModule mod_custom () (64.36KB) (0.13%)
    927μs
    1 x beforeRenderRawModule mod_custom () (2.68KB) (0.13%)
    917μs
    1 x After Access::preloadPermissions (com_content) (129.77KB) (0.1%)
    721μs
    1 x beforeRenderComponent com_content (24.64KB) (0.07%)
    489μs
    1 x After Access::getAssetRules (id:303 name:com_content.article.193) (27.73KB) (0.06%)
    402μs
    1 x afterRenderRawModule mod_custom () (944B) (0.05%)
    391μs
    1 x afterRenderRawModule mod_custom () (896B) (0.05%)
    379μs
    1 x afterRenderModule mod_menu () (4.21KB) (0.04%)
    303μs
    1 x afterRenderModule mod_finder () (3.27KB) (0.04%)
    268μs
    1 x afterRenderModule mod_custom () (2.59KB) (0.03%)
    247μs
    1 x afterRenderModule mod_custom () (2.52KB) (0.03%)
    233μs
    1 x afterRenderModule mod_yootheme_builder (Mobile Dialog) (1.25KB) (0.03%)
    214μs
    1 x afterRenderModule mod_finder () (1.23KB) (0.03%)
    201μs
    1 x afterRenderModule mod_menu () (1.23KB) (0.03%)
    201μs
    1 x afterRenderModule mod_custom () (1.23KB) (0.03%)
    191μs
    3 x beforeRenderModule mod_custom () (704B) (0%)
    29μs
    1 x Before Access::preloadPermissions (com_content) (3.88KB) (0%)
    26μs
    1 x Before Access::getAssetRules (id:303 name:com_content.article.193) (10.8KB) (0%)
    25μs
    1 x beforeRenderRawModule mod_yootheme_builder (Mobile Dialog) (560B) (0%)
    25μs
    1 x beforeRenderRawModule mod_finder () (2.39KB) (0%)
    24μs
    1 x beforeRenderRawModule mod_menu () (736B) (0%)
    24μs
    2 x beforeRenderModule mod_menu () (696B) (0%)
    18μs
    2 x beforeRenderModule mod_finder () (704B) (0%)
    18μs
    1 x beforeRenderModule mod_yootheme_builder (Mobile Dialog) (720B) (0%)
    10μs
38 statements were executed, 5 of which were duplicates, 33 unique55.39ms329.27KB
  • SELECT @@SESSION.sql_mode;101μs1.95KB/libraries/vendor/joomla/database/src/Mysqli/MysqliDriver.php:334Copy
  • SELECT `data` FROM `pde83_session` WHERE `session_id` = ?2.33ms1.68KBParams/libraries/vendor/joomla/session/src/Handler/DatabaseHandler.php:261Copy
  • SELECT `session_id` FROM `pde83_session` WHERE `session_id` = :session_id LIMIT 1159μs1.9KBParams/libraries/src/Session/MetadataManager.php:187Copy
  • INSERT INTO `pde83_session` (`session_id`,`guest`,`time`,`userid`,`username`) VALUES (:session_id, :guest, :time, :user_id, :username)236μs912BParams/libraries/src/Session/MetadataManager.php:260Copy
  • SELECT `id`,`rules` FROM `pde83_viewlevels`72μs17.63KB/libraries/src/Access/Access.php:955Copy
  • SELECT `b`.`id` FROM `pde83_usergroups` AS `a` LEFT JOIN `pde83_usergroups` AS `b` ON `b`.`lft` <= `a`.`lft` AND `b`.`rgt` >= `a`.`rgt` WHERE `a`.`id` = :guest78μs1.68KBParams/libraries/src/Access/Access.php:868Copy
  • SELECT `value` FROM `pde83_admintools_storage` WHERE `key` = 'cparams'69μs912B/administrator/components/com_admintools/src/Helper/Storage.php:120Copy
  • SELECT `option`,`view`,`query` FROM `pde83_admintools_wafexceptions`75μs3.36KB/plugins/system/admintools/src/Utility/Cache.php:196Copy
  • SELECT `params` FROM `pde83_extensions` WHERE `type` = 'plugin' AND `folder` = 'system' AND `element` = 'admintools'76μs2.14KB/plugins/system/admintools/src/Utility/RescueUrl.php:324Copy
  • SELECT custom_data FROM pde83_extensions WHERE element = 'yooessentials' AND folder = 'system'78μs2.64KB/plugins/system/yooessentials/helper.php:152Copy
  • SELECT `c`.`id`,`c`.`asset_id`,`c`.`access`,`c`.`alias`,`c`.`checked_out`,`c`.`checked_out_time`,`c`.`created_time`,`c`.`created_user_id`,`c`.`description`,`c`.`extension`,`c`.`hits`,`c`.`language`,`c`.`level`,`c`.`lft`,`c`.`metadata`,`c`.`metadesc`,`c`.`metakey`,`c`.`modified_time`,`c`.`note`,`c`.`params`,`c`.`parent_id`,`c`.`path`,`c`.`published`,`c`.`rgt`,`c`.`title`,`c`.`modified_user_id`,`c`.`version`, CASE WHEN CHAR_LENGTH(`c`.`alias`) != 0 THEN CONCAT_WS(':', `c`.`id`, `c`.`alias`) ELSE `c`.`id` END as `slug` FROM `pde83_categories` AS `s` INNER JOIN `pde83_categories` AS `c` ON (`s`.`lft` <= `c`.`lft` AND `c`.`lft` < `s`.`rgt`) OR (`c`.`lft` < `s`.`lft` AND `s`.`rgt` < `c`.`rgt`) WHERE (`c`.`extension` = :extension OR `c`.`extension` = 'system') AND `c`.`published` = 1 AND `s`.`id` = :id ORDER BY `c`.`lft`3.22ms7.09KBParams/libraries/src/Categories/Categories.php:375Copy
  • SELECT `id` FROM `pde83_content` WHERE `alias` = :alias AND `catid` = :catid1.77ms1.7KBParams/components/com_content/src/Service/Router.php:263Copy
  • SELECT custom_data FROM pde83_extensions WHERE element = 'yooessentials' AND folder = 'system' LIMIT 172μs2.64KB/plugins/system/yooessentials/modules/core-joomla/src/Database.php:54Copy
  • SELECT `id`,`name`,`rules`,`parent_id` FROM `pde83_assets` WHERE `name` IN (:preparedArray1,:preparedArray2,:preparedArray3,:preparedArray4,:preparedArray5,:preparedArray6,:preparedArray7,:preparedArray8,:preparedArray9,:preparedArray10,:preparedArray11,:preparedArray12,:preparedArray13,:preparedArray14,:preparedArray15,:preparedArray16,:preparedArray17,:preparedArray18,:preparedArray19,:preparedArray20,:preparedArray21,:preparedArray22,:preparedArray23,:preparedArray24,:preparedArray25,:preparedArray26,:preparedArray27,:preparedArray28,:preparedArray29,:preparedArray30,:preparedArray31,:preparedArray32,:preparedArray33,:preparedArray34,:preparedArray35,:preparedArray36,:preparedArray37,:preparedArray38,:preparedArray39,:preparedArray40)219μs23.22KBParams/libraries/src/Access/Access.php:357Copy
  • SELECT `id`,`name`,`rules`,`parent_id` FROM `pde83_assets` WHERE `name` LIKE :asset OR `name` = :extension OR `parent_id` = 0112μs18.22KBParams/libraries/src/Access/Access.php:301Copy
  • SHOW FULL COLUMNS FROM `pde83_content`946μs2.61KB/libraries/vendor/joomla/database/src/Mysqli/MysqliDriver.php:625Copy
  • UPDATE `pde83_content` SET `hits` = (`hits` + 1) WHERE `id` = '193'1.64ms2.5KB/libraries/src/Table/Table.php:1325Copy
  • SELECT `a`.`id`,`a`.`asset_id`,`a`.`title`,`a`.`alias`,`a`.`introtext`,`a`.`fulltext`,`a`.`state`,`a`.`catid`,`a`.`created`,`a`.`created_by`,`a`.`created_by_alias`,`a`.`modified`,`a`.`modified_by`,`a`.`checked_out`,`a`.`checked_out_time`,`a`.`publish_up`,`a`.`publish_down`,`a`.`images`,`a`.`urls`,`a`.`attribs`,`a`.`version`,`a`.`ordering`,`a`.`metakey`,`a`.`metadesc`,`a`.`access`,`a`.`hits`,`a`.`metadata`,`a`.`featured`,`a`.`language`,`fp`.`featured_up`,`fp`.`featured_down`,`c`.`title` AS `category_title`,`c`.`alias` AS `category_alias`,`c`.`access` AS `category_access`,`c`.`language` AS `category_language`,`fp`.`ordering`,`u`.`name` AS `author`,`parent`.`title` AS `parent_title`,`parent`.`id` AS `parent_id`,`parent`.`path` AS `parent_route`,`parent`.`alias` AS `parent_alias`,`parent`.`language` AS `parent_language`,ROUND(`v`.`rating_sum` / `v`.`rating_count`, 1) AS `rating`,`v`.`rating_count` AS `rating_count` FROM `pde83_content` AS `a` INNER JOIN `pde83_categories` AS `c` ON `c`.`id` = `a`.`catid` LEFT JOIN `pde83_content_frontpage` AS `fp` ON `fp`.`content_id` = `a`.`id` LEFT JOIN `pde83_users` AS `u` ON `u`.`id` = `a`.`created_by` LEFT JOIN `pde83_categories` AS `parent` ON `parent`.`id` = `c`.`parent_id` LEFT JOIN `pde83_content_rating` AS `v` ON `a`.`id` = `v`.`content_id` WHERE ( (`a`.`id` = :pk AND `c`.`published` > 0) AND (`a`.`publish_up` IS NULL OR `a`.`publish_up` <= :publishUp)) AND (`a`.`publish_down` IS NULL OR `a`.`publish_down` >= :publishDown) AND `a`.`state` IN (:preparedArray1,:preparedArray2)2.68ms24.97KBParams/components/com_content/src/Model/ArticleModel.php:215Copy
  • SELECT `c`.`id`,`c`.`asset_id`,`c`.`access`,`c`.`alias`,`c`.`checked_out`,`c`.`checked_out_time`,`c`.`created_time`,`c`.`created_user_id`,`c`.`description`,`c`.`extension`,`c`.`hits`,`c`.`language`,`c`.`level`,`c`.`lft`,`c`.`metadata`,`c`.`metadesc`,`c`.`metakey`,`c`.`modified_time`,`c`.`note`,`c`.`params`,`c`.`parent_id`,`c`.`path`,`c`.`published`,`c`.`rgt`,`c`.`title`,`c`.`modified_user_id`,`c`.`version`, CASE WHEN CHAR_LENGTH(`c`.`alias`) != 0 THEN CONCAT_WS(':', `c`.`id`, `c`.`alias`) ELSE `c`.`id` END as `slug` FROM `pde83_categories` AS `s` INNER JOIN `pde83_categories` AS `c` ON (`s`.`lft` <= `c`.`lft` AND `c`.`lft` < `s`.`rgt`) OR (`c`.`lft` < `s`.`lft` AND `s`.`rgt` < `c`.`rgt`) WHERE (`c`.`extension` = :extension OR `c`.`extension` = 'system') AND `c`.`access` IN (:preparedArray1,:preparedArray2) AND `c`.`published` = 1 AND `s`.`id` = :id ORDER BY `c`.`lft`132μs7.13KBParams/libraries/src/Categories/Categories.php:375Copy
  • SELECT `m`.`tag_id`,`t`.* FROM `pde83_contentitem_tag_map` AS `m` INNER JOIN `pde83_tags` AS `t` ON `m`.`tag_id` = `t`.`id` WHERE `m`.`type_alias` = :contentType AND `m`.`content_item_id` = :id AND `t`.`published` = 1 AND `t`.`access` IN (:preparedArray1,:preparedArray2)4.76ms7.58KBParams/libraries/src/Helper/TagsHelper.php:388Copy
  • SELECT `c`.`id`,`c`.`asset_id`,`c`.`access`,`c`.`alias`,`c`.`checked_out`,`c`.`checked_out_time`,`c`.`created_time`,`c`.`created_user_id`,`c`.`description`,`c`.`extension`,`c`.`hits`,`c`.`language`,`c`.`level`,`c`.`lft`,`c`.`metadata`,`c`.`metadesc`,`c`.`metakey`,`c`.`modified_time`,`c`.`note`,`c`.`params`,`c`.`parent_id`,`c`.`path`,`c`.`published`,`c`.`rgt`,`c`.`title`,`c`.`modified_user_id`,`c`.`version`, CASE WHEN CHAR_LENGTH(`c`.`alias`) != 0 THEN CONCAT_WS(':', `c`.`id`, `c`.`alias`) ELSE `c`.`id` END as `slug` FROM `pde83_categories` AS `s` INNER JOIN `pde83_categories` AS `c` ON (`s`.`lft` <= `c`.`lft` AND `c`.`lft` < `s`.`rgt`) OR (`c`.`lft` < `s`.`lft` AND `s`.`rgt` < `c`.`rgt`) WHERE (`c`.`extension` = :extension OR `c`.`extension` = 'system') AND `c`.`access` IN (:preparedArray1,:preparedArray2) AND `c`.`published` = 1 AND `s`.`id` = :id ORDER BY `c`.`lft`192μs7.13KBParams/libraries/src/Categories/Categories.php:375Copy
  • SELECT DISTINCT a.id, a.title, a.name, a.checked_out, a.checked_out_time, a.note, a.state, a.access, a.created_time, a.created_user_id, a.ordering, a.language, a.fieldparams, a.params, a.type, a.default_value, a.context, a.group_id, a.label, a.description, a.required, a.only_use_in_subform,l.title AS language_title, l.image AS language_image,uc.name AS editor,ag.title AS access_level,ua.name AS author_name,g.title AS group_title, g.access as group_access, g.state AS group_state, g.note as group_note FROM pde83_fields AS a LEFT JOIN `pde83_languages` AS l ON l.lang_code = a.language LEFT JOIN pde83_users AS uc ON uc.id=a.checked_out LEFT JOIN pde83_viewlevels AS ag ON ag.id = a.access LEFT JOIN pde83_users AS ua ON ua.id = a.created_user_id LEFT JOIN pde83_fields_groups AS g ON g.id = a.group_id LEFT JOIN `pde83_fields_categories` AS fc ON fc.field_id = a.id WHERE ( (`a`.`context` = :context AND (`fc`.`category_id` IS NULL OR `fc`.`category_id` IN (:preparedArray1,:preparedArray2)) AND `a`.`access` IN (:preparedArray3,:preparedArray4)) AND (`a`.`group_id` = 0 OR `g`.`access` IN (:preparedArray5,:preparedArray6)) AND `a`.`state` = :state) AND (`a`.`group_id` = 0 OR `g`.`state` = :gstate) AND `a`.`only_use_in_subform` = :only_use_in_subform ORDER BY a.ordering ASC6.73ms8.42KBParams/libraries/src/MVC/Model/BaseDatabaseModel.php:166Copy
  • SELECT `field_id`,`value` FROM `pde83_fields_values` WHERE `field_id` IN (:preparedArray1,:preparedArray2) AND `item_id` = :itemid1.57ms1.88KBParams/administrator/components/com_fields/src/Model/FieldModel.php:728Copy
  • SELECT `a`.`id`,`a`.`title`,`a`.`catid`,`a`.`language`, CASE WHEN CHAR_LENGTH(`a`.`alias`) != 0 THEN CONCAT_WS(':', `a`.`id`, `a`.`alias`) ELSE a.id END AS `slug`, CASE WHEN CHAR_LENGTH(`cc`.`alias`) != 0 THEN CONCAT_WS(':', `cc`.`id`, `cc`.`alias`) ELSE cc.id END AS `catslug` FROM `pde83_content` AS `a` LEFT JOIN `pde83_categories` AS `cc` ON `cc`.`id` = `a`.`catid` WHERE `a`.`catid` = :catid AND `a`.`state` = :state AND `a`.`access` IN (:preparedArray1,:preparedArray2) AND (`publish_up` IS NULL OR `publish_up` <= :nowDate1) AND (`publish_down` IS NULL OR `publish_down` >= :nowDate2) ORDER BY CASE WHEN `a`.`publish_up` IS NULL THEN `a`.`created` ELSE `a`.`publish_up` END DESC11.3ms5.62KBParams/plugins/content/pagenavigation/src/Extension/PageNavigation.php:188Copy
  • SELECT `c`.`id`,`c`.`asset_id`,`c`.`access`,`c`.`alias`,`c`.`checked_out`,`c`.`checked_out_time`,`c`.`created_time`,`c`.`created_user_id`,`c`.`description`,`c`.`extension`,`c`.`hits`,`c`.`language`,`c`.`level`,`c`.`lft`,`c`.`metadata`,`c`.`metadesc`,`c`.`metakey`,`c`.`modified_time`,`c`.`note`,`c`.`params`,`c`.`parent_id`,`c`.`path`,`c`.`published`,`c`.`rgt`,`c`.`title`,`c`.`modified_user_id`,`c`.`version`, CASE WHEN CHAR_LENGTH(`c`.`alias`) != 0 THEN CONCAT_WS(':', `c`.`id`, `c`.`alias`) ELSE `c`.`id` END as `slug` FROM `pde83_categories` AS `s` INNER JOIN `pde83_categories` AS `c` ON (`s`.`lft` <= `c`.`lft` AND `c`.`lft` < `s`.`rgt`) OR (`c`.`lft` < `s`.`lft` AND `s`.`rgt` < `c`.`rgt`) WHERE (`c`.`extension` = :extension OR `c`.`extension` = 'system') AND `c`.`access` IN (:preparedArray1,:preparedArray2) AND `c`.`published` = 1 AND `s`.`id` = :id ORDER BY `c`.`lft`187μs7.13KBParams/libraries/src/Categories/Categories.php:375Copy
  • SELECT custom_data FROM pde83_extensions WHERE element = 'yootheme' AND folder = 'system' LIMIT 17.74ms104.89KB/templates/yootheme/packages/platform-joomla/src/Storage.php:30Copy
  • SELECT * FROM `pde83_content_types`2.12ms4.03KB/libraries/src/Helper/TagsHelper.php:807Copy
  • SELECT DISTINCT a.id, a.title, a.name, a.checked_out, a.checked_out_time, a.note, a.state, a.access, a.created_time, a.created_user_id, a.ordering, a.language, a.fieldparams, a.params, a.type, a.default_value, a.context, a.group_id, a.label, a.description, a.required, a.only_use_in_subform,l.title AS language_title, l.image AS language_image,uc.name AS editor,ag.title AS access_level,ua.name AS author_name,g.title AS group_title, g.access as group_access, g.state AS group_state, g.note as group_note FROM pde83_fields AS a LEFT JOIN `pde83_languages` AS l ON l.lang_code = a.language LEFT JOIN pde83_users AS uc ON uc.id=a.checked_out LEFT JOIN pde83_viewlevels AS ag ON ag.id = a.access LEFT JOIN pde83_users AS ua ON ua.id = a.created_user_id LEFT JOIN pde83_fields_groups AS g ON g.id = a.group_id WHERE ( (`a`.`context` = :context AND `a`.`access` IN (:preparedArray1,:preparedArray2)) AND (`a`.`group_id` = 0 OR `g`.`access` IN (:preparedArray3,:preparedArray4)) AND `a`.`state` = :state) AND (`a`.`group_id` = 0 OR `g`.`state` = :gstate) AND `a`.`only_use_in_subform` = :only_use_in_subform ORDER BY a.ordering ASC1.31ms7.39KBParams/libraries/src/MVC/Model/BaseDatabaseModel.php:166Copy
  • SELECT DISTINCT a.id, a.title, a.name, a.checked_out, a.checked_out_time, a.note, a.state, a.access, a.created_time, a.created_user_id, a.ordering, a.language, a.fieldparams, a.params, a.type, a.default_value, a.context, a.group_id, a.label, a.description, a.required, a.only_use_in_subform,l.title AS language_title, l.image AS language_image,uc.name AS editor,ag.title AS access_level,ua.name AS author_name,g.title AS group_title, g.access as group_access, g.state AS group_state, g.note as group_note FROM pde83_fields AS a LEFT JOIN `pde83_languages` AS l ON l.lang_code = a.language LEFT JOIN pde83_users AS uc ON uc.id=a.checked_out LEFT JOIN pde83_viewlevels AS ag ON ag.id = a.access LEFT JOIN pde83_users AS ua ON ua.id = a.created_user_id LEFT JOIN pde83_fields_groups AS g ON g.id = a.group_id WHERE ( (`a`.`context` = :context AND `a`.`access` IN (:preparedArray1,:preparedArray2)) AND (`a`.`group_id` = 0 OR `g`.`access` IN (:preparedArray3,:preparedArray4)) AND `a`.`state` = :state) AND (`a`.`group_id` = 0 OR `g`.`state` = :gstate) AND `a`.`only_use_in_subform` = :only_use_in_subform ORDER BY a.ordering ASC1.43ms7.76KBParams/libraries/src/MVC/Model/BaseDatabaseModel.php:166Copy
  • SELECT DISTINCT a.id, a.title, a.name, a.checked_out, a.checked_out_time, a.note, a.state, a.access, a.created_time, a.created_user_id, a.ordering, a.language, a.fieldparams, a.params, a.type, a.default_value, a.context, a.group_id, a.label, a.description, a.required, a.only_use_in_subform,l.title AS language_title, l.image AS language_image,uc.name AS editor,ag.title AS access_level,ua.name AS author_name,g.title AS group_title, g.access as group_access, g.state AS group_state, g.note as group_note FROM pde83_fields AS a LEFT JOIN `pde83_languages` AS l ON l.lang_code = a.language LEFT JOIN pde83_users AS uc ON uc.id=a.checked_out LEFT JOIN pde83_viewlevels AS ag ON ag.id = a.access LEFT JOIN pde83_users AS ua ON ua.id = a.created_user_id LEFT JOIN pde83_fields_groups AS g ON g.id = a.group_id WHERE ( (`a`.`context` = :context AND `a`.`access` IN (:preparedArray1,:preparedArray2)) AND (`a`.`group_id` = 0 OR `g`.`access` IN (:preparedArray3,:preparedArray4)) AND `a`.`state` = :state) AND (`a`.`group_id` = 0 OR `g`.`state` = :gstate) AND `a`.`only_use_in_subform` = :only_use_in_subform ORDER BY a.ordering ASC1.49ms7.39KBParams/libraries/src/MVC/Model/BaseDatabaseModel.php:166Copy
  • SELECT DISTINCT a.id, a.title, a.name, a.checked_out, a.checked_out_time, a.note, a.state, a.access, a.created_time, a.created_user_id, a.ordering, a.language, a.fieldparams, a.params, a.type, a.default_value, a.context, a.group_id, a.label, a.description, a.required, a.only_use_in_subform,l.title AS language_title, l.image AS language_image,uc.name AS editor,ag.title AS access_level,ua.name AS author_name,g.title AS group_title, g.access as group_access, g.state AS group_state, g.note as group_note FROM pde83_fields AS a LEFT JOIN `pde83_languages` AS l ON l.lang_code = a.language LEFT JOIN pde83_users AS uc ON uc.id=a.checked_out LEFT JOIN pde83_viewlevels AS ag ON ag.id = a.access LEFT JOIN pde83_users AS ua ON ua.id = a.created_user_id LEFT JOIN pde83_fields_groups AS g ON g.id = a.group_id WHERE ( (`a`.`context` = :context AND `a`.`access` IN (:preparedArray1,:preparedArray2)) AND (`a`.`group_id` = 0 OR `g`.`access` IN (:preparedArray3,:preparedArray4)) AND `a`.`state` = :state) AND (`a`.`group_id` = 0 OR `g`.`state` = :gstate) AND `a`.`only_use_in_subform` = :only_use_in_subform ORDER BY a.ordering ASC1.43ms7.39KBParams/libraries/src/MVC/Model/BaseDatabaseModel.php:166Copy
  • SELECT `name`,`element` FROM `pde83_extensions` WHERE `type` = 'plugin' AND `folder` = 'finder' AND `enabled` = 181μs1.63KB/administrator/components/com_finder/src/Helper/LanguageHelper.php:135Copy
  • SELECT `title` FROM `pde83_finder_taxonomy` WHERE `parent_id` = 1 AND `state` = 1 AND `access` IN (1,5)73μs12.63KB/administrator/components/com_finder/src/Indexer/Taxonomy.php:314Copy
  • SELECT DISTINCT a.id, a.title, a.name, a.checked_out, a.checked_out_time, a.note, a.state, a.access, a.created_time, a.created_user_id, a.ordering, a.language, a.fieldparams, a.params, a.type, a.default_value, a.context, a.group_id, a.label, a.description, a.required, a.only_use_in_subform,l.title AS language_title, l.image AS language_image,uc.name AS editor,ag.title AS access_level,ua.name AS author_name,g.title AS group_title, g.access as group_access, g.state AS group_state, g.note as group_note FROM pde83_fields AS a LEFT JOIN `pde83_languages` AS l ON l.lang_code = a.language LEFT JOIN pde83_users AS uc ON uc.id=a.checked_out LEFT JOIN pde83_viewlevels AS ag ON ag.id = a.access LEFT JOIN pde83_users AS ua ON ua.id = a.created_user_id LEFT JOIN pde83_fields_groups AS g ON g.id = a.group_id WHERE ( (`a`.`context` = :context AND `a`.`access` IN (:preparedArray1,:preparedArray2)) AND (`a`.`group_id` = 0 OR `g`.`access` IN (:preparedArray3,:preparedArray4)) AND `a`.`state` = :state) AND (`a`.`group_id` = 0 OR `g`.`state` = :gstate) AND `a`.`only_use_in_subform` = :only_use_in_subform ORDER BY a.ordering ASC180μs7.39KBParams/libraries/src/MVC/Model/BaseDatabaseModel.php:166Copy
  • SELECT `title` FROM `pde83_finder_taxonomy` WHERE `parent_id` = 1 AND `state` = 1 AND `access` IN (1,5)99μs1.63KB/administrator/components/com_finder/src/Indexer/Taxonomy.php:314Copy
  • SELECT SUM(CASE WHEN `a`.`next_execution` <= :now THEN 1 ELSE 0 END) AS due_count,SUM(CASE WHEN `a`.`locked` IS NULL THEN 0 ELSE 1 END) AS locked_count FROM `pde83_scheduler_tasks` AS `a` WHERE `a`.`state` = 1119μs1.85KBParams/administrator/components/com_scheduler/src/Model/TasksModel.php:466Copy
  • SELECT `session_id` FROM `pde83_session` WHERE `session_id` = ?204μs1.9KBParams/libraries/vendor/joomla/session/src/Handler/DatabaseHandler.php:291Copy
  • UPDATE `pde83_session` SET `data` = ? , `time` = ? WHERE `session_id` = ?319μs840BParams/libraries/vendor/joomla/session/src/Handler/DatabaseHandler.php:318Copy