# Onchain Art

It's totally possible to mint fully onchain art with Transient contracts!

## Requirements

* Metadata must meet the Transient metadata specs: [Metadata Structure](/integrations/metadata-structure.md)
* Total size of the data must be below 24kb
* All uris must be base 64 encoded data uris
  * You can use this tool to convert images to data uris: <https://dopiaza.org/tools/datauri/index.php>
* Generate the JSON by pasting the following template into this tool and then editing the values: <https://www.objgen.com/json>

```
name = title
description = description
image = data:image/jpeg;base64,asgasdgjasdga
media
  size = 1234
  dimensions = 300x300
  mimeType = image/jpeg
```

* Convert this json to a base64 data uri using the [data uri tool](https://dopiaza.org/tools/datauri/index.php) with the following settings:&#x20;
  * ![](/files/Yri0652dEZF21hnNw6qU)

## Minting

You must use a block explorer to mint onchain art with Transient contracts.

1. Go to [The Lab](https://lab.transient.xyz) and create a new contract
2. Once deployed, you need to click on the block explorer icon to be taken to the approprite url
   1. ![](/files/7OAt77TSJyjWrZPEr3e1)
3. Click on the "Contract" tab
4. Click on "Write contract as proxy"
5. Connect your wallet
6. Scroll to the "mint" function
7. Enter in the final data uri (json that is base64 encoded) as the \`uri\`
8. Enter in your address as the \`recipient\`
9. Hit write and send the transaction
10. Done!


---

# 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://docs.transientlabs.xyz/integrations/onchain-art.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.
