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?