Exhibitions

Exhibitions

All exhibitions published on JPG will be automatically processed and uploaded to Arweave for permanent, decentralized storage on the blockweave. This ensures that each curation can be recognized as a part of the contextual data layer for the NFT ecosystem in perpetuity. Only published exhibitions will be uploaded for permanent storage. Drafts will remain private and in our database. Here is the data that will be uploaded for published exhibitions to ease composability across platforms:

Field
Type
Description

exhibition-name

string

The name of the exhibition at time of publishing.

source

string

The link to the exhibition on jpg of the form: https://jpg.space/{username}/exhibition/{exhibition-name}

curator

string

The curator's Ethereum address.

username

string

The curator's username on JPG

collaborators

Array of addresses

The collaborators on this exhibition.

assets

Array of Assets

See below.

text_data

Array of TextObjects

See below. May also be empty.

Assets and TextObjects

Asset Object:

{
  "type": "NFT"
  "data":
      "contract": <NFT Contract>
      "tokenId": <NFT TokenID>
      "chainId": <Will be 1 for now as we only support Ethereum NFTs>
      "note": <Curator Note (optional)>
      "right-clicks": <Number of times this asset has been Right-Clicked on JPG> 
}

Text Object:

{
  "title": <Section Title>
  "body": <Section Body>
  "assets": [
      {
        "contract": <NFT Contract>
        "tokenId": <NFT TokenID>
      },
      .
      .
      .
    ]
}

IMPORTANT: In some cases, there may not be a title or body for an index in the array of Text Objects, as there are edge cases where a new page in an exhibition does not begin with text. In these situations, there will simply be an asset array. Developers are urged to null-check all parameters before using any data in practice to avoid errors.

Exhibition Tags

Data on Arweave is typically indexed by tags. For exhibitions, one will be able to find the data by querying for the following tags:

'Content-Type': 'application/json',
'App-Name': 'JPG-Protocol',
'Type': 'Exhibition',
'Exhibition-Name': <Exhibition Name>,
'Curator': <Ethereum Address>,
'Source': <link to jpg website>,
'Exhibition-Tag': <JPG Tags>,

We will be opening an API shortly to make querying for data easier, but one can use the Arweave GraphQL endpoints with this tag information to retrieve data programmatically for now. (https://gql-guide.vercel.app/).

Last updated