Candy Machine은(는) 지원이 중단되어 더 이상 적극적으로 유지 관리되지 않습니다. 대신 Core Candy Machine 사용을 권장합니다.

구성 파일

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