interledger application/ setup protocols
TRANSCRIPT
Interledger
Adrian Hope-Bailie
Application/Setup Protocols and W3C Web Payments
address: "us.wf.bob"amount: "1023.20"expiry: "2016-07-06T09:00:10Z"condition: "cc:0:3:4a7DEpj8f9..."
All you need to ILP is...
Setting up an Interledger payment requires a few steps:
● DiscoveryResolve and discover receiver’s ILP address and any ledger services using receiver’s account identifier
● QueryQuery receiving ledger services to get currency, precision etc
● QuoteGet a quote from the network
● SetupPrepare the ILP packet (get condition etc)
Setup/Application protocols define these steps
● DiscoveryResolve and discover receiver’s ILP address and any ledger services using receiver’s account identifier
● QueryQuery receiving ledger services to get currency, precision etc
● QuoteGet a quote from the network
● SetupPrepare the ILP packet (get condition etc)
The “Simple Payment Setup Protocol”
● DiscoveryUse WebFinger to resolve account@ledger identifiers
● QueryStandard Web APIs for getting receiver info
● QuoteGet a quote from the network
● SetupStandard Web API for getting a condition from the receiver
The “Passive Payment Setup Protocol”
● DiscoveryAccount registry provides ILP address and receiver’s public key
● QueryStandard Web APIs for getting ledger info from central service/from ledger
● QuoteGet a quote from the network
● SetupCondition based on receiver’s public key
address: "<common ledger?>"amount: "<well-known precision>"expiry: "2016-07-06T09:00:10Z"condition: "<public key - based>"
What about other use cases
address: "bitcoin.145b3dEskk1a7U..."amount: "0.00000123"expiry: "2016-07-06T09:00:10Z"condition: "<tx confirmed on chain>"
Crypto-currency ledgers as receivers?
Web PaymentsA standard for initiating payments on the Web
10
A standard for payment initiation on the Web
● Browser API to initiate a Payment Request
var payment = new PaymentRequest(...);
● Browser API to register Payment Apps
PaymentApp.register(..);
● Payment Methods define the request and response format
11
Other work in development...
● HTTP API to initiate a Payment Request via HTTP
GET /movies/dr-strangelove HTTP/1.1
Host: videos.example.com
Date: Tue, 07 Jun 2017 21:31:35 GMT
HTTP/1.1 402 Payment Required
Date: Tue, 07 Jun 2017 21:31:36 GMT
Location: https://videos.example.com/payment-requests/dr-strangelove
● Payment Method Specifications for card payments, Bitcoin, SEPA
Credit Transfers and Direct Debits, Alipay, Interledger?
A Payment Request
12
[
{
supportedMethods: ["visa","mastercard"],
},
{
supportedMethods: ["bitcoin"],
data: {
receiver: "145b3dEskk1a7Uw4gWBdpa8NFEwbfz2MgT",
}
},
{
supportedMethods: ["interledger/spsp"],
data: {
receiver: "[email protected]",
}
}
{
supportedMethods: ["interledger/ppsp"],
data: {
receiver: "us.wf/bob",
publicKey: "https://bob.com/keys/27",
}
}
]
Benefits of Interledger + Payment Request
13
● Autonomous payments and the Internet of Things○ Massive increase in global payments volume○ Financial incentives driving new behaviour
● Micropayments-based business models ○ Goodbye advertising and DRM○ Privacy and convenience… together
● Personal ledgers
Q&A