robosats/.github/ISSUE_TEMPLATE/coordinator_registration.yaml

324 lines
13 KiB
YAML
Raw Normal View History

name: Coordinator Registration
description: Become a RoboSats Coordinator
title: "[federation]: coordinator 'Alias'"
labels: ["Federation"]
assignees:
- reckless-satoshi
body:
- type: markdown
attributes:
value: |
# Coordinator Registration
This form is for registering a new default coordinator on the RoboSats client. Before proceeding, please review the [RoboSats Federation Basis](https://github.com/RoboSats/robosats/blob/main/federation.md). The Github thread generated by this issue will serve as a communication channel between the development team and the new coordinator, if necessary. The information provided will be used to create a new entry in `frontend/static/federation.json`. If you're technically proficient and wish to expedite the process, you can directly edit `federation.json` via a pull request. Here's a template coordinator:
```json
"temp": {
"longAlias": "Template",
"shortAlias": "temp",
"description": "This is the description for an example coordinator",
"motto": "Don't trust, verify",
"color": "#000000",
"contact": {
"pgp": "keys.openpgp.org/vks/v1/by-fingerprint/....",
"fingerprint": "...",
"email": "contact@contact.com",
"telegram": "examplecoordinator",
"twitter": "examplecoordinator",
"matrix": "#example:matrix.org",
"website": "https://example.coordinator.com",
"simplex": "https://....",
"nostr": "npub....",
"reddit": "u/..."
},
"badges": {
"donatesToDevFund": 20,
},
"policies": {
"Privacy Policy": "...",
"Data Policy": "..."
"Rule #1": "You do not talk about RoboSats Club",
"Rule #2": "You DO NOT talk about RoboSats Club",
},
"mainnet": {
"onion": "http://robosats6tkf3eva7x2voqso3a5wcorsnw34jveyxfqi2fu7oyheasid.onion",
"clearnet": "https://coordinator-address.com"
"i2p": "http:///.........b32.i2p"
},
"testnet": {
"onion": "http://robotestagw3dcxmd66r4rgksb4nmmr43fh77bzn2ia2eucduyeafnyd.onion",
"clearnet": "https://testnet.coordinator-address.com"
"i2p": "http:///.........b32.i2p"
},
"mainnetNodesPubkeys": ["000000000000000000000000000000000000000000000000000000000000000000"],
"testnetNodesPubkeys": ["000000000000000000000000000000000000000000000000000000000000000000"]
```
All fields can be updated or completed later through pull requests. Don't worry about getting everything perfect initially. A partially completed form is better than none. It's okay if your data policy, privacy policy, node ids, and endpoints aren't fully defined or are subject to change.
- type: input
id: alias
attributes:
label: Coordinator Alias
description: What name should the robots refer to you by?
placeholder: e.g. SatsSquare
validations:
required: true
- type: textarea
id: avatar
attributes:
label: Avatar
description: Your coordinator profile picture. Ideally 200x200px.
placeholder: Paste a link to your avatar picture
- type: textarea
id: description
attributes:
label: Description
description: Share something about yourself.
placeholder: Tell us about you, your values, and why you want to coordinate RoboSats.
validations:
required: true
- type: input
id: motto
attributes:
label: Motto
description: A brief phrase to be displayed under your profile picture.
placeholder: e.g. Don't trust, verify.
validations:
required: true
- type: input
id: color
attributes:
label: Color
description: |
A hex RGB color used for accent and easier identification in the RoboSats UI.
placeholder: e.g. "#000000"
validations:
required: false
# Development Funding
- type: markdown
attributes:
value: |
## Development Funding
Donations to the Development Fund (DevFund) are voluntary with no minimum amount. The default donation rate in the Coordinator backend is 20%. The value entered here is for display purposes and can be updated later via a PR. Ideally, it should match the donation rate set in your ``.env`` file. The RoboSats client app randomly sorts coordinators weighted by their DevFund donation value. Thus, the orders of the coordinators that contribute to the development have a higher chance to appear first in the Order book. Coordinators who contribute to the DevFund are more likely to receive support if needed (note that unless the devs are under time constraints support is unlikely to be denied). These patron perks are the way developers say "thank you for your contribution!". The RoboSats development team has an exciting roadmap ahead. However, once RoboSats is decentralized, the only source of funding for further development and maintaining the codebase will be donations (we do not accept venture-capital investments).
- type: input
id: devfund
attributes:
label: DevFund Donations
description: |
What percentage of trade revenue will you donate to the RoboSats Development Fund?
placeholder: e.g. 20%
validations:
required: true
- type: input
id: pgp
attributes:
label: "PGP Public Key and Fingerprint"
description: |
Your permanent identity. If needed, you may have to verify your identity to robots or other coordinators by signing a message.
placeholder: |
e.g. Pubkey repo: https://keys.openpgp.org//vks/v1/by-fingerprint/...
Fingerprint: 1234 5678 90AB CDEF 1234 5678 90AB CDEF 1234
validations:
required: true
# Coordinator Policies
- type: markdown
attributes:
value: |
## Coordinator Policies
The following three sections are designed to inform robots about your service expectations as a coordinator. It's perfectly acceptable to refine your policies over time, as coordinating RoboSats is a learning process. However, remember that robots appreciate clear and concise terms.
- type: textarea
id: privacy-policy
attributes:
label: Privacy Policy
description: |
Describe how you will handle privacy. For example, what kind of evidence will be required in a dispute? How will sensitive information be treated?
placeholder: |
e.g., 1) TLSnotary might be required for evidence submission in disputes. 2) Full user identification may be necessary to verify ownership of the payment method.
validations:
required: true
- type: textarea
id: data-policy
attributes:
label: Data Policy
description: |
Explain your data handling practices. For instance, what is your data retention policy? Will data be shared with third parties? Although a RoboSats coordinator's data collection is limited by design, a coordinator could still learn about users through heuristic analysis, payout node pubkeys, onchain addresses, dispute statements, evidence submission, etc.
placeholder: |
e.g., Data will not be shared or sold to any third party. The database will be cleared every 7 days, except for orders under dispute...
validations:
required: true
- type: textarea
id: other-policies
attributes:
label: Other Policies
description: Any other policies can be set here.
placeholder: |
e.g.
"Rule #1": "You do not talk about RoboSats Club"
"Rule #2": "You DO NOT talk about RoboSats Club"
validations:
required: true
# Coordinator Addresses
- type: markdown
attributes:
value: |
## Coordinator Addresses
Your coordinator API should be publicly accessible via an Onion hidden service. Optionally, you can also expose your API over I2P for redundancy, ensuring robots can still use your service if TOR is under attack. Clearnet endpoints can also be added to your coordinator. You can create new tor2web aliases on services like clearnetonion.eu.org or others (do your own research).
- type: input
id: onion-mainnet
attributes:
label: Onion Mainnet Coordinator Service Address
description: The Onion hidden service where your MAINNET RoboSats coordinator API can be found.
placeholder: e.g. http://robosats6tkf3eva7x2voqso3a5wcorsnw34jveyxfqi2fu7oyheasid.onion
validations:
required: true
- type: input
id: onion-testnet
attributes:
label: Onion Testnet Coordinator Service Address
description: The Onion hidden service where your TESTNET RoboSats coordinator API can be found.
placeholder: e.g. http://robotestagw3dcxmd66r4rgksb4nmmr43fh77bzn2ia2eucduyeafnyd.onion
validations:
required: true
- type: input
id: i2p-mainnet
attributes:
label: I2P Mainnet Coordinator Service Address
description: The I2P service where your MAINNET RoboSats coordinator API can be found (Optional).
placeholder: e.g. http:///.........b32.i2p
validations:
required: false
- type: input
id: i2p-testnet
attributes:
label: I2P Testnet Coordinator Service Address
description: The I2P service where your TESTNET RoboSats coordinator API can be found (Optional).
placeholder: e.g. hhttp:///.........b32.i2p
validations:
required: false
- type: input
id: clearnet-mainnet
attributes:
label: Clearnet Mainnet Coordinator Service Address
description: The Clearnet address where your MAINNET RoboSats coordinator API can be found.
placeholder: e.g. http://mainnet.coordinator.com
validations:
required: false
- type: input
id: clearnet-testnet
attributes:
label: Clearnet Testnet Coordinator Service Address
description: The Clearnet address where your TESTNET RoboSats coordinator API can be found.
placeholder: e.g. http://testnet.coordinator.com
validations:
required: false
# Node Pubkeys
- type: markdown
attributes:
value: |
## Node Pubkeys
Enter your Lightning node pubkeys (also known as node_id). You can enter multiple pubkeys (comma-separated) for both mainnet and testnet. If you haven't created the lightning node yet, enter a placeholder. These pubkeys will be used to direct robots to explorers to find your node (e.g., 1ML or Amboss).
- type: input
id: nodeids-mainnet
attributes:
label: Mainnet Pubkey(s)
description: Mainnet Coordinator Lightning Node Pubkey(s)
placeholder: e.g. "000000000000000000000000000000000000000000000000000000000000000000", "...."
validations:
required: true
- type: input
id: nodeids-testnet
attributes:
label: Testnet Pubkey(s)
description: Testnet Coordinator Lightning Node Pubkey(s)
placeholder: e.g. "000000000000000000000000000000000000000000000000000000000000000000", "...."
validations:
required: true
# Contact Methods
- type: markdown
attributes:
value: |
## Contact Methods
Only one contact method is required, but multiple are preferred. Find a balance between accessibility and operational security (too many contact methods increase the surface area and might harm OpSec).
Contact methods below are sorted by importance.
- type: input
id: email
attributes:
label: "1. email"
description: "Public contact method #1: Email."
placeholder: e.g. contact@example.onion
validations:
required: false
- type: input
id: simplex
attributes:
label: "2. SimpleX"
description: "Public contact method #2: SimpleX"
placeholder: e.g. http://yoursimplexusercontactaddress.....onion
validations:
required: false
- type: input
id: matrix
attributes:
label: "3. Matrix"
description: "Public contact method #3: Matrix."
placeholder: "e.g. #example:matrix.org"
validations:
required: false
- type: input
id: nostr
attributes:
label: "4. Nostr"
description: "Public contact method #4: Website."
placeholder: "e.g. npub..."
validations:
required: false
- type: input
id: website
attributes:
label: "5. Website"
description: "Public contact method #5: Website."
placeholder: "e.g. https//coordinator-alias.com"
validations:
required: false
- type: input
id: telegram
attributes:
label: "6. Telegram"
description: "Public contact method #6: Telegram."
placeholder: "e.g. @tguserhandle"
validations:
required: false
- type: input
id: twitter
attributes:
label: "7. Twitter"
description: "Public contact method #7: Twitter."
placeholder: "e.g. @twitteruser"
validations:
required: false
- type: input
id: reddit
attributes:
label: "8. Reddit"
description: "Public contact method #8: Reddit."
placeholder: "e.g. @reddit"
validations:
required: false
# Federation Basis
- type: markdown
attributes:
value: |
## Federation Basis
- type: checkboxes
id: terms
attributes:
label: RoboSats Federation Basis
description: By submitting this issue, you agree to accept the basis for the [RoboSats Federation Basis](https://github.com/RoboSats/robosats/blob/main/federation.md)
options:
- label: I accept the basis of the RoboSats Federation
required: true