Metadata-Version: 2.4
Name: xidauth
Version: 1.0.0
Summary: Xid credentials verification based on delegation-contract
Author-email: Daniel Kraft <d@domob.eu>
License: The MIT License (MIT)
        
        Copyright (c) 2019 The Xaya developers
        
        Permission is hereby granted, free of charge, to any person obtaining a copy
        of this software and associated documentation files (the "Software"), to deal
        in the Software without restriction, including without limitation the rights
        to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
        copies of the Software, and to permit persons to whom the Software is
        furnished to do so, subject to the following conditions:
        
        The above copyright notice and this permission notice shall be included in
        all copies or substantial portions of the Software.
        
        THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
        AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
        OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
        THE SOFTWARE.
        
Project-URL: Homepage, https://xaya.io
Project-URL: Repository, https://github.com/xaya/xid
Classifier: Programming Language :: Python :: 3
Classifier: Operating System :: OS Independent
Classifier: License :: OSI Approved :: MIT License
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: COPYING
License-File: AUTHORS
Requires-Dist: eth_account
Requires-Dist: jsonrpclib-pelix
Requires-Dist: protobuf
Requires-Dist: web3==7
Dynamic: license-file

# XAYA ID

XAYA ID (*XID*) is an application built on the XAYA platform, that
turns each XAYA name into a **secure digital identity** similar to
[NameID](https://nameid.org/).

These identities are meant to be used inside the XAYA ecosystem,
e.g. on chat systems or market places in XAYA games.  They can, however, be
used by any other application as well.  For instance, websites can enable
"login with XAYA" to use secure, password-less authentication.  Or messaging
systems can use XAYA identities for the secure exchange of key fingerprints
for end-to-end encryption.

## Overview

From a high-level point of view, XID allows owners of XAYA names to
**associate metadata** to their names, that **everyone else can read**.
Due to how XAYA works, **only the owners of names** are able to modify
the data (through the keys in their wallets).  This ensures that the data
can be trusted by everyone.

There are two types of data that can be associated with names at the moment:

- **Signer addresses** can be used to enable authentication within applications.
  These are ordinary XAYA addresses from the user's wallet; to authenticate with
  an application, their associated private key is used to sign a specific
  message.  A name can have multiple registered signers, for instance for
  XAYA wallets on different devices.  Certain addresses can be either *global*
  signers (valid generally for all applications), or they can be set
  specifically for certain applications.

- **Crypto addresses** in general (i.e. for other coins or tokens), so that
  assets can be sent on another blockchain *to a XAYA name*.

We also plan to support this in the future:

- **Fingerprints of encryption keys** can be associated to names as well.
  This allows the secure and trusted exchange of keys, e.g. for signed emails
  ([GPG](https://gnupg.org/)) or messaging ([OTR](https://otr.cypherpunks.ca/)).

## Technical Details

More details can be found in specific documents:

- [XID game](doc/game.md): Details about the game state and move format
  for XID as game on the XAYA platform.
- [RPC interface](doc/rpc.md): The JSON format for game states and the RPC
  interface of the XID daemon.
- [REST interface](doc/rest.md): The simple REST API that the XID daemon can
  optionally expose.
- [Light mode](doc/light.md): How XID can be run in a "light mode", which is
  just enough to support generating auth credentials and works without the
  need to run a local Xaya Core.
- [Authentication](doc/auth.md): How the authentication protocol with a signer
  key works.
