구성 파일
Sugar는 에셋을 업로드하고 Candy Machine을 구성하기 위해 JSON 구성 파일을 사용합니다. 대부분의 경우 파일 이름은 config.json입니다. 구성에는 Candy Machine을 초기화하고 업데이트하는 데 사용되는 설정과 민팅할 에셋을 업로드하는 설정이 포함됩니다. 또한 민팅에 대한 접근 제어를 제공할 가드의 구성도 포함됩니다.
기본 구성 파일은 아래와 같습니다:
{
"tokenStandard": "pnft",
"number": 10,
"symbol": "TEST",
"sellerFeeBasisPoints": 500,
"isMutable": true,
"isSequential": false,
"ruleSet": "eBJLFYPxJmMGKuFwpDWkzxZeUrad92kZRC5BJLpzyT9",
"creators": [
{
"address": "PanbgtcTiZ2PveV96t2FHSffiLHXXjMuhvoabUUKKm8",
"share": 50
},
{
"address": "PanbgtcTiZ2PveV96t2FHSffiLHXXjMuhvoabUUKKm8",
"share": 50
}
],
"hiddenSettings": null,
"uploadMethod": "bundlr",
"awsConfig": null,
"pinataConfig": null,
"sdriveApiKey": null,
"guards": {
"default": {
"botTax": {
"value": 0.01,
"lastInstruction": true
}
},
"groups": [
{
"label": "OGs",
"guards": {
"startDate": {
"date": "2022-10-20 12:00:00 +0000"
},
"tokenGate": {
"amount": 1,
"mint": "7nE1GmnMmDKiycFkpHF7mKtxt356FQzVonZqBWsTWZNf"
},
"solPayment": {
"value": 1,
"destination": "PanbgtcTiZ2PveV96t2FHSffiLHXXjMuhvoabUUKKm8"
}
}
},
{
"label": "Public",
"guards": {
"startDate": {
"date": "2022-10-20 18:00:00 +0000"
},
"solPayment": {
"value": 2,
"destination": "PanbgtcTiZ2PveV96t2FHSffiLHXXjMuhvoabUUKKm8"
}
}
}
]
}
}
구성 파일은 세 가지 주요 부분으로 볼 수 있습니다: Candy Machine 설정("tokenStandard"부터 "hiddenSettings"까지), 업로드 설정("uploadMethod"부터 "sdriveApiKey"까지) 및 가드 설정("guards").
Candy Machine 설정
Candy Machine 설정은 에셋의 유형, 사용 가능한 에셋 수 및 메타데이터 정보를 결정합니다.
| 설정 | 옵션 | 값/타입 | 설명 |
|---|---|---|---|
| tokenStandard | |||
| "nft" | 대체 불가능한 에셋 (NFT) | ||
| "pnft" | 프로그래밍 가능한 대체 불가능한 에셋 (pNFT) | ||
| number | Integer | 사용 가능한 항목 수 | |
| symbol | String | NFT의 심볼을 나타내는 문자열 | |
| sellerFeeBasisPoint | Integer | 창작자가 공유하는 로열티(베이시스 포인트, 즉 550은 5.5%를 의미) | |
| isMutable | Boolean | NFT 메타데이터 계정을 업데이트할 수 있는지를 나타내는 불린 값 | |
| isSequential | Boolean | 민팅 중에 순차적 인덱스 생성을 사용할지를 나타내는 불린 값 | |
| ruleSet | Public Key | (선택사항) 민팅된 pNFT가 사용하는 규칙 세트 |
creators 설정을 사용하면 최대 4개의 주소와 그들의 백분율 지분을 지정할 수 있습니다.
| 설정 | 옵션 | 값/타입 | 설명 |
|---|---|---|---|
| creators | 최대 4명의 창작자 | 창작자 목록 및 로열티의 백분율 지분 | |
| address | Public Key | 창작자 공개 키 | |
| share | Integer | 0과 100 사이의 값 |
온체인 메타데이터는 최대 5명의 창작자를 저장하지만, Candy Machine은 창작자 중 하나로 설정됩니다. 따라서 최대 4명의 창작자만 허용됩니다.
지분 값의 합계는 100이 되어야 하며, 그렇지 않으면 오류가 발생합니다.
Candy Machine은 NFT가 민팅될 때 최종 메타데이터를 갖지 않도록 구성할 수 있습니다. 이는 민팅이 완료된 후 공개 단계를 계획할 때 유용합니다. 이 경우 숨겨진 NFT에 대한 "플레이스홀더" 메타데이터 값을 지정할 수 있습니다:
| 설정 | 옵션 | 값/타입 | 설명 |
|---|---|---|---|
| hiddenSettings | |||
| name | String | 민트의 이름($ID$ 또는 $ID+1$ 민트 인덱스 교체 변수를 사용해야 하므로 sugar reveal이 작동할 수 있음) | |
| uri | String | 민트의 URI($ID$ 또는 $ID+1$ 민트 인덱스 교체 변수를 사용할 수 있음) | |
| hash | String | 32자 해시(대부분의 경우 민트 번호와 메타데이터 간의 매핑이 있는 캐시 파일의 해시로, 민트가 완료될 때 순서를 확인할 수 있음. sugar hash를 사용하여 찾을 수 있음) |
업로드 설정
Sugar는 다양한 스토리지 공급자를 지원하며, 사용할 공급자는 uploadMethod 설정으로 정의됩니다. 공급자에 따라 추가 구성이 필요할 수 있습니다.
아래 표는 사용 가능한 설정에 대한 개요를 제공합니다:
| 설정 | 옵션 | 허용되는 값 | 설명 |
|---|---|---|---|
| uploadMethod | 이미지와 메타데이터를 업로드할 스토리지 구성 | ||
| "bundlr" | Bundlr을 사용하여 Arweave에 업로드하고 SOL로 결제 (메인넷과 데브넷 모두에서 작동; 데브넷에서는 7일 동안만 파일이 저장됨) | ||
| "aws" | Amazon Web Services (AWS)에 업로드 | ||
| "pinata" | Pinata에 업로드 (모든 네트워크에서 작동; 무료 및 계층화된 구독) | ||
| "sdrive" | SDrive Cloud Storage를 사용하여 Shadow Drive에 업로드 | ||
| awsConfig | ("aws"가 사용될 때 필수) | ||
| bucket | String | AWS 버킷 이름 | |
| profile | String | 자격 증명 파일에서 사용할 AWS 프로필 이름 | |
| directory | String | 항목을 업로드할 버킷 내의 디렉터리. 빈 문자열은 버킷 루트 디렉터리에 파일을 업로드함을 의미. | |
| pinataConfig | ("pinata"가 사용될 때 필수) | ||
| JWT | String | JWT 인증 토큰 | |
| apiGateway | String | Pinata API에 연결할 URL | |
| apiContent | String | 에셋 링크 생성의 기반으로 사용할 URL | |
| parallelLimit | Integer | 동시 업로드 수; 속도 제한을 피하기 위해 이 설정 사용 | |
| sdriveApiKey | String | SDrive API 키 ("sdrive"가 사용될 때 필수) |
특정 업로드 방법 설정:
가드 설정
guards 설정을 사용하면 Candy Machine에서 활성화될 가드를 지정할 수 있습니다.
Candy Machine은 민팅에 대한 접근 제어를 제공하는 여러 가드를 지원합니다. 가드는 "기본" 가드 그룹으로 구성되거나 여러 가드 그룹에 나타날 수 있습니다.
