arnaucube
arnaucube/hermez-nodePublic Self-hosted repository
hermez-node/api/swagger.yml
api/swagger.ymlRaw
   1openapi: 3.0.0
   2info:
   3  description: |
   4    This API server is the layer that allows 3rd party apps and services interfacing with the coordinator to explore, monitor and use 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    ### Pagination
  11    
  12    #### Usage
  13
  14    All the endpoints that return a list of undefined size use pagination. Unless the opposite is explicitly said.
  15    In order to use pagination, three query parameters are used:
  16    * `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).
  17    * `order`: all pginated items are ordered chronologicaly. 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. 
  18    * `limit`: maximum amount of items to include in each response. Default is 20, maximum 2049.
  19    
  20    Responses for those endpoint will always include a `pagination` object. This object includes the total amount of items that the endpoint will return at a given time with the given filters. Apart from that, it also includes the `itemId` of the last and first items that will be returned (not in a single response but within the total items). These two properties can be used to know when to stop querying. 
  21
  22    #### Reorgs and safetyness
  23
  24    Since all the items are ordered chronologicaly, there are no safety problems when fetching items in ascending order, except for reorgs (more on this later).
  25    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 queryng without the `fromItem` set to `pagination.lastItem`.
  26    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 the batch 424 get's reorged, it will be deleted, but eventualy, a new batch 424 will appear with potentialy different content.
  27
  28    ### Signatures
  29
  30    The POST endpoint require to be signed using BabyJubJub or Ethereum keys. TODO: add references to libraries / examples / ...    
  31
  32  version: "0.0.1"
  33  title: Hermez Network API
  34#  termsOfService: 'http://swagger.io/terms/'
  35#  contact:
  36#    email: apiteam@swagger.io
  37#  license:
  38#    name: Apache 2.0
  39#    url: 'http://www.apache.org/licenses/LICENSE-2.0.html'
  40externalDocs:
  41  description: Find out more about Hermez.
  42  url: 'https://hermez.io'
  43servers:
  44  - description: Hosted mock up
  45    url: http://167.71.59.190:4010
  46  - description: Localhost mock Up
  47    url: http://localhost:4010
  48tags:
  49  - name: Account
  50    description: Hermez account and the tokens it holds.
  51    externalDocs:
  52      description: Find out more.
  53      url: 'https://idocs.hermez.io/#/spec/zkrollup/README?id=account-types'
  54  - name: Transaction
  55    description: Send tokens off chain and track transactions.
  56    externalDocs:
  57      description: Find out more
  58      url: 'https://idocs.hermez.io/#/spec/zkrollup/README?id=transaction-types'
  59  - name: Hermez status
  60    description: Info about operators, tokens, auctions and more.
  61    externalDocs:
  62      description: Find out more.
  63      url: 'https://idocs.hermez.io/#/spec/zkrollup/README'
  64paths:
  65  '/account-creation-authorization':
  66    post:
  67      tags:
  68        - Account
  69      summary: Send an authorization that will allow the coordinator to register accounts associated to an Ethereum address on behalf of the user.
  70      description: >-
  71        Send an authorization to create rollup accounts associated to an Ethereum address. Each account creation (an account can only hold a specific token) is effective once the coordinator forges the corresponding L1CoordinatorTx (which are always of type *account creation*).        
  72      operationId: postRegister
  73      requestBody:
  74        description: Account creation authorization.
  75        required: true
  76        content:
  77          application/json:
  78            schema:
  79              $ref: '#/components/schemas/AccountCreationAuthorization'
  80      responses:
  81        '200':
  82          description: Successful operation.
  83        '400':
  84          description: Bad request.
  85          content:
  86            application/json:
  87              schema:
  88                $ref: '#/components/schemas/Error400'
  89        '500':
  90          description: Internal server error.
  91          content:
  92            application/json:
  93              schema:
  94                $ref: '#/components/schemas/Error500'
  95  '/account-creation-authorization/{hezEthereumAddress}':
  96    get:
  97      tags:
  98        - Account
  99      summary: Get to know if the coordinator has the ability to create accounts associated to an Ethereum address.
 100      description: >-
 101        True if the coordinator has the required authorization to perform an account creation with the given Ethereum address on behalf of the Ethereum address holder.        
 102      operationId: getAccountCreationAuthorization
 103      parameters:
 104        - name: hezEthereumAddress
 105          in: path
 106          description: Ethereum address.
 107          required: true
 108          schema:
 109            $ref: '#/components/schemas/HezEthereumAddress'
 110      responses:
 111        '200':
 112          description: Successful operation.
 113          content:
 114            application/json:
 115              schema:
 116                $ref: '#/components/schemas/AccountCreationAuthorization'
 117        '400':
 118          description: Bad request.
 119          content:
 120            application/json:
 121              schema:
 122                $ref: '#/components/schemas/Error400'
 123        '404':
 124          description: Not found.
 125          content:
 126            application/json:
 127              schema:
 128                $ref: '#/components/schemas/Error404'
 129        '500':
 130          description: Internal server error.
 131          content:
 132            application/json:
 133              schema:
 134                $ref: '#/components/schemas/Error500'
 135  '/accounts':
 136    get:
 137      tags:
 138        - Account
 139      summary: Get accounts balances and other associated information.
 140      description: Get accounts balances and other associated information.
 141      operationId: getAccounts
 142      parameters:
 143        - name: hezEthereumAddress
 144          in: query
 145          description: Only get accounts associated to an Ethereum address. Incompatible with the query `BJJ`.
 146          required: false
 147          schema:
 148            $ref: '#/components/schemas/HezEthereumAddress'
 149        - name: BJJ
 150          in: query
 151          description: Only get accounts associated to a BabyJubJub public key.  Incompatible with the query `hezEthereumAddress`.
 152          required: false
 153          schema:
 154            $ref: '#/components/schemas/BJJ'
 155        - name: tokenIds
 156          in: query
 157          required: false
 158          description: Only get accounts of specific tokens.
 159          schema:
 160            type: string
 161            description: Comma separated list of token identifiers.
 162            example: "3,87,91"
 163        - name: fromItem
 164          in: query
 165          required: false
 166          description: Indicates the desired first item (using the itemId property) to be included in the response.
 167          schema:
 168            type: number
 169        - name: order
 170          in: query
 171          required: false
 172          description: Order of the returned items. Accounts will be ordered by increasing account index.
 173          schema:
 174            type: string
 175            default: ASC
 176            enum:
 177                - ASC
 178                - DESC
 179        - name: limit
 180          in: query
 181          required: false
 182          description: Maximum number of items to be returned.
 183          schema:
 184            type: integer
 185            minimum: 1
 186            maximum: 2049
 187      responses:
 188        '200':
 189          description: Successful operation.
 190          content:
 191            application/json:
 192              schema:
 193                $ref: '#/components/schemas/Accounts'
 194        '400':
 195          description: Bad request.
 196          content:
 197            application/json:
 198              schema:
 199                $ref: '#/components/schemas/Error400'
 200        '404':
 201          description: Not found.
 202          content:
 203            application/json:
 204              schema:
 205                $ref: '#/components/schemas/Error404'
 206        '500':
 207          description: Internal server error.
 208          content:
 209            application/json:
 210              schema:
 211                $ref: '#/components/schemas/Error500'
 212  '/accounts/{accountIndex}':
 213    get:
 214      tags:
 215        - Account
 216      summary: Get an account by its index.
 217      description: Get an account by its index.
 218      operationId: getAccount
 219      parameters:
 220        - name: accountIndex
 221          in: path
 222          description: Identifier of an account.
 223          required: true
 224          schema:
 225            $ref: '#/components/schemas/AccountIndex'
 226      responses:
 227        '200':
 228          description: Successful operation.
 229          content:
 230            application/json:
 231              schema:
 232                $ref: '#/components/schemas/Account'
 233        '400':
 234          description: Bad request.
 235          content:
 236            application/json:
 237              schema:
 238                $ref: '#/components/schemas/Error400'
 239        '404':
 240          description: Not found.
 241          content:
 242            application/json:
 243              schema:
 244                $ref: '#/components/schemas/Error404'
 245        '500':
 246          description: Internal server error.
 247          content:
 248            application/json:
 249              schema:
 250                $ref: '#/components/schemas/Error500'
 251  '/exits':
 252    get:
 253      tags:
 254        - Account
 255      summary: Get exit information. This information is required to perform a withdraw.
 256      description: Get exit information. This information is required to perform a withdraw.
 257      operationId: getExits
 258      parameters:
 259        - name: tokenId
 260          in: query
 261          required: false
 262          description: Only get exits of specific token
 263          schema:
 264            $ref: '#/components/schemas/TokenId'
 265        - name: hezEthereumAddress
 266          in: query
 267          description: Get exits associated to a Ethereum address. Incompatible with query `BJJ` and `accountIndex`.
 268          required: false
 269          schema:
 270            $ref: '#/components/schemas/HezEthereumAddress'
 271        - name: BJJ
 272          in: query
 273          description: Get exits associated to a BabyJubJub public key. Incompatible with query `hezEthereumAddress` and `accountIndex`.
 274          required: false
 275          schema:
 276            $ref: '#/components/schemas/BJJ'
 277        - name: accountIndex
 278          in: query
 279          description: Get exits associated to a specific account. Incompatible with queries `tokenId`, `hezEthereumAddress` and `BJJ`.
 280          required: false
 281          schema:
 282            $ref: '#/components/schemas/AccountIndex'
 283        - name: batchNum
 284          in: query
 285          description: Get exits from the exit tree of a specific batch.
 286          required: false
 287          schema:
 288            $ref: '#/components/schemas/BatchNum'
 289        - name: fromItem
 290          in: query
 291          required: false
 292          description: Indicates the desired first item (using the itemId property) to be included in the response.
 293          schema:
 294            type: number
 295        - name: order
 296          in: query
 297          required: false
 298          description: Order of the returned items. Exits will be ordered by increasing (batchNum, accountIndex).
 299          schema:
 300            type: string
 301            default: ASC
 302            enum:
 303                - ASC
 304                - DESC
 305        - name: limit
 306          in: query
 307          required: false
 308          description: Maximum number of items to be returned.
 309          schema:
 310            type: integer
 311            minimum: 1
 312            maximum: 2049
 313      responses:
 314        '200':
 315          description: Successful operation.
 316          content:
 317            application/json:
 318              schema:
 319                $ref: '#/components/schemas/Exits'
 320        '400':
 321          description: Bad request.
 322          content:
 323            application/json:
 324              schema:
 325                $ref: '#/components/schemas/Error400'
 326        '404':
 327          description: Not found.
 328          content:
 329            application/json:
 330              schema:
 331                $ref: '#/components/schemas/Error404'
 332        '500':
 333          description: Internal server error.
 334          content:
 335            application/json:
 336              schema:
 337                $ref: '#/components/schemas/Error500'
 338  '/exits/{batchNum}/{accountIndex}':
 339    get:
 340      tags:
 341        - Account
 342      summary: Get specific exit information.
 343      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.
 344      operationId: getExit
 345      parameters:
 346        - name: batchNum
 347          in: path
 348          description: Batch of the exit tree.
 349          required: true
 350          schema:
 351            $ref: '#/components/schemas/BatchNum'
 352        - name: accountIndex
 353          in: path
 354          description: Account identifier.
 355          required: true
 356          schema:
 357            $ref: '#/components/schemas/AccountIndex'
 358      responses:
 359        '200':
 360          description: Successful operation.
 361          content:
 362            application/json:
 363              schema:
 364                $ref: '#/components/schemas/Exit'
 365        '400':
 366          description: Bad request.
 367          content:
 368            application/json:
 369              schema:
 370                $ref: '#/components/schemas/Error400'
 371        '404':
 372          description: Not found.
 373          content:
 374            application/json:
 375              schema:
 376                $ref: '#/components/schemas/Error404'
 377        '500':
 378          description: Internal server error.
 379          content:
 380            application/json:
 381              schema:
 382                $ref: '#/components/schemas/Error500'
 383  '/transactions-pool':
 384    post:
 385      tags:
 386        - Transaction
 387      summary: Add an L2 transaction to the coordinator's pool
 388      description: >-
 389        Send L2 transaction. The transaction will be stored in the transaction pool of the coordinator and eventually forged.        
 390      operationId: postTx
 391      requestBody:
 392        description: Signed transaction.
 393        required: true
 394        content:
 395          application/json:
 396            schema:
 397              $ref: '#/components/schemas/PostPoolL2Transaction'
 398      responses:
 399        '200':
 400          description: Successful operation.
 401          content:
 402            application/json:
 403              schema:
 404                $ref: '#/components/schemas/TransactionId'
 405        '400':
 406          description: Bad request.
 407          content:
 408            application/json:
 409              schema:
 410                $ref: '#/components/schemas/Error400'
 411        '500':
 412          description: Internal server error.
 413          content:
 414            application/json:
 415              schema:
 416                $ref: '#/components/schemas/Error500'
 417  '/transactions-pool/{id}':
 418    get:
 419      tags:
 420        - Transaction
 421      summary: Get details and status of a transaction that is in the pool.
 422      description: >-
 423        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.
 424        Only transactions from the pool will be returned.
 425        Note that the transaction pool is different for each coordinator and therefore only a coordinator that has received a specific transaction
 426        will be able to provide information about that transaction.        
 427      operationId: getPoolTx
 428      parameters:
 429        - name: id
 430          in: path
 431          description: Transaction identifier.
 432          required: true
 433          schema:
 434            $ref: '#/components/schemas/TransactionId'
 435      responses:
 436        '200':
 437          description: Successful operation.
 438          content:
 439            application/json:
 440              schema:
 441                $ref: '#/components/schemas/PoolL2Transaction'
 442        '400':
 443          description: Bad request.
 444          content:
 445            application/json:
 446              schema:
 447                $ref: '#/components/schemas/Error400'
 448        '404':
 449          description: Not found.
 450          content:
 451            application/json:
 452              schema:
 453                $ref: '#/components/schemas/Error404'
 454        '500':
 455          description: Internal server error.
 456          content:
 457            application/json:
 458              schema:
 459                $ref: '#/components/schemas/Error500'
 460  '/transactions-history':
 461    get:
 462      tags:
 463        - Transaction
 464      summary: Get details and status of transactions that have been forged.
 465      description: >-
 466        Get historical transactions. This endpoint will return all the different types of transactions except for:
 467          - Transactions that are still in the transaction pool of any coordinator. These transactions can be fetched using `GET /transactions-pool/{id}`.
 468          - L1 transactions sent by users that have not been forged yet. These transactions can be fetched using `GET /transactions-history/{id}`.        
 469      operationId: getHistoryTxs
 470      parameters:
 471        - name: tokenId
 472          in: query
 473          required: false
 474          description: Only get transactions of specific token
 475          schema:
 476            $ref: '#/components/schemas/TokenId'
 477        - name: hezEthereumAddress
 478          in: query
 479          required: false
 480          description: Only get transactions sent from or to an account associated to an Ethereum address Incompatible with the queries `BJJ` and `accountIndex`.
 481          schema:
 482            $ref: '#/components/schemas/HezEthereumAddress'
 483        - name: BJJ
 484          in: query
 485          description: Only get transactions associated to a BabyJubJub public key. Incompatible with the queries `hezEthereumAddress` and `accountIndex`.
 486          required: false
 487          schema:
 488            $ref: '#/components/schemas/BJJ'
 489        - name: accountIndex
 490          in: query
 491          required: false
 492          description: Only get transactions sent from or to a specific account. Incompatible with the queries `tokenId`, `hezEthereumAddress` and `BJJ`.
 493          schema:
 494            $ref: '#/components/schemas/AccountIndex'
 495        - name: batchNum
 496          in: query
 497          required: false
 498          description: Only get transactions forged in a specific batch.
 499          schema:
 500            $ref: '#/components/schemas/BatchNum'
 501        - name: type
 502          in: query
 503          required: false
 504          description: Only get transactions of a specific type.
 505          schema:
 506            $ref: '#/components/schemas/TransactionType'
 507        - name: fromItem
 508          in: query
 509          required: false
 510          description: Indicates the desired first item (using the itemId property) to be included in the response.
 511          schema:
 512            type: number
 513        - name: order
 514          in: query
 515          required: false
 516          description: Order of the returned items. History transactions will be ordered by (batchNum, position).
 517          schema:
 518            type: string
 519            default: ASC
 520            enum:
 521                - ASC
 522                - DESC
 523        - name: limit
 524          in: query
 525          required: false
 526          description: Maximum number of items to be returned.
 527          schema:
 528            type: integer
 529            minimum: 1
 530            maximum: 2049
 531      responses:
 532        '200':
 533          description: Successful operation.
 534          content:
 535            application/json:
 536              schema:
 537                $ref: '#/components/schemas/HistoryTransactions'
 538        '400':
 539          description: Bad request.
 540          content:
 541            application/json:
 542              schema:
 543                $ref: '#/components/schemas/Error400'
 544        '404':
 545          description: Not found.
 546          content:
 547            application/json:
 548              schema:
 549                $ref: '#/components/schemas/Error404'
 550        '500':
 551          description: Internal server error.
 552          content:
 553            application/json:
 554              schema:
 555                $ref: '#/components/schemas/Error500'
 556  '/transactions-history/{id}':
 557    get:
 558      tags:
 559        - Transaction
 560      summary: Get details and status of a historical transaction.
 561      description: >-
 562        Get transaction from the history by its id. This endpoint will return all the different types of transactions except those that are still in the pool of any coordinator.        
 563      operationId: getHistoryTx
 564      parameters:
 565        - name: id
 566          in: path
 567          description: Transaction identifier.
 568          required: true
 569          schema:
 570            $ref: '#/components/schemas/TransactionId'
 571      responses:
 572        '200':
 573          description: Successful operation.
 574          content:
 575            application/json:
 576              schema:
 577                $ref: '#/components/schemas/HistoryTransaction'
 578        '400':
 579          description: Bad request.
 580          content:
 581            application/json:
 582              schema:
 583                $ref: '#/components/schemas/Error400'
 584        '404':
 585          description: Not found.
 586          content:
 587            application/json:
 588              schema:
 589                $ref: '#/components/schemas/Error404'
 590        '500':
 591          description: Internal server error.
 592          content:
 593            application/json:
 594              schema:
 595                $ref: '#/components/schemas/Error500'
 596  '/batches':
 597    get:
 598      tags:
 599        - Hermez status
 600      summary: Get information about forged batches.
 601      description: >-
 602        Get information about forged batches.        
 603      operationId: getBatches
 604      parameters:
 605        - name: minBatchNum
 606          in: query
 607          required: false
 608          description: Include only `batchNum < minBatchNum` batches.
 609          schema:
 610            $ref: '#/components/schemas/BatchNum'
 611        - name: maxBatchNum
 612          in: query
 613          required: false
 614          description: Include only `batchNum > maxBatchNum` batches.
 615          schema:
 616            type: number
 617        - name: slotNum
 618          in: query
 619          required: false
 620          description: Include only batches that were forged within the specified slot.
 621          schema:
 622            $ref: '#/components/schemas/SlotNum'
 623        - name: forgerAddr
 624          in: query
 625          required: false
 626          description: Include only batches forged by `forgerAddr`
 627          schema:
 628            $ref: '#/components/schemas/EthereumAddress'
 629        - name: fromItem
 630          in: query
 631          required: false
 632          description: Indicates the desired first item (using the itemId property) to be included in the response.
 633          schema:
 634            type: number
 635        - name: order
 636          in: query
 637          required: false
 638          description: Order of the returned items. Batches will be ordered by increasing `batchNum`.
 639          schema:
 640            type: string
 641            default: ASC
 642            enum:
 643                - ASC
 644                - DESC
 645        - name: limit
 646          in: query
 647          required: false
 648          description: Maximum number of items to be returned.
 649          schema:
 650            type: integer
 651            minimum: 1
 652            maximum: 2049
 653      responses:
 654        '200':
 655          description: Successful operation.
 656          content:
 657            application/json:
 658              schema:
 659                $ref: '#/components/schemas/Batches'
 660        '400':
 661          description: Bad request.
 662          content:
 663            application/json:
 664              schema:
 665                $ref: '#/components/schemas/Error400'
 666        '404':
 667          description: Not found.
 668          content:
 669            application/json:
 670              schema:
 671                $ref: '#/components/schemas/Error404'
 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 batches with `slotNum < minSlotNum`.
 772          schema:
 773            $ref: '#/components/schemas/SlotNum'
 774        - name: maxSlothNum
 775          in: query
 776          required: false
 777          description: Only include batches 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 `forgerAddr == 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        '404':
 830          description: Not found.
 831          content:
 832            application/json:
 833              schema:
 834                $ref: '#/components/schemas/Error404'
 835        '500':
 836          description: Internal server error.
 837          content:
 838            application/json:
 839              schema:
 840                $ref: '#/components/schemas/Error500'
 841  '/slots/{slotNum}':
 842    get:
 843      tags:
 844        - Hermez status
 845      summary: Get information about a specific slot.
 846      description: >-
 847        Get information about a specific slot.        
 848      operationId: getSlot
 849      parameters:
 850        - name: slotNum
 851          in: path
 852          required: true
 853          description: Identifier of the slot.
 854          schema:
 855            $ref: '#/components/schemas/SlotNum'
 856      responses:
 857        '200':
 858          description: Successful operation.
 859          content:
 860            application/json:
 861              schema:
 862                $ref: '#/components/schemas/Slot'
 863        '400':
 864          description: Bad request.
 865          content:
 866            application/json:
 867              schema:
 868                $ref: '#/components/schemas/Error400'
 869        '404':
 870          description: Not found.
 871          content:
 872            application/json:
 873              schema:
 874                $ref: '#/components/schemas/Error404'
 875        '500':
 876          description: Internal server error.
 877          content:
 878            application/json:
 879              schema:
 880                $ref: '#/components/schemas/Error500'
 881  '/bids':
 882    get:
 883      tags:
 884        - Hermez status
 885      summary: Get a list of bids made for a specific slot auction.
 886      description: Get a list of bids made for a specific slot auction.
 887      operationId: getSlotBids
 888      parameters:
 889        - name: slotNum
 890          in: query
 891          description: Slot identifier. Specify the auction where the returned bids were made.
 892          required: false
 893          schema:
 894            $ref: '#/components/schemas/SlotNum'
 895        - name: forgerAddr
 896          in: query
 897          description: Get only bids made by a coordinator identified by its forger address.
 898          required: false
 899          schema:
 900            $ref: '#/components/schemas/EthereumAddress'
 901        - name: fromItem
 902          in: query
 903          required: false
 904          description: Indicates the desired first item (using the itemId property) to be included in the response.
 905          schema:
 906            type: number
 907        - name: order
 908          in: query
 909          required: false
 910          description: Order of the returned items. Bids will be ordered by increasing (slotNum, bidValue)`.
 911          schema:
 912            type: string
 913            default: ASC
 914            enum:
 915                - ASC
 916                - DESC
 917        - name: limit
 918          in: query
 919          required: false
 920          description: Maximum number of items to be returned.
 921          schema:
 922            type: integer
 923            minimum: 1
 924            maximum: 2049
 925      responses:
 926        '200':
 927          description: Successful operation
 928          content:
 929            application/json:
 930              schema:
 931                $ref: '#/components/schemas/Bids'
 932        '400':
 933          description: Bad request.
 934          content:
 935            application/json:
 936              schema:
 937                $ref: '#/components/schemas/Error400'
 938        '404':
 939          description: Not found.
 940          content:
 941            application/json:
 942              schema:
 943                $ref: '#/components/schemas/Error404'
 944        '500':
 945          description: Internal server error.
 946          content:
 947            application/json:
 948              schema:
 949                $ref: '#/components/schemas/Error500'
 950  '/state':
 951    get:
 952      tags:
 953        - Hermez status
 954      summary: Return information that represents the current state of the network.
 955      description: Return information that represents the current state of the network. It also includes metrics and statistics.
 956      operationId: getState
 957      responses:
 958        '200':
 959          description: Successful operation.
 960          content:
 961            application/json:
 962              schema:
 963                $ref: '#/components/schemas/State'
 964        '400':
 965          description: Bad request.
 966          content:
 967            application/json:
 968              schema:
 969                $ref: '#/components/schemas/Error400'
 970        '500':
 971          description: Internal server error.
 972          content:
 973            application/json:
 974              schema:
 975                $ref: '#/components/schemas/Error500'
 976  '/config':
 977    get:
 978      tags:
 979        - Hermez status
 980      summary: Return constant configuration of the network.
 981      description: Return constant configuration of the network.
 982      operationId: getConfig
 983      responses:
 984        '200':
 985          description: Successful operation.
 986          content:
 987            application/json:
 988              schema:
 989                $ref: '#/components/schemas/Config'
 990        '500':
 991          description: Internal server error.
 992          content:
 993            application/json:
 994              schema:
 995                $ref: '#/components/schemas/Error500'
 996  '/tokens':
 997    get:
 998      tags:
 999        - Hermez status
1000      summary: Get information of the supported tokens in the Hermez network.
1001      description: Get information of the supported tokens in the Hermez network.
1002      operationId: getTokens
1003      parameters:
1004        - name: ids
1005          in: query
1006          required: false
1007          description: Include only specific tokens by their Hermez identifiers.
1008          schema:
1009            type: string
1010            description: Comma separated list of token identifiers
1011            example: "2,44,689"
1012        - name: symbols
1013          in: query
1014          required: false
1015          description: Include only specific tokens by their symbols.
1016          schema:
1017            type: string
1018            description: Comma separated list of token symbols.
1019            example: "DAI,NEC,UMA"
1020        - name: name
1021          in: query
1022          required: false
1023          description: Include token(s) by their names (or a substring of the name).
1024          schema:
1025            type: string
1026        - name: fromItem
1027          in: query
1028          required: false
1029          description: Indicates the desired first item (using the itemId property) to be included in the response.
1030          schema:
1031            type: number
1032        - name: order
1033          in: query
1034          required: false
1035          description: Order of the returned items. Tokens will be ordered by increasing tokenID.
1036          schema:
1037            type: string
1038            default: ASC
1039            enum:
1040                - ASC
1041                - DESC
1042        - name: limit
1043          in: query
1044          required: false
1045          description: Maximum number of items to be returned.
1046          schema:
1047            type: integer
1048            minimum: 1
1049            maximum: 2049
1050      responses:
1051        '200':
1052          description: Successful operation.
1053          content:
1054            application/json:
1055              schema:
1056                $ref: '#/components/schemas/Tokens'
1057        '400':
1058          description: Bad request.
1059          content:
1060            application/json:
1061              schema:
1062                $ref: '#/components/schemas/Error400'
1063        '404':
1064          description: Not found.
1065          content:
1066            application/json:
1067              schema:
1068                $ref: '#/components/schemas/Error404'
1069        '500':
1070          description: Internal server error.
1071          content:
1072            application/json:
1073              schema:
1074                $ref: '#/components/schemas/Error500'
1075  '/tokens/{id}':
1076    get:
1077      tags:
1078        - Hermez status
1079      summary: Get information of a token supported by Hermez network.
1080      description: Get information of a token supported by Hermez network.
1081      operationId: getToken
1082      parameters:
1083        - name: id
1084          in: path
1085          description: Token identifier
1086          required: true
1087          schema:
1088            $ref: '#/components/schemas/TokenId'
1089      responses:
1090        '200':
1091          description: Successful operation.
1092          content:
1093            application/json:
1094              schema:
1095                $ref: '#/components/schemas/Token'
1096        '400':
1097          description: Bad request.
1098          content:
1099            application/json:
1100              schema:
1101                $ref: '#/components/schemas/Error400'
1102        '404':
1103          description: Not found.
1104          content:
1105            application/json:
1106              schema:
1107                $ref: '#/components/schemas/Error404'
1108        '500':
1109          description: Internal server error.
1110          content:
1111            application/json:
1112              schema:
1113                $ref: '#/components/schemas/Error500'
1114  '/coordinators':
1115    get:
1116      tags:
1117        - Hermez status
1118      summary: Get information about coordinators.
1119      description: Get information about coordinators.
1120      operationId: getCoordinators
1121      parameters:
1122        - name: fromItem
1123          in: query
1124          required: false
1125          description: Indicates the desired first item (using the itemId property) to be included in the response.
1126          schema:
1127            type: number
1128        - name: order
1129          in: query
1130          required: false
1131          description: Order of the returned items. Coordinators will be ordered by increasing (ethereumBlock, forgerAddr).
1132          schema:
1133            type: string
1134            default: ASC
1135            enum:
1136                - ASC
1137                - DESC
1138        - name: limit
1139          in: query
1140          required: false
1141          description: Maximum number of items to be returned.
1142          schema:
1143            type: integer
1144            minimum: 1
1145            maximum: 2049
1146      responses:
1147        '200':
1148          description: Successful operation.
1149          content:
1150            application/json:
1151              schema:
1152                $ref: '#/components/schemas/Coordinators'
1153        '400':
1154          description: Bad request.
1155          content:
1156            application/json:
1157              schema:
1158                $ref: '#/components/schemas/Error400'
1159        '500':
1160          description: Internal server error.
1161          content:
1162            application/json:
1163              schema:
1164                $ref: '#/components/schemas/Error500'
1165  '/coordinators/{bidderAddr}':
1166    get:
1167      tags:
1168        - Hermez status
1169      summary: Get the information of a coordinator.
1170      description: Get the information of a coordinator.
1171      operationId: getCoordinator
1172      parameters:
1173        - name: bidderAddr
1174          in: path
1175          description: Coordinator identifier
1176          required: true
1177          schema:
1178            $ref: '#/components/schemas/EthereumAddress'
1179      responses:
1180        '200':
1181          description: Successful operation.
1182          content:
1183            application/json:
1184              schema:
1185                $ref: '#/components/schemas/Coordinator'
1186        '400':
1187          description: Bad request.
1188          content:
1189            application/json:
1190              schema:
1191                $ref: '#/components/schemas/Error400'
1192        '404':
1193          description: Not found.
1194          content:
1195            application/json:
1196              schema:
1197                $ref: '#/components/schemas/Error404'
1198        '500':
1199          description: Internal server error.
1200          content:
1201            application/json:
1202              schema:
1203                $ref: '#/components/schemas/Error500'
1204components:
1205  schemas:
1206    ItemId:
1207      type: integer
1208      description: Position of the item in the DB. This is useful for pagination, but has  nothing to do with the protocol.
1209    PostPoolL2Transaction:
1210      type: object
1211      description: L2 transaction to be posted.
1212      properties:
1213        id:
1214          $ref: '#/components/schemas/TransactionId'
1215        type:
1216          $ref: '#/components/schemas/TransactionTypeL2'
1217        tokenId:
1218          $ref: '#/components/schemas/TokenId'
1219        fromAccountIndex:
1220          $ref: '#/components/schemas/AccountIndex'
1221        toAccountIndex:
1222          type: string
1223          description: >-
1224            Identifier of the destination account. It references the position where the account is inside the state Merkle tree.
1225            The identifier is built using: `hez:` + `token symbol:` + `index`. If this is provided, toHezEthereumAddress and toBjj
1226            must be null. To perform an exit the value hez:EXIT:1 must be used.            
1227          example: null
1228          nullable: true
1229        toHezEthereumAddress:
1230          type: string
1231          description: "Address of an Etherum account linked to the Hermez network. If this is provided, toAccountIndex and toBjj must be null."
1232          pattern: "^hez:0x[a-fA-F0-9]{40}$"
1233          example: "hez:0xaa942cfcd25ad4d90a62358b0dd84f33b398262a"
1234          nullable: true
1235        toBjj:
1236          type: string
1237          description: >-
1238            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.
1239            If this is prvided, toAccountIndex must be null and toHezEthereumAddress must be hez:0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF.            
1240          pattern: "^hez:[A-Za-z0-9_-]{44}$"
1241          example: null
1242          nullable: true
1243        amount:
1244          allOf:
1245            - $ref: '#/components/schemas/BigInt'
1246            - description: Amount of tokens to be sent.
1247              example: "6300000000000000000"
1248        fee:
1249          $ref: '#/components/schemas/FeeSelector'
1250        nonce:
1251          $ref: '#/components/schemas/Nonce'
1252        signature:
1253          allOf:
1254            - $ref: '#/components/schemas/Signature'
1255            - description: Signature of the transaction. More info [here](https://idocs.hermez.io/#/spec/zkrollup/README?id=l2a-idl2).
1256            - example: "72024a43f546b0e1d9d5d7c4c30c259102a9726363adcc4ec7b6aea686bcb5116f485c5542d27c4092ae0ceaf38e3bb44417639bd2070a58ba1aa1aab9d92c03"
1257        requestFromAccountIndex:
1258          type: string
1259          description: References the `fromAccountIndex` of the requested transaction.
1260          example: null
1261          nullable: true
1262        requestToAccountIndex:
1263          type: string
1264          description: References the `toAccountIndex` of the requested transaction.
1265          example: null
1266          nullable: true
1267        requestToHezEthereumAddress:
1268          type: string
1269          description: References the `toHezEthereumAddress` of the requested transaction.
1270          pattern: "^hez:0x[a-fA-F0-9]{40}$"
1271          example: null
1272          nullable: true
1273        requestToBjj:
1274          type: string
1275          description: References the `toBjj` of the requested transaction.
1276          pattern: "^hez:[A-Za-z0-9_-]{44}$"
1277          example: null
1278          nullable: true
1279        requestTokenId:
1280          type: integer
1281          description: References the `tokenId` of the requested transaction.
1282          example: null
1283          nullable: true
1284        requestAmount:
1285          type: string
1286          description: References the `amount` of the requested transaction.
1287          example: null
1288          nullable: true
1289        requestFee:
1290          type: integer
1291          description: References the `fee` of the requested transaction.
1292          example: null
1293          nullable: true
1294        requestNonce:
1295          type: integer
1296          description: References the `nonce` of the requested transaction.
1297          example: null
1298          nullable: true
1299      required:
1300      - id
1301      - type
1302      - tokenId
1303      - fromAccountIndex
1304      - amount
1305      - fee
1306      - nonce
1307      - signature
1308    PoolL2Transaction:
1309      type: object
1310      properties:
1311        id:
1312          $ref: '#/components/schemas/TransactionId'
1313        type:
1314          $ref: '#/components/schemas/TransactionTypeL2'
1315        fromAccountIndex:
1316          $ref: '#/components/schemas/AccountIndex'
1317        toAccountIndex:
1318          type: string
1319          description: >-
1320            Identifier of the destination account. It references the position where the account is inside the state Merkle tree.
1321            The identifier is built using: `hez:` + `token symbol:` + `index`            
1322          example: "hez:DAI:309"
1323          nullable: true
1324        toHezEthereumAddress:
1325          type: string
1326          description: "Address of an Etherum account linked to the Hermez network."
1327          pattern: "^hez:0x[a-fA-F0-9]{40}$"
1328          example: null
1329          nullable: true
1330        toBjj:
1331          type: string
1332          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."
1333          pattern: "^hez:[A-Za-z0-9_-]{44}$"
1334          example: null
1335          nullable: true
1336        amount:
1337          allOf:
1338            - $ref: '#/components/schemas/BigInt'
1339            - description: Amount of tokens to be sent.
1340              example: "6303020000000000000"
1341        fee:
1342          $ref: '#/components/schemas/FeeSelector'
1343        nonce:
1344          $ref: '#/components/schemas/Nonce'
1345        state:
1346          $ref: '#/components/schemas/PoolL2TransactionState'
1347        signature:
1348          allOf:
1349            - $ref: '#/components/schemas/Signature'
1350            - description: Signature of the transaction. More info [here](https://idocs.hermez.io/#/spec/zkrollup/README?id=l2a-idl2).
1351            - example: "72024a43f546b0e1d9d5d7c4c30c259102a9726363adcc4ec7b6aea686bcb5116f485c5542d27c4092ae0ceaf38e3bb44417639bd2070a58ba1aa1aab9d92c03"
1352        timestamp:
1353          type: string
1354          description: Moment in which the transaction was added to the pool.
1355          format: date-time
1356        batchNum:
1357          type: integer
1358          description: Identifier of a batch. Every new forged batch increments by one the batchNum, starting at 0.
1359          minimum: 0
1360          maximum: 4294967295
1361          nullable: true
1362          example: null
1363        requestFromAccountIndex:
1364          type: string
1365          description: >-
1366            Identifier of an account. It references the position where the account is inside the state Merkle tree.
1367            The identifier is built using: `hez:` + `token symbol:` + `index`            
1368          nullable: true
1369          example: null
1370        requestToAccountIndex:
1371          type: string
1372          description: >-
1373            Identifier of an account. It references the position where the account is inside the state Merkle tree.
1374            The identifier is built using: `hez:` + `token symbol:` + `index`            
1375          nullable: true
1376          example: null
1377        requestToHezEthereumAddress:
1378          type: string
1379          description: "Address of an Etherum account linked to the Hermez network."
1380          pattern: "^hez:0x[a-fA-F0-9]{40}$"
1381          nullable: true
1382          example: null
1383        requestToBJJ:
1384          type: string
1385          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."
1386          pattern: "^hez:[A-Za-z0-9_-]{44}$"
1387          nullable: true
1388          example: null
1389        requestTokenId:
1390          type: integer
1391          description: References the `tokenId` of the requested transaction.
1392          example: null
1393          nullable: true
1394        requestAmount:
1395          type: string
1396          description: BigInt is an integer encoded as a string for numbers that are very large.
1397          nullable: true
1398          example: null
1399        requestFee:
1400          type: integer
1401          description: Index of the fee type to select, more info [here](https://idocs.hermez.io/#/spec/zkrollup/fee-table?id=transaction-fee-table).
1402          minimum: 0
1403          maximum: 256
1404          nullable: true
1405          example: null
1406        requestNonce:
1407          type: integer
1408          description: Number that can only be used once per account. Increments by one with each transaction.
1409          minimum: 0
1410          maximum: 1.84467440737096e+19
1411          nullable: true
1412          example: null
1413        token:
1414          $ref: '#/components/schemas/Token'
1415      required:
1416        - id
1417        - type
1418        - fromAccountIndex
1419        - toAccountIndex
1420        - toHezEthereumAddress
1421        - toBjj
1422        - amount
1423        - fee
1424        - nonce
1425        - state
1426        - signature
1427        - timestamp
1428        - batchNum
1429        - requestFromAccountIndex
1430        - requestToAccountIndex
1431        - requestToHezEthereumAddress
1432        - requestToBJJ
1433        - requestTokenId
1434        - requestAmount
1435        - requestFee
1436        - requestNonce
1437        - token
1438    TransactionId:
1439      type: string
1440      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)
1441      example: "0x00000000000001e240004700" 
1442    EthereumAddress:
1443      type: string
1444      description: "Address of an Etherum account."
1445      pattern: "^0x[a-fA-F0-9]{40}$"
1446      example: "0xaa942cfcd25ad4d90a62358b0dd84f33b398262a" 
1447    HezEthereumAddress:
1448      type: string
1449      description: "Address of an Etherum account linked to the Hermez network."
1450      pattern: "^hez:0x[a-fA-F0-9]{40}$"
1451      example: "hez:0xaa942cfcd25ad4d90a62358b0dd84f33b398262a" 
1452    BJJ:
1453      type: string
1454      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."
1455      pattern: "^hez:[A-Za-z0-9_-]{44}$"
1456      example: "hez:rR7LXKal-av7I56Y0dEBCVmwc9zpoLY5ERhy5w7G-xwe"
1457    AccountIndex:
1458      type: string
1459      description: >-
1460        Identifier of an account. It references the position where the account is inside the state Merkle tree.
1461        The identifier is built using: `hez:` + `token symbol:` + `index`        
1462      example: "hez:DAI:4444"
1463    TransactionType:
1464      type: string
1465      description: Type of transaction.
1466      enum:
1467      - Exit
1468      - Transfer
1469      - Deposit
1470      - CreateAccountDeposit
1471      - CreateAccountDepositTransfer
1472      - DepositTransfer
1473      - ForceTransfer
1474      - ForceExit
1475      - TransferToEthAddr
1476      - TransferToBJJ
1477    TransactionTypeL2:
1478      type: string
1479      description: Type of transaction.
1480      enum:
1481      - Exit
1482      - Transfer
1483      - TransferToEthAddr
1484      - TransferToBJJ
1485    TokenId:
1486      type: integer
1487      description: Identifier of a token registered in the network.
1488      minimum: 0
1489      maximum: 4294967295
1490      example: 98765
1491    BigInt:
1492      type: string
1493      description: BigInt is an integer encoded as a string for numbers that are very large.
1494      example: "8708856933496328593"
1495    FeeSelector:
1496      type: integer
1497      description: Index of the fee type to select, more info [here](https://idocs.hermez.io/#/spec/zkrollup/fee-table?id=transaction-fee-table).
1498      minimum: 0
1499      maximum: 256
1500      example: 36
1501    Nonce:
1502      type: integer
1503      description: Number that can only be used once per account, increments by one at each transaction.
1504      minimum: 0
1505      maximum: 1.84467440737096e+19
1506      example: 121
1507    PoolL2TransactionState:
1508      type: string
1509      description: > 
1510        State of a L2 transaction from the coordinator pool.
1511          * pend: Pending
1512          * fing: Forging
1513          * fged: Forged
1514          * invl: Invalid  
1515      enum:
1516      - pend
1517      - fing
1518      - fged
1519      - invl    
1520    Signature:
1521      type: string
1522      description: BabyJubJub compressed signature.
1523      pattern: "^[a-fA-F0-9]{128}$"
1524      example: "72024a43f546b0e1d9d5d7c4c30c259102a9726363adcc4ec7b6aea686bcb5116f485c5542d27c4092ae0ceaf38e3bb44417639bd2070a58ba1aa1aab9d92c03"
1525    BatchNum:
1526      type: integer
1527      description: Identifier of a batch. Every new forged batch increments by one the batchNum, starting at 0.
1528      minimum: 0
1529      maximum: 4294967295
1530      example: 5432
1531    AccountCreationAuthorization:
1532      type: object
1533      properties:
1534        timestamp:
1535          type: string
1536          format: date-time
1537        hezEthereumAddress:
1538          $ref: '#/components/schemas/HezEthereumAddress'
1539        bjj:
1540          $ref: '#/components/schemas/BJJ'
1541        signature:
1542          allOf:
1543            - $ref: '#/components/schemas/Signature'
1544            - description: Signature of the auth message. More info [here](https://idocs.hermez.io/#/spec/zkrollup/README?id=regular-rollup-account).
1545            - example: "72024a43f546b0e1d9d5d7c4c30c259102a9726363adcc4ec7b6aea686bcb5116f485c5542d27c4092ae0ceaf38e3bb44417639bd2070a58ba1aa1aab9d92c03"
1546      required:
1547      - ethereumAddress
1548      - bjj
1549      - signature
1550    HistoryTransaction:
1551      type: object
1552      description: Transaction of the Hermez network
1553      properties:
1554        L1orL2:
1555          type: string
1556          enum:
1557            - L1
1558            - L2
1559        id:
1560          $ref: '#/components/schemas/TransactionId'
1561        itemId:
1562          $ref: '#/components/schemas/ItemId'
1563        type:
1564          $ref: '#/components/schemas/TransactionType'
1565        position:
1566          $ref: '#/components/schemas/TransactionPosition'
1567        fromAccountIndex:
1568          type: string
1569          description: >-
1570            Identifier of an account. It references the position where the account is inside the state Merkle tree.
1571            The identifier is built using: `hez:` + `token symbol:` + `index`            
1572          example: "hez:DAI:4444"
1573          nullable: true
1574        toAccountIndex:
1575          allOf:
1576            - $ref: '#/components/schemas/AccountIndex'
1577            - example: "hez:DAI:672"
1578        amount:
1579          allOf:
1580            - $ref: '#/components/schemas/BigInt'
1581            - description: Amount of tokens to be sent.
1582            -  example: "4903020000000000000"
1583        batchNum:
1584          type: integer
1585          description: Batch in which the transaction was forged. Null indicates not forged yet.
1586          minimum: 0
1587          maximum: 4294967295
1588          example: 5432
1589          nullable: true
1590        historicUSD:
1591          type: number
1592          description: Value in USD at the moment the transaction was forged.
1593          example: 49.7
1594          nullable: true
1595        timestamp:
1596          type: string
1597          format: date-time
1598          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.
1599        token:
1600          $ref: '#/components/schemas/Token'
1601        L1Info:
1602          type: object
1603          description: Additional information that only applies to L1 transactions.
1604          nullable: true
1605          properties:
1606            toForgeL1TransactionsNum:
1607              $ref: '#/components/schemas/ToForgeL1TransactionsNum'
1608            userOrigin:
1609              type: boolean
1610              description: True if the transaction was sent by a user. False if it was sent by a coordinator.
1611            fromHezEthereumAddress:
1612              $ref: '#/components/schemas/HezEthereumAddress'
1613            fromBJJ:
1614              $ref: '#/components/schemas/BJJ'
1615            loadAmount:
1616              allOf:
1617                - $ref: '#/components/schemas/BigInt'
1618                - description: Tokens transfered from L1 to L2.
1619                - example: "4900000000000000000"
1620            historicLoadAmountUSD:
1621              type: number
1622              description: Load amount in USD, at the moment the transaction was made.
1623              example: 3.897
1624              nullable: true
1625            ethereumBlockNum:
1626              allOf:
1627                - $ref: '#/components/schemas/EthBlockNum'
1628                - description: Ethereum block in which the transaction was added to the smart contract forge queue.
1629                - example: 258723049
1630          required:
1631            - toForgeL1TransactionsNum
1632            - userOrigin
1633            - fromHezEthereumAddress
1634            - fromBJJ
1635            - loadAmount
1636            - historicLoadAmountUSD
1637            - ethereumBlockNum
1638          additionalProperties: false
1639        L2Info:
1640          type: object
1641          description: Additional information that only applies to L2 transactions.
1642          nullable: true
1643          properties:
1644            fee:
1645              $ref: '#/components/schemas/FeeSelector'
1646            historicFeeUSD:
1647              type: number
1648              description: Fee in USD, at the moment the transaction was forged.
1649              example: 263.89
1650              nullable: true
1651            nonce:
1652              $ref: '#/components/schemas/Nonce'
1653          example: null
1654          required:
1655            - fee
1656            - historicFeeUSD
1657            - nonce
1658          additionalProperties: false
1659      required:
1660        - L1orL2
1661        - id
1662        - itemId
1663        - type
1664        - position
1665        - fromAccountIndex
1666        - toAccountIndex
1667        - amount
1668        - batchNum
1669        - historicUSD
1670        - timestamp
1671        - token
1672        - L1Info
1673        - L2Info
1674      additionalProperties: false
1675    HistoryTransactions:
1676      type: object
1677      properties:
1678        transactions:
1679          type: array
1680          description: List of history transactions.
1681          items: 
1682            $ref: '#/components/schemas/HistoryTransaction'
1683        pagination:
1684          $ref: '#/components/schemas/PaginationInfo'
1685      required:
1686        - transactions
1687        - pagination
1688      additionalProperties: false
1689    EthBlockNum:
1690      type: integer
1691      description: Ethereum block number
1692      minimum: 0
1693      maximum: 1.84467440737096e+19
1694      example: 762375478
1695    ToForgeL1TransactionsNum:
1696      type: integer
1697      description: Reference to know in which batch a L1 transaction was forged / will be forged.
1698      minimum: 0
1699      maximum: 4294967295
1700      example: 784
1701      nullable: true
1702    TransactionPosition:
1703      type: integer
1704      description: Position that a transaction occupies in a batch.
1705      minimum: 0
1706      example: 5
1707    URL:
1708      type: string
1709      description: HTTP URL
1710      example: "https://hermez.io"
1711    TokenSymbol:
1712      type: string
1713      description: Abreviation of the token name.
1714      example: "DAI"
1715    TokenName:
1716      type: string
1717      description: Token name.
1718      example: "Dai"
1719    CollectedFees:
1720      type: array
1721      description: Collected fees by the forger of the batch. A maximum of 64 different tokens can be used.
1722      items:
1723        type: object 
1724        properties:
1725          tokenId:
1726            $ref: '#/components/schemas/TokenId'
1727          amount:
1728            allOf:
1729              - $ref: '#/components/schemas/BigInt'
1730              - description: Ammount of collected tokens
1731              - example: "53"
1732    Batch:
1733      type: object
1734      description: Group of transactions forged in a coordinator and sent and validated in Ethereum.
1735      properties:
1736        batchNum:
1737          $ref: '#/components/schemas/BatchNum'
1738        ethereumBlockNum:
1739          $ref: '#/components/schemas/EthBlockNum'
1740        ethereumBlockHash:
1741          type: string
1742          description: hash of the Ethereum block in which the batch was forged
1743          example: "0xfe88c94d860f01a17f961bf4bdfb6e0c6cd10d3fda5cc861e805ca1240c58553"
1744        timestamp:
1745          type: string
1746          format: date-time
1747          description: Time in which the batch was forged.
1748        forgerAddr:
1749          $ref: '#/components/schemas/EthereumAddress'
1750        collectedFees:
1751          $ref: '#/components/schemas/CollectedFees'
1752        historicTotalCollectedFeesUSD:
1753          type: number
1754          description: Sum of the all the fees collected, in USD, at the moment the batch was forged.
1755          example: 23.3
1756        stateRoot:
1757          allOf:
1758            - $ref: '#/components/schemas/Hash'
1759            - description: Root of the accounts Merkle Tree.
1760            - example: "2734657026572a8708d883"
1761        numAccounts:
1762          type: integer
1763          description: Number of registered accounts in this batch.
1764        exitRoot:
1765          allOf:
1766            - $ref: '#/components/schemas/Hash'
1767            - description: Root of the exit Merkle Tree associated to this batch.
1768            - example: "2734657026572a8708d883"
1769        forgeL1TransactionsNum:
1770          allOf:
1771            - $ref: '#/components/schemas/ToForgeL1TransactionsNum'
1772            - description: Identifier that corresponds to the group of L1 transactions forged in the current batch.
1773            - example: 5
1774        slotNum:
1775          $ref: '#/components/schemas/SlotNum'
1776    FullBatch:
1777      type: object
1778      description: Group of transactions forged in a coordinator and sent and validated in Ethereum.
1779      properties:
1780        batch:
1781          $ref: '#/components/schemas/Batch'
1782        transactions:
1783          type: array
1784          description: List of forged transactions in the batch
1785          items:
1786            $ref: '#/components/schemas/HistoryTransaction'
1787    Hash:
1788      type: string
1789      description: hashed data
1790      example: "2734657026572a8708d883"
1791    SlotNum:
1792      type: integer
1793      description: Identifier of a slot.
1794      minimum: 0
1795      maximum: 4294967295
1796      example: 784        
1797    Batches:
1798      type: object
1799      properties:
1800        batches:
1801          type: array
1802          description: List of batches.
1803          items:
1804            $ref: '#/components/schemas/Batch'
1805        pagination:
1806          $ref: '#/components/schemas/PaginationInfo'
1807    Coordinator:
1808      type: object
1809      properties:
1810        itemId:
1811          $ref: '#/components/schemas/ItemId'
1812        forgerAddr:
1813          $ref: '#/components/schemas/EthereumAddress'
1814        bidderAddr:
1815          $ref: '#/components/schemas/EthereumAddress'
1816        URL:
1817          $ref: '#/components/schemas/URL'
1818        ethereumBlock:
1819          allOf:
1820            - $ref: '#/components/schemas/EthBlockNum'
1821            - description: Ethereum block in which the coordinator registered into the network.
1822            - example: 5735943738
1823      additionalProperties: false
1824      required:
1825        - itemId
1826        - forgerAddr
1827        - bidderAddr
1828        - URL
1829        - ethereumBlock
1830    Coordinators:
1831      type: object
1832      properties:
1833        coordinators:
1834          type: array
1835          description: List of coordinators.
1836          items: 
1837            $ref: '#/components/schemas/Coordinator'
1838        pagination:
1839          $ref: '#/components/schemas/PaginationInfo'
1840      additionalProperties: false
1841      required:
1842        - coordinators
1843        - pagination
1844    Bid:
1845      type: object
1846      description: Tokens placed in an auction by a coordinator to gain the right to forge batches during a specific slot.
1847      properties:
1848        forgerAddr:
1849          $ref: '#/components/schemas/EthereumAddress'
1850        slotNum:
1851          $ref: '#/components/schemas/SlotNum'
1852        withdrawAddr:
1853          $ref: '#/components/schemas/EthereumAddress'
1854        URL:
1855          $ref: '#/components/schemas/URL'
1856        bidValue:
1857          $ref: '#/components/schemas/BigInt'
1858        ethereumBlockNum:
1859          $ref: '#/components/schemas/EthBlockNum'
1860        timestamp:
1861          type: string
1862          format: date-time
1863    Bids:
1864      type: object
1865      properties:
1866        bids:
1867          type: array
1868          description: List of bids.
1869          items: 
1870            $ref: '#/components/schemas/Bid'
1871        pagination:
1872          $ref: '#/components/schemas/PaginationInfo'
1873    RecommendedFee:  
1874      type: object
1875      description: Fee that the coordinator recommends per transaction in USD.
1876      properties:
1877        existingAccount:
1878          type: number
1879          description: Recommended fee if the destination account of the transaction already exists.
1880          minimum: 0
1881          example: 0.1
1882        createAccount:
1883          type: number
1884          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.
1885          minimum: 0
1886          example: 1.3
1887        createAccountInternal:
1888          type: number
1889          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 to an Ethereum address and therefore can only operate in L2. 
1890          minimum: 0
1891          example: 0.5
1892    Token:
1893      type: object
1894      description: Hermez network compatible and registered token.
1895      properties:
1896        id:
1897          $ref: '#/components/schemas/TokenId'
1898        ethereumAddress:
1899          allOf:
1900            - $ref: '#/components/schemas/EthereumAddress'
1901            - description: Ethereum address in which the token is deployed.
1902            - example: "0xaa942cfcd25ad4d90a62358b0dd84f33b398262a"
1903        itemId:
1904          $ref: '#/components/schemas/ItemId'
1905        name:
1906          type: string
1907          description: full name of the token
1908          example: Maker Dai
1909        symbol:
1910          allOf:
1911            - $ref: '#/components/schemas/TokenSymbol'
1912            - example: DAI
1913        decimals:
1914          type: integer
1915          description: Number of decimals of the token.
1916          example: 18
1917        ethereumBlockNum:
1918          allOf:
1919            - $ref: '#/components/schemas/EthBlockNum'
1920            - description: Ethereum block number in which the token was added to the Hermez network.
1921            - example: 539847538
1922        USD:
1923          type: number
1924          description: Value of the token in USD.
1925          example: 1.01
1926          nullable: true
1927        fiatUpdate:
1928          type: string
1929          format: date-time
1930          description: Timestamp of the moment the `USD` value was updated.
1931          nullable: true
1932      required:
1933        - id
1934        - ethereumAddress
1935        - itemId
1936        - name
1937        - symbol
1938        - decimals
1939        - ethereumBlockNum
1940        - USD
1941        - fiatUpdate
1942      additionalProperties: false
1943    Tokens:
1944      type: object
1945      properties:
1946        tokens:
1947          type: array
1948          description: List of tokens.
1949          items: 
1950            $ref: '#/components/schemas/Token'
1951        pagination:
1952          $ref: '#/components/schemas/PaginationInfo'
1953    Exit:
1954      type: object
1955      description: Exit tree leaf. It Contains the necessary information to perform a withdrawal.
1956      properties:
1957        batchNum:
1958          allOf:
1959            - $ref: '#/components/schemas/BatchNum'
1960            - description: Batch in which the exit was forged.
1961            - example: 7394
1962        accountIndex:
1963          $ref: '#/components/schemas/AccountIndex'
1964        itemId:
1965          $ref: '#/components/schemas/ItemId'
1966        merkleProof:
1967          type: object
1968          description: Existence proof of a leaf in a given Merkle Root. Encoded as hexadecimal string.
1969          properties:
1970              Root:
1971                $ref: '#/components/schemas/BigInt'
1972              Siblings:
1973                type: array
1974                items:
1975                  $ref: '#/components/schemas/BigInt'
1976              OldKey:
1977                $ref: '#/components/schemas/BigInt'
1978              OldValue:
1979                $ref: '#/components/schemas/BigInt'
1980              IsOld0:
1981                type: boolean
1982              Key:
1983                $ref: '#/components/schemas/BigInt'
1984              Value:
1985                $ref: '#/components/schemas/BigInt'
1986              Fnc:
1987                type: integer
1988                maximum: 3
1989                minimum: 0
1990          required:
1991            - Root
1992            - Siblings
1993            - OldKey
1994            - OldValue
1995            - IsOld0
1996            - Key
1997            - Value
1998            - Fnc
1999          additionalProperties: false
2000          example: {"Root":[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"Siblings":[0,1,2],"OldKey":[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"OldValue":[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"IsOld0":true,"Key":[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"Value":[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"Fnc":0}
2001        balance:
2002          $ref: '#/components/schemas/BigInt'
2003        instantWithdrawn:
2004          type: integer
2005          description: Block in which the exit balance was instantly withdrawn. Null indicates that an instant withdrawn hasn't been performed.
2006          minimum: 0
2007          maximum: 1.84467440737096e+19
2008          example: 74747363
2009          nullable: true
2010        delayedWithdrawRequest:
2011          type: integer
2012          description: Block in which the exit balance was requested to delay withdraw. Null indicates that a delay withdraw hasn't been performed.
2013          minimum: 0
2014          maximum: 1.84467440737096e+19
2015          example: null
2016          nullable: true
2017        delayedWithdrawn:
2018          type: integer
2019          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.
2020          minimum: 0
2021          maximum: 1.84467440737096e+19
2022          example: null
2023          nullable: true
2024        token:
2025          $ref: '#/components/schemas/Token'
2026      required:
2027          - batchNum
2028          - accountIndex
2029          - itemId
2030          - merkleProof
2031          - balance
2032          - instantWithdrawn
2033          - delayedWithdrawRequest
2034          - delayedWithdrawn
2035          - token
2036      additionalProperties: false
2037    Exits:
2038      type: object
2039      properties:
2040        exits:
2041          type: array
2042          description: List of exits.
2043          items: 
2044            $ref: '#/components/schemas/Exit'
2045        pagination:
2046          $ref: '#/components/schemas/PaginationInfo'   
2047      required:
2048          - exits
2049          - pagination
2050      additionalProperties: false 
2051    Account:
2052      type: object
2053      description: State tree leaf. It contains balance and nonce of an account.
2054      properties:
2055        accountIndex:
2056          $ref: '#/components/schemas/AccountIndex'
2057        nonce:
2058          $ref: '#/components/schemas/Nonce'      
2059        balance:
2060          $ref: '#/components/schemas/BigInt'
2061        bjj:
2062          $ref: '#/components/schemas/BJJ'      
2063        hezEthereumAddress:
2064          $ref: '#/components/schemas/HezEthereumAddress'
2065        token:
2066          $ref: '#/components/schemas/Token'
2067    Accounts:
2068      type: object
2069      properties:
2070        accounts:
2071          type: array
2072          description: List of accounts.
2073          items: 
2074            $ref: '#/components/schemas/Account'
2075        pagination:
2076          $ref: '#/components/schemas/PaginationInfo'
2077    Slot:
2078      type: object
2079      description: Slot information.
2080      properties:
2081        slotNum:
2082          $ref: '#/components/schemas/SlotNum'
2083        firstBlock:
2084          allOf:
2085            - $ref: '#/components/schemas/EthBlockNum'
2086            - description: Block in which the slot began or will begin
2087            - example: 76238647846
2088        lastBlock:
2089          allOf:
2090            - $ref: '#/components/schemas/EthBlockNum'
2091            - description: Block in which the slot ended or will end
2092            - example: 4475934
2093        closedAuction:
2094          type: boolean
2095          description: Whether the auction of the slot has finished or not.
2096        winner:
2097          allOf:
2098            - $ref: '#/components/schemas/Coordinator'
2099            - description: Coordinator who won the auction. Only applicable if the auction is closed.
2100            - nullable: true
2101            - example: null
2102    Slots:
2103      type: object
2104      properties:
2105        nextForgers:
2106          type: array
2107          description: List of slots.
2108          items: 
2109            $ref: '#/components/schemas/Slot'
2110        pagination:
2111          $ref: '#/components/schemas/PaginationInfo'
2112    NextForger:
2113      type: object
2114      description: Coordinator information along with the scheduled forging period
2115      properties:
2116        coordinator:
2117          $ref: '#/components/schemas/Coordinator'
2118        period:
2119          type: object
2120          description: Time period in which the coordinator will have the ability to forge. Specified both in Ethereum blocks and timestamp
2121          properties:
2122            fromBlock:
2123              $ref: '#/components/schemas/EthBlockNum'
2124            toBlock:
2125              $ref: '#/components/schemas/EthBlockNum'
2126            fromTimestamp:
2127              type: string
2128              format: date-time
2129            toTimestamp:
2130              type: string
2131              format: date-time
2132    NextForgers:
2133      type: object
2134      properties:
2135        nextForgers:
2136          type: array
2137          description: List of next coordinators to forge.
2138          items: 
2139            $ref: '#/components/schemas/NextForger'
2140        pagination:
2141          $ref: '#/components/schemas/PaginationInfo'
2142    State:
2143      type: object
2144      description: Gobal statistics of the network.
2145      properties:
2146        lastBlock:
2147          allOf:
2148            - $ref: '#/components/schemas/EthBlockNum'
2149            - description: Last synchronized Etherum block.
2150            - example: 3457437
2151        lastBatch:
2152          allOf:
2153            - $ref: '#/components/schemas/BatchNum'
2154            - description: Last batch that has been forged.
2155            - example: 76523
2156        currentSlot:
2157          allOf:
2158            - $ref: '#/components/schemas/SlotNum'
2159            - description: Slot where batches are currently being forged.
2160            - example: 2334
2161        transactionsPerBatch:
2162          type: number
2163          description: Average transactions per batch in the last 24 hours.
2164          example: 2002.7
2165        batchFrequency:
2166          type: number
2167          description: Average elapsed time between batches in the last 24 hours, in seconds.
2168          example: 8.9
2169        transactionsPerSecond:
2170          type: number
2171          description: Average transactions per second in the last 24 hours.
2172          example: 302.3
2173        totalAccounts:
2174          type: integer
2175          description: Number of created accounts.
2176          example: 90473
2177        totalBJJs:
2178          type: integer
2179          description: Number of different registered BJJs.
2180          example: 23067
2181        avgTransactionFee:
2182          type: number
2183          description: Average fee percentage paid for L2 transactions in the last 24 hours.
2184          example: 1.54
2185        nextForgers:
2186          $ref: '#/components/schemas/NextForgers'
2187        recommendedFee:
2188          $ref: '#/components/schemas/RecommendedFee'
2189        governance:
2190          type: object
2191          description: Network setings that are updatable by the governance.
2192          properties:
2193            rollup:
2194              type: object
2195              description: Rollup parameters.
2196              properties:
2197                forgeTimeout:
2198                  type: integer
2199                  description: Time delay between the beggining of a slot and the beggining of the period in which anyone can forge if the auction winner of the slot hasn't forged any batch yet. Time is measured in Ethereum blocks.
2200                  example: 5
2201                feeAddToken:
2202                  type: integer
2203                  description: fee to pay when registering tokens into the network.
2204                  example: 5698
2205            auction:
2206              type: object
2207              description: Auction parameters.
2208              properties:
2209                bootCoordinator:
2210                  allOf:
2211                    - $ref: '#/components/schemas/EthereumAddress'
2212                    - description: Ethereum address of the boot coordinator.
2213                    - example: "0x997dc4262BCDbf85190C01c996b4C06a461d2430"
2214                slotDeadline:
2215                  type: integer
2216                  description: Number of blocks at the end of a slot in which any coordinator can forge if the winner has not forged one before.
2217                  example: 3
2218                closedAuctionSlots:
2219                  type: integer
2220                  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.
2221                  example: 2
2222                openAuctionSlots:
2223                  type: integer
2224                  description: How many days in advance are auctions opened.
2225                defaultSlotSetBid:
2226                  type: array
2227                  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]`."
2228                  items:
2229                    type: integer
2230                  example: [32,0,68,21,55,99]
2231                outbidding:
2232                  type: number
2233                  description: Minimum outbid over the previous one to consider it valid.
2234                  example: 3.64
2235                donationAddress:
2236                  allOf:
2237                    - $ref: '#/components/schemas/EthereumAddress'
2238                    - description: Ethereum address where the donations will go to.
2239                    - example: "0x887dc4262BCDbf85190C01c996b4C06a461d2430"
2240                allocationRatio:
2241                  type: array
2242                  description: Percentage in which fees will be splitted between donations, governance and burning. The sum of the tree values should be 100.
2243                  items:
2244                    type: integer
2245                  example: [80,10,10]
2246            withdrawalDelayer:
2247              type: object
2248              description: Withdrawal delayer parameters.
2249              properties:
2250                rollupAddress:
2251                  allOf:
2252                    - $ref: '#/components/schemas/EthereumAddress'
2253                    - description: Ethereum address of the rollup smart contract.
2254                    - example: "0x777dc4262BCDbf85190C01c996b4C06a461d2430"
2255                governanceAddress:
2256                  allOf:
2257                    - $ref: '#/components/schemas/EthereumAddress'
2258                    - description: Ethereum address of the governance mechanism.
2259                    - example: "0x667dc4262BCDbf85190C01c996b4C06a461d2430"
2260                whitheHackerGroupAddress:
2261                  allOf:
2262                    - $ref: '#/components/schemas/EthereumAddress'
2263                    - description: Ethereum Address that can claim the funds in an emergency when the maximum emergency mode time is exceeded.
2264                    - example: "0x557dc4262BCDbf85190C01c996b4C06a461d2430"
2265                keeperAddress:
2266                  allOf:
2267                    - $ref: '#/components/schemas/EthereumAddress'
2268                    - description: Ethereum Address that can enable emergency mode and modify the delay to make a withdrawal.
2269                    - example: "0x557dc4262BCDbf85190C01c996b4C06a461d2430"
2270                withdrawalDelay:
2271                  allOf:
2272                    - $ref: '#/components/schemas/EthBlockNum'
2273                    - description: The time that anyone needs to wait until a withdrawal of the funds is allowed, in Ethereum blocks.
2274                    - example: 539573849
2275                emergencyModeStartingTime:
2276                  type: integer
2277                  description: Ethereum block in which the emergency mode will be activated.
2278                  example: 10
2279                emergencyMode:
2280                  type: boolean
2281                  description: Indicates if emergency mode has been activated.
2282            
2283    PaginationInfo:
2284      type: object
2285      description: Give pagination information
2286      properties:
2287        totalItems:
2288          type: integer
2289          description: Amount of items that the endpoint can return given the filters and the current state of the database.
2290          example: 2048
2291        firstItem:
2292          type: integer
2293          description: The smallest itemId that the endpoint will return with the given filters.
2294          example: 50
2295        lastItem:
2296          type: integer
2297          description: The greatest itemId that the endpoint will return with the given filters.
2298          example: 2130
2299    Config:
2300      type: object
2301      description: Configuration parameters of the different smart contracts that power the Hermez network.
2302      properties:
2303        hermez:
2304          type: object
2305          description: Constant configuration of the Hermez smart contract.
2306          properties:
2307            publicConstants:
2308              type: object
2309              description: Public Hermez smart contract constants
2310              properties: 
2311                tokenHEZ:
2312                  allOf:
2313                    - $ref: '#/components/schemas/EthereumAddress'
2314                    - description: Ethereum address of the HEZ token.
2315                    - example: "0x444dc4262BCDbf85190C01c996b4C06a461d2430"
2316                absoluteMaxL1L2BatchTimeout:
2317                  type: integer
2318                  description:  L1L2 Batch Timeout
2319                  example: 240
2320                verifiers:
2321                  type: array
2322                  description: List of verifiers struct
2323                  items:
2324                    type: object
2325                    properties:
2326                      maxTx:
2327                        type: integer
2328                        description: Maximum rollup transactions in a batch
2329                        example: 512
2330                      nlevels:
2331                        type: integer
2332                        description: Number of levels of the circuit
2333                        example: 32
2334                    required:
2335                      - maxTx
2336                      - nlevels
2337                    additionalProperties: false
2338                hermezAuctionContract:
2339                  allOf:
2340                    - $ref: '#/components/schemas/EthereumAddress'
2341                    - description: Ethereum address of the auction smart contract.
2342                    - example: "0x111dc4262BCDbf85190C01c996b4C06a461d2430"
2343                hermezGovernanceDAOAddress:
2344                  allOf:
2345                    - $ref: '#/components/schemas/EthereumAddress'
2346                    - description: Ethereum address of the governanceDAO.
2347                    - example: "0x222dc4262BCDbf85190C01c996b4C06a461d2430"
2348                safetyAddress:
2349                  allOf:
2350                    - $ref: '#/components/schemas/EthereumAddress'
2351                    - description: Ethereum address of the safety.
2352                    - example: "0x333dc4262BCDbf85190C01c996b4C06a461d2430"
2353                withdrawDelayerContract:
2354                  allOf:
2355                    - $ref: '#/components/schemas/EthereumAddress'
2356                    - description: Ethereum address of the withdraw delayer contracts.
2357                    - example: "0x444dc4262BCDbf85190C01c996b4C06a461d2430"
2358              required:
2359                - tokenHEZ
2360                - absoluteMaxL1L2BatchTimeout
2361                - verifiers
2362                - hermezAuctionContract
2363                - hermezGovernanceDAOAddress
2364                - safetyAddress
2365                - withdrawDelayerContract
2366              additionalProperties: false
2367            maxFeeIdxCoordinator:
2368              type: integer
2369              description: is the maximum number of tokens the coordinator can use to collect fees.
2370              example: 64
2371            reservedIdx:
2372              type: integer
2373              description: First 256 indexes reserved, first user index will be the 256.
2374              example: 255
2375            exitIdx:
2376              type: integer
2377              description: Account index used to indicate that a transaction is an `exit` or `force exit`.
2378              example: 1
2379            limitLoadAmount:
2380              type: integer
2381              description: Maximum load amount (L1 to L2) allowed.
2382              example: 321
2383            limitL2TransferAmount:
2384              type: integer
2385              description: Maximum amount (L2 to L2) allowed.
2386              example: 837
2387            limitTokens:
2388              type: integer
2389              description: Maximum number of different tokens that can be registered in the network.
2390              example: 4294967295
2391            l1CoordinatorTotalBytes:
2392              type: integer
2393              description: Number of bytes that a L1 coordinator transaction has ([4 bytes] token + [32 bytes] babyjub + [65 bytes] compressedSignature).
2394              example: 101
2395            l1UserTotalBytes:
2396              type: integer
2397              description: Number of bytes that a L1 user transaction has ([20 bytes] fromEthAddr + [32 bytes] fromBjj-compressed + [6 bytes] fromIdx + [2 bytes] loadAmountFloat16 + [2 bytes] amountFloat16 + [4 bytes] tokenId + [6 bytes] toIdx).
2398              example: 72
2399            maxL1UserTx:
2400              type: integer
2401              description: Maximum L1-user transactions allowed to be queued in a batch.
2402              example: 128
2403            maxL1Tx:
2404              type: integer
2405              description: Maximum L1 transactions allowed to be queued in a batch.
2406              example: 256
2407            inputSHAConstantBytes:
2408              type: integer
2409              description: Input SHA constant bytes 
2410              example: 18542
2411            numBuckets:
2412              type: integer
2413              description: Number of buckets
2414              example: 5
2415            maxWithdrawalDelay:
2416              type: integer
2417              description: Maximum delay to withdraw tokens. Time is measured in seconds.
2418              example: 2 * 7 * 24 * 60 * 60
2419            exchangeMultiplier:
2420              type: integer
2421              description: exchange multiplier
2422              example: 1e14
2423          required:
2424            - publicConstants
2425            - reservedIdx
2426            - exitIdx
2427            - limitLoadAmount
2428            - limitL2TransferAmount
2429            - limitTokens
2430            - l1CoordinatorTotalBytes
2431            - l1UserTotalBytes
2432            - maxL1UserTx
2433            - maxL1Tx
2434            - inputSHAConstantBytes
2435            - numBuckets
2436            - maxWithdrawalDelay
2437            - exchangeMultiplier
2438          additionalProperties: false
2439        auction:
2440          type: object
2441          description: Constant configuration of the auction smart contract.
2442          properties:
2443            blocksPerSlot:
2444              type: integer
2445              description: Blocks per slot.
2446            initialMinimalBidding:
2447              type: integer
2448              description: Minimum bid when no one has bid yet.
2449            genesisBlockNum:
2450              allOf:
2451                - $ref: '#/components/schemas/EthBlockNum'
2452                - description: Ethereum block number in which the smart contract starts operating.
2453            tokenHEZ:
2454              allOf:
2455                - $ref: '#/components/schemas/EthereumAddress'
2456                - description: Ethereum address of the HEZ token.
2457                - example: "0x333dc4262BCDbf85190C01c996b4C06a461d2430"
2458            hermezRollup:
2459              allOf:
2460                - $ref: '#/components/schemas/EthereumAddress'
2461                - description: Ethereum address of the rollup smart contract.
2462                - example: "0x222dc4262BCDbf85190C01c996b4C06a461d2430"
2463            governanceAddress:
2464              allOf:
2465                - $ref: '#/components/schemas/EthereumAddress'
2466                - description: Ethereum address of the governance.
2467                - example: "0x444dc4262BCDbf85190C01c996b4C06a461d2430"
2468          required:
2469            - blocksPerSlot
2470            - initialMinimalBidding
2471            - genesisBlockNum
2472            - tokenHEZ
2473            - hermezRollup
2474            - governanceAddress
2475          additionalProperties: false
2476        withdrawalDelayer:
2477          type: object
2478          description: Constant configuration of the withdrawal delayer smart contract.
2479          properties:
2480            maxWithdrawalDelay:
2481              type: integer
2482              description: Maximum time delay in which the tokens can be locked in the contract. Time is measured in Ethereum blocks.
2483              example: 200
2484            maxEmergencyModeTime:
2485              type: integer
2486              description: Maximum amount of time in which the contract can be in emergency mode. Time is measured in Ethereum blocks.
2487              example: 2000
2488            hermezRollup:
2489              allOf:
2490                - $ref: '#/components/schemas/EthereumAddress'
2491                - description: Ethereum address of the rollup smart contract.
2492                - example: "0x222dc4262BCDbf85190C01c996b4C06a461d2430"
2493          required:
2494            - maxWithdrawalDelay
2495            - maxEmergencyModeTime
2496            - hermezRollup
2497          additionalProperties: false
2498      required:
2499        - hermez
2500        - auction
2501        - withdrawalDelayer
2502      additionalProperties: false
2503    Error:
2504      type: object
2505      description: Error response. 
2506      properties:
2507        message:
2508          type: string
2509    Error400:
2510      allOf:
2511        - $ref: '#/components/schemas/Error'
2512        - example:
2513            message: Invalid signature.
2514    Error404:
2515      allOf:
2516        - $ref: '#/components/schemas/Error'
2517        - example:
2518            message: Item(s) not found.
2519    Error500:
2520      allOf:
2521        - $ref: '#/components/schemas/Error'
2522        - example:
2523            message: Database error.