diff --git a/pages/service/_meta.json b/pages/service/_meta.json index c9c039b..33982b0 100644 --- a/pages/service/_meta.json +++ b/pages/service/_meta.json @@ -1,11 +1,30 @@ { + "--- Beam": { + "type": "separator", + "title": "Beam" + }, "index": "Getting started", + "game": { + "title": "Your game" + }, + "sphere": { + "title": "Sphere" + }, + "companion": { + "title": "Companion" + }, + "reporting": { + "title": "Reporting" + }, "--- Self-custody (Beta)": { "type": "separator", "title": "Self-custody (beta)" }, - "self-custody": { - "title": "Getting started" + "introduction-self-custody": { + "title": "Introduction" + }, + "implement-self-custody": { + "title": "Implementation" }, "operations": { "title": "Operations (beta)" @@ -13,12 +32,9 @@ "sessions": { "title": "Sessions (beta)" }, - "--- Guides": { + "--- Custodial": { "type": "separator", - "title": "Guides" - }, - "game": { - "title": "Managing your game" + "title": "Custodial" }, "profiles": { "title": "Profiles" @@ -41,15 +57,6 @@ "exchange": { "title": "Exchange" }, - "companion": { - "title": "Companion" - }, - "sphere": { - "title": "Sphere" - }, - "reporting": { - "title": "Reporting" - }, "--- References": { "type": "separator", "title": "References" @@ -63,9 +70,6 @@ "type": "separator", "title": "More" }, - "roadmap": { - "title": "Roadmap" - }, "terms-of-service": { "title": "Terms of Service" }, diff --git a/pages/service/companion.mdx b/pages/service/companion.mdx new file mode 100644 index 0000000..79cd821 --- /dev/null +++ b/pages/service/companion.mdx @@ -0,0 +1,35 @@ +--- +title: Introduction to Beam Companion +--- + +import { Callout, Cards, Card } from "nextra/components"; + +# Introduction to Beam Companion + +The Beam Companion app allows users to manage and access their on-chain NFTs earned through playing your game. + +You'll be able to find the latest version of the Beam Companion through the following links + + + + + + + + Make sure you connect to **Beam testnet** in order to implement the application + during your development process. You can switch to testnet by switching on the + log-in screen of the app. + + +### Connecting users to the Beam Companion app + +The Beam Companion app works based on the same authentication solution as is being used in the self-custody features of Beam, meaning that any user you onboard through that solution will automatically be linked to your game and is able to use the Beam Companion app. + diff --git a/pages/service/companion/_meta.json b/pages/service/companion/_meta.json deleted file mode 100644 index 9d87677..0000000 --- a/pages/service/companion/_meta.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "introduction": "Introduction", - "connecting-your-users": "Connecting your users", - "verifying-webhooks": "Verifying webhooks" -} diff --git a/pages/service/companion/connecting-your-users.mdx b/pages/service/companion/connecting-your-users.mdx deleted file mode 100644 index 5bbc223..0000000 --- a/pages/service/companion/connecting-your-users.mdx +++ /dev/null @@ -1,56 +0,0 @@ ---- -title: Connecting your users ---- - -## Connecting your users to the Beam Companion - -What is important to understand is that the Profiles entity within Beam is not exclusively a matter of players. Profiles could be used for various purposes, one of which is [match profiles](/service/profiles/match-profiles). - -However - in our opinion - it makes a ton of sense to create a Profile for each of your players as soon as you want something to happen on-chain. You can use these player profiles to manage a user and their assets. On-chain tokens they earned (or bought), NFTs they minted (or you minted on their behalf) all can be sent to the player profile for each player. - -In order to allow players to see and manage their assets outside of your game, we offer a way to link-up their profile to an SSO authenticated user identity. While it's not required, the companion app offers an extension of the web3 experience where users are able to manage, give away and trade assets, without you having to facilitate this. - -### Connection request - -If you want to allow players to control their assets outside of your game, providing them the web3 experience, you would need to create a connection request for a profile. - -```typescript -const request = await beam.profiles.createConnectionRequest("profile-id", { - callbackUrl: - "https://your-games-backend.your-game.com/api/incoming-webhook/:profile-id", -}); - -// { -// "id": "string", -// "challenge": "c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", -// "validUntil": "2023-08-30T08:35:08+00:00" -// } -``` - -The `challenge` property that we send you when you created this Connection request is essentially a key meant solely for the player behind the profile you want to link up to a user within Beam. - -The next step is allowing the user to obtain the challenge we created within the app, as this challenge enables up to create the connection. - -#### QR code - -If your game is running on a console, PC, or in a browser, we suggest encoding the challenge in a QR code. The user can scan the QR code, which establishes a link between the user in Beam and the player profile you have registered. We suggest creating a QR code that includes the following information: - -```md filename="QR CODE" -https://account.onbeam.com/connection-request?challenge=c5d2... -``` - -This implementation guides users who do not have the app installed to the website where they can find links to download the app on their device. If users already have the app installed and scan the QR code using their native camera app, they will be directed to the companion app. Additionally, if users scan it from within the companion app, the connection request will also be handled correctly. - -#### Deeplink - -If your game is running on iOS or Android, you could pass the challenge down a deeplink that opens up the Beam companion app. This link is exactly the same as the one you use for the QR code: - -```md filename="DEEPLINK" -https://account.onbeam.com/connection-request?challenge=c5d2... -``` - -It'll produce the same result as the QR code setup we mentioned earlier. Users who don't have the companion app already installed will be directed to a website where they can easily find links to download the app on their device. If the user already has the companion app installed, it will open the app and handle the connection request. - -#### Webhook - -By providing a `callbackUrl` when creating a Connection request, we'll be able to provide you with an incoming webhook telling you that a profile was linked up to a user. diff --git a/pages/service/companion/introduction.mdx b/pages/service/companion/introduction.mdx deleted file mode 100644 index 98c3e3f..0000000 --- a/pages/service/companion/introduction.mdx +++ /dev/null @@ -1,38 +0,0 @@ ---- -title: Introduction to Beam Companion ---- - -import { Callout, Cards, Card } from "nextra/components"; - -# Introduction to Beam Companion - -We recently released the Beam Companion app. The app allows users to manage and access their on-chain NFTs earned through playing your game. - -Through our SDK implementation, we give you the power to generate a secure connection request that enables the user to create a connection between their in-game profile and Beam identity account (the in-app user). - - - - - - - - Make sure you connect to Beam testnet in order to implement the application - during your development process. You can switch to testnet by switching on the - log-in screen of the app. - - -### Integrate the app - -Unlock the full potential for your user by implementing the Beam Companion app in a couple of simple steps. - -- [Connecting your users](/service/companion/connecting-your-users): Create the connection through a QR code or deeplink - -- [Verifying connections](/service/companion/verifying-webhooks): Verify whenever a connection has been created diff --git a/pages/service/companion/verifying-webhooks.mdx b/pages/service/companion/verifying-webhooks.mdx deleted file mode 100644 index 5e9a3a6..0000000 --- a/pages/service/companion/verifying-webhooks.mdx +++ /dev/null @@ -1,37 +0,0 @@ ---- -title: Verifying connections ---- - -# Verify user connections - -After user scans the QR code and connects their user-account to the profile, you will receive an incoming webhook on the provided callbackUrl. - -```typescript -const request = await beam.profiles.createConnectionRequest("profile-id", { - callbackUrl: - "https://your-games-backend.your-game.com/api/incoming-webhook/:profile-id", -}); -``` - -The incoming webhook doesn't tell you to which user a profile is linked to, but it does confirm to you that a link was made between the app-user and your game's profile. - -### Verify the incoming request - -When the incoming webhook arrives, there will be a `Signature` header included in it. The signature can be ignored completely, but allows you to verify whenever the incoming request we send you indeed is coming from Beam. The implementation for handling this signature are environment specific and you are required to use [Libsodium](https://doc.libsodium.org/). Below you will find an example on how to verify the signature within a Node.js based backend. - -```typescript -import * as sodium from "sodium-native"; - -export const verifySignature = ( - incomingRequestBody: Record, // The request body of the incoming webhook - incomingRequestHeaderSignature: string, // The 'signature' header of the incoming webhook - yourApiKey: string // The api key you've used to create the connection request -): boolean => { - const payloadString = JSON.stringify(incomingRequestBody); - const payloadBuffer = Buffer.from(payloadString, "utf8"); - const signature = Buffer.from(incomingRequestHeaderSignature, "hex"); - const secretBuffer = Buffer.from(yourApiKey, "utf8"); - - return sodium.crypto_auth_verify(signature, payloadBuffer, secretBuffer); // will return `true` or `false` -}; -``` diff --git a/pages/service/environments.mdx b/pages/service/environments.mdx index fb8be1d..d63f03c 100644 --- a/pages/service/environments.mdx +++ b/pages/service/environments.mdx @@ -14,7 +14,7 @@ Once you are ready to deploy your game to mainnet, simply request the production https://api.onbeam.com ```` -## api keys and environments +### API keys and environments Keep in mind that keys are not interchangeable per environment, meaning that you will need to send the correct key in the `x-api-key` header based on the hostname you use. diff --git a/pages/service/full-api-reference.mdx b/pages/service/full-api-reference.mdx index f2f617f..927b4f4 100644 --- a/pages/service/full-api-reference.mdx +++ b/pages/service/full-api-reference.mdx @@ -6,6 +6,8 @@ The Beam API is a RESTful API. Given you have obtained your api key, you are abl If you ever feel the need to access all of the available endpoints directly from our deployed service, you can use the following links +### Custodial API + ```md filename="Swagger UI" https://api.testnet.onbeam.com/api/game ``` @@ -17,3 +19,18 @@ https://api.testnet.onbeam.com/api/game-json ```md filename="OpenAPI specification (YAML)" https://api.testnet.onbeam.com/api/game-yaml ``` + + +### Self-custody API + +```md filename="Swagger UI" +https://api.testnet.onbeam.com/api/self-custody +``` + +```md filename="OpenAPI specification (JSON)" +https://api.testnet.onbeam.com/api/self-custody-json +``` + +```md filename="OpenAPI specification (YAML)" +https://api.testnet.onbeam.com/api/self-custody-yaml +``` diff --git a/pages/service/implement-self-custody.mdx b/pages/service/implement-self-custody.mdx new file mode 100644 index 0000000..98e56d8 --- /dev/null +++ b/pages/service/implement-self-custody.mdx @@ -0,0 +1,47 @@ +--- +title: Implementation +--- + +import { Cards, Card } from "nextra-theme-docs"; + +# Implementing Beam + +The implementation of our new self-custodial service consists of two components + +- The Beam platform client. We currently solely provide a **C# sdk** meant to be implemented in the **Unity**. In the future, we will be releasing more implementations for various platforms. +- The self-custody client. We currently provide a **C# and Typescript** client. + +In the near future, we expect to expand the platfom clients with all the self-custody client methods, giving you more flexibility on how you want to implement Beam in your game. + + +### Initialize the platform client + +In order to interact with these clients, you will need a new type of API key - the `Publishable` API key. You will be able to find this API key by regenerating your API keys through the existing API. You can do so programmatically, or by interacting with the method in the [OpenAPI / Swagger UI](https://api.testnet.onbeam.com/api/game#/Game/regenerateApiKeys) interface. + + +```csharp + +var beamClient = gameObject.AddComponent() + .SetBeamApiGame("your-game-id", "your-publishable-api-key") + .SetEnvironment(BeamEnvironment.Testnet); +``` + + +### The self-custody client + +The self-custody client is a new client which can be used to generate [Operations](/service/operations/introduction). Both the self-custody clients we offer for the new self-custodial services, are structured in similar fashion to the existing SDKs that offer custodial [Profiles](/service/profiles/introduction). + +Keep in mind that we expect you to also use the `Publishable` API key in these clients. + + + + + \ No newline at end of file diff --git a/pages/service/self-custody/introduction.mdx b/pages/service/introduction-self-custody.mdx similarity index 100% rename from pages/service/self-custody/introduction.mdx rename to pages/service/introduction-self-custody.mdx diff --git a/pages/service/roadmap.mdx b/pages/service/roadmap.mdx deleted file mode 100644 index 3daadef..0000000 --- a/pages/service/roadmap.mdx +++ /dev/null @@ -1,22 +0,0 @@ -import { Callout } from "nextra/components"; - -# Upcoming features - -Throughout time, we'll be working hard to provide additional features within the Beam accounts API or related products (like the Beam marketplace). - -As we are working with multiple game development studios in order to ensure the success of Beam and the integration of it within the developers their games, we will shift more granular priorities throughout time as we see fit to ensure partners success. Therefore, the roadmap serves as a set of handlebars - not an exact promise. - - - Feel like something is missing, and needs to be prioritized? Let's have a chat - through build@onbeam.com - - -## 2024 and beyond - -- On-chain event subscriptions through Queues - 1. Allowing game devs to listen to on-chain actions taken by users outside of the game developers control - 2. Allowing game devs to be aware of transactions being completed without having to implement polling -- A Beam provided identity solution - 1. Allowing game devs to implement 'Log-in with Beam' without them having to implement their own authentication solution - 2. Log-in works through scanning a QR code generated through the Beam sdk, scanned by the user within the Beam companion app -- A companion app feature called Beam Vaults, which will be a self-custodial solution for users to interact with their assets diff --git a/pages/service/sdk.mdx b/pages/service/sdk.mdx index a6f20d2..74b700b 100644 --- a/pages/service/sdk.mdx +++ b/pages/service/sdk.mdx @@ -1,8 +1,8 @@ import { Callout, Cards, Card } from "nextra/components"; -# Beam Accounts SDK +# Beam SDKs -The recommended way to interact with the Beam API is by using one of our official SDKs. All of the provided SDKs are meant to be used **server side**, as it's crucial to not expose any of the api keys we provided publicly. +The recommended way to interact with the Beam API is by using one of our official SDKs. At the time of writing, the SDKs we're shipping are all automatically generated after every service release. We're currently using [OpenAPI generator](https://openapi-generator.tech/) and [OpenAPI Typescript Codegen](https://www.npmjs.com/package/openapi-typescript-codegen). @@ -15,10 +15,15 @@ At the time of writing, the SDKs we're shipping are all automatically generated --- -### Beam SDKs +### SDKs In order to get started, we currently provide the following SDKs. Note that if there's no available SDK available for your preferred language, there's always the possibility of directly connecting to the RESTful endpoints by passing your API key in the `x-api-key` header. + +#### Custodial SDKs + +All of the custodial SDKs are meant to be used **server side**, as it's crucial to not expose any of the api keys we provided publicly. + +#### Self-custody SDKs + +The self-custody SDKs can be used in the client, as the API that is required to interact with the self-custody services can be exposed without risk. + + + + + + --- ### Beam SDK repository @@ -50,8 +72,9 @@ In the future, we hope to automatically assess major, minor and patch versions, --- -### Beam OpenAPI Specification +### Beam OpenAPI specification Beam OpenAPI specification empowers you with a broad set of developer tooling, starting with Postman collections and generating your own SDK. It also serves as the basis for our generated release changelogs and SDKs. -[Beam OpenAPI Specification](https://api.testnet.onbeam.com/api/game-json) +- [Beam custdoial OpenAPI specification](https://api.testnet.onbeam.com/api/game-json) +- [Beam self-custody OpenAPI specification](https://api.testnet.onbeam.com/api/self-custody-json) diff --git a/pages/service/self-custody/_meta.json b/pages/service/self-custody/_meta.json deleted file mode 100644 index e307077..0000000 --- a/pages/service/self-custody/_meta.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "introduction": "Introduction", - "implementation": "Implementation" -} diff --git a/pages/service/self-custody/implementation.mdx b/pages/service/self-custody/implementation.mdx deleted file mode 100644 index b233a1f..0000000 --- a/pages/service/self-custody/implementation.mdx +++ /dev/null @@ -1,48 +0,0 @@ ---- -title: Implementation ---- - -import { Cards, Card } from "nextra-theme-docs"; - -# Getting started with the implementation - -The implementation of our new self-custodial service consists of two components - -- The client side component. We currently solely provide a **C# sdk** meant to be implemented in the **Unity**. In the future, we will be releasing more implementations for various platforms. -- The server client. We currently provide a **C# and Typescript** server client. - - -In the near future, we expect to expand the client side component with all the server client methods, so that you also have the option to implement completely in the client. - - -### Initialize the client side sdk - -In order to initialize the Unity (C# client sdk), you will need a new type of API key - the `Publishable` API key. You will be able to find this API key by regenerating your API keys through the existing API. You can do so programmatically, or by interacting with the method in the [OpenAPI / Swagger UI](https://api.testnet.onbeam.com/api/game#/Game/regenerateApiKeys) interface. - - -```csharp - -var beamClient = gameObject.AddComponent() - .SetBeamApiGame("your-game-id", "your-publishable-api-key") - .SetEnvironment(BeamEnvironment.Testnet); -``` - - -### Server client - -The server client is a new client which can be used to generate [Operations](/service/operations/introduction). Both server clients we offer for the new self-custodial services, are structured in similar fashion to the existing SDKs that offer custodial [Profiles](/service/profiles/introduction). - -Keep in mind that we expect you to use the `Publishable` API key currently, on both the client-side and the server client when interacting with the self-custody service. - - - - - \ No newline at end of file diff --git a/pages/service/sphere/creating-games.mdx b/pages/service/sphere/creating-games.mdx index a57b1b3..425c96a 100644 --- a/pages/service/sphere/creating-games.mdx +++ b/pages/service/sphere/creating-games.mdx @@ -7,7 +7,7 @@ title: Creating games When your game has more than one collection related to it on Sphere, it can make sense to create a game overview page to create an overview where users can find all your collections. This game overview page can be customized in the same way as the collection page, but will serve as a landing page for your game. -## Creating a game overview page +### Creating a game overview page At this moment in time you can not create a game overview page yourself. If you want to create a game overview page, please request this through the Partner Success Manager or Business Development Lead you're in contact with. You can simply provide them with the following information: - The chain you want to create the game overview page on diff --git a/pages/service/sphere/editor-sections.mdx b/pages/service/sphere/editor-sections.mdx index e8c949c..05a3ee4 100644 --- a/pages/service/sphere/editor-sections.mdx +++ b/pages/service/sphere/editor-sections.mdx @@ -10,7 +10,7 @@ You can view the minimum requirements to create a collection page [here](/servic Sections marked with an asterisk are required to create a collection or game page. -## Header* +### Header* The header section consists of a background image, your logo, stats from your collection and your social links. You're able to adjust both images and your social links. @@ -18,55 +18,55 @@ You're able to adjust both images and your social links. ![Header section](/editor-previews/header.png) -## Introduction text* +### Introduction text* The text in this section is automatically animated by breaking it into smaller chunks at commas and periods. The text has a maximum amount of 300 characters. You can customize your gradient or choose from predefined ones, which will also be applied to the page's scrollbar. ![Introduction text section](/editor-previews/introduction-text.png) -## NFT gallery +### NFT gallery Within this section you can simply enter token id's, we'll automatically fetch the images of all tokens to display them in an animated gallery. You can select up to 20 different token id's. This section is not available within the game editor. We recommend adding your tokens in pairs of 4, since this will result in a consistent grid. ![NFT gallery section](/editor-previews/nft-gallery.png) -## Title and text +### Title and text This section simply consists of a title and some body text, the body text has a maximum length of 200 characters. ![Title and text section](/editor-previews/title-and-text.png) -## Video and image +### Video and image In this section, you can include an image and a video. The video can be a URL or file path, and supports platforms like YouTube, Facebook, Twitch, SoundCloud, Streamable, Vimeo, Wistia, Mixcloud, DailyMotion, and Kaltura. We recommend using an image with dimensions of at least 640 x 768 pixels. ![Video and image section](/editor-previews/video-and-image.png) -## Text and image +### Text and image This section features a full screen background images that gets overlaid with text as it fades away on scroll. We recommend using an image with dimensions of at least 3840 x 2160 pixels for your background image, the maximum amount of characters for the text is 200. ![Text and image section](/editor-previews/text-and-image.png) -## Video +### Video In this section you can simply add a video, just like the video and image section the video can be a URL or file path, and supports platforms like YouTube, Facebook, Twitch, SoundCloud, Streamable, Vimeo, Wistia, Mixcloud, DailyMotion, and Kaltura. ![Video section](/editor-previews/video.png) -## Image collection +### Image collection This section allows you to add three images that feature a subtle parallax effect. Each image can have a caption (this is optional) with a maximum of 50 characters. You can also add a title with a maximum of 50 characters. We suggest using an image with dimensions of at least 880 x 1200 pixels for the first, 512 x 768 pixels for the second, and 660 x 512 pixels for the final image. ![Image collection section](/editor-previews/image-collection.png) -## Text +### Text This section simply consists of text, the text can have a maximum length of 200 characters. ![Text section](/editor-previews/text.png) -## Footer* +### Footer* This is the only section that allows you to create your own CTA button, you can customize the text and the link. The footer section also includes a title and some body text. The maximum amount of characters for the body text is 400 characters. We recommend adding a CTA to your footer to link to your website or social media. diff --git a/pages/service/sphere/introduction.mdx b/pages/service/sphere/introduction.mdx index 73ecd50..713106a 100644 --- a/pages/service/sphere/introduction.mdx +++ b/pages/service/sphere/introduction.mdx @@ -5,11 +5,12 @@ title: Introduction to Sphere # Introduction to Sphere Sphere is the marketplace for games, the backbone of game developers to launch an in-game marketplace. It is the very first marketplace to have ever successfully integrated the Immutable zkEVM testnet and mainnet. Sphere can be used on Beam and Immutable zkEVM. Learn more about the Immutable zkEVM integration and its benefits [here](https://medium.com/@meritcircle/sphere-launches-as-first-marketplace-to-integrate-with-immutable-zkevm-757a565d7f99). -## The only gaming marketplace you will ever need + +### The only gaming marketplace you will ever need As a marketplace, Sphere covers all the bases. First, it acts as an aggregator, presenting a huge range of assets from multiple games that users can search within and browse through — kind of a digital catalog. But Sphere also facilitates in-game marketplaces. Thanks to the [Beam SDK](/service/sdk), anyone who’s building a game has the ability to spin up a marketplace within the game, where players can buy, sell and trade their assets. It all happens under the hood, so it doesn’t disrupt the gamer’s experience, and Sphere collects fees on each transaction. -## Sphere Features +### Sphere Features - **Aggregator**: Sphere acts as an aggregator, presenting a huge range of assets from multiple games that users can search within and browse through. - **Beam SDK**: Thanks to the Beam SDK, anyone who’s building a game has the ability to spin up a marketplace within the game, where players can buy, sell and trade their assets. It all happens under the hood, so it doesn’t disrupt the gamer’s experience, and Sphere collects fees on each transaction. @@ -20,7 +21,7 @@ As a marketplace, Sphere covers all the bases. First, it acts as an aggregator, Go to [Sphere](https://sphere.market/beam) or [Sphere testnet](https://testnet.sphere.market/beam-testnet). -## Learn more +### Learn more - [Sphere Fees](/chain/beam-ecosystem/sphere#are-there-any-fees-associated-with-sphere-transactions) - [Publishing your collection on Sphere](/service/sphere/publish-collections) - [Removing your collection on Sphere](/service/sphere/remove-collections) diff --git a/pages/service/sphere/publish-collections.mdx b/pages/service/sphere/publish-collections.mdx index 983de9a..452c388 100644 --- a/pages/service/sphere/publish-collections.mdx +++ b/pages/service/sphere/publish-collections.mdx @@ -8,7 +8,7 @@ import { Callout } from "nextra/components"; Make your collection stand out on Sphere by adding your personal touch and creating a branded collection page. Before you get started, just follow a few simple steps: -## Mint a token +### Mint a token You'll need to mint at least one token for your collection to be displayed on Sphere. Once you've done that, our system will pick up your collection automatically. After minting at least one token you can check out your collection page at: ```md filename="MAINNET" sphere.market/beam/collections/{contract-address} @@ -17,7 +17,7 @@ sphere.market/beam/collections/{contract-address} testnet.sphere.market/beam-testnet/collections/{contract-address} ``` -## Become a creator +### Become a creator To edit your collection, you need to become a recognized creator on Sphere. Get flagged as a creator by one of our admins (decide which wallet address you would want to use for this and request this through the Partner Success Manager or Business Development Lead you're in contact with), and you'll have the power to edit the collections you've created. Make sure to sign up to Sphere with your desired wallet address before requesting to become a creator. @@ -27,10 +27,10 @@ To edit your collection, you need to become a recognized creator on Sphere. Get -## Edit your collection +### Edit your collection Once you've completed the first two steps, find your collections on the Collections tab of your Sphere account (that matches the wallet address you've sent to our admins). Click on the **Customize Collection** button, and easily make changes using the collection editor. -## Minimum requirements +### Minimum requirements There are a few required fields that need to be filled in before your collection can be published. You'll need to have assets for them before you can publish your collection. These are: - **Name** - **Description**: Max 200 characters for cards, 600 for pages.