...
Foundation for Interwallet Operability will build tools into its upcoming dApp (aka Dashboard) to enable:
...
Enable artists using its platform to:
Register FIO Domains and Addresses.
Sign their NFTs by mapping them to their FIO Addresses.
Rely on FIO Protocol to:
Check NFTs being listed for any other trusted signatures to confirm provenance.
Act as a provenance expert by:
Mapping any verified NFTs to their own FIO Address.
Integrate:
Using FIO Chain APIs
Using FIO Registration Site
Using upcoming dApp (aka Dashboard)
Sample UX
https://xd.adobe.com/view/4ed48848-8442-411d-bbd8-ac8c189b7183-1b87/?fullscreen
Proposed Modification to FIO Chain
New actions
addnfts
This action adds (maps) NFTs to a FIO Address. It is eligible to be paid using bundled transactions.
Request
...
Group
...
Parameter
...
Required
...
Format
...
Definition
...
fio_address
...
Yes
...
string
...
FIO Address to which to map NFTs
...
nft
...
Max 5 per call
...
nfts
...
chain_code
...
Yes
...
string
...
(1 to 10 chars), pattern: ^[A-Z0-9]+$
Chain code identifies the blockchain. For example: for Ethereum: chain_code = ETH, for BTC: chain_code = BTC. For list of chain codes you can refer to SLIP-44 and/or FIP-15.
...
nfts
...
contract_address
...
Yes
...
string
...
This is the public address of the NFT smart contract on the target blockchain.
...
nfts
...
token_id
...
Yes
...
string
...
This is the specific token ID of the NFT.
Set to empty if not relevant.
...
nfts
...
hash
...
Yes
...
string
...
sha-256 hash of the work, e.g. hash of the image.
Set to empty if not known.
...
max_fee
...
Yes
...
string
...
Maximum amount of SUFs the user is willing to pay for fee.
Should be preceded by /get_fee for correct value.
...
tpid
...
Yes
...
FIO Address of the wallet which generates this transaction.
This FIO Address will be paid 10% of the fee.
See TPID for details.
Set to empty if not know.
...
actor
...
Yes
...
string
...
See Generating actor
Example
Code Block | ||
---|---|---|
| ||
{
"fio_address": "purse@alice",
"nfts": [
{
"chain_code": "ETH",
"contract_address": "0x63c0691d05f441f42915ca6ca0a6f60d8ce148cd",
"token_id": "100010001",
"hash": "f83b5702557b1ee76d966c6bf92ae0d038cd176aaf36f86a18e2ab59e6aefa4b"
},
{
"chain_code": "EOS",
"contract_address": "atomicassets",
"token_id": "2199023271139",
"hash": "b8cb100b12807bd8a8267800477ee5ba4bd387e840bbedf02e31787ca9430bb0"
}
],
"max_fee": 0,
"tpid": "rewards@wallet",
"actor": "aftyershcu22"
} |
Response
...
Parameter
...
Format
...
Definition
...
status
...
string
...
OK
...
fee_collected
...
Int
...
Amount of SUFs collected as fee
New getters
get_nfts
...
Parameter
...
Required
...
Format
...
Definition
...
fio_address
...
No
...
string
...
FIO Address to which to map NFTs
...
chain_code
...
No
...
string
...
(1 to 10 chars), pattern: ^[A-Z0-9]+$
Chain code identifies the blockchain. For example: for Ethereum: chain_code = ETH, for BTC: chain_code = BTC. For list of chain codes you can refer to SLIP-44 and/or FIP-15.
...
contract_address
...
No
...
string
...
This is the public address of the NFT smart contract on the target blockchain.
...
token_id
...
No
...
string
...
This is the specific token ID of the NFT.
...
hash
...
No
...
string
...
sha-256 hash of the work, e.g. hash of the image.
...
limit
...
No
...
Int
...
Number of requests to return. If omitted, all requests will be returned.
...
offset
...
No
...
Int
...
First request from list to return. If omitted, 0 is assumed.
Example 1
Code Block | ||
---|---|---|
| ||
{
"fio_address": "purse@alice",
"limit": 100
} |
Example 2
Code Block | ||
---|---|---|
| ||
{
"chain_code": "EOS",
"contract_address": "atomicassets",
"token_id": "2199023271139"
} |
Example 3
Code Block | ||
---|---|---|
| ||
{
"hash": "b8cb100b12807bd8a8267800477ee5ba4bd387e840bbedf02e31787ca9430bb0"
} |
Response
...
Group
...
Parameter
...
Required
...
Format
...
Definition
...
nfts
...
fio_address
...
Yes
...
string
...
FIO Address which has the NFT mapped.
...
nfts
...
chain_code
...
Yes
...
string
...
(1 to 10 chars)
Pattern: ^[A-Z0-9]+$
Chain code identifies the blockchain. For example: for Ethereum: chain_code = ETH, for BTC: chain_code = BTC. For list of chain codes you can refer to SLIP-44 and/or FIP-15.
...
nfts
...
contract_address
...
Yes
...
string
...
This is the public address of the NFT smart contract on the target blockchain.
...
nfts
...
token_id
...
Yes
...
string
...
This is the specific token ID of the NFT.
May empty if not relevant.
...
nfts
...
hash
...
Yes
...
string
...
sha-256 hash of the work, e.g. hash of the image.
May be empty if not known.
...
nfts
...
time_stamp
...
Yes
...
string
...
Timestamp of when mapped last.
...
more
...
Yes
...
Int
...
0 - no more results 1 - more results
Example
...
language | json |
---|
...
See FIP-27: https://github.com/fioprotocol/fips/blob/master/fip-0027.md