W3C home > Mailing lists > Public > public-webpayments@w3.org > March 2013

PaySwarm Alpha 6 Released

From: Manu Sporny <msporny@digitalbazaar.com>
Date: Sat, 02 Mar 2013 13:13:22 -0500
Message-ID: <51324142.2090709@digitalbazaar.com>
To: Web Payments <public-webpayments@w3.org>
PaySwarm Alpha 6 has been released. You can view the latest site on:


All systems are live and seem to be working well with the new changes to
the code base. Improvements in this version of the code base include:

Better Monetary Precision

We increased the precision on amounts in the system from 7 digits to 10
digits. Currencies like Bitcoin require 8 digits of precision; one
Satoshi is equivalent to 0.00000001 BTC. We went to 10 digits because we
wanted to support single percentage fees (like 1%) on the smallest
possible BTC transaction.

Fixes to Bank Fee Modeling

There were instances where we were not modeling the complex fees imposed
by banks and credit card networks accurately enough. For example, when
you deposit $1 into your PaySwarm financial account, you should see $1
show up in your account. There is quite a bit of math that needs to go
on behind the scenes to ensure that the total charged to a credit card
is correct. We believe that the new model works with far greater
precision than the old model.

Secure, Persistent URLs for the Web

We have co-launched a site called https://w3id.org/ for any Linked Data
applications that require a secure, long-lived, Linked Data identifier
service. You can read more about the service on the website above. The
main purpose was to have a better solution than http://purl.org/ for the
PaySwarm JSON-LD contexts, vocabularies, and general identifiers we use
in PaySwarm. There is a social contract among a number of companies that
are listed on the site that allows the management and upkeep of this
website even if one or more of the companies disappear. The site is
designed to last for decades if not a century or more.

URLs for Currencies

We have switched over to requiring URLs for all currencies. We've been
waffling on this decision for the past 2 years and finally figured out a
way to do it that doesn't negatively impact developers while ensuring a
cleaner data model. Why URLs for currencies? We want to support
alternative currencies and anybody should be able to mint a new
alternative currency by minting a new URL. So, while the data
transactions still looks like this:

  "amount": "5.00",
  "currency": "USD"

The JSON-LD above actually expands out to this when it's processed:

  "amount": "5.00",
  "currency": "https://w3id.org/currencies/USD"

We had been supporting both ISO currency codes and URLs, but that was
really just a hack. All currencies should have URLs that you can follow
that will take you to more information about that currency (like the
government in control of the currency, the current trading rates, the
currency symbol, etc). An alternative currency amount could look like this:

  "amount": "3.00",
  "currency": "https://example.com/mycurrency"

JSON-LD Updates

JSON-LD is getting ready to go into Last Call at the W3C, which means
that the features for the spec are basically done. PaySwarm uses JSON-LD
as the underlying messaging protocol for the entire system. We brought
the implementation in PaySwarm up to date with the latest JSON-LD
implementation which now passes 100% of the JSON-LD test suite.

JSON-LD Terms Everywhere

There had been complaints about the use of Compact URIs in the PaySwarm
JSON-LD data. For example, we've had markup like this for a long time now:

"type": "ps:Transaction"

We have switched away from that sort of markup to something that JSON
developers will be more familiar with:

"type": "Transaction"

Time Interval Support

More flexible time interval support has been added, allowing developers
to specify repeating events or durations using ISO 8601 durations. This
allows you to make complex statements like "I would like this budget to
refill every 3 days at 4:34pm EST up to 10 times starting from today.
Deactivate the budget on May 4th 2013 at 4:54pm EST".


Detailed change log below:

  * Add white-label brand config; use on login page.
  * Add percentage group.
  * Fix display of bank accounts/credit cards on txn pages.
  * Fix exemption payee groups for fee payees.
  * Update pricing page percentages.
  * Fix money accuracy and payee tests, fix payee rates for fees.
  * Use 10 digits of precision instead of only 7.
  * Also apply exclusive percentage to flat fees.
  * Improve confirmation help text.
  * Use inclusive merchant fee for withdrawals.
  * Improve deposit, withdrawal, and verify screens.
  * Show transaction currency.
  * Add currency to withdrawal payee.
  * Just use "API" link for REST API docs.
  * Fix verification w/o deposit currency issue.
  * Credit nezasa for iso8601-js-period.
  * Change 'usd' to 'USD'.
  * Use non-condensed table for main page transaction display.
  * Fix bugs w/budget display.
  * Switch from http://purl.org to https://w3id.org.
  * Allow never expiration to be set, fix typos.
  * Fix regex and duration syntax.
  * Fix bugs w/new budget code.
  * Separate refresh into refreshInterval and validityInterval.
  * Remove "ps" prefix.
  * Include currency in budget.
  * Add iso8601 duration parser, make budgets use iso8601 for refresh.
  * Add currency to Payee.
  * Use terms instead of CURIEs for enums.
  * Use 'com:Account' instead of 'ps:FinancialAccount'.
  * Currency, ext account, and misc updates.
  * Use new jsonld.js API for context loaders.
  * Add notes about deposit/withdrawal lag times.
  * Add merchant bank fee, change payee descriptions.
  * Update pricing page.
  * Ensure strings are passed to money functions.
  * Differentiate between incoming/outgoing external money.
  * Add maximum amount of $10 to authority transaction fee.
  * Change maximum withdrawal amount to $100.

-- manu

Manu Sporny (skype: msporny, twitter: manusporny, G+: +Manu Sporny)
Founder/CEO - Digital Bazaar, Inc.
blog: Aaron Swartz, PaySwarm, and Academic Journals
Received on Saturday, 2 March 2013 18:13:54 UTC

This archive was generated by hypermail 2.4.0 : Friday, 17 January 2020 19:07:22 UTC