Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

EIP 1337 -- Subscriptions on the blockchain. #1337

Closed
wants to merge 10 commits into from

Conversation

owocki
Copy link
Contributor

@owocki owocki commented Aug 18, 2018

What

This is a PR that contains the Pending standard for recurring payments on the blockchain (subscriptions) coming from the ERC 948 Working Group

Why

Monthly subscriptions are a key monetization channel for legacy web, and arguably they are the most healthy monetization channel for businesses on the legacy web (especially when compared to ad/surveillance) based models. They are arguably more healthy than a token based economic system (depending upon the vesting model of the ICO) because

For a user:

  • you don't have to read a complex whitepaper to use a dapps utility (as opposed to utility tokens)
  • you don't have to understand the founder's vesting schedules
  • you can cancel anytime

For a dapp founder:

  • since you know your subscriber numbers, churn numbers, conversion rate, you get consistent cash flow
  • you get to focus on making your customers happy (as opposed to having two actors: speculators & users)

For these reasons, we think it's worth creating a standard way to do 'subscriptions' on Ethereum.

Abstract

A standardized interface for recurring subscriptions on the blockchain.

How / Logistics

This PR is not ready to be merged yet. It will be updated as the working group comes to consensus on the EIP standard.

Further Reading

Copy link

@ghost ghost left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please check your EIP for right format 😂

@owocki owocki changed the title ERC 948, EIP 1337 -- Subscriptions on the blockchain. WIP - ERC 948, EIP 1337 -- Subscriptions on the blockchain. Aug 23, 2018
@owocki
Copy link
Contributor Author

owocki commented Aug 23, 2018

thanks; we're iterating towards that. PR is still WIP

@Arachnid
Copy link
Contributor

Please open a new PR when it's ready for review.

@Arachnid Arachnid closed this Aug 28, 2018
@owocki owocki changed the title WIP - ERC 948, EIP 1337 -- Subscriptions on the blockchain. ERC 948, EIP 1337 -- Subscriptions on the blockchain. Aug 30, 2018
@owocki
Copy link
Contributor Author

owocki commented Aug 30, 2018

Hey @Arachnid , we just updated the repo to no longer be WIP at EthereumOpenSubscriptions@978b0b5 . would you please re-open this PR? the working group is set on marketing this EIP as 1337, so we would strongly prefer to use this PR if it's all the same to you.

Thanks, 🙏
Kevin

nathantr and others added 2 commits August 30, 2018 07:57
@Arachnid Arachnid reopened this Sep 13, 2018
@austintgriffith
Copy link

My first POC for 1337 is an ultra simple model. Essentially we use a replayable nonce to allow meta transactions to recur. Subscribers sign a single transaction then, they use the ERC20 allow() standard to control the flow of the subscription; they can pause or start at any time. https://github.com/austintgriffith/token-subscription

@austintgriffith
Copy link

The next POC for 1337 was a more advanced system. We wanted a BYOC (bring your own contract) model where subscribers would deploy an identity proxy to transact through: https://github.com/austintgriffith/delegated-execution-subscriptions

@austintgriffith
Copy link

Our contract is now starting to really solidify and we are getting more eyes on it. We have it moving tokens on the mainnet using both https://tokensubscription.com and https://ethgrants.com. The repo with the latest contract and both of the above projects is here: https://github.com/austintgriffith/tokensubscription.com

@austintgriffith
Copy link

FWIW here is an active contract with the code published and verified: https://etherscan.io/address/0x9122213da10c92586c2c99e533cd97726ef55d6a#code

@austintgriffith
Copy link

The token subscription contract is now audited and live on the mainnet: https://twitter.com/austingriffith/status/1044929790384336896 The audit information is here: https://zklabs.io/audits/tokensub.html It was performed by Dean Eigenmann. The live contract is public and verified here: https://etherscan.io/address/0x9123a4b90E3a1F468102C08ee78fa2224d88F496#code

EIPS/eip-1337.md Outdated
---
eip: 1337
title: [WIP] Subscriptions on the blockchain.
author:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please format this in a single line, comma-separated, with either username or email address (not both)

EIPS/eip-1337.md Outdated
* John Griffin <john@atchai.com> (@johngriffin)
* Nathan Creswell <nathantr@gmail.com> (@nathcres)

discussions-to:[this github issue url](https://github.com/EthereumOpenSubscriptions/standard/issues) or [Gitcoin Slack](https://gitcoin.co/slack) in #proj-subscriptions channel
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please format this as just a URL.

EIPS/eip-1337.md Outdated

discussions-to:[this github issue url](https://github.com/EthereumOpenSubscriptions/standard/issues) or [Gitcoin Slack](https://gitcoin.co/slack) in #proj-subscriptions channel
type: Interface
category Interface
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please add a colon here.

EIPS/eip-1337.md Outdated
* Nathan Creswell <nathantr@gmail.com> (@nathcres)

discussions-to:[this github issue url](https://github.com/EthereumOpenSubscriptions/standard/issues) or [Gitcoin Slack](https://gitcoin.co/slack) in #proj-subscriptions channel
type: Interface
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"Interface" is not a type; perhaps this should be "Standards Track"?

EIPS/eip-1337.md Outdated
type: Interface
category Interface
created: 2018-08-01
requires (*optional): ERC-20, ERC-948, EIP-165
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please remove (*optional)

EIPS/eip-1337.md Outdated
category Interface
created: 2018-08-01
requires (*optional): ERC-20, ERC-948, EIP-165
replaces (*optional):
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please remove this.

@owocki
Copy link
Contributor Author

owocki commented Oct 15, 2018

466af1e should turnaround the code review above

…ad a bytes meta argument added

meta is defined as a 4 slot array, holding, address refundAddress, uint256 period, uint256 offChainID, uint256 expirationDate(unix timestamp)
slots 0 and 1 are required, with slots 2 and 3 being optional, if 2 is not used but 3 is, 2 must be padded appropriately
Copy link
Contributor

@Arachnid Arachnid left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've noted several errors; in general see the output of the automated build to see what needs fixing.

eip: 1337
title: [WIP] Subscriptions on the blockchain.
author: Kevin Owocki <kevin@gitcoin.co> , Andrew Redden <andrew@blockcrushr.com>, Scott Burke <scott@blockcrushr.com> , Kevin Seagraves <k.s.seagraves@gmail.com> , Luka Kacil <luka.kacil@gmail.com>, Štefan Šimec <stefan.simec@gmail.com>, Piotr Kosiński (@kosecki123), ankit raj <tradeninja7@gmail.com>, John Griffin <john@atchai.com> , Nathan Creswell <nathantr@gmail.com>

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please remove the empty line here.

type: Standards
category: Interface
created: 2018-08-01
requires: ERC-20, ERC-948, EIP-165
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These should just be numbers.

author: Kevin Owocki <kevin@gitcoin.co> , Andrew Redden <andrew@blockcrushr.com>, Scott Burke <scott@blockcrushr.com> , Kevin Seagraves <k.s.seagraves@gmail.com> , Luka Kacil <luka.kacil@gmail.com>, Štefan Šimec <stefan.simec@gmail.com>, Piotr Kosiński (@kosecki123), ankit raj <tradeninja7@gmail.com>, John Griffin <john@atchai.com> , Nathan Creswell <nathantr@gmail.com>

discussions-to: https://github.com/EthereumOpenSubscriptions/standard/issues or https://gitcoin.co/slack in #proj-subscriptions channel
type: Standards
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This should be "Standards Track"

@@ -0,0 +1,251 @@
---
eip: 1337
title: [WIP] Subscriptions on the blockchain.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Instead of [WIP] the field Status: Draft should be added.

Suggested change
title: [WIP] Subscriptions on the blockchain.
title: Subscriptions on the blockchain.
status: Draft

austintgriffith and others added 2 commits October 17, 2018 16:02
EIP getSubscriptionHash and execSubscription have been modified and h…
@lrgeoemtry
Copy link

watching this with @clemlak and @daxdax89

@axic axic mentioned this pull request Mar 1, 2019
@axic axic changed the title ERC 948, EIP 1337 -- Subscriptions on the blockchain. EIP 1337 -- Subscriptions on the blockchain. May 19, 2019
@axic axic added the ERC label May 19, 2019
@axic
Copy link
Member

axic commented Jun 28, 2019

@owocki are you still pursuing this? It would be nice to merge a proper draft since this is live on Gitcoin and has a website.

@androolloyd
Copy link

I think we’re still working on finalizing the spec. There are a few diff forms floating around and we’ve yet to converge.

@axic
Copy link
Member

axic commented Jun 28, 2019

If you have a fairly good version for a Draft it would be preferable to merge that. Changes can be made to the Draft at your pace. Eventually it should go through a "Last Call" status to signal to the wider ecosystem that it is becoming Final soon.

@androolloyd
Copy link

Good to know. I produced an updated draft a few months back. Let me go dogging.

@owocki
Copy link
Contributor Author

owocki commented Jun 28, 2019

@androolloyd perhaps we update this PR with the updated spec and take it from there?

@alexanderattar
Copy link

@androolloyd bumping this. any updates on the status of the latest draft?

@androolloyd
Copy link

Sorry for the laggardness on this, will circle back on get the new draft published

@Solexplorer
Copy link

@owocki What is the status of this EIP ?

@owocki
Copy link
Contributor Author

owocki commented Oct 25, 2019

this EIP is status LEET

i kid i kid; theres $25k sitting in a grant that the ECF gave the EIP 1337 working group about 1.5 years ago.. if anyone wants some of them fundzz to get this across the finish line lmk..

@craze3
Copy link

craze3 commented Dec 28, 2019

Hey @owocki I'd love to help out with that. Hit me up on Gitcoin slack 😃

@sb-01
Copy link

sb-01 commented Dec 28, 2019 via email

@krasi-georgiev
Copy link

Would this make possible variable subscriptions as well? I mean let's say I offer a service which charges a different amount every month based on some criteria - usage etc.

@androolloyd
Copy link

I think that would be implementation based, perhaps something where you would say that the agreed upon amount is the maximum you're allowed to debt from the account / period in the signature.

@Precha23
Copy link

Ok

1 similar comment
@Precha23
Copy link

Ok

@lightclient lightclient mentioned this pull request Jul 15, 2020
@lightclient
Copy link
Member

The changes in this PR have been merged as part of #2789. Please close this one.

@owocki owocki closed this Jul 16, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet