이 섹션에서는 프로토콜 컨트랙트에 대해 간단히 살펴본 다음, 프로토콜 위에 구축을 시작하는 방법을 안내해 드리겠습니다. 아직 전체 아키텍처에 익숙하지 않다면, 먼저 Architecture Overview 섹션을 살펴보는 것을 추천합니다.

스마트 컨트랙트 튜토리얼

완성된 코드

튜토리얼을 건너뛰고 완성된 코드를 보세요. README 지침을 따라 테스트를 실행하거나 /test 폴더를 보면 모든 예제 계약을 볼 수 있습니다.

처음부터 설정하고 싶다면, 다음 튜토리얼을 계속 진행하세요. 시작은 Setup Your Own Project 단계부터입니다.

우리의 스마트 계약

현재 버전에서 우리의 Proof-of-Creativity 프로토콜은 모든 EVM 체인과 호환되며 Solidity로 작성된 스마트 계약 세트로 구성되어 있습니다. 개발자로서 상호 작용할 수 있는 두 개의 저장소가 있습니다:

  • Story Protocol Core - 이 저장소는 핵심 프로토콜 로직을 포함하고 있으며, 얇은 IP 레지스트리(IP Asset Registry), 일련의 Modules로 구성되어 있으며 Licensing, Royalty, Dispute, 메타데이터, 그리고 모듈 및 사용자 접근 제어를 관리하기 위한 모듈 관리자를 포함합니다.
  • Story Protocol Periphery- 핵심 계약이 기본 프로토콜 로직을 다루는 반면, 주변 계약은 UX를 크게 향상시키고 IPA 관리를 단순화하는 프로토콜 확장을 다룹니다. 이는 주로 SPG를 통해 처리됩니다.

Story에서 계약 배포 및 검증

계약을 배포하고 검증하는 방법은 Blockscout 공식 문서에서 가져왔습니다.

배포 직후 Blockscout으로 계약을 검증하세요 (Blockscout 홈페이지 탐색기 URL 끝에 “/api/“를 추가해야 합니다):

forge create \
  --rpc-url <rpc_https_endpoint> \
  --private-key $PRIVATE_KEY \
  <contract_file>:<contract_name> \
  --verify \
  --verifier blockscout \
  --verifier-url <blockscout_homepage_explorer_url>/api/

또는 foundry 스크립트를 사용하는 경우:

forge script <script_file> \
  --rpc-url <rpc_https_endpoint> \
  --private-key $PRIVATE_KEY \
  --broadcast \
  --verify \
  --verifier blockscout \
  --verifier-url <blockscout_homepage_explorer_url>/api/

의사 난수성을 위해 RANDAO를 사용하지 마세요. 대신 온체인 VRF(Pyth 또는 Gelato)를 사용하세요. 현재 RANDAO 값은 부모 블록 해시로 설정되어 있어 X-1 블록에 대해 무작위가 아닙니다.