Market Participants
Our market-based approach eliminates the need for verification periods or complex bridging. Users move assets instantly between chains.
Searchers
Searchers connect orders with liquidity and are essential for creating efficient markets by:
- Scanning orders cache
- Building matching permits into bundles
- Submitting these bundles to block builders
- Driving efficiency by connecting orders with liquidity
Finding Opportunities
To operate as a Searcher:
- Connect to the orders cache to receive updates about new orders
- Implement efficient filtering to identify profitable opportunities
- Use the order aggregation functionality to organize multiple orders
1// Example order aggregation
2pub struct AggregateOrders {
3 // Outputs to be transferred to users
4 pub outputs: HashMap<(u64, Address), HashMap<Address, U256>>,
5 // Inputs to be transferred to the filler
6 pub inputs: HashMap<Address, U256>,
7}
Creating Bundles
When building bundles that include orders:
- Collect compatible orders that can be matched together
- Ensure atomic execution across chains
- Include necessary host fills for cross-chain actions
- Submit the bundle to the bundle cache
Fillers
Fillers provide liquidity to the system by:
- Fulfilling open orders with their own assets
- Enabling cross-chain transfers without traditional bridges
- Making instant withdrawals possible
Becoming a Filler
To operate as a Filler:
- Maintain sufficient liquidity on both Signet and Ethereum
- Monitor the orders cache for opportunities
- Create corresponding transactions to fulfill orders
- Submit fulfillment transactions through bundles
Filling Cross-Chain Orders
When fulfilling a cross-chain order:
- Verify the user’s input assets on Signet
- Prepare corresponding assets on Ethereum
- Submit a bundle with the necessary host fills
- Collect the user’s assets once the order executes
Orders API Reference
Order Cache
The Order Cache provides endpoints for submitting and retrieving orders:
GET /orders
: Retrieve all active orders in the cacheGET /orders/{id}
: Get a specific order by IDPOST /orders
: Submit a new order to the cacheDELETE /orders/{id}
: Cancel an order (requires signature)
Order Simulation
Before submitting orders or bundles, you can simulate their execution:
1// Example simulation request
2{
3 "jsonrpc": "2.0",
4 "id": 1,
5 "method": "signet_simBundle",
6 "params": [{
7 "txs": ["0x..."], // Array of signed transactions
8 "blockNumber": "0x...", // Target block number
9 "host_fills": {
10 // Host fills specification
11 }
12 }]
13}
Error Handling
Common errors when working with orders:
Error Code | Description | Resolution |
---|---|---|
1001 | Invalid signature | Verify signing process |
1002 | Insufficient balance | Ensure adequate token balance |
1003 | Expired order | Check order deadline |
1004 | Price slippage | Adjust price expectations |