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

Task

Status

Owner

Modify FIO Chain (FIP-27)

https://fioprotocol.atlassian.net/browse/BD-2569

@Eric Butz

Launch FIO dApp with NFT sign functionality

https://fioprotocol.atlassian.net/browse/WP-90

@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.

See FIP-27 for details.

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

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

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

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

Parameter

Required

Format

Description

tracking_id

Yes

String

Identifies unique user session.

API Response

Parameter

Required

Format

Description

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.