This is an extension of the main Orb Collective post, focused specifically on the engineers of the Integrations Team.
Transition Plan | August 2023 and Beyond
The Integrations Team is interested in extending collaboration with the Balancer DAO beyond July 31; however, as previously noted, we require some time to assess the viability of establishing an independent Service Provider (SP). Alternatively, we are considering a transition to one or more existing ecosystem SPs. In any case, to avoid disruptions, all transitions will be promptly organized and put into effect on August 1. The objective is to ensure a seamless transition with no downtime, and to this end, we suggest publishing our transition proposal no later than July 1.
In the meantime, we respectfully request to retain our existing funding through July 31 in order to minimize disruption to our ongoing work and allow ample time to establish transition plans/infrastructure, discuss with the community, and vote on new funding. We are committed to providing valuable services to the Balancer DAO and smoothly transitioning to the next chapter of the Integrations Team.
Current Work | May-July 2023
We unanimously want to continue contributing to Balancer through Orb Collective for the duration of Orbās current funding period, which ends July 31. We look forward to getting back to work next week and refocusing after what has been a turbulent, distracting, and stressful few days.
We are very much open to hearing feedback from the community as to our remaining roadmap, but weāve prepared a preliminary plan of action for the DAOās review. The items below are listed in approximate priority order, and we intend to tackle them roughly one by one in short sprints in order to optimize for not leaving any dangling work behind on July 31. The list reflects our understanding of the Integrations Teamās historical duties as well as feedback that weāve already heard from ecosystem contributors about short-term priorities.
Dev UX
One of our key takeaways from the ONsite in Barcelona was that the majority of the ecosystem still believes Balancerās developer experience could use improvement, and we echo this sentiment. We havenāt always been clear enough in our priorities to devote the time and care required to produce great documentation, example code, or test suites. Here we seek to rectify that by naming āDev UXā our highest priority through July 31.
Documentation
Goals: Provide third-party developers with the deep knowledge they need to scale Balancer integrations beyond what is possible with manual partner support.
Description: Hopefully it seems obvious that a great developer experience starts with great documentation. We have seen strides taken in the recent docs overhaul, but these were largely structural and cosmetic, whereas we still feel that there is some quality content missing in certain areas. Below we provide a rough overview of where we feel there is content concretely missing from the docs, but of course we are open to feedback as well.
- Pricing BPT: Provide solutions for various pool types, including complex compositions such as bb-a-USD or even pools built on top of bb-a-USD. Where necessary, focus specifically on the lending market collateral use case (see āPartner Engineeringā below).
- Internal decimal scaling and Rate Providers: We have some docs on Rate Provider contracts, but none on how they are utilized within the Balancer system, including how both the rate and decimal scaling propagate through pool math libraries. We have seen lots of confusion from partners on this topic and believe it needs clarification.
- Relayers: The existing docs focus too much on the canonical Batch Relayer and not enough on the capabilities or design principles of custom relayers. Docs like these would have saved Cron Finance time and money in their quest to build TWAMM on Balancer.
- Solidity code snippets for swaps/joins/exits: Existing documentation around these standard Balancer functions focuses on the SDK, whereas some partners seek to automate these behaviors in smart contracts. There are many possible points of confusion, including token ordering, userData encoding, and price limits. We can also provide guidance on how to conduct sandwich-free joins and exits without price oracles, which can be useful for many Yearn vault-style integrations.
- Scaffold: We believe that the scaffold-balancer project led by the BeethovenX team is crucial to providing developers with the tooling they need for rapid prototyping. Our documentation suite should treat scaffold-balancer as a core offering and include a usage guide.
- Managed Pools: We have heard plenty of feedback and have no intention of continuing endless development work on Managed Pool Controllers, but that puts the onus on third-party developers to create their own custom integrations. As such, we believe that the docs would benefit greatly from a much more thorough treatment of Managed Pools, which are a core Balancer product harboring hidden complexity. The Integrations Team already has firsthand experience dealing with various gotchas of Managed Pool development and can transform this insight into concise and readable documentation for third parties. The existing documentation is paltry and was intended as a placeholder.
Example Contracts
Goals: Provide third-party developers with ready-made templates so they can build from 0 to 1 in 1/10th the time.
Description: Beyond written documentation, another pillar of a good developer experience is semi-production-ready examples. These offer developers a chance to examine hypothetical real-world code while leaving the Integrations Team and the Balancer DAO unencumbered by the need for audit funding. Such examples can spark inspiration or even serve as templates allowing developers to copy/paste their way to finished products. Here are a few examples that we feel are sorely needed in the short term:
- Custom pools: In the past, this idea has been expressed as a guide to ācreate a custom AMM in 10 minutes.ā Itās not really possible in 10 minutes, but there is plenty of guidance to be offered by some basic templates in this area. The inheritance structure of āofficialā Balancer pools can be somewhat confusing and obfuscate the intentions behind each design decision. Developers need to know which pieces are necessary, which will make their lives easier, and which are highly specific to a given use case that doesnāt apply to them. They need help with things like decimal scaling, preminted BPT, owner-only actions, protocol fees, recovery mode, and pool math.
- BPT as collateral: Partners would benefit from seeing a few basic examples of price oracles for BPT on lending markets. See āPartner Engineeringā below.
- Managed Pool Controllers: Here, the Integrations Team intends to close out work that weāve already almost finished, rather than starting any new efforts related to Managed Pools. Itās important to note that this is entirely different from the big project we worked on for several months last year; instead, it is just a few simple examples of working Managed Pool Controllers to show partners some different ways that they can go about designing their products and where exactly the dangers are.
Scaffold
Goals: Provide third-party developers with a UI-enabled test harness for rapid prototyping.
Description: The BeethovenX team champions the ongoing scaffold-balancer project, which we view as a critical component of the developer experience; however, in working with the project so far, we have observed that there is still work to be done to better generalize the UI component generation to all use cases. We would also like to help contribute many of our example smart contracts listed above so that developers can play with these in the context of the scaffold.
Partners: The BeethovenX team.
Partner Engineering
Between ongoing internal projects, the Integrations Teamās core focus goes to external partner integrations (itās in the name). These are expected to be fluid, as partners come and go, but here we provide a summary of our current opportunities. Many of these were sourced by the Balancer Maxis, who have provided our Partnerships insight for the last several months. It is expected that the Integrations Team will not acquire any new projects of scope to extend beyond July 31, unless and until there is a firmer transition plan in place.
BPT as Collateral
Goals: Create external demand for BPT, develop business relationships with the lending sector, and improve visibility of Balancer as a premiere AMM platform.
Description: One of the most frequently requested integrations in recent months is āBPT as collateral.ā Various money market leaders in DeFi want to enable their users to borrow against liquidity positions in lieu of standard tokens. Support is required to ensure that partners pay close attention to best practices when pricing BPT. There are complexities around understanding decimal scaling, Rate Providers, and composability, as well as protecting against read-only reentrancy.
Partners: There is ongoing work with Aave that was already started by the Integrations Team and needs to be finalized. There are at least two more partners - Interest Protocol and Sturdy Finance - actively integrating today (with support from Integrations), and we anticipate more in the future. Midas has already wrapped up their integration.
Cron Finance
Goals: Showcase novel AMM offerings on top of Balancer to highlight the core mission statement of providing a platform for others to build upon. Generate protocol fees by driving volume through peripheral Balancer pools to rebalance the TWAMM.
Description: Cron Finance recently built a TWAMM on top of Balancer. The product is live, but further support is required. There is ongoing work to establish arbitrage tooling via flash swaps to drive price parity between TWAMM pools and other Balancer pools. The Integrations Team has already provided support in the areas of the core TWAMM code review as well as, more recently, the UX-enhancing relayer.
Partners: Cron Finance.
B.Protocol Boosted Pool
Goals: Create a liquidity sink for Liquity LUSD on Balancer.
Description: Evaluate the feasibility of a Boosted Pool built around B.Protocolās Liquity integration. If deemed viable, it will require a token wrapper, which would likely be developed externally but would also require vetting by the Integrations Team and may even require a custom Linear Pool integration, depending on its design.
Partners: B.Protocol.
Small-scope Engineering Services
Goals: Improve Balancer market share by offering opportunities to create new pools or judge novel grant submissions.
Description: In addition to more targeted and longer-term partnership opportunities, the Integrations Team also provides on-demand engineering services to Balancer ecosystem contributors like the Balancer Maxis and Balancer Grants. The scope of this work primarily tends toward code review but also includes deployments and occasional development, especially as it pertains to custom Rate Providers for Composable Stable Pools. One code review from Grants is already underway for a balpy-related project.
Partners: Various.