hermez-node/api/swagger.yml
api/swagger.ymlRaw
1openapi: 3.0.0
2info:
3 description: |
4 This Hermez node API is the layer that allows 3rd party apps and services to interface with the node to use the layer two features of the Hermez rollup.
5 Example of these apps are:
6 * Wallet: send L2 transactions, check balance, ...
7 * Explorer: List transactions, slots, batches, ...
8 * Exchange integrations
9
10 Note that some of the interactions with the rollup must be done using the Ethereum network directly.
11 Another way to integrate with the rollup is to [deploy a node](github.com/hermeznetwork/hermez-node/) and connect directly to its PostgreSQL database.
12
13 ### Pagination
14
15 #### Usage
16
17 All the endpoints that return a list of undefined size use pagination. Unless the opposite is explicitly said.
18 In order to use pagination, three query parameters are used:
19 * `fromItem`: indicates the first item to be returned. In general, this parameter shouldn't be provided in the first call to the endpoint, and use the `itemId` of the last returned item (+/-) 1, if the order is (ascending/descending).
20 * `order`: all paginated items are ordered chronologically. However, the specific fields to guarantee this order depend on each endpoint. For this purpose, `itemId` is used (itemId follows ascending chronological order except for unforged L1 user transactions). If the parameter is not provided, ascending order will be used by default.
21 * `limit`: maximum amount of items to include in each response. Default is 20, maximum is 2049.
22
23 Responses for those endpoints will always include a `pendingItems` property. This property includes the amount of items that are not fetched yet. This can be used to:
24 * Calculate the amount of items that match the filters: `totalItems = length(alreadyFetchedItems) + pendingItems`
25 * Know when all items have been fetched: `if pendingItems == 0 {/* all items have been fetched */}`
26
27 #### Reorgs and Safety
28
29 Since all the items are ordered chronologically, there are no safety problems when fetching items in ascending order, except for reorgs (more on this later).
30 On the other hand, when iterating in descending order, new items will be added at the beginning. This doesn't cause any safety problem, but to get those new items, it's necessary to start querying without the `fromItem` set to `pagination.lastItem`.
31 To handle reorgs, the `itemId` can be used since it will change. This is important since other identifiers may be the same but with different content. As an example, if batch 424 gets reorged, it will be deleted, but eventually, a new batch 424 will appear with potentially different content. However, these two batches number 424, will have different `itemId`.
32
33 ### Signatures
34
35 There are two endpoints that require signatures:
36 * POST /account-creation-authorization: signed using an Ethereum key.
37 * POST /transactions-pool: signed using BJJ key.
38
39 More details on how to sign will be provided soon.
40
41 ### Contact
42
43 If you have any doubt or suggestion, please contact us at:
44 * [GitHub](https://github.com/hermeznetwork/hermez-node/)
45 * [Telegram](https://t.me/hermez_network)
46 * [Discord](https://bit.ly/3nohULM)
47 * Email: hello@hermez.network
48 * [Twitter](https://twitter.com/hermez_network)
49# TODO: add further documentation on how to sign auths and txs
50
51 version: "0.0.1"
52 title: Hermez Network API
53# TODO: update with support email
54# termsOfService: 'http://swagger.io/terms/'
55 license:
56 name: license AGPLv3
57 url: 'https://www.gnu.org/licenses/agpl-3.0.html'
58externalDocs:
59 description: Find out more about Hermez network.
60 url: 'https://hermez.io'
61servers:
62 - description: Hosted mock up
63 url: https://apimock.hermez.network
64 - description: Localhost mock Up
65 url: http://localhost:4010
66tags:
67 - name: Account
68 description: Hermez account and the tokens it holds.
69 externalDocs:
70 description: Find out more.
71 url: 'https://idocs.hermez.io/#/spec/zkrollup/README?id=account-types'
72 - name: Transaction
73 description: Send tokens off chain and track transactions.
74 externalDocs:
75 description: Find out more
76 url: 'https://idocs.hermez.io/#/spec/zkrollup/README?id=transaction-types'
77 - name: Hermez status
78 description: Info about operators, tokens, auctions and more.
79 externalDocs:
80 description: Find out more.
81 url: 'https://idocs.hermez.io/#/spec/zkrollup/README'
82paths:
83 '/account-creation-authorization':
84 post:
85 tags:
86 - Account
87 summary: Send an authorization that will allow the coordinator to register accounts associated to an Ethereum address on behalf of the user.
88 description: >-
89 Send an authorization to create rollup accounts associated with an Ethereum address. Each account creation (an account can only hold a specific token) is effective once the coordinator forges the corresponding L1CoordinatorTx (which is always of type *account creation*).
90 operationId: postRegister
91 requestBody:
92 description: Account creation authorization.
93 required: true
94 content:
95 application/json:
96 schema:
97 $ref: '#/components/schemas/AccountCreationAuthorizationPost'
98 responses:
99 '200':
100 description: Successful operation.
101 '400':
102 description: Bad request.
103 content:
104 application/json:
105 schema:
106 $ref: '#/components/schemas/Error400'
107 '500':
108 description: Internal server error.
109 content:
110 application/json:
111 schema:
112 $ref: '#/components/schemas/Error500'
113 '/account-creation-authorization/{hezEthereumAddress}':
114 get:
115 tags:
116 - Account
117 summary: Find out if the coordinator has the ability to create accounts associated with an Ethereum address.
118 description: >-
119 Returns the authorization to perform an account creation with the given Ethereum address on behalf of the Ethereum address holder.
120 operationId: getAccountCreationAuthorization
121 parameters:
122 - name: hezEthereumAddress
123 in: path
124 description: Ethereum address.
125 required: true
126 schema:
127 $ref: '#/components/schemas/HezEthereumAddress'
128 responses:
129 '200':
130 description: Successful operation.
131 content:
132 application/json:
133 schema:
134 $ref: '#/components/schemas/AccountCreationAuthorization'
135 '400':
136 description: Bad request.
137 content:
138 application/json:
139 schema:
140 $ref: '#/components/schemas/Error400'
141 '404':
142 description: Not found.
143 content:
144 application/json:
145 schema:
146 $ref: '#/components/schemas/Error404'
147 '500':
148 description: Internal server error.
149 content:
150 application/json:
151 schema:
152 $ref: '#/components/schemas/Error500'
153 '/accounts':
154 get:
155 tags:
156 - Account
157 summary: Get accounts balances and other associated information.
158 description: Get account balances and other associated information.
159 operationId: getAccounts
160 parameters:
161 - name: hezEthereumAddress
162 in: query
163 description: Only get accounts associated to an Ethereum address. Incompatible with the query `BJJ`.
164 required: false
165 schema:
166 $ref: '#/components/schemas/HezEthereumAddress'
167 - name: BJJ
168 in: query
169 description: Only get accounts associated to a BabyJubJub public key. Incompatible with the query `hezEthereumAddress`.
170 required: false
171 schema:
172 $ref: '#/components/schemas/BJJ'
173 - name: tokenIds
174 in: query
175 required: false
176 description: Only get accounts of specific tokens. This is represented by a comma separated list of token identifiers.
177 schema:
178 type: string
179 description: Comma separated list of token identifiers.
180 example: "3,87,91"
181 - name: fromItem
182 in: query
183 required: false
184 description: Indicates the desired first item (using the itemId property) to be included in the response.
185 schema:
186 type: number
187 - name: order
188 in: query
189 required: false
190 description: Order of the returned items. Accounts will be ordered by increasing account index.
191 schema:
192 type: string
193 default: ASC
194 enum:
195 - ASC
196 - DESC
197 - name: limit
198 in: query
199 required: false
200 description: Maximum number of items to be returned.
201 schema:
202 type: integer
203 minimum: 1
204 maximum: 2049
205 responses:
206 '200':
207 description: Successful operation.
208 content:
209 application/json:
210 schema:
211 $ref: '#/components/schemas/Accounts'
212 '400':
213 description: Bad request.
214 content:
215 application/json:
216 schema:
217 $ref: '#/components/schemas/Error400'
218 '500':
219 description: Internal server error.
220 content:
221 application/json:
222 schema:
223 $ref: '#/components/schemas/Error500'
224 '/accounts/{accountIndex}':
225 get:
226 tags:
227 - Account
228 summary: Get an account by its index.
229 description: Get an account by its index.
230 operationId: getAccount
231 parameters:
232 - name: accountIndex
233 in: path
234 description: Identifier of an account.
235 required: true
236 schema:
237 $ref: '#/components/schemas/AccountIndex'
238 responses:
239 '200':
240 description: Successful operation.
241 content:
242 application/json:
243 schema:
244 $ref: '#/components/schemas/Account'
245 '400':
246 description: Bad request.
247 content:
248 application/json:
249 schema:
250 $ref: '#/components/schemas/Error400'
251 '404':
252 description: Not found.
253 content:
254 application/json:
255 schema:
256 $ref: '#/components/schemas/Error404'
257 '500':
258 description: Internal server error.
259 content:
260 application/json:
261 schema:
262 $ref: '#/components/schemas/Error500'
263 '/exits':
264 get:
265 tags:
266 - Account
267 summary: Get exit information. This information is required to perform a withdraw.
268 description: Get exit information. This information is required to perform a withdraw.
269 operationId: getExits
270 parameters:
271 - name: tokenId
272 in: query
273 required: false
274 description: Only get exits of specific token
275 schema:
276 $ref: '#/components/schemas/TokenId'
277 - name: hezEthereumAddress
278 in: query
279 description: Get exits associated to an Ethereum address. Incompatible with query `BJJ` and `accountIndex`.
280 required: false
281 schema:
282 $ref: '#/components/schemas/HezEthereumAddress'
283 - name: BJJ
284 in: query
285 description: Get exits associated to a BabyJubJub public key. Incompatible with query `hezEthereumAddress` and `accountIndex`.
286 required: false
287 schema:
288 $ref: '#/components/schemas/BJJ'
289 - name: accountIndex
290 in: query
291 description: Get exits associated to a specific account. Incompatible with queries `tokenId`, `hezEthereumAddress` and `BJJ`.
292 required: false
293 schema:
294 $ref: '#/components/schemas/AccountIndex'
295 - name: batchNum
296 in: query
297 description: Get exits from the exit tree of a specific batch.
298 required: false
299 schema:
300 $ref: '#/components/schemas/BatchNum'
301 - name: onlyPendingWithdraws
302 in: query
303 description: Get exits with pending withdrawals.
304 required: false
305 schema:
306 type: boolean
307 - name: fromItem
308 in: query
309 required: false
310 description: Indicates the desired first item (using the itemId property) to be included in the response.
311 schema:
312 type: number
313 - name: order
314 in: query
315 required: false
316 description: Order of the returned items. Exits will be ordered by increasing (batchNum, accountIndex).
317 schema:
318 type: string
319 default: ASC
320 enum:
321 - ASC
322 - DESC
323 - name: limit
324 in: query
325 required: false
326 description: Maximum number of items to be returned.
327 schema:
328 type: integer
329 minimum: 1
330 maximum: 2049
331 responses:
332 '200':
333 description: Successful operation.
334 content:
335 application/json:
336 schema:
337 $ref: '#/components/schemas/Exits'
338 '400':
339 description: Bad request.
340 content:
341 application/json:
342 schema:
343 $ref: '#/components/schemas/Error400'
344 '500':
345 description: Internal server error.
346 content:
347 application/json:
348 schema:
349 $ref: '#/components/schemas/Error500'
350 '/exits/{batchNum}/{accountIndex}':
351 get:
352 tags:
353 - Account
354 summary: Get specific exit information.
355 description: Get exit information form a specific exit tree and account. This information is required to perform a withdraw. Exits are identified with accounIndex and batchNum since every batch that has exits has a different exit tree.
356 operationId: getExit
357 parameters:
358 - name: batchNum
359 in: path
360 description: Batch of the exit tree.
361 required: true
362 schema:
363 $ref: '#/components/schemas/BatchNum'
364 - name: accountIndex
365 in: path
366 description: Account identifier.
367 required: true
368 schema:
369 $ref: '#/components/schemas/AccountIndex'
370 responses:
371 '200':
372 description: Successful operation.
373 content:
374 application/json:
375 schema:
376 $ref: '#/components/schemas/Exit'
377 '400':
378 description: Bad request.
379 content:
380 application/json:
381 schema:
382 $ref: '#/components/schemas/Error400'
383 '404':
384 description: Not found.
385 content:
386 application/json:
387 schema:
388 $ref: '#/components/schemas/Error404'
389 '500':
390 description: Internal server error.
391 content:
392 application/json:
393 schema:
394 $ref: '#/components/schemas/Error500'
395 '/transactions-pool':
396 post:
397 tags:
398 - Transaction
399 summary: Add an L2 transaction to the coordinator's pool.
400 description: >-
401 Send L2 transaction. The transaction will be stored in the transaction pool of the coordinator and eventually forged.
402 operationId: postTx
403 requestBody:
404 description: Signed transaction.
405 required: true
406 content:
407 application/json:
408 schema:
409 $ref: '#/components/schemas/PostPoolL2Transaction'
410 responses:
411 '200':
412 description: Successful operation.
413 content:
414 application/json:
415 schema:
416 $ref: '#/components/schemas/TransactionId'
417 '400':
418 description: Bad request.
419 content:
420 application/json:
421 schema:
422 $ref: '#/components/schemas/Error400'
423 '500':
424 description: Internal server error.
425 content:
426 application/json:
427 schema:
428 $ref: '#/components/schemas/Error500'
429 '/transactions-pool/{id}':
430 get:
431 tags:
432 - Transaction
433 summary: Get details and status of a transaction that is in the pool.
434 description: >-
435 Get transaction from the pool by its ID. This endpoint is specially useful for tracking the status of a transaction that may not be forged yet.
436 Only transactions from the pool will be returned.
437 Note that the transaction pool is different for each coordinator and therefore only a coordinator that has received a specific transaction
438 will be able to provide information about that transaction.
439 operationId: getPoolTx
440 parameters:
441 - name: id
442 in: path
443 description: Transaction identifier.
444 required: true
445 schema:
446 $ref: '#/components/schemas/TransactionId'
447 responses:
448 '200':
449 description: Successful operation.
450 content:
451 application/json:
452 schema:
453 $ref: '#/components/schemas/PoolL2Transaction'
454 '400':
455 description: Bad request.
456 content:
457 application/json:
458 schema:
459 $ref: '#/components/schemas/Error400'
460 '404':
461 description: Not found.
462 content:
463 application/json:
464 schema:
465 $ref: '#/components/schemas/Error404'
466 '500':
467 description: Internal server error.
468 content:
469 application/json:
470 schema:
471 $ref: '#/components/schemas/Error500'
472 '/transactions-history':
473 get:
474 tags:
475 - Transaction
476 summary: Get details and status of transactions that have been forged.
477 description: >-
478 Get historical transactions. This endpoint will return all the different types of **forged** transactions, this means that:
479 * Transactions that are still in the transaction pool of any coordinator are not included. These transactions can be fetched using `GET /transactions-pool/{id}`.
480 * L1 transactions sent by users that have not been forged yet are not included. These transactions can be fetched using `GET /transactions-history/{id}`.
481 operationId: getHistoryTxs
482 parameters:
483 - name: tokenId
484 in: query
485 required: false
486 description: Only get transactions of specific token
487 schema:
488 $ref: '#/components/schemas/TokenId'
489 - name: hezEthereumAddress
490 in: query
491 required: false
492 description: Only get transactions sent from or to an account associated with an Ethereum address Incompatible with the queries `BJJ` and `accountIndex`.
493 schema:
494 $ref: '#/components/schemas/HezEthereumAddress'
495 - name: BJJ
496 in: query
497 description: Only get transactions associated with a BabyJubJub public key. Incompatible with the queries `hezEthereumAddress` and `accountIndex`.
498 required: false
499 schema:
500 $ref: '#/components/schemas/BJJ'
501 - name: accountIndex
502 in: query
503 required: false
504 description: Only get transactions sent from or to a specific account. Incompatible with the queries `tokenId`, `hezEthereumAddress` and `BJJ`.
505 schema:
506 $ref: '#/components/schemas/AccountIndex'
507 - name: batchNum
508 in: query
509 required: false
510 description: Only get transactions forged in a specific batch.
511 schema:
512 $ref: '#/components/schemas/BatchNum'
513 - name: type
514 in: query
515 required: false
516 description: Only get transactions of a specific type.
517 schema:
518 $ref: '#/components/schemas/TransactionType'
519 - name: fromItem
520 in: query
521 required: false
522 description: Indicates the desired first item (using the itemId property) to be included in the response.
523 schema:
524 type: number
525 - name: order
526 in: query
527 required: false
528 description: Order of the returned items. History transactions will be ordered by (batchNum, position).
529 schema:
530 type: string
531 default: ASC
532 enum:
533 - ASC
534 - DESC
535 - name: limit
536 in: query
537 required: false
538 description: Maximum number of items to be returned.
539 schema:
540 type: integer
541 minimum: 1
542 maximum: 2049
543 responses:
544 '200':
545 description: Successful operation.
546 content:
547 application/json:
548 schema:
549 $ref: '#/components/schemas/HistoryTransactions'
550 '400':
551 description: Bad request.
552 content:
553 application/json:
554 schema:
555 $ref: '#/components/schemas/Error400'
556 '500':
557 description: Internal server error.
558 content:
559 application/json:
560 schema:
561 $ref: '#/components/schemas/Error500'
562 '/transactions-history/{id}':
563 get:
564 tags:
565 - Transaction
566 summary: Get details and status of a historical transaction.
567 description: >-
568 Get transaction by its ID. This endpoint will return all the different types of transactions except those that are still in the pool of any coordinator.
569 operationId: getHistoryTx
570 parameters:
571 - name: id
572 in: path
573 description: Transaction identifier.
574 required: true
575 schema:
576 $ref: '#/components/schemas/TransactionId'
577 responses:
578 '200':
579 description: Successful operation.
580 content:
581 application/json:
582 schema:
583 $ref: '#/components/schemas/HistoryTransaction'
584 '400':
585 description: Bad request.
586 content:
587 application/json:
588 schema:
589 $ref: '#/components/schemas/Error400'
590 '404':
591 description: Not found.
592 content:
593 application/json:
594 schema:
595 $ref: '#/components/schemas/Error404'
596 '500':
597 description: Internal server error.
598 content:
599 application/json:
600 schema:
601 $ref: '#/components/schemas/Error500'
602 '/batches':
603 get:
604 tags:
605 - Hermez status
606 summary: Get information about forged batches.
607 description: >-
608 Get information about forged batches.
609 operationId: getBatches
610 parameters:
611 - name: minBatchNum
612 in: query
613 required: false
614 description: Include only `batchNum > minBatchNum` batches.
615 schema:
616 $ref: '#/components/schemas/BatchNum'
617 - name: maxBatchNum
618 in: query
619 required: false
620 description: Include only `batchNum < maxBatchNum` batches.
621 schema:
622 type: number
623 - name: slotNum
624 in: query
625 required: false
626 description: Include only batches that were forged within the specified slot.
627 schema:
628 $ref: '#/components/schemas/SlotNum'
629 - name: forgerAddr
630 in: query
631 required: false
632 description: Include only batches forged by `forgerAddr`
633 schema:
634 $ref: '#/components/schemas/EthereumAddress'
635 - name: fromItem
636 in: query
637 required: false
638 description: Indicates the desired first item (using the itemId property) to be included in the response.
639 schema:
640 type: number
641 - name: order
642 in: query
643 required: false
644 description: Order of the returned items. Batches will be ordered by increasing `batchNum`.
645 schema:
646 type: string
647 default: ASC
648 enum:
649 - ASC
650 - DESC
651 - name: limit
652 in: query
653 required: false
654 description: Maximum number of items to be returned.
655 schema:
656 type: integer
657 minimum: 1
658 maximum: 2049
659 responses:
660 '200':
661 description: Successful operation.
662 content:
663 application/json:
664 schema:
665 $ref: '#/components/schemas/Batches'
666 '400':
667 description: Bad request.
668 content:
669 application/json:
670 schema:
671 $ref: '#/components/schemas/Error400'
672 '500':
673 description: Internal server error.
674 content:
675 application/json:
676 schema:
677 $ref: '#/components/schemas/Error500'
678 '/batches/{batchNum}':
679 get:
680 tags:
681 - Hermez status
682 summary: Get a specific batch.
683 description: >-
684 Get a specific batch.
685 operationId: getBatch
686 parameters:
687 - name: batchNum
688 in: path
689 description: Batch identifier.
690 required: true
691 schema:
692 $ref: '#/components/schemas/BatchNum'
693 responses:
694 '200':
695 description: Successful operation
696 content:
697 application/json:
698 schema:
699 $ref: '#/components/schemas/Batch'
700 '400':
701 description: Bad request.
702 content:
703 application/json:
704 schema:
705 $ref: '#/components/schemas/Error400'
706 '404':
707 description: Not found.
708 content:
709 application/json:
710 schema:
711 $ref: '#/components/schemas/Error404'
712 '500':
713 description: Internal server error.
714 content:
715 application/json:
716 schema:
717 $ref: '#/components/schemas/Error500'
718 '/full-batches/{batchNum}':
719 get:
720 tags:
721 - Hermez status
722 summary: Get a full batch.
723 description: >-
724 Get a specific batch, including the associated transactions. The object returned in this method can be a bit heavy.
725 If you're devloping a front end, you may consider using a combinaton of `GET /batches/{batchnum}` and `GET /history-transactions?batchNum={batchNum}`.
726 operationId: getFullBatch
727 parameters:
728 - name: batchNum
729 in: path
730 description: Batch identifier
731 required: true
732 schema:
733 $ref: '#/components/schemas/BatchNum'
734 responses:
735 '200':
736 description: successful operation
737 content:
738 application/json:
739 schema:
740 $ref: '#/components/schemas/FullBatch'
741 '400':
742 description: Bad request.
743 content:
744 application/json:
745 schema:
746 $ref: '#/components/schemas/Error400'
747 '404':
748 description: Not found.
749 content:
750 application/json:
751 schema:
752 $ref: '#/components/schemas/Error404'
753 '500':
754 description: Internal server error.
755 content:
756 application/json:
757 schema:
758 $ref: '#/components/schemas/Error500'
759 '/slots':
760 get:
761 tags:
762 - Hermez status
763 summary: Get information about slots.
764 description: >-
765 Get information about slots.
766 operationId: getSlots
767 parameters:
768 - name: minSlotNum
769 in: query
770 required: false
771 description: Only include slots with `slotNum >= minSlotNum`. By default, `minSlotNum = 0`.
772 schema:
773 $ref: '#/components/schemas/SlotNum'
774 - name: maxSlotNum
775 in: query
776 required: false
777 description: Only include slots with `slotNum <= maxSlotNum`.
778 schema:
779 $ref: '#/components/schemas/SlotNum'
780 - name: wonByEthereumAddress
781 in: query
782 required: false
783 description: Only include slots won by a coordinator whose `bidderAddr == wonByEthereumAddress`.
784 schema:
785 $ref: '#/components/schemas/EthereumAddress'
786 - name: finishedAuction
787 in: query
788 required: false
789 description: If set to true, only include slots whose auction has finished.
790 schema:
791 type: boolean
792 - name: fromItem
793 in: query
794 required: false
795 description: Indicates the desired first item (using the itemId property) to be included in the response.
796 schema:
797 type: number
798 - name: order
799 in: query
800 required: false
801 description: Order of the returned items. Slots will be ordered by increasing `slotNum`.
802 schema:
803 type: string
804 default: ASC
805 enum:
806 - ASC
807 - DESC
808 - name: limit
809 in: query
810 required: false
811 description: Maximum number of items to be returned.
812 schema:
813 type: integer
814 minimum: 1
815 maximum: 2049
816 responses:
817 '200':
818 description: Successful operation.
819 content:
820 application/json:
821 schema:
822 $ref: '#/components/schemas/Slots'
823 '400':
824 description: Bad request.
825 content:
826 application/json:
827 schema:
828 $ref: '#/components/schemas/Error400'
829 '500':
830 description: Internal server error.
831 content:
832 application/json:
833 schema:
834 $ref: '#/components/schemas/Error500'
835 '/slots/{slotNum}':
836 get:
837 tags:
838 - Hermez status
839 summary: Get information about a specific slot.
840 description: >-
841 Get information about a specific slot.
842 operationId: getSlot
843 parameters:
844 - name: slotNum
845 in: path
846 required: true
847 description: Identifier of the slot.
848 schema:
849 $ref: '#/components/schemas/SlotNum'
850 responses:
851 '200':
852 description: Successful operation.
853 content:
854 application/json:
855 schema:
856 $ref: '#/components/schemas/Slot'
857 '400':
858 description: Bad request.
859 content:
860 application/json:
861 schema:
862 $ref: '#/components/schemas/Error400'
863 '404':
864 description: Not found.
865 content:
866 application/json:
867 schema:
868 $ref: '#/components/schemas/Error404'
869 '500':
870 description: Internal server error.
871 content:
872 application/json:
873 schema:
874 $ref: '#/components/schemas/Error500'
875 '/bids':
876 get:
877 tags:
878 - Hermez status
879 summary: Get a list of bids.
880 description: >-
881 Get a list of bids. It's necessary to provide at least one of the following filters: `slotNum`, `bidderAddr`.
882 operationId: getSlotBids
883 parameters:
884 - name: slotNum
885 in: query
886 description: Slot identifier. Specify the auction where the returned bids were made.
887 required: false
888 schema:
889 $ref: '#/components/schemas/SlotNum'
890 - name: bidderAddr
891 in: query
892 description: Get only bids made by a coordinator identified by its bidder address. In this case, the bids will be returned in the order that the coordinator made them.
893 required: false
894 schema:
895 $ref: '#/components/schemas/EthereumAddress'
896 - name: fromItem
897 in: query
898 required: false
899 description: Indicates the desired first item (using the itemId property) to be included in the response.
900 schema:
901 type: number
902 - name: order
903 in: query
904 required: false
905 description: Order of the returned items. Bids will be ordered by increasing (slotNum, bidValue)`.
906 schema:
907 type: string
908 default: ASC
909 enum:
910 - ASC
911 - DESC
912 - name: limit
913 in: query
914 required: false
915 description: Maximum number of items to be returned.
916 schema:
917 type: integer
918 minimum: 1
919 maximum: 2049
920 responses:
921 '200':
922 description: Successful operation
923 content:
924 application/json:
925 schema:
926 $ref: '#/components/schemas/Bids'
927 '400':
928 description: Bad request.
929 content:
930 application/json:
931 schema:
932 $ref: '#/components/schemas/Error400'
933 '500':
934 description: Internal server error.
935 content:
936 application/json:
937 schema:
938 $ref: '#/components/schemas/Error500'
939 '/state':
940 get:
941 tags:
942 - Hermez status
943 summary: Return information that represents the current state of the network.
944 description: Return information that represents the current state of the network. It also includes metrics and statistics.
945 operationId: getState
946 responses:
947 '200':
948 description: Successful operation.
949 content:
950 application/json:
951 schema:
952 $ref: '#/components/schemas/State'
953 '400':
954 description: Bad request.
955 content:
956 application/json:
957 schema:
958 $ref: '#/components/schemas/Error400'
959 '500':
960 description: Internal server error.
961 content:
962 application/json:
963 schema:
964 $ref: '#/components/schemas/Error500'
965 '/config':
966 get:
967 tags:
968 - Hermez status
969 summary: Return constant configuration of the network.
970 description: Return constant configuration of the network.
971 operationId: getConfig
972 responses:
973 '200':
974 description: Successful operation.
975 content:
976 application/json:
977 schema:
978 $ref: '#/components/schemas/Config'
979 '500':
980 description: Internal server error.
981 content:
982 application/json:
983 schema:
984 $ref: '#/components/schemas/Error500'
985 '/tokens':
986 get:
987 tags:
988 - Hermez status
989 summary: Get information of the supported tokens in the Hermez Network.
990 description: Get information of the supported tokens in the Hermez Network.
991 operationId: getTokens
992 parameters:
993 - name: ids
994 in: query
995 required: false
996 description: Include only specific tokens by their Hermez identifiers.
997 schema:
998 type: string
999 description: Comma separated list of token identifiers
1000 example: "2,44,689"
1001 - name: symbols
1002 in: query
1003 required: false
1004 description: Include only specific tokens by their symbols.
1005 schema:
1006 type: string
1007 description: Comma separated list of token symbols.
1008 example: "DAI,NEC,UMA"
1009 - name: name
1010 in: query
1011 required: false
1012 description: Include token(s) by their names (or a substring of the name).
1013 schema:
1014 type: string
1015 - name: fromItem
1016 in: query
1017 required: false
1018 description: Indicates the desired first item (using the itemId property) to be included in the response.
1019 schema:
1020 type: number
1021 - name: order
1022 in: query
1023 required: false
1024 description: Order of the returned items. Tokens will be ordered by increasing tokenID.
1025 schema:
1026 type: string
1027 default: ASC
1028 enum:
1029 - ASC
1030 - DESC
1031 - name: limit
1032 in: query
1033 required: false
1034 description: Maximum number of items to be returned.
1035 schema:
1036 type: integer
1037 minimum: 1
1038 maximum: 2049
1039 responses:
1040 '200':
1041 description: Successful operation.
1042 content:
1043 application/json:
1044 schema:
1045 $ref: '#/components/schemas/Tokens'
1046 '400':
1047 description: Bad request.
1048 content:
1049 application/json:
1050 schema:
1051 $ref: '#/components/schemas/Error400'
1052 '500':
1053 description: Internal server error.
1054 content:
1055 application/json:
1056 schema:
1057 $ref: '#/components/schemas/Error500'
1058 '/tokens/{id}':
1059 get:
1060 tags:
1061 - Hermez status
1062 summary: Get information of a token supported by Hermez Network.
1063 description: Get information of a token supported by Hermez Network.
1064 operationId: getToken
1065 parameters:
1066 - name: id
1067 in: path
1068 description: Token identifier
1069 required: true
1070 schema:
1071 $ref: '#/components/schemas/TokenId'
1072 responses:
1073 '200':
1074 description: Successful operation.
1075 content:
1076 application/json:
1077 schema:
1078 $ref: '#/components/schemas/Token'
1079 '400':
1080 description: Bad request.
1081 content:
1082 application/json:
1083 schema:
1084 $ref: '#/components/schemas/Error400'
1085 '404':
1086 description: Not found.
1087 content:
1088 application/json:
1089 schema:
1090 $ref: '#/components/schemas/Error404'
1091 '500':
1092 description: Internal server error.
1093 content:
1094 application/json:
1095 schema:
1096 $ref: '#/components/schemas/Error500'
1097 '/coordinators':
1098 get:
1099 tags:
1100 - Hermez status
1101 summary: Get information about coordinators.
1102 description: Get information about coordinators.
1103 operationId: getCoordinators
1104 parameters:
1105 - name: forgerAddr
1106 in: query
1107 required: false
1108 description: Get coordinators by it's forger address.
1109 schema:
1110 $ref: '#/components/schemas/EthereumAddress'
1111 - name: bidderAddr
1112 in: query
1113 required: false
1114 description: Get coordinators by it's bidder address.
1115 schema:
1116 $ref: '#/components/schemas/EthereumAddress'
1117 - name: fromItem
1118 in: query
1119 required: false
1120 description: Indicates the desired first item (using the itemId property) to be included in the response.
1121 schema:
1122 type: number
1123 - name: order
1124 in: query
1125 required: false
1126 description: Order of the returned items. Coordinators will be ordered by increasing (ethereumBlock, forgerAddr).
1127 schema:
1128 type: string
1129 default: ASC
1130 enum:
1131 - ASC
1132 - DESC
1133 - name: limit
1134 in: query
1135 required: false
1136 description: Maximum number of items to be returned.
1137 schema:
1138 type: integer
1139 minimum: 1
1140 maximum: 2049
1141 responses:
1142 '200':
1143 description: Successful operation.
1144 content:
1145 application/json:
1146 schema:
1147 $ref: '#/components/schemas/Coordinators'
1148 '400':
1149 description: Bad request.
1150 content:
1151 application/json:
1152 schema:
1153 $ref: '#/components/schemas/Error400'
1154 '500':
1155 description: Internal server error.
1156 content:
1157 application/json:
1158 schema:
1159 $ref: '#/components/schemas/Error500'
1160components:
1161 schemas:
1162 ItemId:
1163 type: integer
1164 description: Position of the item in the DB. This is useful for pagination, but has nothing to do with the protocol.
1165 PostPoolL2Transaction:
1166 type: object
1167 description: L2 transaction to be posted.
1168 properties:
1169 id:
1170 $ref: '#/components/schemas/TransactionId'
1171 type:
1172 $ref: '#/components/schemas/TransactionTypeL2'
1173 tokenId:
1174 $ref: '#/components/schemas/TokenId'
1175 fromAccountIndex:
1176 $ref: '#/components/schemas/AccountIndex'
1177 toAccountIndex:
1178 type: string
1179 description: >-
1180 Identifier of the destination account. It references the position where the account is inside the state Merkle tree.
1181 The identifier is built using: `hez:` + `token symbol:` + `index`. If this is provided, toHezEthereumAddress and toBjj
1182 must be null. To perform an exit the value hez:EXIT:1 must be used.
1183 example: null
1184 nullable: true
1185 toHezEthereumAddress:
1186 type: string
1187 description: "Address of an Etherum account linked to the Hermez Network. If this is provided, toAccountIndex and toBjj must be null."
1188 pattern: "^hez:0x[a-fA-F0-9]{40}$"
1189 example: "hez:0xaa942cfcd25ad4d90a62358b0dd84f33b398262a"
1190 nullable: true
1191 toBjj:
1192 type: string
1193 description: >-
1194 BabyJubJub public key, encoded as base64 URL (RFC 4648), which result in 33 bytes. The padding byte is replaced by a sum of the encoded bytes.
1195 If this is provided, toAccountIndex must be null and toHezEthereumAddress must be hez:0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF.
1196 pattern: "^hez:[A-Za-z0-9_-]{44}$"
1197 example: null
1198 nullable: true
1199 amount:
1200 allOf:
1201 - $ref: '#/components/schemas/BigInt'
1202 - description: Amount of tokens to be sent.
1203 example: "6300000000000000000"
1204 fee:
1205 $ref: '#/components/schemas/FeeSelector'
1206 nonce:
1207 $ref: '#/components/schemas/Nonce'
1208 signature:
1209 allOf:
1210 - $ref: '#/components/schemas/BJJSignature'
1211 - description: Signature of the transaction. More info [here](https://idocs.hermez.io/#/spec/zkrollup/README?id=l2a-idl2).
1212 - example: "72024a43f546b0e1d9d5d7c4c30c259102a9726363adcc4ec7b6aea686bcb5116f485c5542d27c4092ae0ceaf38e3bb44417639bd2070a58ba1aa1aab9d92c03"
1213 requestFromAccountIndex:
1214 type: string
1215 description: References the `fromAccountIndex` of the requested transaction.
1216 example: null
1217 nullable: true
1218 requestToAccountIndex:
1219 type: string
1220 description: References the `toAccountIndex` of the requested transaction.
1221 example: null
1222 nullable: true
1223 requestToHezEthereumAddress:
1224 type: string
1225 description: References the `toHezEthereumAddress` of the requested transaction.
1226 pattern: "^hez:0x[a-fA-F0-9]{40}$"
1227 example: null
1228 nullable: true
1229 requestToBjj:
1230 type: string
1231 description: References the `toBjj` of the requested transaction.
1232 pattern: "^hez:[A-Za-z0-9_-]{44}$"
1233 example: null
1234 nullable: true
1235 requestTokenId:
1236 type: integer
1237 description: References the `tokenId` of the requested transaction.
1238 example: null
1239 nullable: true
1240 requestAmount:
1241 type: string
1242 description: References the `amount` of the requested transaction.
1243 example: null
1244 nullable: true
1245 requestFee:
1246 type: integer
1247 description: References the `fee` of the requested transaction.
1248 example: null
1249 nullable: true
1250 requestNonce:
1251 type: integer
1252 description: References the `nonce` of the requested transaction.
1253 example: null
1254 nullable: true
1255 example:
1256 id: '0x020000000001000000000006'
1257 type: Transfer
1258 tokenId: 6
1259 fromAccountIndex: hez:DAI:256
1260 toAccountIndex: hez:DAI:257
1261 toHezEthereumAddress:
1262 toBjj:
1263 amount: '100000000000000'
1264 fee: 0
1265 nonce: 6
1266 signature: 1a79dd5e661d58266901a0de8afb046b466c4c1af937100f627a421771f2911fa3fde8ea2e272b4802a8b1f1229689292acd6f7e8ab4cadc4ab37b6b9e13a101
1267 additionalProperties: false
1268 required:
1269 - id
1270 - type
1271 - tokenId
1272 - fromAccountIndex
1273 - amount
1274 - fee
1275 - nonce
1276 - signature
1277 PoolL2Transaction:
1278 type: object
1279 properties:
1280 id:
1281 $ref: '#/components/schemas/TransactionId'
1282 type:
1283 $ref: '#/components/schemas/TransactionTypeL2'
1284 fromAccountIndex:
1285 $ref: '#/components/schemas/AccountIndex'
1286 fromHezEthereumAddress:
1287 type: string
1288 description: "Address of an Etherum account linked to the Hermez Network."
1289 pattern: "^hez:0x[a-fA-F0-9]{40}$"
1290 example: "hez:0xaa942cfcd25ad4d90a62358b0dd84f33b398262a"
1291 nullable: true
1292 fromBJJ:
1293 type: string
1294 description: "BabyJubJub public key, encoded as base64 URL (RFC 4648), which result in 33 bytes. The padding byte is replaced by a sum of the encoded bytes."
1295 pattern: "^hez:[A-Za-z0-9_-]{44}$"
1296 example: "hez:9CK9fjQdMUTGm8KDvGLy3MB-vnP0NCcGX7Uh7OO6KRJm"
1297 nullable: true
1298 toAccountIndex:
1299 type: string
1300 description: >-
1301 Identifier of the destination account. It references the position where the account is inside the state Merkle tree.
1302 The identifier is built using: `hez:` + `token symbol:` + `index`
1303 example: "hez:DAI:309"
1304 nullable: true
1305 toHezEthereumAddress:
1306 type: string
1307 description: "Address of an Etherum account linked to the Hermez Network."
1308 pattern: "^hez:0x[a-fA-F0-9]{40}$"
1309 example: null
1310 nullable: true
1311 toBjj:
1312 type: string
1313 description: "BabyJubJub public key, encoded as base64 URL (RFC 4648), which result in 33 bytes. The padding byte is replaced by a sum of the encoded bytes."
1314 pattern: "^hez:[A-Za-z0-9_-]{44}$"
1315 example: null
1316 nullable: true
1317 amount:
1318 allOf:
1319 - $ref: '#/components/schemas/BigInt'
1320 - description: Amount of tokens to be sent.
1321 example: "6303020000000000000"
1322 fee:
1323 $ref: '#/components/schemas/FeeSelector'
1324 nonce:
1325 $ref: '#/components/schemas/Nonce'
1326 state:
1327 $ref: '#/components/schemas/PoolL2TransactionState'
1328 signature:
1329 allOf:
1330 - $ref: '#/components/schemas/BJJSignature'
1331 - description: Signature of the transaction. More info [here](https://idocs.hermez.io/#/spec/zkrollup/README?id=l2a-idl2).
1332 - example: "72024a43f546b0e1d9d5d7c4c30c259102a9726363adcc4ec7b6aea686bcb5116f485c5542d27c4092ae0ceaf38e3bb44417639bd2070a58ba1aa1aab9d92c03"
1333 timestamp:
1334 type: string
1335 description: Moment in which the transaction was added to the pool.
1336 format: date-time
1337 batchNum:
1338 type: integer
1339 description: Identifier of a batch. Every new forged batch increases by one the batchNum, starting at 0.
1340 minimum: 0
1341 maximum: 4294967295
1342 nullable: true
1343 example: null
1344 requestFromAccountIndex:
1345 type: string
1346 description: >-
1347 Identifier of an account. It references the position where the account is inside the state Merkle tree.
1348 The identifier is built using: `hez:` + `token symbol:` + `index`
1349 nullable: true
1350 example: null
1351 requestToAccountIndex:
1352 type: string
1353 description: >-
1354 Identifier of an account. It references the position where the account is inside the state Merkle tree.
1355 The identifier is built using: `hez:` + `token symbol:` + `index`
1356 nullable: true
1357 example: null
1358 requestToHezEthereumAddress:
1359 type: string
1360 description: "Address of an Etherum account linked to the Hermez Network."
1361 pattern: "^hez:0x[a-fA-F0-9]{40}$"
1362 nullable: true
1363 example: null
1364 requestToBJJ:
1365 type: string
1366 description: "BabyJubJub public key, encoded as base64 URL (RFC 4648), which result in 33 bytes. The padding byte is replaced by a sum of the encoded bytes."
1367 pattern: "^hez:[A-Za-z0-9_-]{44}$"
1368 nullable: true
1369 example: null
1370 requestTokenId:
1371 type: integer
1372 description: References the `tokenId` of the requested transaction.
1373 example: null
1374 nullable: true
1375 requestAmount:
1376 type: string
1377 description: BigInt is an integer encoded as a string for numbers that are very large.
1378 nullable: true
1379 example: null
1380 requestFee:
1381 type: integer
1382 description: Index of the fee type to select, more info [here](https://idocs.hermez.io/#/spec/zkrollup/fee-table?id=transaction-fee-table).
1383 minimum: 0
1384 maximum: 256
1385 nullable: true
1386 example: null
1387 requestNonce:
1388 type: integer
1389 description: Number that can only be used once per account. Increments by one with each transaction.
1390 minimum: 0
1391 maximum: 1.84467440737096e+19
1392 nullable: true
1393 example: null
1394 token:
1395 $ref: '#/components/schemas/Token'
1396 example:
1397 amount: '100000000000000'
1398 batchNum:
1399 fee: 0
1400 fromAccountIndex: hez:SCC:256
1401 fromBJJ: hez:r_trOasVEk0zNaalOoS9aLedu6mO7jI5XTIPu_zGXoyn
1402 fromHezEthereumAddress: hez:0x00000000000000000000000000000000004Ab84F
1403 id: '0x020000000001000000000006'
1404 nonce: 6
1405 requestAmount:
1406 requestFee: 0
1407 requestFromAccountIndex:
1408 requestNonce: 0
1409 requestToAccountIndex:
1410 requestToBJJ:
1411 requestToHezEthereumAddress:
1412 requestTokenId:
1413 signature: 5ee9c7b5baa243ba282d18596a55cc357b01513eaed75165365f802102cce4a7a1dd35e3ab31cf9039e2b8a9f570d935115be9379a3dd47813dfc014031ab201
1414 state: pend
1415 timestamp: '2020-11-17T13:58:54.422232Z'
1416 toAccountIndex: hez:SCC:257
1417 toBjj: hez:r_trOasVEk0zNaalOoS9aLedu6mO7jI5XTIPu_zGXoyn
1418 toHezEthereumAddress: hez:0x00000000000000000000000000000000004Ab84F
1419 token:
1420 USD: 23.74
1421 decimals: 7
1422 ethereumAddress: '0x0000000000000000000000000000000000000006'
1423 ethereumBlockNum: 2
1424 fiatUpdate:
1425 id: 6
1426 itemId: 7
1427 name: Some Cool Coin
1428 symbol: 'SCC'
1429 type: Transfer
1430 required:
1431 - id
1432 - type
1433 - fromAccountIndex
1434 - fromHezEthereumAddress
1435 - fromBJJ
1436 - toAccountIndex
1437 - toHezEthereumAddress
1438 - toBjj
1439 - amount
1440 - fee
1441 - nonce
1442 - state
1443 - signature
1444 - timestamp
1445 - batchNum
1446 - requestFromAccountIndex
1447 - requestToAccountIndex
1448 - requestToHezEthereumAddress
1449 - requestToBJJ
1450 - requestTokenId
1451 - requestAmount
1452 - requestFee
1453 - requestNonce
1454 - token
1455 TransactionId:
1456 type: string
1457 description: Identifier for transactions. Used for any kind of transaction (both L1 and L2). More info on how the identifiers are built [here](https://idocs.hermez.io/#/spec/architecture/db/README?id=txid)
1458 example: "0x00000000000001e240004700"
1459 EthereumAddress:
1460 type: string
1461 description: "Address of an Etherum account."
1462 pattern: "^0x[a-fA-F0-9]{40}$"
1463 example: "0xaa942cfcd25ad4d90a62358b0dd84f33b398262a"
1464 HezEthereumAddress:
1465 type: string
1466 description: "Address of an Etherum account linked to the Hermez Network."
1467 pattern: "^hez:0x[a-fA-F0-9]{40}$"
1468 example: "hez:0xaa942cfcd25ad4d90a62358b0dd84f33b398262a"
1469 BJJ:
1470 type: string
1471 description: "BabyJubJub public key, encoded as base64 URL (RFC 4648), which result in 33 bytes. The padding byte is replaced by a sum of the encoded bytes."
1472 pattern: "^hez:[A-Za-z0-9_-]{44}$"
1473 example: "hez:rR7LXKal-av7I56Y0dEBCVmwc9zpoLY5ERhy5w7G-xwe"
1474 AccountIndex:
1475 type: string
1476 description: >-
1477 Identifier of an account. It references the position where the account is inside the state Merkle tree.
1478 The identifier is built using: `hez:` + `token symbol:` + `index`
1479 example: "hez:DAI:4444"
1480 TransactionType:
1481 type: string
1482 description: Type of transaction.
1483 enum:
1484 - Exit
1485 - Transfer
1486 - Deposit
1487 - CreateAccountDeposit
1488 - CreateAccountDepositTransfer
1489 - DepositTransfer
1490 - ForceTransfer
1491 - ForceExit
1492 - TransferToEthAddr
1493 - TransferToBJJ
1494 TransactionTypeL2:
1495 type: string
1496 description: Type of transaction.
1497 enum:
1498 - Exit
1499 - Transfer
1500 - TransferToEthAddr
1501 - TransferToBJJ
1502 TokenId:
1503 type: integer
1504 description: Identifier of a token registered in the network.
1505 minimum: 0
1506 maximum: 4294967295
1507 example: 98765
1508 BigInt:
1509 type: string
1510 description: BigInt is an integer encoded as a string for numbers that are very large.
1511 example: "8708856933496328593"
1512 pattern: "^\\d+$"
1513 FeeSelector:
1514 type: integer
1515 description: Index of the fee type to select, more info [here](https://idocs.hermez.io/#/spec/zkrollup/fee-table?id=transaction-fee-table).
1516 minimum: 0
1517 maximum: 256
1518 example: 36
1519 Nonce:
1520 type: integer
1521 description: Number that can only be used once per account, increments by one at each transaction.
1522 minimum: 0
1523 maximum: 1.84467440737096e+19
1524 example: 121
1525 PoolL2TransactionState:
1526 type: string
1527 description: >
1528 State of a L2 transaction from the coordinator pool.
1529 * pend: Pending
1530 * fing: Forging
1531 * fged: Forged
1532 * invl: Invalid
1533 enum:
1534 - pend
1535 - fing
1536 - fged
1537 - invl
1538 ETHSignature:
1539 type: string
1540 description: Ethereum signature.
1541 pattern: "^0x[a-fA-F0-9]{130}$"
1542 example: "0xf9161cd688394772d93aa3e7b3f8f9553ca4f94f65b7cece93ed4a239d5c0b4677dca6d1d459e3a5c271a34de735d4664a43e5a8960a9a6e027d12c562dd448e1c"
1543 BJJSignature:
1544 type: string
1545 description: BabyJubJub compressed signature.
1546 pattern: "^[a-fA-F0-9]{128}$"
1547 example: "72024a43f546b0e1d9d5d7c4c30c259102a9726363adcc4ec7b6aea686bcb5116f485c5542d27c4092ae0ceaf38e3bb44417639bd2070a58ba1aa1aab9d92c03"
1548 BatchNum:
1549 type: integer
1550 description: Identifier of a batch. Every new forged batch increments by one the batchNum, starting at 0.
1551 minimum: 0
1552 maximum: 4294967295
1553 example: 5432
1554 AccountCreationAuthorizationPost:
1555 type: object
1556 properties:
1557 hezEthereumAddress:
1558 $ref: '#/components/schemas/HezEthereumAddress'
1559 bjj:
1560 $ref: '#/components/schemas/BJJ'
1561 signature:
1562 $ref: '#/components/schemas/ETHSignature'
1563 example:
1564 hezEthereumAddress: hez:0xb5270eB4ae11c6fAAff6F5fa0A5202B8d963634C
1565 bjj: hez:hg2Ydsb8O66H-steBR3cnHl944ua7E-PkTJ_SbPBBg5r
1566 signature: '0xb7cf237c4a2ff3d4df57752e7b9deb236fa384f03a79d39acf17ec5f8d12a3cf00b017c2466611310cb2bacac68460e96778278646842c6d2bcb79979271c28501'
1567 required:
1568 - hezEthereumAddress
1569 - bjj
1570 - signature
1571 AccountCreationAuthorization:
1572 type: object
1573 properties:
1574 timestamp:
1575 type: string
1576 format: date-time
1577 hezEthereumAddress:
1578 $ref: '#/components/schemas/HezEthereumAddress'
1579 bjj:
1580 $ref: '#/components/schemas/BJJ'
1581 signature:
1582 $ref: '#/components/schemas/ETHSignature'
1583 example:
1584 hezEthereumAddress: hez:0x74a549b410d01d9eC56346aE52b8550515B283b2
1585 bjj: hez:dEZ-Tj7d5h0TAqbnRTTYURYDEo5KZzB87_2WknUU8gCN
1586 signature: '0x8db6db2ad6cbe21297fb8ee01c59b01b52d4df7ea92a0f0dee0be0075a8f224a06b367407c8f402cfe0490c142a1c92da3fc29b51162ae160d35e1577d3071bb01'
1587 timestamp: '2020-11-17T13:25:36.784295Z'
1588 additionalProperties: false
1589 required:
1590 - timestamp
1591 - hezEthereumAddress
1592 - bjj
1593 - signature
1594 HistoryTransaction:
1595 type: object
1596 description: Transaction of the Hermez Network
1597 properties:
1598 L1orL2:
1599 type: string
1600 enum:
1601 - L1
1602 - L2
1603 id:
1604 $ref: '#/components/schemas/TransactionId'
1605 itemId:
1606 $ref: '#/components/schemas/ItemId'
1607 type:
1608 $ref: '#/components/schemas/TransactionType'
1609 position:
1610 $ref: '#/components/schemas/TransactionPosition'
1611 fromAccountIndex:
1612 type: string
1613 description: >-
1614 Identifier of an account. It references the position where the account is inside the state Merkle tree.
1615 The identifier is built using: `hez:` + `token symbol:` + `index`
1616 example: "hez:DAI:4444"
1617 nullable: true
1618 fromHezEthereumAddress:
1619 type: string
1620 description: "Address of an Etherum account linked to the Hermez Network."
1621 pattern: "^hez:0x[a-fA-F0-9]{40}$"
1622 example: "hez:0xaa942cfcd25ad4d90a62358b0dd84f33b398262a"
1623 nullable: true
1624 fromBJJ:
1625 type: string
1626 description: "BabyJubJub public key, encoded as base64 URL (RFC 4648), which result in 33 bytes. The padding byte is replaced by a sum of the encoded bytes."
1627 pattern: "^hez:[A-Za-z0-9_-]{44}$"
1628 example: "hez:9CK9fjQdMUTGm8KDvGLy3MB-vnP0NCcGX7Uh7OO6KRJm"
1629 nullable: true
1630 toAccountIndex:
1631 allOf:
1632 - $ref: '#/components/schemas/AccountIndex'
1633 - example: "hez:DAI:672"
1634 toHezEthereumAddress:
1635 type: string
1636 description: "Address of an Etherum account linked to the Hermez Network."
1637 pattern: "^hez:0x[a-fA-F0-9]{40}$"
1638 example: "hez:0xaa942cfcd25ad4d90a62358b0dd84f33b398262a"
1639 nullable: true
1640 toBJJ:
1641 type: string
1642 description: "BabyJubJub public key, encoded as base64 URL (RFC 4648), which result in 33 bytes. The padding byte is replaced by a sum of the encoded bytes."
1643 pattern: "^hez:[A-Za-z0-9_-]{44}$"
1644 example: "hez:f1J78_6uqTyjX6jrVCqN4RFeRBnWQAGl477ZFtOnH6Sm"
1645 nullable: true
1646 amount:
1647 allOf:
1648 - $ref: '#/components/schemas/BigInt'
1649 - description: Amount of tokens to be sent.
1650 - example: "4903020000000000000"
1651 batchNum:
1652 type: integer
1653 description: Batch in which the transaction was forged. Null indicates not forged yet.
1654 minimum: 0
1655 maximum: 4294967295
1656 example: 5432
1657 nullable: true
1658 historicUSD:
1659 type: number
1660 description: Value in USD at the moment the transaction was forged.
1661 example: 49.7
1662 nullable: true
1663 timestamp:
1664 type: string
1665 format: date-time
1666 description: In the case of L1 indicates the moment where the transaction was added in the smart contract. For L2 indicates when the transaction was forged.
1667 token:
1668 $ref: '#/components/schemas/Token'
1669 L1Info:
1670 type: object
1671 description: Additional information that only applies to L1 transactions.
1672 nullable: true
1673 properties:
1674 toForgeL1TransactionsNum:
1675 $ref: '#/components/schemas/ToForgeL1TransactionsNum'
1676 userOrigin:
1677 type: boolean
1678 description: True if the transaction was sent by a user. False if it was sent by a coordinator.
1679 depositAmount:
1680 allOf:
1681 - $ref: '#/components/schemas/BigInt'
1682 - description: Tokens transfered from L1 to L2.
1683 - example: "4900000000000000000"
1684 amountSuccess:
1685 type: boolean
1686 description: >-
1687 Indicates if the amount specified by the user has been sent propperly. If false, the amount that actualy has been sent is 0.
1688 If the transaction hasn't been forged yet (`batchNum == null`), this value will be false, as it's unknown if it has succeed or not.
1689 An example were this value could be false: a user send a `DepositTransfer` transaction, but when the tx is forged there are not
1690 enougth founds in the account. In this case the transfer part of the transaction won't be effective making the amount have a real value of 0.
1691 example: true
1692 depositAmountSuccess:
1693 type: boolean
1694 description: >-
1695 Indicates if the deposit amount specified by the user has been sent propperly. If false, the deposit amount that actualy has been sent is 0.
1696 If the transaction hasn't been forged yet (`batchNum == null`), this value will be false, as it's unknown if it has succeed or not.
1697 An example were this value could be false: a user send a `Deposit` transaction, but when the tx is forged the token id is not registered on the network.
1698 In this case transaction won't be effective making the deposit amount have a real value of 0.
1699 example: true
1700 historicDepositAmountUSD:
1701 type: number
1702 description: Deposit amount in USD, at the moment the transaction was made.
1703 example: 3.897
1704 nullable: true
1705 ethereumBlockNum:
1706 allOf:
1707 - $ref: '#/components/schemas/EthBlockNum'
1708 - description: Ethereum block in which the transaction was added to the smart contract forge queue.
1709 - example: 258723049
1710 required:
1711 - toForgeL1TransactionsNum
1712 - userOrigin
1713 - depositAmount
1714 - amountSuccess
1715 - depositAmountSuccess
1716 - historicDepositAmountUSD
1717 - ethereumBlockNum
1718 additionalProperties: false
1719 L2Info:
1720 type: object
1721 description: Additional information that only applies to L2 transactions.
1722 nullable: true
1723 properties:
1724 fee:
1725 $ref: '#/components/schemas/FeeSelector'
1726 historicFeeUSD:
1727 type: number
1728 description: Fee in USD, at the moment the transaction was forged.
1729 example: 263.89
1730 nullable: true
1731 nonce:
1732 $ref: '#/components/schemas/Nonce'
1733 example: null
1734 required:
1735 - fee
1736 - historicFeeUSD
1737 - nonce
1738 additionalProperties: false
1739 example:
1740 L1Info:
1741 ethereumBlockNum: 1
1742 historicDepositAmountUSD: 232.47
1743 depositAmount: '261'
1744 toForgeL1TransactionsNum: 10
1745 userOrigin: true
1746 L1orL2: L1
1747 L2Info:
1748 amount: '261'
1749 batchNum: 1
1750 fromAccountIndex: hez:ETH:276
1751 fromBJJ: hez:p_OohTzjzZnD3Sw93HQlK13DSxfD6lyvbfhh2kBsV6Z4
1752 fromHezEthereumAddress: hez:0x0000000000000000000000000000000000000114
1753 historicUSD: 3784.19
1754 id: '0x00000000000000000a000400'
1755 itemId: 2
1756 position: 4
1757 timestamp: '2020-11-17T14:08:12.197554Z'
1758 toAccountIndex: hez:ETH:276
1759 toBJJ: hez:p_OohTzjzZnD3Sw93HQlK13DSxfD6lyvbfhh2kBsV6Z4
1760 toHezEthereumAddress: hez:0x0000000000000000000000000000000000000114
1761 token:
1762 USD: 234.56
1763 decimals: 18
1764 ethereumAddress: '0x0000000000000000000000000000000000000000'
1765 ethereumBlockNum: 0
1766 fiatUpdate:
1767 id: 0
1768 itemId: 1
1769 name: Ether
1770 symbol: ETH
1771 type: CreateAccountDeposit
1772 required:
1773 - L1orL2
1774 - id
1775 - itemId
1776 - type
1777 - position
1778 - fromAccountIndex
1779 - fromHezEthereumAddress
1780 - fromBJJ
1781 - toAccountIndex
1782 - toHezEthereumAddress
1783 - toBJJ
1784 - amount
1785 - batchNum
1786 - historicUSD
1787 - timestamp
1788 - token
1789 - L1Info
1790 - L2Info
1791 additionalProperties: false
1792 HistoryTransactions:
1793 type: object
1794 properties:
1795 transactions:
1796 type: array
1797 description: List of history transactions.
1798 items:
1799 $ref: '#/components/schemas/HistoryTransaction'
1800 pendingItems:
1801 $ref: '#/components/schemas/PendingItems'
1802 example:
1803 transactions:
1804 - L1Info:
1805 ethereumBlockNum: 3
1806 historicDepositAmountUSD:
1807 depositAmount: '0'
1808 toForgeL1TransactionsNum: 7
1809 userOrigin: true
1810 L1orL2: L1
1811 L2Info:
1812 amount: '88888800000000000'
1813 batchNum: 9
1814 fromAccountIndex: hez:ETH:262
1815 fromBJJ: hez:Mj_xDCjfN-y3h_4hbhEdtkqnz6LFF1Cf4AV_8IoQswwh
1816 fromHezEthereumAddress: hez:0x2B5AD5c4795c026514f8317c7a215E218DcCD6cF
1817 historicUSD: 44.4444
1818 id: '0x000000000000000007000300'
1819 itemId: 28
1820 position: 3
1821 timestamp: '2020-11-26T09:18:40.004749Z'
1822 toAccountIndex: hez:EXIT:1
1823 toBJJ:
1824 toHezEthereumAddress:
1825 token:
1826 USD: 500
1827 decimals: 18
1828 ethereumAddress: '0x0000000000000000000000000000000000000000'
1829 ethereumBlockNum: 0
1830 fiatUpdate: '2020-11-26T09:18:27.034866Z'
1831 id: 0
1832 itemId: 1
1833 name: Ether
1834 symbol: ETH
1835 type: ForceExit
1836 - L1Info:
1837 L1orL2: L2
1838 L2Info:
1839 fee: 123
1840 historicFeeUSD: 2.15037380962404
1841 nonce: 1
1842 amount: '55555500000000000'
1843 batchNum: 8
1844 fromAccountIndex: hez:TKN1:264
1845 fromBJJ: hez:Mj_xDCjfN-y3h_4hbhEdtkqnz6LFF1Cf4AV_8IoQswwh
1846 fromHezEthereumAddress: hez:0x2B5AD5c4795c026514f8317c7a215E218DcCD6cF
1847 historicUSD: 23.4999765
1848 id: '0x020000000001080000000001'
1849 itemId: 19
1850 position: 2
1851 timestamp: '2020-11-26T09:18:40.004749Z'
1852 toAccountIndex: hez:TKN1:260
1853 toBJJ: hez:81h61cx0FKR1RXcLbHW8cZMPY8SR6yKU3ei4pmcLjpaQ
1854 toHezEthereumAddress: hez:0x6813Eb9362372EEF6200f3b1dbC3f819671cBA69
1855 token:
1856 USD: 423
1857 decimals: 18
1858 ethereumAddress: '0x0000000000000000000000000000000000000064'
1859 ethereumBlockNum: 2
1860 fiatUpdate: '2020-11-26T09:18:27.04357Z'
1861 id: 1
1862 itemId: 2
1863 name: Test Token 1
1864 symbol: TKN1
1865 type: Transfer
1866 - L1Info:
1867 L1orL2: L2
1868 L2Info:
1869 fee: 44
1870 historicFeeUSD: 0.1973587359744
1871 nonce: 2
1872 amount: '66666600000000000'
1873 batchNum: 8
1874 fromAccountIndex: hez:ETH:259
1875 fromBJJ: hez:W6x4TZOAZ9mAqdOb3Xm_hKDLspaXfEfMMN4tXOkinS-W
1876 fromHezEthereumAddress: hez:0x7E5F4552091A69125d5DfCb7b8C2659029395Bdf
1877 historicUSD: 33.3333
1878 id: '0x020000000001030000000002'
1879 itemId: 20
1880 position: 3
1881 timestamp: '2020-11-26T09:18:40.004749Z'
1882 toAccountIndex: hez:EXIT:1
1883 toBJJ:
1884 toHezEthereumAddress:
1885 token:
1886 USD: 500
1887 decimals: 18
1888 ethereumAddress: '0x0000000000000000000000000000000000000000'
1889 ethereumBlockNum: 0
1890 fiatUpdate: '2020-11-26T09:18:27.034866Z'
1891 id: 0
1892 itemId: 1
1893 name: Ether
1894 symbol: ETH
1895 type: Exit
1896 - L1Info:
1897 ethereumBlockNum: 3
1898 historicDepositAmountUSD: 14099.9999859
1899 depositAmount: '33333333300000000000'
1900 toForgeL1TransactionsNum: 2
1901 userOrigin: true
1902 L1orL2: L1
1903 L2Info:
1904 amount: '0'
1905 batchNum: 4
1906 fromAccountIndex: hez:TKN1:0
1907 fromBJJ: hez:W6x4TZOAZ9mAqdOb3Xm_hKDLspaXfEfMMN4tXOkinS-W
1908 fromHezEthereumAddress: hez:0x7E5F4552091A69125d5DfCb7b8C2659029395Bdf
1909 historicUSD:
1910 id: '0x000000000000000002000000'
1911 itemId: 9
1912 position: 0
1913 timestamp: '2020-11-26T09:18:40.004749Z'
1914 toAccountIndex: hez:TKN1:0
1915 toBJJ:
1916 toHezEthereumAddress:
1917 token:
1918 USD: 423
1919 decimals: 18
1920 ethereumAddress: '0x0000000000000000000000000000000000000064'
1921 ethereumBlockNum: 2
1922 fiatUpdate: '2020-11-26T09:18:27.04357Z'
1923 id: 1
1924 itemId: 2
1925 name: Test Token 1
1926 symbol: TKN1
1927 type: CreateAccountDeposit
1928 - L1Info:
1929 L1orL2: L2
1930 L2Info:
1931 fee: 2
1932 historicFeeUSD: 3.87833366166246e-17
1933 nonce: 1
1934 amount: '11111100000000000'
1935 batchNum: 7
1936 fromAccountIndex: hez:TKN1:261
1937 fromBJJ: hez:W6x4TZOAZ9mAqdOb3Xm_hKDLspaXfEfMMN4tXOkinS-W
1938 fromHezEthereumAddress: hez:0x7E5F4552091A69125d5DfCb7b8C2659029395Bdf
1939 historicUSD: 4.6999953
1940 id: '0x020000000001050000000001'
1941 itemId: 15
1942 position: 2
1943 timestamp: '2020-11-26T09:18:40.004749Z'
1944 toAccountIndex: hez:TKN1:264
1945 toBJJ: hez:Mj_xDCjfN-y3h_4hbhEdtkqnz6LFF1Cf4AV_8IoQswwh
1946 toHezEthereumAddress: hez:0x2B5AD5c4795c026514f8317c7a215E218DcCD6cF
1947 token:
1948 USD: 423
1949 decimals: 18
1950 ethereumAddress: '0x0000000000000000000000000000000000000064'
1951 ethereumBlockNum: 2
1952 fiatUpdate: '2020-11-26T09:18:27.04357Z'
1953 id: 1
1954 itemId: 2
1955 name: Test Token 1
1956 symbol: TKN1
1957 type: Transfer
1958 pendingItems: 23
1959 required:
1960 - transactions
1961 - pendingItems
1962 additionalProperties: false
1963 EthBlockNum:
1964 type: integer
1965 description: Ethereum block number
1966 minimum: 0
1967 maximum: 1.84467440737096e+19
1968 example: 762375478
1969 ToForgeL1TransactionsNum:
1970 type: integer
1971 description: Reference to know in which batch a L1 transaction was forged / will be forged.
1972 minimum: 0
1973 maximum: 4294967295
1974 example: 784
1975 nullable: true
1976 TransactionPosition:
1977 type: integer
1978 description: Position that a transaction occupies in a batch.
1979 minimum: 0
1980 example: 5
1981 URL:
1982 type: string
1983 description: HTTP URL
1984 example: "https://hermez.io"
1985 TokenSymbol:
1986 type: string
1987 description: Abreviation of the token name.
1988 example: "DAI"
1989 TokenName:
1990 type: string
1991 description: Token name.
1992 example: "Dai"
1993 CollectedFees:
1994 type: object
1995 description: Collected fees by the forger of the batch, represented by a map of tokenId => amount. A maximum of 64 different tokens can be used.
1996 additionalProperties:
1997 type: string
1998 example:
1999 1234: "425632785672345647"
2000 4321: "86538967235465432654352"
2001 Batch:
2002 type: object
2003 description: Group of transactions forged in a coordinator and sent and validated in Ethereum.
2004 properties:
2005 itemId:
2006 $ref: '#/components/schemas/ItemId'
2007 batchNum:
2008 $ref: '#/components/schemas/BatchNum'
2009 ethereumBlockNum:
2010 $ref: '#/components/schemas/EthBlockNum'
2011 ethereumBlockHash:
2012 type: string
2013 description: hash of the Ethereum block in which the batch was forged
2014 example: "0xfe88c94d860f01a17f961bf4bdfb6e0c6cd10d3fda5cc861e805ca1240c58553"
2015 timestamp:
2016 type: string
2017 format: date-time
2018 description: Time in which the batch was forged.
2019 forgerAddr:
2020 $ref: '#/components/schemas/EthereumAddress'
2021 collectedFees:
2022 $ref: '#/components/schemas/CollectedFees'
2023 historicTotalCollectedFeesUSD:
2024 type: number
2025 description: Sum of the all the fees collected, in USD, at the moment the batch was forged.
2026 example: 23.3
2027 stateRoot:
2028 allOf:
2029 - $ref: '#/components/schemas/Hash'
2030 - description: Root of the accounts Merkle Tree.
2031 - example: "2734657026572a8708d883"
2032 numAccounts:
2033 type: integer
2034 description: Number of registered accounts in this batch.
2035 exitRoot:
2036 allOf:
2037 - $ref: '#/components/schemas/Hash'
2038 - description: Root of the exit Merkle Tree associated to this batch.
2039 - example: "2734657026572a8708d883"
2040 forgeL1TransactionsNum:
2041 type: integer
2042 description: Identifier that corresponds to the group of L1 transactions forged in the current batch.
2043 example: 5
2044 nullable: true
2045 slotNum:
2046 $ref: '#/components/schemas/SlotNum'
2047 forgedTransactions:
2048 type: integer
2049 description: Amount of forged transactions in this batch.
2050 example: 318
2051 additionalProperties: false
2052 required:
2053 - itemId
2054 - batchNum
2055 - ethereumBlockNum
2056 - ethereumBlockHash
2057 - timestamp
2058 - forgerAddr
2059 - collectedFees
2060 - historicTotalCollectedFeesUSD
2061 - stateRoot
2062 - numAccounts
2063 - exitRoot
2064 - forgeL1TransactionsNum
2065 - slotNum
2066 - forgedTransactions
2067 FullBatch:
2068 type: object
2069 description: Group of transactions forged in a coordinator and sent and validated in Ethereum.
2070 properties:
2071 batch:
2072 $ref: '#/components/schemas/Batch'
2073 transactions:
2074 type: array
2075 description: List of forged transactions in the batch
2076 items:
2077 $ref: '#/components/schemas/HistoryTransaction'
2078 nullable: true
2079 additionalProperties: false
2080 required:
2081 - batch
2082 - transactions
2083 Hash:
2084 type: string
2085 description: hashed data
2086 example: "2734657026572a8708d883"
2087 SlotNum:
2088 type: integer
2089 description: Identifier of a slot.
2090 minimum: 0
2091 maximum: 4294967295
2092 example: 784
2093 Batches:
2094 type: object
2095 properties:
2096 batches:
2097 type: array
2098 description: List of batches.
2099 items:
2100 $ref: '#/components/schemas/Batch'
2101 pendingItems:
2102 $ref: '#/components/schemas/PendingItems'
2103 additionalProperties: false
2104 required:
2105 - batches
2106 - pendingItems
2107 Coordinator:
2108 type: object
2109 properties:
2110 itemId:
2111 $ref: '#/components/schemas/ItemId'
2112 forgerAddr:
2113 $ref: '#/components/schemas/EthereumAddress'
2114 bidderAddr:
2115 $ref: '#/components/schemas/EthereumAddress'
2116 URL:
2117 $ref: '#/components/schemas/URL'
2118 ethereumBlock:
2119 allOf:
2120 - $ref: '#/components/schemas/EthBlockNum'
2121 - description: Ethereum block in which the coordinator registered into the network.
2122 - example: 5735943738
2123 additionalProperties: false
2124 required:
2125 - itemId
2126 - forgerAddr
2127 - bidderAddr
2128 - URL
2129 - ethereumBlock
2130 Coordinators:
2131 type: object
2132 properties:
2133 coordinators:
2134 type: array
2135 description: List of coordinators.
2136 items:
2137 $ref: '#/components/schemas/Coordinator'
2138 pendingItems:
2139 $ref: '#/components/schemas/PendingItems'
2140 additionalProperties: false
2141 required:
2142 - coordinators
2143 - pendingItems
2144 Bid:
2145 type: object
2146 description: Tokens placed in an auction by a coordinator to gain the right to forge batches during a specific slot.
2147 properties:
2148 itemId:
2149 $ref: '#/components/schemas/ItemId'
2150 bidderAddr:
2151 $ref: '#/components/schemas/EthereumAddress'
2152 forgerAddr:
2153 $ref: '#/components/schemas/EthereumAddress'
2154 slotNum:
2155 $ref: '#/components/schemas/SlotNum'
2156 URL:
2157 $ref: '#/components/schemas/URL'
2158 bidValue:
2159 $ref: '#/components/schemas/BigInt'
2160 ethereumBlockNum:
2161 $ref: '#/components/schemas/EthBlockNum'
2162 timestamp:
2163 type: string
2164 format: date-time
2165 additionalProperties: false
2166 required:
2167 - bidderAddr
2168 - forgerAddr
2169 - slotNum
2170 - URL
2171 - bidValue
2172 - ethereumBlockNum
2173 - timestamp
2174 Bids:
2175 type: object
2176 properties:
2177 bids:
2178 type: array
2179 description: List of bids.
2180 items:
2181 $ref: '#/components/schemas/Bid'
2182 pendingItems:
2183 $ref: '#/components/schemas/PendingItems'
2184 additionalProperties: false
2185 required:
2186 - bids
2187 - pendingItems
2188 RecommendedFee:
2189 type: object
2190 description: Fee that the coordinator recommends per transaction in USD.
2191 properties:
2192 existingAccount:
2193 type: number
2194 description: Recommended fee if the destination account of the transaction already exists.
2195 minimum: 0
2196 example: 0.1
2197 createAccount:
2198 type: number
2199 description: Recommended fee if the destination account of the transaction doesn't exist, but the coordinator has an authorization to create a valid account associated to an Ethereum address and a BJJ public key controlled by the receiver.
2200 minimum: 0
2201 example: 1.3
2202 createAccountInternal:
2203 type: number
2204 description: Recommended fee if the destination account of the transaction doesn't exist, but the coordinator has the ability to create a valid account associated to a BJJ public key controlled by the receiver. Note that these kind of accounts are not associated with an Ethereum address and therefore can only operate in L2.
2205 minimum: 0
2206 example: 0.5
2207 Token:
2208 type: object
2209 description: Hermez Network compatible and registered token.
2210 properties:
2211 id:
2212 $ref: '#/components/schemas/TokenId'
2213 ethereumAddress:
2214 allOf:
2215 - $ref: '#/components/schemas/EthereumAddress'
2216 - description: Ethereum address in which the token is deployed.
2217 - example: "0xaa942cfcd25ad4d90a62358b0dd84f33b398262a"
2218 itemId:
2219 $ref: '#/components/schemas/ItemId'
2220 name:
2221 type: string
2222 description: full name of the token
2223 example: Maker Dai
2224 symbol:
2225 allOf:
2226 - $ref: '#/components/schemas/TokenSymbol'
2227 - example: DAI
2228 decimals:
2229 type: integer
2230 description: Number of decimals of the token.
2231 example: 18
2232 ethereumBlockNum:
2233 allOf:
2234 - $ref: '#/components/schemas/EthBlockNum'
2235 - description: Ethereum block number in which the token was added to the Hermez Network.
2236 - example: 539847538
2237 USD:
2238 type: number
2239 description: Value of the token in USD.
2240 example: 1.01
2241 nullable: true
2242 fiatUpdate:
2243 type: string
2244 format: date-time
2245 description: Timestamp of the moment the `USD` value was updated.
2246 nullable: true
2247 required:
2248 - id
2249 - ethereumAddress
2250 - itemId
2251 - name
2252 - symbol
2253 - decimals
2254 - ethereumBlockNum
2255 - USD
2256 - fiatUpdate
2257 additionalProperties: false
2258 Tokens:
2259 type: object
2260 properties:
2261 tokens:
2262 type: array
2263 description: List of tokens.
2264 items:
2265 $ref: '#/components/schemas/Token'
2266 pendingItems:
2267 $ref: '#/components/schemas/PendingItems'
2268 Exit:
2269 type: object
2270 description: Exit tree leaf. It Contains the necessary information to perform a withdrawal.
2271 properties:
2272 batchNum:
2273 allOf:
2274 - $ref: '#/components/schemas/BatchNum'
2275 - description: Batch in which the exit was forged.
2276 - example: 7394
2277 accountIndex:
2278 $ref: '#/components/schemas/AccountIndex'
2279 bjj:
2280 $ref: '#/components/schemas/BJJ'
2281 hezEthereumAddress:
2282 $ref: '#/components/schemas/HezEthereumAddress'
2283 itemId:
2284 $ref: '#/components/schemas/ItemId'
2285 merkleProof:
2286 type: object
2287 description: Existence proof of a leaf in a given Merkle Root. Encoded as hexadecimal string.
2288 properties:
2289 root:
2290 $ref: '#/components/schemas/BigInt'
2291 siblings:
2292 type: array
2293 items:
2294 $ref: '#/components/schemas/BigInt'
2295 oldKey:
2296 $ref: '#/components/schemas/BigInt'
2297 oldValue:
2298 $ref: '#/components/schemas/BigInt'
2299 isOld0:
2300 type: boolean
2301 key:
2302 $ref: '#/components/schemas/BigInt'
2303 value:
2304 $ref: '#/components/schemas/BigInt'
2305 fnc:
2306 type: integer
2307 maximum: 3
2308 minimum: 0
2309 required:
2310 - root
2311 - siblings
2312 - oldKey
2313 - oldValue
2314 - isOld0
2315 - key
2316 - value
2317 - fnc
2318 additionalProperties: false
2319 balance:
2320 $ref: '#/components/schemas/BigInt'
2321 instantWithdrawn:
2322 type: integer
2323 description: Block in which the exit balance was instantly withdrawn. Null indicates that an instant withdrawn hasn't been performed.
2324 minimum: 0
2325 maximum: 1.84467440737096e+19
2326 example: 74747363
2327 nullable: true
2328 delayedWithdrawRequest:
2329 type: integer
2330 description: Block in which the exit balance was requested to delay withdraw. Null indicates that a delay withdraw hasn't been performed.
2331 minimum: 0
2332 maximum: 1.84467440737096e+19
2333 example: null
2334 nullable: true
2335 delayedWithdrawn:
2336 type: integer
2337 description: Block in which the exit balance was delayed withdrawn after a delay withdraw request. Null indicates that a delay withdraw hasn't been performed.
2338 minimum: 0
2339 maximum: 1.84467440737096e+19
2340 example: null
2341 nullable: true
2342 token:
2343 $ref: '#/components/schemas/Token'
2344 required:
2345 - batchNum
2346 - accountIndex
2347 - bjj
2348 - hezEthereumAddress
2349 - itemId
2350 - merkleProof
2351 - balance
2352 - instantWithdrawn
2353 - delayedWithdrawRequest
2354 - delayedWithdrawn
2355 - token
2356 additionalProperties: false
2357 Exits:
2358 type: object
2359 properties:
2360 exits:
2361 type: array
2362 description: List of exits.
2363 items:
2364 $ref: '#/components/schemas/Exit'
2365 pendingItems:
2366 $ref: '#/components/schemas/PendingItems'
2367 required:
2368 - exits
2369 - pendingItems
2370 additionalProperties: false
2371 Account:
2372 type: object
2373 description: State tree leaf. It contains balance and nonce of an account.
2374 properties:
2375 itemId:
2376 $ref: '#/components/schemas/ItemId'
2377 accountIndex:
2378 $ref: '#/components/schemas/AccountIndex'
2379 nonce:
2380 $ref: '#/components/schemas/Nonce'
2381 balance:
2382 $ref: '#/components/schemas/BigInt'
2383 bjj:
2384 $ref: '#/components/schemas/BJJ'
2385 hezEthereumAddress:
2386 $ref: '#/components/schemas/HezEthereumAddress'
2387 token:
2388 $ref: '#/components/schemas/Token'
2389 example:
2390 exits:
2391 - accountIndex: hez:ETH:259
2392 balance: '66666600000000000'
2393 batchNum: 8
2394 delayedWithdrawRequest:
2395 delayedWithdrawn:
2396 instantWithdrawn:
2397 itemId: 1
2398 merkleProof:
2399 Fnc: 0
2400 IsOld0: true
2401 Key: '256'
2402 OldKey: '256'
2403 OldValue: '256'
2404 Root: '256'
2405 Siblings:
2406 - '0'
2407 - '1'
2408 - '2'
2409 Value: '256'
2410 token:
2411 USD: 500
2412 decimals: 18
2413 ethereumAddress: '0x0000000000000000000000000000000000000000'
2414 ethereumBlockNum: 0
2415 fiatUpdate: '2020-11-26T09:57:29.110879Z'
2416 id: 0
2417 itemId: 1
2418 name: Ether
2419 symbol: ETH
2420 pendingItems: 0
2421 additionalProperties: false
2422 required:
2423 - itemId
2424 - accountIndex
2425 - nonce
2426 - balance
2427 - bjj
2428 - hezEthereumAddress
2429 - token
2430 Accounts:
2431 type: object
2432 properties:
2433 accounts:
2434 type: array
2435 description: List of accounts.
2436 items:
2437 $ref: '#/components/schemas/Account'
2438 pendingItems:
2439 $ref: '#/components/schemas/PendingItems'
2440 example:
2441 accounts:
2442 - accountIndex: hez:ETH:259
2443 balance: '2590000000000000000'
2444 bjj: hez:W6x4TZOAZ9mAqdOb3Xm_hKDLspaXfEfMMN4tXOkinS-W
2445 hezEthereumAddress: hez:0x7E5F4552091A69125d5DfCb7b8C2659029395Bdf
2446 itemId: 4
2447 nonce: 0
2448 token:
2449 USD: 500
2450 decimals: 18
2451 ethereumAddress: '0x0000000000000000000000000000000000000000'
2452 ethereumBlockNum: 0
2453 fiatUpdate: '2020-11-26T09:53:47.444444Z'
2454 id: 0
2455 itemId: 1
2456 name: Ether
2457 symbol: ETH
2458 - accountIndex: hez:TKN1:261
2459 balance: '2610000000'
2460 bjj: hez:W6x4TZOAZ9mAqdOb3Xm_hKDLspaXfEfMMN4tXOkinS-W
2461 hezEthereumAddress: hez:0x7E5F4552091A69125d5DfCb7b8C2659029395Bdf
2462 itemId: 6
2463 nonce: 0
2464 token:
2465 USD: 423
2466 decimals: 18
2467 ethereumAddress: '0x0000000000000000000000000000000000000064'
2468 ethereumBlockNum: 2
2469 fiatUpdate: '2020-11-26T09:53:47.456619Z'
2470 id: 1
2471 itemId: 2
2472 name: Test Token 1
2473 symbol: TKN1
2474 pendingItems: 0
2475 additionalProperties: false
2476 required:
2477 - accounts
2478 - pendingItems
2479 Slot:
2480 type: object
2481 description: Slot information.
2482 properties:
2483 itemId:
2484 $ref: '#/components/schemas/ItemId'
2485 slotNum:
2486 $ref: '#/components/schemas/SlotNum'
2487 firstBlock:
2488 allOf:
2489 - $ref: '#/components/schemas/EthBlockNum'
2490 - description: Block in which the slot began or will begin
2491 - example: 76238647846
2492 lastBlock:
2493 allOf:
2494 - $ref: '#/components/schemas/EthBlockNum'
2495 - description: Block in which the slot ended or will end
2496 - example: 4475934
2497 openAuction:
2498 type: boolean
2499 description: Whether the auction of the slot is open or not.
2500 bestBid:
2501 type: object
2502 description: The best bid of the auction. If the bestBid is null, it is because no coordinator has bid for that slot.
2503 nullable: true
2504 properties:
2505 itemId:
2506 $ref: '#/components/schemas/ItemId'
2507 bidderAddr:
2508 $ref: '#/components/schemas/EthereumAddress'
2509 forgerAddr:
2510 $ref: '#/components/schemas/EthereumAddress'
2511 slotNum:
2512 $ref: '#/components/schemas/SlotNum'
2513 URL:
2514 $ref: '#/components/schemas/URL'
2515 bidValue:
2516 type: string
2517 description: BigInt is an integer encoded as a string for numbers that are very large.
2518 example: "8708856933496328593"
2519 pattern: "^\\d+$"
2520 ethereumBlockNum:
2521 $ref: '#/components/schemas/EthBlockNum'
2522 timestamp:
2523 type: string
2524 format: date-time
2525 additionalProperties: false
2526 required:
2527 - bidderAddr
2528 - forgerAddr
2529 - slotNum
2530 - URL
2531 - bidValue
2532 - ethereumBlockNum
2533 - timestamp
2534 additionalProperties: false
2535 required:
2536 - slotNum
2537 - firstBlock
2538 - lastBlock
2539 - openAuction
2540 - bestBid
2541 Slots:
2542 type: object
2543 properties:
2544 slots:
2545 type: array
2546 description: List of slots.
2547 items:
2548 allOf:
2549 - $ref: '#/components/schemas/Slot'
2550 - description: Last synchronized Etherum block.
2551 pendingItems:
2552 $ref: '#/components/schemas/PendingItems'
2553 additionalProperties: false
2554 required:
2555 - slots
2556 - pendingItems
2557 NextForger:
2558 type: object
2559 description: Coordinator information along with the scheduled forging period
2560 properties:
2561 coordinator:
2562 $ref: '#/components/schemas/Coordinator'
2563 period:
2564 type: object
2565 description: Time period in which the coordinator will have the ability to forge. Specified both in Ethereum blocks and timestamp
2566 properties:
2567 slotNum:
2568 $ref: '#/components/schemas/SlotNum'
2569 fromBlock:
2570 $ref: '#/components/schemas/EthBlockNum'
2571 toBlock:
2572 $ref: '#/components/schemas/EthBlockNum'
2573 fromTimestamp:
2574 type: string
2575 format: date-time
2576 toTimestamp:
2577 type: string
2578 format: date-time
2579 required:
2580 - slotNum
2581 - fromBlock
2582 - toBlock
2583 - fromTimestamp
2584 - toTimestamp
2585 additionalProperties: false
2586 required:
2587 - coordinator
2588 - period
2589 additionalProperties: false
2590 NextForgers:
2591 type: array
2592 description: List of next coordinators to forge.
2593 items:
2594 $ref: '#/components/schemas/NextForger'
2595 State:
2596 type: object
2597 description: Gobal variables of the network
2598 properties:
2599 network:
2600 $ref: '#/components/schemas/StateNetwork'
2601 metrics:
2602 $ref: '#/components/schemas/StateMetrics'
2603 rollup:
2604 $ref: '#/components/schemas/StateRollup'
2605 auction:
2606 $ref: '#/components/schemas/StateAuction'
2607 withdrawalDelayer:
2608 $ref: '#/components/schemas/StateWithdrawDelayer'
2609 recommendedFee:
2610 $ref: '#/components/schemas/RecommendedFee'
2611 additionalProperties: false
2612 required:
2613 - network
2614 - metrics
2615 - rollup
2616 - auction
2617 - withdrawalDelayer
2618 - recommendedFee
2619 StateNetwork:
2620 type: object
2621 description: Gobal statistics of the network
2622 properties:
2623 lastEthereumBlock:
2624 allOf:
2625 - $ref: '#/components/schemas/EthBlockNum'
2626 - description: Current Etherum block. Note that this is the actual last block of Ethereum, not the last synchronized block by the node.
2627 - example: 3457437
2628 lastSynchedBlock:
2629 allOf:
2630 - $ref: '#/components/schemas/EthBlockNum'
2631 - description: Last synchronized Etherum block. Compare with lastEthereumBlock to check the synchronization status of the node.
2632 - example: 3457437
2633 lastBatch:
2634 $ref: '#/components/schemas/Batch'
2635 currentSlot:
2636 allOf:
2637 - $ref: '#/components/schemas/SlotNum'
2638 - description: Slot where batches are currently being forged.
2639 - example: 2334
2640 nextForgers:
2641 $ref: '#/components/schemas/NextForgers'
2642 additionalProperties: false
2643 required:
2644 - lastEthereumBlock
2645 - lastSynchedBlock
2646 - lastBatch
2647 - currentSlot
2648 - nextForgers
2649 StateAuction:
2650 type: object
2651 description: Auction parameters.
2652 properties:
2653 ethereumBlockNum:
2654 $ref: '#/components/schemas/EthBlockNum'
2655 bootCoordinator:
2656 allOf:
2657 - $ref: '#/components/schemas/EthereumAddress'
2658 - description: Ethereum address of the boot coordinator.
2659 - example: "0x997dc4262BCDbf85190C01c996b4C06a461d2430"
2660 bootCoordinatorUrl:
2661 type: string
2662 description: Boot Coordinator URL
2663 example: "https://boot.coordinator.io"
2664 slotDeadline:
2665 type: integer
2666 description: Number of blocks after the beginning of a slot after which any coordinator can forge if the winner has not forged any batch in that slot.
2667 example: 3
2668 closedAuctionSlots:
2669 type: integer
2670 description: Amount of slots between the current slot and the slot auction that is closed. Example if the value is 2, when slot 10 begins, the auction of the slot 12 gets closed.
2671 example: 2
2672 openAuctionSlots:
2673 type: integer
2674 description: Amount of days in advance are auctions opened.
2675 defaultSlotSetBid:
2676 type: array
2677 description: "Initial minimal bid for each auction. Expressed as an array of 6 values. To calculate which value corresponds to each slot: `initialMinimalBidding[slotNum%6]`."
2678 items:
2679 type: integer
2680 example: [32,0,68,21,55,99]
2681 defaultSlotSetBidSlotNum:
2682 type: integer
2683 description: Slot in which the changes will be applied for the first time.
2684 outbidding:
2685 type: number
2686 description: Minimum outbid over the previous one to consider it valid.
2687 example: 3.64
2688 donationAddress:
2689 allOf:
2690 - $ref: '#/components/schemas/EthereumAddress'
2691 - description: Ethereum address where the donations will go to.
2692 - example: "0x887dc4262BCDbf85190C01c996b4C06a461d2430"
2693 allocationRatio:
2694 type: array
2695 description: Percentage in which fees will be split between donations, governance, and burning. The sum of the tree values should be 100.
2696 items:
2697 type: integer
2698 example: [80,10,10]
2699 additionalProperties: false
2700 required:
2701 - ethereumBlockNum
2702 - bootCoordinator
2703 - bootCoordinatorUrl
2704 - slotDeadline
2705 - closedAuctionSlots
2706 - openAuctionSlots
2707 - defaultSlotSetBid
2708 - outbidding
2709 - donationAddress
2710 - allocationRatio
2711 StateRollup:
2712 type: object
2713 description: Rollup parameters
2714 properties:
2715 ethereumBlockNum:
2716 $ref: '#/components/schemas/EthBlockNum'
2717 forgeL1L2BatchTimeout:
2718 type: integer
2719 description: Max Ethereum blocks after the last L1-L2-batch, when exceeds the timeout only L1-L2-batch are allowed.
2720 example: 5
2721 feeAddToken:
2722 type: integer
2723 description: Fee to pay when registering tokens into the network.
2724 example: 5698
2725 withdrawalDelay:
2726 type: integer
2727 description: Withdraw delay in seconds
2728 example: 432000
2729 buckets:
2730 type: array
2731 description: List of buckets state
2732 items:
2733 type: object
2734 properties:
2735 ceilUSD:
2736 type: integer
2737 description: Max USD value
2738 example: 1000
2739 withdrawals:
2740 type: integer
2741 description: Available withdrawals of the bucket
2742 example: 4
2743 blockWithdrawalRate:
2744 type: integer
2745 description: Every `blockWithdrawalRate` blocks add 1 withdrawal
2746 example: 8
2747 maxWithdrawals:
2748 type: integer
2749 description: Max withdrawals the bucket can hold
2750 example: 4
2751 additionalProperties: false
2752 required:
2753 - ceilUSD
2754 - withdrawals
2755 - blockWithdrawalRate
2756 - maxWithdrawals
2757 additionalProperties: false
2758 required:
2759 - ethereumBlockNum
2760 - forgeL1L2BatchTimeout
2761 - feeAddToken
2762 - withdrawalDelay
2763 - buckets
2764 StateWithdrawDelayer:
2765 type: object
2766 description: Withdrawal delayer parameters
2767 properties:
2768 ethereumBlockNum:
2769 $ref: '#/components/schemas/EthBlockNum'
2770 hermezGovernanceAddress:
2771 allOf:
2772 - $ref: '#/components/schemas/EthereumAddress'
2773 - description: Ethereum address of the governance.
2774 - example: "0x667dc4262BCDbf85190C01c996b4C06a461d2430"
2775 emergencyCouncilAddress:
2776 allOf:
2777 - $ref: '#/components/schemas/EthereumAddress'
2778 - description: Ethereum address that can claim the funds in an emergency when the maximum emergency mode time is exceeded.
2779 - example: "0x557dc4262BCDbf85190C01c996b4C06a461d2430"
2780 withdrawalDelay:
2781 allOf:
2782 - $ref: '#/components/schemas/EthBlockNum'
2783 - description: The time that everyone needs to wait until a withdrawal of the funds is allowed, in seconds.
2784 - example: 539573849
2785 emergencyModeStartingBlock:
2786 type: integer
2787 description: Block number in which the emergency mode has been activated.
2788 example: 10
2789 emergencyMode:
2790 type: boolean
2791 description: Indicates if emergency mode has been activated.
2792 example: false
2793 additionalProperties: false
2794 required:
2795 - ethereumBlockNum
2796 - hermezGovernanceAddress
2797 - emergencyCouncilAddress
2798 - withdrawalDelay
2799 - emergencyModeStartingBlock
2800 - emergencyMode
2801 StateMetrics:
2802 type: object
2803 description: Metrics of the network
2804 properties:
2805 transactionsPerBatch:
2806 type: number
2807 description: Average transactions per batch in the last 24 hours.
2808 example: 2002.7
2809 batchFrequency:
2810 type: number
2811 description: Average elapsed time between batches in the last 24 hours, in seconds.
2812 example: 8.9
2813 transactionsPerSecond:
2814 type: number
2815 description: Average transactions per second in the last 24 hours.
2816 example: 302.3
2817 totalAccounts:
2818 type: integer
2819 description: Number of created accounts.
2820 example: 90473
2821 totalBJJs:
2822 type: integer
2823 description: Number of different registered BJJs.
2824 example: 23067
2825 avgTransactionFee:
2826 type: number
2827 description: Average fee percentage paid for L2 transactions in the last 24 hours.
2828 example: 1.54
2829 additionalProperties: false
2830 required:
2831 - transactionsPerBatch
2832 - batchFrequency
2833 - transactionsPerSecond
2834 - totalAccounts
2835 - totalBJJs
2836 - avgTransactionFee
2837 PendingItems:
2838 type: integer
2839 description: Amount of items that will be returned in subsequent calls to the endpoint, as long as they are done with same filters. When the value is 0 it means that all items have been sent.
2840 example: 15
2841 Config:
2842 type: object
2843 description: Configuration parameters of the different smart contracts that power the Hermez Network.
2844 properties:
2845 hermez:
2846 type: object
2847 description: Constant configuration of the Hermez smart contract.
2848 properties:
2849 publicConstants:
2850 type: object
2851 description: Public Hermez smart contract constants
2852 properties:
2853 tokenHEZ:
2854 allOf:
2855 - $ref: '#/components/schemas/EthereumAddress'
2856 - description: Ethereum address of the HEZ token.
2857 - example: "0x444dc4262BCDbf85190C01c996b4C06a461d2430"
2858 absoluteMaxL1L2BatchTimeout:
2859 type: integer
2860 description: L1L2 Batch Timeout
2861 example: 240
2862 verifiers:
2863 type: array
2864 description: List of verifiers struct
2865 items:
2866 type: object
2867 properties:
2868 maxTx:
2869 type: integer
2870 description: Maximum rollup transactions in a batch
2871 example: 512
2872 nlevels:
2873 type: integer
2874 description: Number of levels of the circuit
2875 example: 32
2876 required:
2877 - maxTx
2878 - nlevels
2879 additionalProperties: false
2880 hermezAuctionContract:
2881 allOf:
2882 - $ref: '#/components/schemas/EthereumAddress'
2883 - description: Ethereum address of the auction smart contract.
2884 - example: "0x111dc4262BCDbf85190C01c996b4C06a461d2430"
2885 hermezGovernanceAddress:
2886 allOf:
2887 - $ref: '#/components/schemas/EthereumAddress'
2888 - description: Ethereum address of the governance.
2889 - example: "0x222dc4262BCDbf85190C01c996b4C06a461d2430"
2890 withdrawDelayerContract:
2891 allOf:
2892 - $ref: '#/components/schemas/EthereumAddress'
2893 - description: Ethereum address of the withdraw delayer contracts.
2894 - example: "0x444dc4262BCDbf85190C01c996b4C06a461d2430"
2895 required:
2896 - tokenHEZ
2897 - absoluteMaxL1L2BatchTimeout
2898 - verifiers
2899 - hermezAuctionContract
2900 - hermezGovernanceAddress
2901 - withdrawDelayerContract
2902 additionalProperties: false
2903 maxFeeIdxCoordinator:
2904 type: integer
2905 description: is the maximum number of tokens the coordinator can use to collect fees.
2906 example: 64
2907 reservedIdx:
2908 type: integer
2909 description: First 256 indexes reserved, first user index will be the 256.
2910 example: 255
2911 exitIdx:
2912 type: integer
2913 description: Account index used to indicate that a transaction is an `exit` or `force exit`.
2914 example: 1
2915 limitDepositAmount:
2916 type: integer
2917 description: Maximum deposit amount (L1 to L2) allowed.
2918 example: 321
2919 limitL2TransferAmount:
2920 type: integer
2921 description: Maximum amount (L2 to L2) allowed.
2922 example: 837
2923 limitTokens:
2924 type: integer
2925 description: Maximum number of different tokens that can be registered in the network.
2926 example: 4294967295
2927 l1CoordinatorTotalBytes:
2928 type: integer
2929 description: Number of bytes that a L1 coordinator transaction has ([4 bytes] token + [32 bytes] babyjub + [65 bytes] compressedSignature).
2930 example: 101
2931 l1UserTotalBytes:
2932 type: integer
2933 description: Number of bytes that a L1 user transaction has ([20 bytes] fromEthAddr + [32 bytes] fromBjj-compressed + [6 bytes] fromIdx + [2 bytes] depositAmountFloat16 + [2 bytes] amountFloat16 + [4 bytes] tokenId + [6 bytes] toIdx).
2934 example: 72
2935 maxL1UserTx:
2936 type: integer
2937 description: Maximum L1-user transactions allowed to be queued in a batch.
2938 example: 128
2939 maxL1Tx:
2940 type: integer
2941 description: Maximum L1 transactions allowed to be queued in a batch.
2942 example: 256
2943 inputSHAConstantBytes:
2944 type: integer
2945 description: Input SHA constant bytes
2946 example: 18542
2947 numBuckets:
2948 type: integer
2949 description: Number of buckets
2950 example: 5
2951 maxWithdrawalDelay:
2952 type: integer
2953 description: Maximum delay to withdraw tokens. Time is measured in seconds.
2954 example: 2 * 7 * 24 * 60 * 60
2955 exchangeMultiplier:
2956 type: integer
2957 description: exchange multiplier
2958 example: 1e14
2959 required:
2960 - publicConstants
2961 - reservedIdx
2962 - exitIdx
2963 - limitDepositAmount
2964 - limitL2TransferAmount
2965 - limitTokens
2966 - l1CoordinatorTotalBytes
2967 - l1UserTotalBytes
2968 - maxL1UserTx
2969 - maxL1Tx
2970 - inputSHAConstantBytes
2971 - numBuckets
2972 - maxWithdrawalDelay
2973 - exchangeMultiplier
2974 additionalProperties: false
2975 auction:
2976 type: object
2977 description: Constant configuration of the auction smart contract.
2978 properties:
2979 blocksPerSlot:
2980 type: integer
2981 description: Blocks per slot.
2982 initialMinimalBidding:
2983 type: integer
2984 description: Minimum bid when no one has bid yet.
2985 genesisBlockNum:
2986 allOf:
2987 - $ref: '#/components/schemas/EthBlockNum'
2988 - description: Ethereum block number in which the smart contract starts operating.
2989 tokenHEZ:
2990 allOf:
2991 - $ref: '#/components/schemas/EthereumAddress'
2992 - description: Ethereum address of the HEZ token.
2993 - example: "0x333dc4262BCDbf85190C01c996b4C06a461d2430"
2994 hermezRollup:
2995 allOf:
2996 - $ref: '#/components/schemas/EthereumAddress'
2997 - description: Ethereum address of the rollup smart contract.
2998 - example: "0x222dc4262BCDbf85190C01c996b4C06a461d2430"
2999 governanceAddress:
3000 allOf:
3001 - $ref: '#/components/schemas/EthereumAddress'
3002 - description: Ethereum address of the governance.
3003 - example: "0x444dc4262BCDbf85190C01c996b4C06a461d2430"
3004 required:
3005 - blocksPerSlot
3006 - initialMinimalBidding
3007 - genesisBlockNum
3008 - tokenHEZ
3009 - hermezRollup
3010 - governanceAddress
3011 additionalProperties: false
3012 withdrawalDelayer:
3013 type: object
3014 description: Constant configuration of the withdrawal delayer smart contract.
3015 properties:
3016 maxWithdrawalDelay:
3017 type: integer
3018 description: Maximum time delay in which the tokens can be locked in the contract. Time is measured in seconds.
3019 example: 200
3020 maxEmergencyModeTime:
3021 type: integer
3022 description: Maximum amount of time in which the contract can be in emergency mode. Time is measured in seconds.
3023 example: 2000
3024 hermezRollup:
3025 allOf:
3026 - $ref: '#/components/schemas/EthereumAddress'
3027 - description: Ethereum address of the rollup smart contract.
3028 - example: "0x222dc4262BCDbf85190C01c996b4C06a461d2430"
3029 required:
3030 - maxWithdrawalDelay
3031 - maxEmergencyModeTime
3032 - hermezRollup
3033 additionalProperties: false
3034 required:
3035 - hermez
3036 - auction
3037 - withdrawalDelayer
3038 additionalProperties: false
3039 Error:
3040 type: object
3041 description: Error response.
3042 properties:
3043 message:
3044 type: string
3045 Error400:
3046 allOf:
3047 - $ref: '#/components/schemas/Error'
3048 - example:
3049 message: Invalid signature.
3050 Error404:
3051 allOf:
3052 - $ref: '#/components/schemas/Error'
3053 - example:
3054 message: Item(s) not found.
3055 Error500:
3056 allOf:
3057 - $ref: '#/components/schemas/Error'
3058 - example:
3059 message: Database error.