Repository navigation
Expand file tree
/
Copy pathStellar.toml
More file actions
212 lines (167 loc) · 10.3 KB
/
Copy pathStellar.toml
File metadata and controls
212 lines (167 loc) · 10.3 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
# CarbonLedger Stellar.toml
# SEP-0001 compliant — https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0001.md
#
# ── HOW TO UPDATE ─────────────────────────────────────────────────────────────
# 1. Edit this file.
# 2. Deploy to https://carbonledger.io/.well-known/stellar.toml (HTTPS required).
# 3. Verify with: https://stellar.expert/explorer/testnet/account/<ISSUER_KEY>
# or the SDF validator: https://www.stellar.org/laboratory/#txsigner
# 4. Confirm CORS header: Access-Control-Allow-Origin: *
#
# ── VALIDATION TOOLS ──────────────────────────────────────────────────────────
# • SDF Anchor Validator: https://anchor-validator.stellar.org
# • Stellar Expert: https://stellar.expert
# • SEP-0001 spec: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0001.md
#
# ── SEP-0001 COMPLIANCE CHECKLIST ─────────────────────────────────────────────
# [x] File served at /.well-known/stellar.toml over HTTPS
# [x] CORS header: Access-Control-Allow-Origin: *
# [x] VERSION field present
# [x] NETWORK_PASSPHRASE matches deployment network
# [x] SIGNING_KEY is a valid Stellar public key (G...)
# [x] ACCOUNTS lists all issuer public keys
# [x] [DOCUMENTATION] section complete
# [x] [[PRINCIPALS]] lists at least one contact
# [x] [[CURRENCIES]] entry for every issued asset
# [x] code + issuer present on every [[CURRENCIES]] entry
# [x] [[VALIDATORS]] entry if operating a validator node
# ──────────────────────────────────────────────────────────────────────────────
# VERSION (required)
# Semantic version of this stellar.toml file. Increment on every change so
# wallets and integrators can detect updates.
VERSION = "2.0.0"
# NETWORK_PASSPHRASE (required)
# Must exactly match the network this deployment targets.
# Testnet: "Test SDF Network ; September 2015"
# Mainnet: "Public Global Stellar Network ; September 2015"
NETWORK_PASSPHRASE = "Test SDF Network ; September 2015"
HORIZON_URL = "https://horizon-testnet.stellar.org"
FEDERATION_SERVER = "https://carbonledger.io/federation"
AUTH_SERVER = "https://carbonledger.io/auth"
TRANSFER_SERVER = "https://carbonledger.io/transfer"
WEB_AUTH_ENDPOINT = "https://carbonledger.io/auth"
SIGNING_KEY = "REPLACE_WITH_SIGNING_PUBLIC_KEY"
URI_REQUEST_SIGNING_KEY = "REPLACE_WITH_SIGNING_PUBLIC_KEY"
ACCOUNTS = ["REPLACE_WITH_ISSUER_PUBLIC_KEY"]
# CERTIFICATE_SIGNING_KEY (custom field — not part of SEP-0001)
# Ed25519 public key CarbonLedger uses to sign retirement certificates
# (PDF + JSON-LD). Third parties (regulators, ESG auditors) verify a
# certificate's `issuer_signature` against this key, using only this file —
# no trust in the CarbonLedger backend is required. The matching secret key
# is held only by the backend (CERTIFICATE_SIGNING_SECRET env var) and is
# never published. See backend/src/retirements/CERTIFICATE_SIGNING.md for
# the key rotation procedure.
CERTIFICATE_SIGNING_KEY = "REPLACE_WITH_CERTIFICATE_SIGNING_PUBLIC_KEY"
# CERTIFICATE_SIGNING_KEY_PREVIOUS (custom field, optional)
# Set during a rotation's transition window so certificates signed with the
# outgoing key remain verifiable. Remove once no verifier needs the old key.
# CERTIFICATE_SIGNING_KEY_PREVIOUS = "REPLACE_WITH_PREVIOUS_SIGNING_PUBLIC_KEY"
SUPPORTED_SEPS = [1, 30]
# ── Soroban Contract Addresses ────────────────────────────────────────────────
# Fill in after running `stellar contract deploy` for each contract.
# See contracts/README.md and the deployment section of the project README.
[SOROBAN_CONTRACTS]
CARBON_REGISTRY_CONTRACT_ID = "REPLACE_AFTER_DEPLOYMENT"
CARBON_CREDIT_CONTRACT_ID = "REPLACE_AFTER_DEPLOYMENT"
CARBON_MARKETPLACE_CONTRACT_ID = "REPLACE_AFTER_DEPLOYMENT"
CARBON_ORACLE_CONTRACT_ID = "REPLACE_AFTER_DEPLOYMENT"
ORACLE_PUBLIC_KEY = "REPLACE_WITH_ORACLE_PUBLIC_KEY"
# ── Organization ──────────────────────────────────────────────────────────────
[DOCUMENTATION]
# ORG_NAME (required)
# Legal name of the organisation.
ORG_NAME = "CarbonLedger"
# ORG_DBA (optional)
# "Doing Business As" name if different from legal name.
ORG_DBA = "CarbonLedger Protocol"
# ORG_URL (required)
# HTTPS URL of the organisation's primary website.
ORG_URL = "https://carbonledger.io"
# ORG_LOGO (optional)
# HTTPS URL to a square PNG/SVG logo (recommended 512×512 px).
# Displayed by wallets and explorers when showing CBON.
ORG_LOGO = "https://carbonledger.io/logo.png"
# ORG_DESCRIPTION (optional)
# One-paragraph description shown in wallet asset detail screens.
ORG_DESCRIPTION = "Verified carbon credit marketplace on Stellar. Every credit has a complete audit trail from project registration to satellite monitoring to permanent on-chain retirement."
# ORG_PHYSICAL_ADDRESS (optional)
# Street address of the organisation. Use "Decentralized" for DAOs.
ORG_PHYSICAL_ADDRESS = "Decentralized"
# ORG_OFFICIAL_EMAIL (required)
# Primary contact email. Must be monitored.
ORG_OFFICIAL_EMAIL = "hello@carbonledger.io"
# ORG_SUPPORT_EMAIL (optional)
# Dedicated support address for user-facing issues.
ORG_SUPPORT_EMAIL = "support@carbonledger.io"
# ORG_GITHUB (optional)
# GitHub organisation or user URL. Used by explorers to link to source code.
ORG_GITHUB = "https://github.com/carbonledger"
# ORG_TWITTER (optional)
# Twitter/X handle (with @). Used by wallets for social verification.
ORG_TWITTER = "@carbonledger"
# ── PRINCIPALS ────────────────────────────────────────────────────────────────
# At least one [[PRINCIPALS]] entry is required by SEP-0001.
# Each entry identifies a human contact responsible for this deployment.
# Wallets and exchanges use this for KYC/AML due diligence.
[[PRINCIPALS]]
# name (required) — Full legal name of the contact person.
name = "CarbonLedger Team"
# email (required) — Direct email for this individual.
email = "team@carbonledger.io"
# github (optional) — GitHub username for identity verification.
github = "carbonledger"
# ── CURRENCIES ────────────────────────────────────────────────────────────────
# One [[CURRENCIES]] entry per asset issued. Wallets display this information
# on asset detail screens and use it to warn users about unknown tokens.
[[CURRENCIES]]
# code (required) — 1–12 character asset code as it appears on the ledger.
code = "CBON"
# issuer (required) — Stellar public key of the account that issued this asset.
# Must match one of the keys in ACCOUNTS above.
issuer = "REPLACE_WITH_ISSUER_PUBLIC_KEY"
# display_decimals (optional) — Number of decimal places shown in wallets.
# Stellar supports up to 7. Use 7 for divisible credits (fractional tonnes).
display_decimals = 7
# name (optional) — Human-readable asset name shown in wallet UIs.
name = "CarbonLedger Credit"
# desc (optional) — Full description of what this asset represents.
# Be precise: regulators and exchanges read this.
desc = "Tokenized verified carbon credit. 1 CBON = 1 tonne CO2 equivalent. Each credit has a unique serial number and full provenance from project registration to retirement."
# conditions (optional) — Legal or operational conditions on holding/trading.
conditions = "Credits are minted only for verified projects with satellite monitoring. Retirement is permanent and irreversible on-chain."
# image (optional) — HTTPS URL to a square PNG/SVG token logo (512×512 px).
image = "https://carbonledger.io/cbon-logo.png"
# status (required) — Lifecycle status of this asset.
# Values: live | dead | test | private
# Use "test" on testnet, "live" on mainnet.
status = "test"
# is_asset_anchored (optional) — true if this token is backed by an off-chain asset.
# CBON is anchored to a verified carbon credit (a real-world asset).
is_asset_anchored = true
# anchor_asset_type (optional) — Category of the backing asset.
# Values: fiat | crypto | stock | bond | commodity | realestate | other
anchor_asset_type = "other"
# anchor_asset (optional) — Name of the real-world asset backing this token.
anchor_asset = "Verified Carbon Credit (tCO2e)"
# attestation_of_reserve (optional) — URL to a public audit or reserve proof.
# For carbon credits this links to the on-chain audit explorer.
attestation_of_reserve = "https://carbonledger.io/audit"
# redemption_instructions (optional) — How holders can redeem/retire this asset.
redemption_instructions = "Retire credits via the CarbonLedger marketplace at https://carbonledger.io/retire"
# ── VALIDATORS ────────────────────────────────────────────────────────────────
# Include a [[VALIDATORS]] entry only if you operate a Stellar Core validator
# node. Omit this section entirely if you do not run a validator.
# Exchanges and wallets use this to assess network trust.
[[VALIDATORS]]
# ALIAS (required) — Short machine-readable identifier for this validator.
ALIAS = "carbonledger-validator"
# DISPLAY_NAME (required) — Human-readable name shown in quorum explorers.
DISPLAY_NAME = "CarbonLedger Validator"
# PUBLIC_KEY (required) — Stellar public key of the validator node.
# This is the node key, NOT the issuer or signing key.
PUBLIC_KEY = "REPLACE_WITH_VALIDATOR_PUBLIC_KEY"
# HOST (optional) — hostname:port where the validator accepts peer connections.
HOST = "carbonledger.io:11625"
# HISTORY (optional) — URL template for the validator's Stellar Core history archive.
# {0} is replaced with the ledger sequence number by clients.
HISTORY = "https://history.carbonledger.io/{0}"