From ab0355b70f643bfe1c4c083ee9405df9a58c6ab3 Mon Sep 17 00:00:00 2001 From: Retype GitHub Action Date: Tue, 26 Nov 2024 17:18:12 +0000 Subject: [PATCH] Refreshes Retype-generated documentation. Process triggered by aaronpenne. --- 404.html | 8 +- .../art-blocks-101/generator/index.html | 10 +- .../index.html | 362 ++++++++++++++++++ .../art-blocks-101/on-chain/index.html | 26 +- .../art-blocks-api/api-overview/index.html | 10 +- .../artblocks-viewer/index.html | 8 +- .../art-blocks-api/entities/index.html | 8 +- .../art-blocks-api/queries/index.html | 10 +- .../custom-dashboard-mutations/index.html | 8 +- .../index.html | 10 +- .../engine-opensea-setup/index.html | 8 +- .../index.html | 8 +- .../engine-project-launch/index.html | 8 +- .../index.html | 8 +- .../engine-technical-details/index.html | 10 +- .../art-blocks-engine-101/faqs/index.html | 8 +- .../filebase-ipfs/index.html | 8 +- .../art-blocks-engine-101/index.html | 8 +- .../ipfs-setup/index.html | 8 +- .../minter-suite-migration-runbook/index.html | 8 +- .../mobile-minter/index.html | 8 +- .../what-is-art-blocks-engine/index.html | 8 +- .../core-contract-v3/dashboard/index.html | 8 +- .../erc2981-royalties/index.html | 8 +- .../manual-admin-operations/index.html | 8 +- .../core-contract-v3/overview/index.html | 8 +- .../creator-onboarding/creators/index.html | 8 +- creator-docs/index.html | 8 +- .../minter-suite/custom-minters/index.html | 10 +- .../minter-suite-supplemental/index.html | 10 +- .../minting-philosophy/index.html | 8 +- .../seadrop-integration/index.html | 10 +- .../shared-minter-suite/index.html | 8 +- index.html | 14 +- resources/js/config.js | 2 +- resources/js/search.json | 2 +- sitemap.xml.gz | Bin 713 -> 720 bytes 37 files changed, 517 insertions(+), 153 deletions(-) create mode 100644 creator-docs/art-blocks-101/introducing-the-onchain-generator/index.html diff --git a/404.html b/404.html index eea735d3..2232f86c 100644 --- a/404.html +++ b/404.html @@ -6,7 +6,7 @@ - + @@ -30,11 +30,11 @@ - + - + - +
diff --git a/creator-docs/art-blocks-101/generator/index.html b/creator-docs/art-blocks-101/generator/index.html index 743929fc..d0929775 100644 --- a/creator-docs/art-blocks-101/generator/index.html +++ b/creator-docs/art-blocks-101/generator/index.html @@ -6,7 +6,7 @@ - + @@ -33,12 +33,12 @@ - + - + - - + +
diff --git a/creator-docs/art-blocks-101/introducing-the-onchain-generator/index.html b/creator-docs/art-blocks-101/introducing-the-onchain-generator/index.html new file mode 100644 index 00000000..5d27acef --- /dev/null +++ b/creator-docs/art-blocks-101/introducing-the-onchain-generator/index.html @@ -0,0 +1,362 @@ + + + + + + + + + + + + + + + Introducing the On-Chain Generator + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+
+ + +
+ + +
+ + + +
+ +
+ + + + +
+ + + + + +
+ +
+ + +
+ + +
+ +
+
+ +
+
+ + + + +
+
+
+
+ +
+ + + + + + + + +
+ +
+
+
+
+ +
+ + + + +

+ # + Introducing the On-Chain Generator +

+
+

by Ben Yoshiwara

+

Art Blocks is excited to announce a new advancement in our commitment to preserving the unique digital artworks created on our platform: the deployment of our on-chain generator contract. This represents a step forward in ensuring the perpetual availability and accessibility of Art Blocks pieces.

+

Want to see it in action? Check out our demo repository and demo site to see how easy it is to display Art Blocks works with the on-chain generator!

+ +

+ # + Progressing Art Blocks Preservation +

+
+

In the past, viewing an Art Blocks piece relied on a centralized generator to assemble the HTML document that makes up an artwork, combining a project’s script and dependencies. The project's creative code and essential parameters are stored on-chain, and while the artwork can be manually reconstructed by anyone, for convenience Art Blocks has served artworks up with a backend.

+

This new on-chain generator removes the need for that backend entirely, allowing anyone to retrieve any Art Blocks artwork entirely using just a single call to our smart contract.

+

