Skip to content

MinterTeam/minter-link-protocol

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 

Repository files navigation

Minter Link Protocol

It describes how to represent transaction data into a simple link, which can be easily consumed by user as a link or as QR. Then link is being processed by bip.to web app or any associated mobile app. App retrieves data from the link, generate valid transaction using logged user's private key and send it.

So everything a user needs to do to send a transaction is to click on the link or scan QR code.

Example: https://bip.to/tx/-DsEqumKTVBSTwAAAAAAAIiKxyMEiegAAIpCSVAAAAAAAAAAiQFa8deLWMQAAItIZWxsbyBXb3JsZICAgA

  • https://bip.to - URL
  • tx/{data} - action

URL params

type Data struct {  
  Type      byte
  Data      []byte
  Payload   []byte
  Nonce     *uint64  `rlp:"nilList"`  // optional, client app can autofill it
  GasPrice  *uint8   `rlp:"nilList"`  // optional, client app can autofill it
  GasCoin   *uint32  `rlp:"nilList"`  // optional, client app can autofill it
}

Data field is the same as Data of Minter transaction. It is described in the docs

Query params

  • p={password} - password of the check. base64url-encoded bytes array. If you want to make reedeem check link and you don't know address of recipient than you can't make check's proof. In this case you can leave Proof field empty and pass raw password in this param.

Example: https://bip.to/tx/-LEJ...AgIA?p=MTIz

Native app implementation notes

Native wallet app should be associated with bip.to website with Universal/App Links protocol;

SDK implementation notes

Optional fields should be kept in the RLP structure but may have value of empty list [ 0xc0 ]. SDK should accept null or omitted values for optional field from users. SDK should not force users to pass empty arrays if users want to mark field as empty.