Story Protocol Gateway(SPG)๋Š” ์šฐ๋ฆฌ ํ”„๋กœํ† ์ฝœ์— ๋ฐฐํฌ๋œ ์ฃผ๋ณ€๋ถ€/์œ ํ‹ธ๋ฆฌํ‹ฐ ์Šค๋งˆํŠธ ๊ณ„์•ฝ ๊ทธ๋ฃน์œผ๋กœ ๋…๋ฆฝ์ ์ธ ์ž‘์—…๋“ค์„ ๊ฒฐํ•ฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค๋‹ˆ๋‹ค - ์˜ˆ๋ฅผ ๋“ค์–ด ๐Ÿงฉ IP Asset์„ ๋“ฑ๋กํ•˜๊ณ  ํ•ด๋‹น IP Asset์— License Terms๋ฅผ ์ฒจ๋ถ€ํ•˜๋Š” ๊ฒƒ - ์„ ํ•˜๋‚˜์˜ ํŠธ๋žœ์žญ์…˜์œผ๋กœ ๊ฒฐํ•ฉํ•˜์—ฌ ์‚ฌ์šฉ์ž์˜ ํŽธ์˜์„ฑ์„ ๋†’์ž…๋‹ˆ๋‹ค.

์ด๋Š” ์ฃผ๋กœ ์šฐ๋ฆฌ์˜ SDK๋ฅผ ๋” ์‰ฝ๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ฐœ๋ฐœ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด, ์ด๊ฒƒ์€ mintAndRegisterIpAndAttachPILTerms SPG์˜ ํ•จ์ˆ˜ ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค (๋” ๊ตฌ์ฒด์ ์œผ๋กœ๋Š” LicenseAttachmentWorkflows.sol์— ์žˆ์Šต๋‹ˆ๋‹ค) ์ด๋ฅผ ํ†ตํ•ด NFT๋ฅผ ๋ฐœํ–‰ํ•˜๊ณ , IP Asset์œผ๋กœ ๋“ฑ๋กํ•˜๊ณ , ํ•œ ๋ฒˆ์˜ ํ˜ธ์ถœ๋กœ License Terms๋ฅผ ์ฒจ๋ถ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:

LicenseAttachmentWorkflows.sol
function mintAndRegisterIpAndAttachPILTerms(
  address spgNftContract,
  address recipient,
  WorkflowStructs.IPMetadata calldata ipMetadata,
  WorkflowStructs.LicenseTermsData[] calldata licenseTermsData,
  bool allowDuplicates
) external onlyMintAuthorized(spgNftContract) returns (address ipId, uint256 tokenId, uint256[] memory licenseTermsIds)

์ง€์›๋˜๋Š” ๋ชจ๋“  ์›Œํฌํ”Œ๋กœ์šฐ

์œ„์—์„œ ์–ธ๊ธ‰ํ–ˆ๋“ฏ์ด, ์šฐ๋ฆฌ๋Š” ์—ฌ๋Ÿฌ ๊ธฐ๋Šฅ์„ ํ•˜๋‚˜๋กœ ๊ฒฐํ•ฉํ•œ ๋‹ค์–‘ํ•œ ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๋“ค์„ ๋‹ค๋ฅธ ๊ทธ๋ฃน์œผ๋กœ ๋ถ„๋ฅ˜ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ทธ๋ฃน๋“ค์„ โ€œ์›Œํฌํ”Œ๋กœ์šฐโ€๋ผ๊ณ  ๋ถ€๋ฆ…๋‹ˆ๋‹ค.

ํ˜ธ์ถœ ์ผ๊ด„ ์ฒ˜๋ฆฌ

SPG์—๋Š” mintAndRegisterIpAndAttachPILTerms, registerIpAndAttachPILTerms, ๊ทธ๋ฆฌ๊ณ  ๋” ๋งŽ์€ ํ•จ์ˆ˜๋“ค์ด ํฌํ•จ๋˜์–ด ์žˆ์ง€๋งŒ, IP Asset๊ณผ์˜ ๋ชจ๋“  ๊ฐ€๋Šฅํ•œ ์ƒํ˜ธ์ž‘์šฉ ์กฐํ•ฉ์„ ๊ณ ๋ คํ•˜์—ฌ ๊ณ„์†ํ•ด์„œ ๊ณ„์•ฝ์„ ์—…๋ฐ์ดํŠธํ•˜๋Š” ๊ฒƒ์€ ๋ฒˆ๊ฑฐ๋กœ์šธ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋Œ€์‹ , ์šฐ๋ฆฌ๋Š” ์›ํ•˜๋Š” ๋Œ€๋กœ ํŠธ๋žœ์žญ์…˜์„ ์ผ๊ด„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” โ€œMulticallโ€ ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ํ—ˆ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค. ์ž์„ธํ•œ ์ •๋ณด๋Š” ํ•จ์ˆ˜ ํ˜ธ์ถœ ์ผ๊ด„ ์ฒ˜๋ฆฌ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.