Handles Personalization Background Creator Defaults
Full schema with commented examples:
{
bg_border_colors: byte[]; // [0a1fd3ff, 22d1af88, 31bc2399],
bg_colors: byte[]; // [0a1fd3ff, 22d1af88, 31bc2399],
circuit_colors: byte[]; // [0a1fd3ff, 22d1af88, 31bc2399],
pfp_border_colors: byte[]; // [0a1fd3, 22d1af, 31bc23],
text_ribbon_colors: byte[]; // [0a1fd3, 22d1af, 31bc23],
text_ribbon_gradient: (E*) string; // '' | 'linear-45' | 'radial'
font: (E*) string; // 'https://fonts.com/super_cool_font.woff';
font_color: (E*) byte; // 0a1fd3,
font_shadow_colors: byte[]; // [0a1fd3, 22d1af, 31bc23],
font_shadow_size: number[]; // [12, 10, 8]
socials_color: byte; // 0a1fd3,
qr_bg_color: (E*) string; // 22d1af;
qr_inner_eye: (E*) string; // 'rounded,#0a1fd3';
qr_outer_eye: (E*) string; // 'square,#0a1fd3';
qr_dot: (E*) string; // 'dot,#0a1fd3';
qr_image: (E*) string; // 'https://example.com/110x110.svg'; // SVG recommended, but any supported
require_asset_collections: (E*) byte[]; // [, ],
require_asset_attributes: (E*) string[]; // ["Outerwear:Denim Jacket", "Other:Attribute"],
require_asset_displayed: (E*) int; // 0=false, 1=true;
pfp_zoom: number; // 120;
pfp_offset: number[]; // [124, 58],
price: number; // 125;
custom_dollar_symbol: (E*) int; // 0=false, 1=true;
force_creator_settings: int; // 0=false, 1=true;
}
- For all background images and default settings, we ask that the Handles brand is "tastefully preserved" and that we get a chance to give feedback in that regard.
- None of the above properties are required. Absence of a property allows the user to select the value for that property via the UX.
- All colors support an alpha channel.
- For color options with multiple values, if there is only one color in the array, the user will not see any color controls. For more than one color, the user can select one of the provided colors.
- The first color in an array will be the default.
- Using the above three points, you can force a color to be “off” or “invisible” (effectively disabling it) by providing a single value that is fully transparent.
- As colors are already using a hex syntax, they don’t need to be hex encoded like a string. The exceptions are the `qr_…` properties as they are combined with the dot style as a string and should be a hash symbol.
- Properties marked with an (E*) are Exclusive to NFT creators. We don’t provide the user a way to edit that particular feature in the UX and they only get it because you provided it for them. A special perk of selecting your brand!
-bg_border_colors:
byte[];
// [0a1fd3ff, 22d1af88, 31bc2399]
The color of the border surrounding the entire Handle.
-bg_colors:
byte[];
// [0a1fd3ff, 22d1af88, 31bc2399]
The color of the background behind your image (in the case where your image has transparency).
-circuit_colors:
byte[];
// [0a1fd3ff, 22d1af88, 31bc2399]
The color of the circuit design in the default Handle imagery (in the case where your image has transparency). Apply full transparency in this setting to effectively hide the circuits altogether.
-pfp_border_colors:
byte[];
// [0a1fd3ff, 22d1af88, 31bc2399]
The color of the border surrounding just the PFP image. Color must not hide the Handle name.
-text_ribbon_colors:
byte[];
// [0a1fd3ff, 22d1af88, 31bc2399]
If visible, the color of the ribbon behind the Handle name. Color must not hide the Handle name.
-text_ribbon_gradient:
(E*) string;
// 'none' | 'linear-45' | 'radial'
If set to a value other than ‘none’, this modifies the behavior of text_ribbon_colors. Instead of displaying color options to select, the text ribbon will have a gradient that is evenly distributed between the colors in the array. The ‘linear’ option requires a “degrees” component. For example ‘linear-0’ will be a left-to-right gradient. ‘linear-90’ will be a top-down gradient. ‘radial’ will start from the center and move outward- again with an evenly disturbed gradient across the provided colors. Hint: to extend one of the colors further, simply provide it more than once in the list.
-font:
(E*) string;
// 'https://fonts.com/super_cool_font.woff'
The URL to download the font from. Only unambiguous fonts are allowed. The following alphanumerics must be distinguishable from all others in the list: 0 O o 1 I i L l J j T t 2 z Z 5 s S 8 B b
-font_color:
(E*) byte;
// 0a1fd3ff
The color of the font. Font color must not hide the Handle name.
-font_shadow_colors:
byte[];
// [0a1fd3ff, 22d1af88, 31bc2399]
The color of the drop shadow for the font.
-font_shadow_size:
number[];
// [12, 10, 8]
The horizontal, vertical, and blur pixel lengths- respectively. Calculated at a 2048x2048 Handle image.
-socials_color:
byte;
// 0a1fd3ff
The color of the font text in the bottom left of the image (if displayed). It defaults to the font_color if not set.
-qr_bg_color:
(E*) byte;
// 0a1fd3ff
The color of the QR code background. (Note: this is a single color, not an array)
-qr_inner_eye:
(E*) string;
// 'rounded,#0a1fd3'
A string with a comma separating the style from the color. This is the inner part of the “alignment eyes” located in the corners of the QR code. Intended to be used with qr_outer_eye below. Style options are ‘dots’, ‘square’, and ‘rounded’.
-qr_outer_eye:
(E*) string;
// 'square,#0a1fd3'
A string with a comma separating the style from the color. This is the outer border of the “alignment eyes” located in the corners of the QR code. Intended to be used with qr_inner_eye above. Style options are ‘dots’, ‘square’, and ‘rounded’.
-qr_dot:
(E*) string;
// 'dots,#0a1fd3'
A string with a comma separating the style from the color. This property represents the dots that make up the data of the QR code. Style options are ‘dots’, ‘square’, and ‘rounded’.
-qr_image:
(E*) string;
// 'https://example.com/110x110.svg'
SVG recommended, but any supported The URL to a small icon to put in the center of the QR code. Recommended resolution: 110 x 110. Recommended format: SVG
-require_asset_collections:
byte[];
// [
This enables the ability to require a wallet to contain an asset from this policy and optionally starts with an
-require_asset_attributes:
string[];
// ["Outerwear:Denim Jacket", "Other:Attribute"]
This enables the ability to require a wallet to contain an asset that has a CIP-0025 or CIP-0068 NFT attribute that matches the key:value. This would usually be combined with the above require_asset_collections. We will first consider metadata/datum attributes located in an ‘attributes’ map. If not located there, we will look for any key:value match on the root of the metadata/datum. This is similar to the way CNFT marketplaces filter attributes. Multiple values are treated as an And/All match. Note: For CIP-0025 PFP NFTs, we can only validate in the front-end and back-end off-chain code. We cannot validate CIP-0025 data in the smart contract.
-require_asset_displayed:
int;
// 0=false, 1=true
Intended to be combined with the above two settings. If enabled, the user also has to select the asset to be displayed on their Handle (not just present in their wallet).
-pfp_zoom:
number;
// 120
The Handle Designer is optimized for a 2048x2048 pixel Handle image. This puts the PFP display circle at a 576px diameter. PFPs will be resized to this size. If not square, the smaller PFP dimension (of width and height) will be resized to 576px and the other dimension resized proportionally. The center of the PFP will be centered on the display circle. From that point, the PFP can be zoomed in with an integer greater than 100. The integer represents the percentage zoom. A number less than 100 isn’t possible since the PFP is already sized down to fit the circle.
-pfp_offset:
number[];
// [124, 58]
The Handle Designer is optimized for a 2048x2048 pixel Handle image. This puts the PFP display circle at a 576px diameter. PFPs will be resized to this size. If not square, the smaller PFP dimension (of width and height) will be resized to 576px and the other dimension resized proportionally. The center of the PFP will be centered on the display circle. From that point, the PFP can be offset by x pixels horizontally and y pixels vertically. Use negative numbers to move the opposite direction.
-price:
number;
// 125
If included, we will display the price to purchase the background in the UX if the user doesn’t already own the token. During “checkout”, we will direct the user to your minting engine to have the background minted and we will wait at that checkout step until we confirm it has arrived in the wallet.
-custom_dollar_symbol:
(E*) int;
// 0=false, 1=true
If your background already includes a stylized dollar symbol in the top right, please set the property to ‘true’ so our system knows to disable our default dollar symbol.
-force_creator_settings:
int;
// 0=false, 1=true
Most of the above settings are intended to help the user create a Handle that represents both your brand and the Handle brand well. However, we do give the user the ability to toggle all of these “Creator Settings” on or off to give the user the option to use their own settings. If it is essential to your brand that it stays consistent and you don’t want to provide the user a way to use their own settings, then you can force that toggle to be disabled. Note: the toggle has no effect on the properties that begin with “require_asset” and the ”custom_dollar_symbol” property. These will always be respected.