구성 파일

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)
numberInteger사용 가능한 항목 수
symbolStringNFT의 심볼을 나타내는 문자열
sellerFeeBasisPointInteger창작자가 공유하는 로열티(베이시스 포인트, 즉 550은 5.5%를 의미)
isMutableBooleanNFT 메타데이터 계정을 업데이트할 수 있는지를 나타내는 불린 값
isSequentialBoolean민팅 중에 순차적 인덱스 생성을 사용할지를 나타내는 불린 값
ruleSetPublic Key(선택사항) 민팅된 pNFT가 사용하는 규칙 세트

creators 설정을 사용하면 최대 4개의 주소와 그들의 백분율 지분을 지정할 수 있습니다.

설정옵션값/타입설명
creators최대 4명의 창작자창작자 목록 및 로열티의 백분율 지분
addressPublic Key창작자 공개 키
shareInteger0100 사이의 값

온체인 메타데이터는 최대 5명의 창작자를 저장하지만, Candy Machine은 창작자 중 하나로 설정됩니다. 따라서 최대 4명의 창작자만 허용됩니다.

지분 값의 합계는 100이 되어야 하며, 그렇지 않으면 오류가 발생합니다.

Candy Machine은 NFT가 민팅될 때 최종 메타데이터를 갖지 않도록 구성할 수 있습니다. 이는 민팅이 완료된 후 공개 단계를 계획할 때 유용합니다. 이 경우 숨겨진 NFT에 대한 "플레이스홀더" 메타데이터 값을 지정할 수 있습니다:

설정옵션값/타입설명
hiddenSettings
nameString민트의 이름($ID$ 또는 $ID+1$ 민트 인덱스 교체 변수를 사용해야 하므로 sugar reveal이 작동할 수 있음)
uriString민트의 URI($ID$ 또는 $ID+1$ 민트 인덱스 교체 변수를 사용할 수 있음)
hashString32자 해시(대부분의 경우 민트 번호와 메타데이터 간의 매핑이 있는 캐시 파일의 해시로, 민트가 완료될 때 순서를 확인할 수 있음. 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"가 사용될 때 필수)
bucketStringAWS 버킷 이름
profileString자격 증명 파일에서 사용할 AWS 프로필 이름
directoryString항목을 업로드할 버킷 내의 디렉터리. 빈 문자열은 버킷 루트 디렉터리에 파일을 업로드함을 의미.
pinataConfig("pinata"가 사용될 때 필수)
JWTStringJWT 인증 토큰
apiGatewayStringPinata API에 연결할 URL
apiContentString에셋 링크 생성의 기반으로 사용할 URL
parallelLimitInteger동시 업로드 수; 속도 제한을 피하기 위해 이 설정 사용
sdriveApiKeyStringSDrive API 키 ("sdrive"가 사용될 때 필수)

특정 업로드 방법 설정:

가드 설정

guards 설정을 사용하면 Candy Machine에서 활성화될 가드를 지정할 수 있습니다.

Candy Machine은 민팅에 대한 접근 제어를 제공하는 여러 가드를 지원합니다. 가드는 "기본" 가드 그룹으로 구성되거나 여러 가드 그룹에 나타날 수 있습니다.