Skip to content

Commit

Permalink
feat: adding soulbound token (#393)
Browse files Browse the repository at this point in the history
Soulbound Tokens (SBT) are non transferrable NFTs. Even though
tranferability is not available, we define a recoverability mechanism.

SBTs are well suited of carrying proof-of-attendence NFTs,
proof-of-unique-human "stamps" and other similar credibility-carriers.


---

## NEP Status *(Updated by NEP moderators)*

SME reviews:

* [x] @KazanderDad (NDC GWG):
#393 (review)
* [x] @alexastrum (Tenamint):
#393

Contract Standards WG voting indications (❔ | 👍 | 👎 ):

* 👍 @frol:
#393 (review)
* 👍 @fadeevab:
#393 (review)
* -- @robert-zaremba (can't vote myself)

Wallet Standards WG voting indications:

* ❔ @Cameron-Banyan 
* ❔ @MaximusHaximus 
* ❔ @esaminu  


## Concerns

| # | Concern | Resolution | Status |
| --- | --- | -- | -- |
| 1 | [Rober] Should we Emit NEP-171 Mint and NEP-171 Burn by the SBT
contract (in addition to SBT native events emitted by the registry)? If
the events will be emitted by registry, then we need new events to
include the contract address. | [Robert] Don't emit NFT events. SBT is
not NFT. Support: @alexastrum | open |
| 2 | [Robert] remove `memo` in events. The `memo` is already part of
the transaction, and should not be needed to identify transactions.
Processes looking for events, can easily track transaction through event
and recover `memo` if needed. | currently removed, consequently also
removed from registry transactions . Support: @alexastrum | open |
| 3 | [Token
Spam](#393) |
[Robert]: we have a `Burn` event. Added example `sbt_burn` function, but
keeping it not as a part of required interface. Event should be enough.
| open |
| 4 | [Multiple
registries](#393).
Registry source of truth
[comment](#393)
| Robert: this is a part of the design: permissionless approach.
[Justification for
registry](#393)
| open |
| 5 | [Robert] Approve the proposed multi-token | Support: @alexastrum |
open |
| 6 | [Robert] Use of milliseconds as a time unit. | [Robert] Currently
the standard uses milliseconds. | open |
| 7 | Should a `burn` function be part of a standard or a
recommendation? | [Robert] We already have the Burn event. IMHO a
function should not be part of the standard inteface (similarly to FT
and NFT). | open |
| 8 | [Robert] Don't include `sbt_soul_transfer` in the standard
interface,
[comment](#393 (comment)).
| [Robert] moving outside of the required interface. | open |
| 9 |
[Privacy](#393)
| [Robert] Concerns have been addressed:
[comment-1](#393)
and
[comment2](#393)
| open |
| 10  | x | resolution | open |

---------

Co-authored-by: Vlad Frolov <frolvlad@gmail.com>
  • Loading branch information
robert-zaremba and frol authored Sep 12, 2023
1 parent 9cb94e0 commit 3786d9b
Showing 1 changed file with 665 additions and 0 deletions.
Loading

0 comments on commit 3786d9b

Please sign in to comment.