NFT Digital Signature on unique.one
Overview
The following describes steps and required functionality for implementing NFT Digital Signature on the unique.one NFT Marketplace. See Sample UX for high-level depiction of integration. Adding, mapping and signing are used interchangeably in this document and mean the same thing.
Go-to-market
Task | Status | Owner |
---|---|---|
Modify FIO Chain (FIP-27) | @Eric Butz | |
Launch FIO dApp with NFT sign functionality | @Eric Butz | |
Integrate FIO NFT Signatures on unique.one | BACKLOG | Unique.one |
Launch marketing |
| @Kaitie Zhee |
Required Functionality
Sequence diagram
FIO Chain
FIO Chain will need to be modified to create actions for mapping (“signing”) NFTs.
FIO Dashboard
Support inbound redirect url
FIO Dashboard will need to be modified to enable passing of unique parameters in the url so that the NFT signing user experience can be streamlined.
Request
Parameter | Required | Format | Description |
---|---|---|---|
action | Yes | String | Identifies action FIO Dashboard should trigger: addnft - will guide the user to add nft to their FIO Address |
partner_id | Yes | String | Identifies partner sending the redirect. Will be assigned by FIO. |
payload | Yes | String | Encrypted json payload, see below. |
Inbound encrypted payload
Encryption to be determined in development.
Parameter | Required | Format | Description |
---|---|---|---|
chain_code | Yes | String. See add_nft request. | Identifies the chain where NFT exists, e.g. ETH or BSC. |
contract_address | Yes | String. See add_nft request. | Identifies contract address where NFT exists. |
token_id | No | String. See add_nft request. | Identifies specific token ID of NFT (if applicable). |
tracking_id | Yes | String | Identifies unique user session. Will be echoed back. |
redirect_url | No | String | Url of where to redirect the user after NFT is added. See Support outbound redirect url. |
Support outbound redirect url
In addnft encrypted payload partner will be able to specify a url where the user will be redirected upon completing the action. If url is specified, the following encrypted payload will be attached to the url:
Outbound encrypted payload
Encryption to be determined in development.
Parameter | Required | Format | Description |
---|---|---|---|
chain_code | Yes | String. See add_nft request. | Identifies the chain where NFT exists, e.g. ETH or BSC. |
contract_address | Yes | String. See add_nft request. | Identifies contract address where NFT exists. |
token_id | No | String. See add_nft request. | Identifies specific token ID of NFT (if applicable). |
tracking_id | Yes | String | Identifies unique user session. |
fio_address | Yes | String | FIO Address the user has registered and successfully linked with the NFT. |
FIO Dashboard Partner API
Partner will also be able to fetch the Outbound encrypted payload by querying FIO Dashboard API with a unique tracking_id
API Request
Parameter | Required | Format | Description |
---|---|---|---|
tracking_id | Yes | String | Identifies unique user session. |
API Response
Parameter | Required | Format | Description |
---|---|---|---|
payload | Yes | String | See Outbound encrypted payload above. |
Add NFT
Ability to add (“sign”) NFT will be added to FIO Dashboard for all users. Information collected:
Chain code
Contract address
Token ID
NFT Metadata will be pulled and displayed for supported chains (ETH, BSC, XDAI).
If NFT has an attached image, it will be displayed
Unique behavior of FIO Dashboard
Payload will be stored server-side by FIO Dashboard
User will be contained to a landing page
User will be required to log-in or create account
User will be required to pick existing FIO Address to sign with or register a new one
Domains to show will be linked to partner_id
Upon picking/registering FIO Address, user will be redirected to confirm NFT addition with all relevant information pre-populated and not changeable.
Upon adding the NFT, and if redirect_url has been provided, the user will be redirected and encrypted payload will be attached.
Ability to display NFT Digital signatures
From FIO Address
User will be able to enter FIO Address and all signed NFTs will be displayed.
From NFT Data
User will be able to enter any one of the following and list of FIO Addresses which have signed this NFT will be displayed:
NFT chain_code, contract_address, token_id
NFT url
NFT hash
Via url
FIO Address or NFT Data could also be passed in via the url, in which case the results will be immediately displayed.
Unique.one
Unique.one will need to implement the following:
Support for redirect from within Unique.one flow to the FIO Dashboard with parameters as described in Inbound redirect url above.
Support the ability to fetch Outbound encrypted payload using FIO Dashboard Partner API.
Support ability to attach FIO Address to NFTs and user profile.
Support ability to link out to FIO Dashboard to display signatures.
See Sample UX for high-level depiction of integration.