项目简介
本项目是基于Solidity和React构建的NFT组织与用户管理系统。该系统将智能合约和前端应用相结合,能够实现组织和用户的创建与管理,以及NFT的铸造、燃烧等功能。同时,支持利用Moralis获取NFT信息,还能通过社交图谱展示协作关系。
项目的主要特性和功能
- 组织管理:可创建组织,向组织追加部署的合约地址,获取所有组织信息。
- NFT管理:能创建Collection,在Collection中铸造和燃烧NFT,可通过名称获取Collection地址。
- 用户管理:能初始化用户,为用户追加SBT的NFT信息,修改用户信息。
- 数据存储:采用NFTStorage存储IPFS数据,NFT格式遵循Opensea标准。
- 信息展示:提供Organization Profile和User Profile展示,支持点击Collection查看NFT信息。
- 社交图谱:通过API获取社交图谱数据,展示协作关系。
安装使用步骤
合约部署与更新
- 确保合约地址已更新为
0xd07ea382d9163b9930787a8f8353fb51fe16a3f4
。 - 确认
ERC721.json
文件位于./deploy
文件夹。 - 若需要测试资金,可从以下水龙头获取:
- https://faucet.polygon.technology/
- https://mumbaifaucet.com/
- https://calibration-faucet.filswan.com/#/dashboard
前端使用流程
组织创建
调用 POST /api/org 接口,传入组织名称、图片和描述,使用 multipart/form-data
格式。
组织创建 Collection
- 调用合约的
initCollection
方法创建Collection。 - 调用 PUT /api/org 接口,向Organization追加部署的合约地址。
- 可通过
getColAddressByName
合约函数获取合约地址。
在 Collection 中 mint NFT
- 使用NFTStorage上传NFT数据,参考Opensea标准格式。
- 调用
mintNFT
函数,传入Collection名称、IPFS URI和接收地址。
信息展示
- 调用 GET /api/org 接口获取所有组织信息。
- 点击Collection,使用Moralis evm_api获取合约的NFT信息。
- 获取用户信息可通过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格式,可包含
projects
、events
、skills
等类型的合约地址信息。
初始化 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格式,可包含
name
、bio
、wallet_address
等信息。
社交图谱
通过以下API获取社交图谱数据:
- GET: http://47.99.143.186/api/graph/nodes
- GET: http://47.99.143.186/api/graph/edges
获取数据后,将其注入到ForceGraph.js文件的变量 edges
和 nodes
中。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】