We’ve ensured that the complete process of generating viewable Art Blocks pieces is now preserved on-chain. This means that even in the distant future, these artworks can be reconstructed and displayed using only the information stored on the Ethereum blockchain, aligning with Art Blocks’ broader efforts in digital art preservation. While our conventional web server-based generator will remain the primary way to view Art Blocks pieces, this on-chain preservation secures their longevity and accessibility for generations to come.

+ +

+ # + Why This Matters +

+
+

The most commonly used dependencies, p5js and threejs, are now stored on-chain. This means that approximately 90% of all Art Blocks flagship projects can now be fully constructed from on-chain components, while the remaining 10% identify a preferred CDN for already broadly-distributed npm packages that exist on hundreds of thousands of hard drives around the world.

+

This advancement represents a significant step in ensuring the long-term preservation of Art Blocks pieces. If our conventional infrastructure were to ever become unavailable, the on-chain generator contract handles the complete assembly automatically, ensuring your artwork can always be reconstructed. As long as the Ethereum blockchain exists, these artworks can be constructed and viewed in a web browser without relying on any centralized infrastructure or implicit knowledge.

+ +

+ # + Building the Complete System +

+
+

Our implementation combines several key components:

+
    +
  • The Core Contracts: Store the project's creative code and token-specific data that define each unique artwork.
  • +
  • The Dependency Registry: Manages JavaScript library dependencies for projects across supported Art Blocks contracts. Dependencies can be referenced via CDN or stored fully on-chain, allowing for progressive decentralization. We've started by uploading our most widely used dependencies on-chain: p5.js (v1.0.0) and three.js (v0.124.0), with plans to add more over time.
  • +
  • scripty.sol: "A gas-efficient on-chain HTML builder service that's tuned for stitching large JS based tags together." Created by int.art. Big shout out to the int.art team for building scripty.sol, which was instrumental in making this project possible!
  • +
  • The Generator Contract: Orchestrates the entire process by combining the project script and token data from the core contracts with the appropriate dependency from the registry, assembling everything into a complete, ready-to-view HTML document using scripty.sol. The generator supports both plain text HTML and base64-encoded data URIs for maximum flexibility in how the artworks can be displayed.
  • +
+ +

+ # + Looking Forward +

+
+

Art Blocks is dedicated to developing cutting-edge technical solutions for the long-term preservation of artworks released on our platform. Through innovations like the BytecodeStorage library, Dependency Registry, and On-Chain Generator, we are expanding the boundaries of blockchain capabilities and remain committed to pushing these limits further in the future.

+ + + + +
+ +
+ +
+
+
+
    +
+
+ +
+
+
+ + + + + + + +
+ +
+
+ + + +
+ + +
+ + + + diff --git a/creator-docs/art-blocks-101/on-chain/index.html b/creator-docs/art-blocks-101/on-chain/index.html index f1d6e8e3..f17e4a4e 100644 --- a/creator-docs/art-blocks-101/on-chain/index.html +++ b/creator-docs/art-blocks-101/on-chain/index.html @@ -6,7 +6,7 @@ - + @@ -24,20 +24,22 @@ + + - + - + - + @@ -416,7 +418,7 @@

  • Visit the original Art Blocks Core Contract on Etherscan: 0x059EDD72Cd353dF5106D2B9cC5ab83a52287aC3a
  • Get project 0's metadata by calling the projectDetails function with the project ID as the input parameter:
  • -

    +

    projectDetails
    projectDetails
    @@ -424,7 +426,7 @@

    1. Get project 0's script details by calling the projectScriptInfo function with the project ID as the input parameter:
    -

    +

    scriptDetails
    scriptDetails
    @@ -432,7 +434,7 @@

    1. Get the script javascript by calling the projectScriptByIndex function with the project ID and index 0 as the input parameter. The returned text is the javascript code that is used to generate Chromie Squiggles!
    -

    +

    scriptByIndex
    scriptByIndex
    @@ -440,7 +442,7 @@

    1. Get token 0's token hash by calling the showTokenHashes function with the token ID as the input parameter. This is the hash that is injected into the script to generate the token's unique output.
    -

    +

    tokenHash
    tokenHash
    @@ -459,7 +461,7 @@

  • Get the dependency details by calling the getDependencyDetails function with the dependency name and version as the input parameters. At this time, we translate from the string p5@1.0.0 to its bytes representation 0x703540312e302e30:

  • -

    +

    dependencyDetails
    dependencyDetails
    @@ -467,7 +469,7 @@

    1. Get the dependency code by calling the getDependencyScript function with the dependency name and version as the input parameters. We again translate to the bytes representation 0x703540312e302e30, and can increment the index to get all 10 chunks of the dependency code:
    -

    +

    dependencyScript
    dependencyScript
    @@ -505,11 +507,11 @@