[GRANT REQUEST]: Universal Limit Order API

I understand that the API will provide 10 requests per second max at no charge for any project that wishes to use it. Projects requiring greater than 10 requests per second you plan to provide a subscription pay for service access and or they can deploy their own instance with your documentation. You stated that DexKit plans to leverage the API to enhance the DexKit exchange product and the DexKit NFT marketplace. The exchange product is the nifty DexAPPBuilder? Is the DexKit NFT marketplace a standalone product or part of the DexAppBuilder project?

This is what I was driving at with my subscription base question. To see your plan for self sustainment. I see now that you plan to sustain operations when your path begins to charge for your no coder platform. Not necessarily depending on a base of paid projects requiring access greater than 10rps from the API.

It seems that a sync service is going to be pretty important and therefore should deserve its own proposal breakdown. The community doesn’t want to support fragmentation. It seems that a robust Sync Service should be developed and ready prior to the community supporting a path geared for the development of more API’s with a possibility for that API to replicate itself by other teams. If my logic here is not correct I would be interested to understand why I am incorrect.

A Sync Service seems like an important and big undertaking that is not so simple but complex. Maybe I am incorrect in my assumption. How many hours to develop such a Sync Service? The Sync Service would be at no cost to connect with or would require an API deployed instance to pay for the Sync Service?

How would a Sync Service become the staple for the protocol and ensure that all future API’s utilize the Sync Service to avoid fragmentation on the network?

How would you ensure that these self deployed instances will sync up with the Sync Service? How would you guarantee that the instance will be secure and properly maintained? There would be no vetting as to who could deploy their own instance?

DexAppBuilder is a no-code platform focused on web3. At the moment, you can deploy an NFT marketplace or an exchange on a page, along with a wallet, custom contracts, and the ability to view NFT orders, etc. Additionally, we have a showcase on our GitHub featuring an NFT marketplace using Trader SDK and Next.js. This serves as a reference for anyone looking to create their own solution. This showcase represents a past development that has evolved into what DexAppBuilder is today.

We use 0x throughout our entire stack, providing a foundation that allows us to understand the current limitations across limit order exchanges, swaps, and NFT marketplaces. This knowledge is derived from both our development experiences and valuable feedback from our clients.

Yes, as we plan to charge for the no-code platform, we intend to allocate resources to keep this API up to date. Our interest in this open-source API lies in the ability to receive feedback and contributions from those who aim to enhance it. Therefore, we aspire to focus on making this API project-agnostic yet powerful for any project looking to build a limit order, NFT marketplace, or swap interface without the reliance on third-party APIs.

For the sync service, we plan to create a pub-sub system where order updates (such as new orders, order cancellations, order completions, and unfunded orders) are posted. Anyone can subscribe to this pub-sub service. Additionally, a pull HTTP service will retrieve orders from both the 0x API and Trader API. Copies of this API can do the same with our API, as it will be public. However, the decision to do so is left to the project deploying its own instance, allowing them to choose whether to keep their internal order book private. Despite its apparent complexity, fetching data from other services is a common practice nowadays and is a standard pattern in microservices.

I believe we should not mandate how others use their own deployed instances. However, the sync service’s configuration will be flexible, allowing clients to choose whether they want to enable it.

The vetting process is not to mandate the instance as how the instance is to be used. It would be for the purpose of making sure that quality operators are deploying quality run instances that are not potential instances to hurt users with malicious attacks which in turn would hurt the network as a whole.

The community would want to make sure that the network is being populated by good operators/developers upholding high moral conduct.

Temperature check is out: Snapshot

Thanks for all the suggestions here it guided us to have a better proposal and see the needs from other projects.

Additionally, we plan to add a documentation guide similar to what Uniswap has for their SDKs, to assist anyone interested in building similar functionalities for their API.

The important guides that we aim to develop are as follows:

  1. Create and fill a limit order using ZRX V4 with TypeScript (TS) code, followed by an example utilizing utilities from the API.
  2. Create and fill a limit order using ZRX V4 with TypeScript (TS) code incorporating transformers, along with an example utilizing utilities from the API.
  3. Create and fill an NFT order using ZRX V4 with TypeScript (TS) code, followed by an example utilizing utilities from the API.
  4. Create and fill multiple orders from other sources (UniswapVIP) with a fill transformer in TypeScript (TS), along with an example utilizing utilities from the API.
  5. Create a watcher to stay up-to-date with NFT and ERC-20 order status on 0x V4.

Another ones that we think could be necessary

I am voting against this proposal for the following reasons:

  1. While I’m inclined to support the idea conceptually, I don’t have confidence that the business case and execution plan as presented in the proposal provide a compelling cost/benefit/risk tradeoff for the protocol and the treasury.

  2. Information regarding how costs were determined, solution architecture, milestones tied to deliverables, target usage projections, metrics, etc., are basic requirements for a technical development project of this type, size, scope, and duration, and are an established best practice for grant proposals. These factors are referenced in the grant framework and evaluation rubric, but are not addressed in the proposal. For an effort like this, I would also expect to see evidence of planning related to requirements validation, user testing, hosting platforms, security considerations, and support.

  3. I provided reasoned feedback, expressed some legitimate concerns, and asked for additional information to be provided. My comments and questions were summarily dismissed. Other delegates have also asked for more transparency and specificity around the solution components and architecture, costs, milestones, deliverables, metrics, etc.

  4. The proposal is requesting a substantial sum of money, all of it upfront, but has no identified risk mitigators to protect the community’s interests regarding the product/service to be delivered and maintained. The opportunity costs of funding an effort with this cost/benefit/risk profile vs other efforts with potentially more beneficial cost/benefit/risk profiles must also be considered.

  5. These factors and conditions increase the risks and reduce the accountability such that I believe that funding the proposal as submitted is not in the best interests of the protocol and the treasury.

Thanks for the feedback.

In my view, all the details necessary for this effort have been provided, and all delegates have received comprehensive answers to their concerns. Additionally, we have a history of successfully completing tasks similar to what we are aiming to achieve; we are not a new team that has emerged out of nowhere.

Concerning costs, as previously discussed on this forum, the benefits for the protocol were well explained.

I apologize if you were unable to follow up and find the answers you were seeking.

As result of snapshot, we will not move forward with this proposal. We believed this proposal could enhance the protocol where it needed. If community signals that this proposal could be activated later or with a less scope we are happy to contribute.

My opinion mantains that are needed more teams to build sdk and tools on top of the protocol.

1 Like

If you don’t mind can I ask few questions
1- the orders storage will be where ?
2 - could you elaborate more on deployment
3- model revenue for the api

I feel that there is a good opportunity for you to work with @0xSHA to tighten up the proposal with less scope and greater detailed deliverable timeline. I think you both could work well together and should give it a try to strengthen the proposal.