Namespace creation error

Hi there,
I am trying to create namespace on testnet network but I faced an issue as below. Appreciate if anyone can help.
blockstack-cli -t namespace_preorder id2 mi2R911LENGRbtDSKC3zTJVGRTPzK5eBNP 8ad205d9c9752b776cd9803bc9bb430dabadd8d21c45b3cea482bd0e4875f27601
{
“status”: false,
“error”: “Namespace cannot be safely preordered”,
“isNamespaceValid”: true,
“isNamespaceAvailable”: false,
“paymentBalanceBTC”: 25016500,
“paymentBalanceStacks”: “2000000000”,
“namespaceCostUnits”: “STACKS”,
“namespaceCostAmount”: “64000000000”,
“estimateCostBTC”: 1183000
}

Namespace id2 already exists – that’s what isNamespaceAvailable: false means.

I still get status false with an error if I changed the name. Is this due to my balance? If yes, how to fund to the required amount while at most 1000000000 is allowed only.

blockstack-cli -t namespace_preorder xyz mi2R911LENGRbtDSKC3zTJVGRTPzK5eBNP 8ad205d9c9752b776cd9803bc9bb430dabadd8d21c45b3cea482bd0e4875f27601
{
“status”: false,
“error”: “Namespace cannot be safely preordered”,
“isNamespaceValid”: true,
“isNamespaceAvailable”: true,
“paymentBalanceBTC”: 30022000,
“paymentBalanceStacks”: “4000000000”,
“namespaceCostUnits”: “STACKS”,
“namespaceCostAmount”: “64000000000”,
“estimateCostBTC”: 1479000
}

“namespaceCostAmount”: “64000000000”,

“paymentBalanceStacks”: “4000000000”,

You need more Stacks (note that these numbers are in micro-Stacks – divide by 10**6 to calculate the number of Stacks).

Thank you Jude for this clarification but how to fund this huge amount meanwhile using testnet.blockstack.org has a limitation to only 1000000000 and this mean repeating the process over 60 times .

Try using a longer namespace. They get cheaper as they get longer:

$ blockstack-cli -t price_namespace xyzxyzxyz                                                                                                                                                                                                                                                   
{
  "units": "STACKS",
  "amount": "640000000"
}

Thanks to your suggestion it worked perfectly to the first step but now I am in step 3 to complete creation and I got the below error due to readiness of Namespace and Private key and I can’t determine the issue specifically with private key and the readiness for the namespace
blockstack-cli -t namespace_ready blockstackdomain 8ad205d9c9752b776cd9803bc9bb430dabadd8d21c45b3cea482bd0e4875f27601
{
“status”: false,
“error”: “Namespace cannot be safely launched”,
“isNamespaceValid”: true,
“isNamespaceReady”: false,
“isPrivateKeyRevealer”: false,
“revealerBalanceBTC”: 29459500,
“estimateCostBTC”: 1555000
}

“isPrivateKeyRevealer”: false,

You need to use the other private key – the one whose address you used in the preorder and reveal step.

Thank you Jude for your guidance, I can create namespace now. Meanwhile I want to understand the logic behind using 2 keys. Appreciate your support to the documentation to get the full idea .

Hey, sorry I missed this.

The reason there are two keys is to ensure that no one front-runs you when you register your namespace. The NAMESPACE_PREORDER commits the “reveal key” to the hash of your namespace, so that the NAMESPACE_REVEAL transaction can only be valid if it was sent by the same person who sent the NAMESPACE_PREORDER. If this were not the case, then someone who watched the mempool would be able to see that you had tried to order a namespace, and then front-run your request and claim it for themselves. This scheme is also used for on-chain Blockstack IDs, via the NAME_PREORDER and NAME_REGISTRATION transactions.

The “reveal key” is used to determine the set of keypairs that can be used to pre-populate the namespace with on-chain names, via NAME_IMPORT transactions. Once you have pre-populated the namespace, you launch it for public use with the NAMESPACE_READY transaction.

Does this make more sense?