mirror of
https://github.com/seigler/dash-docs
synced 2025-07-27 09:46:12 +00:00
223 lines
7.9 KiB
YAML
223 lines
7.9 KiB
YAML
---
|
|
# This file is licensed under the MIT License (MIT) available on
|
|
# http://opensource.org/licenses/MIT.
|
|
id: https://bitcoin.org/quality-assurance/schemas/wallets.yaml
|
|
description: The wallet object
|
|
type: object
|
|
required:
|
|
- id
|
|
- title
|
|
- titleshort
|
|
- compat
|
|
- level
|
|
- platform
|
|
# additionalProperties can not be true, as then the wallet fails due to license
|
|
|
|
properties:
|
|
id:
|
|
description: The page identifier to use for translations
|
|
type: string
|
|
|
|
title:
|
|
description: The full wallet name; displayed when you view the full listing
|
|
type: string
|
|
minLength: 1
|
|
maxLength: 100
|
|
|
|
titleshort:
|
|
description: A short name displayed on the overview page
|
|
type: string
|
|
minLength: 1
|
|
maxLength: 20
|
|
|
|
## TODO: change this into an array so we can practically test values
|
|
compat:
|
|
description: A complete list of platforms supported by the wallet
|
|
type: string
|
|
minLength: 1
|
|
|
|
## TODO: we should probably use names here and translate to
|
|
## numbers (if required) in the template
|
|
level:
|
|
description: |
|
|
The wallet's overall security level.
|
|
1 - full nodes
|
|
2 - SPV using random servers (e.g. P2P SPV, Electrum servers, etc...)
|
|
3 - Hybrid & multisig wallets
|
|
4 - Web wallets
|
|
|
|
type: integer
|
|
minimum: 1
|
|
maximum: 4
|
|
|
|
## The platforms the wallet supports
|
|
platform:
|
|
description: the platforms the wallet supports
|
|
type: array
|
|
additionalProperties: false
|
|
items:
|
|
type: object
|
|
additionalProperties:
|
|
- default
|
|
|
|
required:
|
|
- os
|
|
- name
|
|
|
|
properties:
|
|
name:
|
|
type: string
|
|
enum:
|
|
- desktop
|
|
- mobile
|
|
- hardware
|
|
- web
|
|
os:
|
|
description: The specific operating systems the wallet supports
|
|
type: array
|
|
uniqueItems: true
|
|
items:
|
|
description: List of operating systems with wallet details
|
|
type: object
|
|
required: &required
|
|
- name
|
|
- text
|
|
- link
|
|
- screenshot
|
|
- check
|
|
## TODO: Not currently required, but we should aim for making it required #
|
|
# - source
|
|
additionalProperties:
|
|
- privacycheck
|
|
properties:
|
|
name:
|
|
type: string
|
|
enum:
|
|
# mobile os
|
|
- android
|
|
- windowsphone
|
|
- blackberry
|
|
- ios
|
|
# desktop os
|
|
- windows
|
|
- mac
|
|
- linux
|
|
# pseudo web os
|
|
- web
|
|
# pseudo hardware os
|
|
- hardware
|
|
text: &text
|
|
description: >
|
|
The identifier for the wallet's translation string.
|
|
Also used for the wallet's icon within the /img/wallet/
|
|
directory.
|
|
type: string
|
|
link: &link
|
|
description: The download URL
|
|
type: string
|
|
format: uri
|
|
source: &source
|
|
description: The source code download URL
|
|
type: string
|
|
format: uri
|
|
screenshot: &screenshot
|
|
description: File name for screenshot within the /img/screenshots/ directory
|
|
type: string
|
|
check: &check
|
|
description: The wallet's features (or lack thereof)
|
|
type: object
|
|
required:
|
|
- control
|
|
- validation
|
|
- transparency
|
|
- environment
|
|
- privacy
|
|
## TODO: make required when web wallets moved
|
|
# - fees
|
|
additionalProperties: false
|
|
properties:
|
|
control:
|
|
description: How much control the user has over their money (e.g. private keys)
|
|
type: string
|
|
enum:
|
|
- checkgoodcontrolfull
|
|
- checkpasscontrolhybrid
|
|
- checkpasscontrolmulti
|
|
- checkfailcontrolthirdpartyinsured
|
|
- checkfailcontrolthirdparty
|
|
validation:
|
|
description: How much assurance the user has that their bitcoins are real
|
|
type: string
|
|
enum:
|
|
- checkgoodvalidationfullnode
|
|
- checkgoodvalidationfullnoderequired
|
|
- checkneutralvalidationvariable
|
|
- checkpassvalidationspvp2p
|
|
- checkpassvalidationspvservers
|
|
- checkpassvalidationservers
|
|
- checkfailvalidationcentralized
|
|
transparency:
|
|
description: How much insight the user has into the code they run
|
|
type: string
|
|
enum:
|
|
- checkgoodtransparencydeterministic
|
|
- checkpasstransparencyopensource
|
|
- checkpasstransparencyopensourcehardware
|
|
- checkpasstransparencyopenspechardware
|
|
- checkfailtransparencyclosedsource
|
|
- checkfailtransparencyremote
|
|
- checkfailtransparencynew
|
|
environment:
|
|
description: How secure is the environment the wallet runs in
|
|
type: string
|
|
enum:
|
|
- checkgoodenvironmenthardware
|
|
- checkpassenvironmentmobile
|
|
- checkpassenvironmenttwofactor
|
|
- checkfailenvironmentdesktop
|
|
privacy:
|
|
description: How much privacy the wallet gives the user
|
|
type: string
|
|
enum:
|
|
- checkgoodprivacyimproved
|
|
- checkpassprivacybasic
|
|
- checkneutralprivacyvariable
|
|
- checkfailprivacyweak
|
|
fees:
|
|
description: How does the wallet decide what fee to pay
|
|
type: string
|
|
enum:
|
|
- checkgoodfeecontrolfull
|
|
- checkpassfeecontroldynamic
|
|
- checkpassfeecontroloverride
|
|
- checkneutralfeecontrolvariable
|
|
- checkfailfeecontrolstatic
|
|
privacycheck: &privacycheck
|
|
description: Details about the wallet's privacy settings
|
|
type: object
|
|
required:
|
|
- privacyaddressreuse
|
|
- privacydisclosure
|
|
- privacynetwork
|
|
additionalProperties: false
|
|
properties:
|
|
privacyaddressreuse:
|
|
description: Does the wallet default to address reuse?
|
|
type: string
|
|
enum:
|
|
- checkpassprivacyaddressrotation
|
|
- checkfailprivacyaddressrotation
|
|
privacydisclosure:
|
|
description: To whom, if anyone, does the wallet reveal the addresses it uses?
|
|
type: string
|
|
enum:
|
|
- checkpassprivacydisclosurefullnode
|
|
- checkfailprivacydisclosurespv
|
|
- checkfailprivacydisclosurecentralized
|
|
- checkfailprivacydisclosureaccount
|
|
privacynetwork:
|
|
description: What network-level privacy options does the wallet support
|
|
type: string
|
|
enum:
|
|
- checkpassprivacynetworksupporttorproxy
|
|
- checkfailprivacynetworknosupporttor
|