Transactions contain the source account id, therefore you need an existing account to be able to create a new account and you also need funds in order to do anything.

So how was the first account created?


It's simple really. When you set up a new network you just pre-populate the SQL accounts table of the first network node with a single row for the genesis account containing the total initial supply of the native asset.

  • I can't see how that would work, since if the account exists only in the first network node's database then how would any other nodes be able to come to consensus on transactions issued from that account? – PiersyP Jun 8 '18 at 10:21
  • 1
    When a node joins the network it implicitly agrees to the current state of the network and copies the existing ledger. – lenondupe Jun 8 '18 at 10:48
  • That makes a lot of sense actually, thanks! – PiersyP Jun 8 '18 at 11:07
  • @leondupe I realised that your explanation still doesn't add up. The current state of the network is the ledger, which is shared between nodes, but the internals of node's databases aside from that are not shared. So if the approach used is to pre-populate an account in the database of the first network node. Which means there is no account creation entry for it in the ledger, then the only node that can validate transactions for that account will be the first node. Even then if nodes try to validate the ledger as they sync they will not be able to validate transactions from the first account. – PiersyP Jun 11 '18 at 15:06
  • The internals of a node's database is the ledger. See the definition of the term ledger in the context of stellar core. Each node has a copy of the ledger in the form of a set of database tables, this is the distributed database that is copied when a node joins the network. Pre-populate any of those tables and you bootstrap the network with that state. – lenondupe Jun 12 '18 at 16:46

The first account was created on the ledger 1 alongside with the Network initialization. It looks like GAAZ...CWN7 was the first Stellar account("genesis" account in blockchain terminology), with 100,000,000,000 XLM on it. Then funds were transferred to the distribution account GALP...MZTB, and the genesis account was locked.

Actually, the above statement is true only for the current version of the Network. Original Stellar network was launched in 2014, and then upgraded in 2015. So current ledger does not hold any records prior to September 2015.

All lumens owned by the Stellar Developers Foundation are now located on a few special accounts accordingly to SDF mandate.

  • Looking at ledger 3 we see the create account op where GAAZ...CWN7 creates GALP...MZTB, but in ledger 1 there are no transactions, so I still don't get how GAAZ...CWN7 was made? – PiersyP Jun 8 '18 at 10:38

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.