Today OpenRelay is excited to announce Pools. Pools allow us to create separate order books that can have independent rules for what orders can be added to a given pool.
Parameters
There are several parameters that can be independently managed for each pool:
- Fees: Each pool can specify fees in terms of a ratio against OpenRelay’s base fee. This makes it possible to have pools with fees that are higher or lower than the default pool, or even pools that have no fees at all.
- Ingest Criteria: Each pool can specify a contract to evaluate whether each order meets the criteria for that pool. For example, a pool may have a contract that only allows orders provided by KYCed users, or a contract that only allows orders for a limited set of tokens.
- Search Criteria: Pools can specify search criteria separate from their ingest criteria. Some pools may restrict orders only to the set of orders that were submitted through the ingest pipeline for that pool. Alternatively, some pools may pull orders submitted to other pools if they meet the search criteria.
- Order Count: Pools can be restricted in the number of active orders at one time. Once a pool reaches its maximum number of orders, no new orders will be accepted until some existing orders have been filled, cancelled, or otherwise invalidated.
- Expiration: Pools can be restricted with an expiration date. After a pool expires, the orders in it remain available, but no new orders will be accepted by the pool.
Pool Interactions
Pools work with the same Standard Relayer API
as the rest of OpenRelay. The only difference is that it is nested one layer
deeper in a namespace dedicated to that pool. So if you wanted to interact with
a pool named mypool
, you would access it at https://api.openrelay.xyz/mypool/v2
If you are running the open source version of OpenRelay, you may want to create
pools on your own instance. OpenRelay comes with a poolmgr
commandline
utility that can be used to create pools.
Initial Pools
At launch, OpenRelay supports two pools:
The first is the default pool, which can be found at https://api.openrelay.xyz/v2. This is essentially the same endpoint we’ve always had, it is essentially a pool by the name “”, which has no ingest filtering contract, no search filtering terms (so it shows all orders across all pools), and charges the base fee.
The second is the feefree
pool. This is a pool that shows any orders with no
taker fee. This is not to say that the orders have no fees at all, only that
users searching will not have to pay fees if they act as taker for the order.
This may mean that the maker is paying 100% of the fee, or that the order
requires no fees for other reasons.
We are also working on pools related to partnerships. If you are interested in creating a pool that suits your organization’s needs, reach out to us and we can discuss possibilities.
Future Work on Pools
This is the initial release of pools, but we have plans for further enhancements to pools. At present, pools must be managed by the administrators of an OpenRelay instance.
Self Service Pools
We are working some premium options for self-service pools. We plan to create ERC-721 tokens to represent pools, and allow the token holders limited ability to manage the parameters of the pool.
Some possible use cases for self-service pools include:
- Allow specific individuals to submit a limited number of orders to OpenRelay with no fees.
- Allow orders for specific types of tokens to be submitted to OpenRelay with no fees.
- Allow affiliates running their own DEX front-ends to place their own constraints on orders.
Self-service pools will also provide some off-chain administrative features, such as the ability to remove orders from a pool, and the ability to configure search constraints.
Token Oriented Pools
The current implementation of pools can constrain orders to a specific set of tokens using a filtering contract, but it’s not currently possible to set search constraints based on a list of different tokens. We plan to implement more robust searching capabilities that will allow filtering based on a collection of tokens. Once we have this capability, we will launch a pool based on our token green list.