# Auxiliary Structures

```graphql
# Time represents date and time including time zone information in RFC3339 format.
scalar Time

# Cursor is a string representing position in a sequential list of edges.
scalar Cursor

# BigInt is a large (256bits) integer value, represented as 0x prefixed hexadecimal number in string.
scalar BigInt

# Address is a 20 byte Opera address, represented as 0x prefixed hexadecimal number in string.
scalar Address

# Long is 64bits unsigned integer, represented as 0x prefixed hexadecimal number in string.
scalar Long
```

{% hint style="info" %}
The API server provides information about active on-chain contracts used by the Artion platform.
{% endhint %}

```graphql
# Primary used Artion contracts addresses.
type Contracts {
    marketplace: Address!
    auctionHall: Address!
}
```

```graphql
# TextSearchEdge is a single edge in a paginated text search output set.
type TextSearchEdge {
    # The collection, if the item is a collection.
    collection: Collection

    # The token, if the item is a token.
    token: Token

    # The user, if the item is an user.
    user: User
}
```

```graphql
# PageInfo contains information about a sequential access list page.
# Specified by https://relay.dev/graphql/connections.htm#sec-undefined.PageInfo
type PageInfo {
    # startCursor is the cursor of the first edge of the edges list. null for empty list.
    startCursor: Cursor

    # endCursor if the cursor of the last edge of the edges list. null for empty list.
    endCursor: Cursor

    # hasNextPage specifies if there is another edge after the last one.
    hasNextPage: Boolean!

    # hasPreviousPage specifies if there is another edge before the first one.
    hasPreviousPage: Boolean!
}
```

{% hint style="info" %}
NFT minting on Artion base collections can enforce platform fee.
{% endhint %}

```graphql
# Platform fee and estimated gas for mint operation
# Return type of estimateMintFeeGas operation.
type MintFeeGas {
    # The error message, if the minting has failed in the estimating simulation.
    error: String

    # The platform fee for the token minting in native FTM tokens.
    platformFee: BigInt

    # The gas estimated to be necessary for the minting.
    gas: BigInt
}
```

{% hint style="info" %}
Artion contracts allow only a limited set of ERC20 tokens to be used for payments between trading parties.
{% endhint %}

```graphql
# PayToken represents ERC-20 token supported for payments on the marketplace
type PayToken {
    # Address of the token contract
    contract: Address!

    # Name of the token - e.g. "Wrapped Fantom"
    name: String!

    # Symbol of the token - e.g. "WFTM"
    symbol: String!

    # Number of decimals the token uses - e.g. 2 if 12.34 is stored as 1234
    decimals: Int!

    # Price of one whole token in 6-decimals fixed point integer
    price: Long!
}
```

```graphql
# Direction of sorting - ascending or descending
enum SortingDirection {
    ASC
    DESC
}
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://apidoc.artion.io/graphql-schema/auxiliary-structures.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
