TGViewer
Из Solidity в AI и дальше Из Solidity в AI и дальше @solidityset · 2.47K subscribers
Post #334 145
Создание soulbound NFT. Часть 3

Далее идет наш контракт UniversityDegree is ERC721URIStorage.

Создаем переменную owner и два mapping: personToDegree, со сиском тех, кто получил свой токен, issuedDegrees, для проверки был ли выдан токен данному пользователю.

Подключаем библиотеку Counters для отслеживания новой переменной _tokenIds.

Незабываем про модификатор onlyOwner. А также в конструкторе передаем имя токена и его символ в контракт ERC721.

Функция checkDegreeOfPerson() возвращает токен пользователя, а issueDegree() добавляет пользователя к исполненным выдачам.

Функция claimDegree() позволяет пользователю забирать свои NFT. Она проверяет был ли уже ранее выдан токен, увеличивает id нового токена, минтит NFT и прикрепляет к нему ссылку, а также прикрепляет данный NFT к пользователю и добавляет его в issuedDegrees.

Достаточно простой контракт. Однако, где же здесь souldbound? На вид представлено достойное создание обычного NFT. А вся соль в следующем.

В стандарте ERC721 есть функция safeTransferFrom(), которая и отвечает за возможность передачи NFT другим пользователям. Удалив ее, мы фактически сделаем NFT привязанным к конкретному адресу.

Этот контракт можно сразу поместить в Ремикс и задеплоить. Я бы еще порекомендовал удалить все комментарии автора.

Когда будете сами экспериментировать с данным контрактом, то не забудьте изменить имя и символ токена на свои, а также при запросе токена в функции claimDegree() указать ссылку на картинку своего NFT.

Как быстро загрузить картинку для NFT в IPFS, я расскажу в следующем посте. 

#soulbound #nft #token
  • 👍 1
More from @solidityset
  1. Oct 15, 2026Немного новостей про Core Solidity Команда Solidity опубликовала обновление о разработке C…
  2. Oct 8, 2026Промо видео для SaaS и других ваших проектов Хочу поделить с вами одним из своих открытий…
  3. Oct 8, 2026video post
  4. Oct 2, 2026Вторая сложность — как доказать, что установилось именно опубликованное. В первом варианте…
  5. Oct 2, 2026Задача с полуоткрытым кодом На днях, в процессе создания одного приложения, столкнулся с и…
  6. Sep 22, 2026Какой язык программирования учить сейчас? На днях в Твиттере увидел небольшой пост о разви…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →