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

Token Validation #902

Merged
merged 12 commits into from
Apr 24, 2018
Merged

Token Validation #902

merged 12 commits into from
Apr 24, 2018

Conversation

expede
Copy link
Contributor

@expede expede commented Feb 24, 2018

---
eip: 902
title: Token Validation
author: Brooklyn Zelenka <brooklyn@finhaven.com>, Tom Carchrae <tom@finhaven.com>, Gleb Naumenko <gleb@finhaven.com>
type: Standards Track
category: ERC
status: Draft
created: 2018-02-14
---

Simple Summary

A protocol for services providing token ownership and transfer validation.

Abstract

This standard provides a registry contract method for authorizing token transfers. By nature, this covers both initially issuing tokens to users (ie: transfer from contract to owner), transferring tokens between users, and token spends.

Motivation

The tokenization of assets has wide application, not least of which is financial instruments such as securities. Most jurisdictions have placed legal constraints on what may be traded,
and who can hold such tokens which are regarded as securities. Broadly this includes KYC and AML validation, but may also include time-based spend limits, total volume of transactions, and so on.

Regulators and sanctioned third-party compliance agencies need some way to link off-chain compliance information such as identity and residency to an on-chain service. The application of this design is broader than legal regulation, encompassing all manner of business logic permissions for the creation, management, and trading of tokens.

Specification

TokenValidator

interface TokenValidator {
  function check(
    address _token,
    address _subject
  ) public returns (byte result)

  function check(
    address _token,
    address _from,
    address _to,
    uint256 _amount
  ) public returns (byte result)
}

The Complete Spec

You can find the the complete proposed technical spec, events, and rationale in the file here

Examples

@nicksavers nicksavers added the ERC label Feb 25, 2018
@Arachnid
Copy link
Contributor

This is a courtesy notice to let you know that the format for EIPs has been modified slightly. If you want your draft merged, you will need to make some small changes to how your EIP is formatted:

  • Frontmatter is now contained between lines with only a triple dash ('---')
  • Headers in the frontmatter are now lowercase.

If your PR is editing an existing EIP rather than creating a new one, this has already been done for you, and you need only rebase your PR.

In addition, a continuous build has been setup, which will check your PR against the rules for EIP formatting automatically once you update your PR. This build ensures all required headers are present, as well as performing a number of other checks.

Please rebase your PR against the latest master, and edit your PR to use the above format for frontmatter. For convenience, here's a sample header you can copy and adapt:

---
eip: <num>
title: <title>
author: <author>
type: [Standards Track|Informational|Meta]
category: [Core|Networking|Interface|ERC] (for type: Standards Track only)
status: Draft
created: <date>
---

@expede expede force-pushed the master branch 3 times, most recently from 7d20105 to 395cfa8 Compare April 3, 2018 05:09
@expede
Copy link
Contributor Author

expede commented Apr 3, 2018

Thanks for the heads up @Arachnid!

It's not totally clear how EIP numbers are assigned. I can't get CI to pass with <num> or variations thereof, so we're using the PR number 902, which seems to make sense and passes Travis. Please advise if this is incorrect.

@Arachnid Arachnid merged commit 07f7a9f into ethereum:master Apr 24, 2018
Arachnid pushed a commit to Arachnid/EIPs that referenced this pull request May 2, 2018
* init

* permissions init

* start of permissions service

* Token Validator (#6)

* File naming convention

* Remove previous versions

* remove reference to the old variable

* Update frontmatter as per @Arachnid

* Switch to byte
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.

5 participants