littlebot
Published on 2025-04-08 / 2 Visits
0

【源码】基于Solidity和React的NFT组织与用户管理系统

项目简介

本项目是基于Solidity和React构建的NFT组织与用户管理系统。该系统将智能合约和前端应用相结合,能够实现组织和用户的创建与管理,以及NFT的铸造、燃烧等功能。同时,支持利用Moralis获取NFT信息,还能通过社交图谱展示协作关系。

项目的主要特性和功能

  1. 组织管理:可创建组织,向组织追加部署的合约地址,获取所有组织信息。
  2. NFT管理:能创建Collection,在Collection中铸造和燃烧NFT,可通过名称获取Collection地址。
  3. 用户管理:能初始化用户,为用户追加SBT的NFT信息,修改用户信息。
  4. 数据存储:采用NFTStorage存储IPFS数据,NFT格式遵循Opensea标准。
  5. 信息展示:提供Organization Profile和User Profile展示,支持点击Collection查看NFT信息。
  6. 社交图谱:通过API获取社交图谱数据,展示协作关系。

安装使用步骤

合约部署与更新

  1. 确保合约地址已更新为 0xd07ea382d9163b9930787a8f8353fb51fe16a3f4
  2. 确认 ERC721.json 文件位于 ./deploy 文件夹。
  3. 若需要测试资金,可从以下水龙头获取:
    • https://faucet.polygon.technology/
    • https://mumbaifaucet.com/
    • https://calibration-faucet.filswan.com/#/dashboard

前端使用流程

组织创建

调用 POST /api/org 接口,传入组织名称、图片和描述,使用 multipart/form-data 格式。

组织创建 Collection

  1. 调用合约的 initCollection 方法创建Collection。
  2. 调用 PUT /api/org 接口,向Organization追加部署的合约地址。
  3. 可通过 getColAddressByName 合约函数获取合约地址。

在 Collection 中 mint NFT

  1. 使用NFTStorage上传NFT数据,参考Opensea标准格式。
  2. 调用 mintNFT 函数,传入Collection名称、IPFS URI和接收地址。

信息展示

  1. 调用 GET /api/org 接口获取所有组织信息。
  2. 点击Collection,使用Moralis evm_api获取合约的NFT信息。
  3. 获取用户信息可通过Moralis的Wallet Address下的NFT过滤SBT的NFT,或调用 get_nft_metadata 输入Collection_Address + token_id。

接口使用说明

初始化 Organization

  • 请求地址:https: xxx/api/org
  • 请求方式:POST
  • 请求头:Content-Type: multipart/form-data
  • 请求参数:name(必填)、image(可选)、description(可选)

获取全部 Organizations 信息

  • 请求地址:GET https: xxx/api/org

向 Organization 追加部署的合约地址

  • 请求地址:PUT https: xxx/api/org/{orgID}
  • 请求头:Content-Type: application/json
  • 请求参数:JSON格式,可包含 projectseventsskills 等类型的合约地址信息。

初始化 User

  • 请求地址:https: xxx/api/user
  • 请求方式:POST
  • 请求头:Content-Type: multipart/form-data
  • 请求参数:name(必填)、wallet_address(必填)、bio(可选)、avatar(可选)

用户追加 SBT 的 NFT 信息

  • 请求地址:PUT https: xxx/api/user/{userID}
  • 请求头:Content-Type: JSON
  • 请求参数:JSON格式,包含 sbts 信息。

用户信息修改

  • 请求地址:PUT https: xxx/api/user/edit/{userID}
  • 请求头:Content-Type: JSON
  • 请求参数:JSON格式,可包含 namebiowallet_address 等信息。

社交图谱

通过以下API获取社交图谱数据: - GET: http://47.99.143.186/api/graph/nodes - GET: http://47.99.143.186/api/graph/edges 获取数据后,将其注入到ForceGraph.js文件的变量 edgesnodes 中。

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】