Error in $['mnemonic_sentence']: Invalid entropy checksum: please double-check the last word of your mnemonic sentence

Hi,
I am having trouble knowing the issue. I am using cardano-wallet API in testnet to create a wallet and I keep getting the following error:

{
    "code": "bad_request",
    "message": "Error in $['mnemonic_sentence']: Invalid entropy checksum: please double-check the last word of your mnemonic sentence."
}

The POST is the following:

curl --location --request POST 'http://localhost:8090/v2/wallets' \
--header 'Content-Type: application/json' \
--data-raw '{
    "name": "new-wallet",
    "mnemonic_sentence": [
        "labor",
        "win",
        "sing",
        "daring",
        "rain",
        "coyote",
        "firm",
        "merge",
        "person",
        "skirt",
        "cover",
        "budget",
        "neither",
        "spring",
        "bus",
        "cable",
        "acoustic",
        "illness",
        "fame",
        "glass",
        "word",
        "advance",
        "divorce",
        "atom"
    ],
    "passphrase": "@p0o9i8u7y6!"
}'

Tried many words from: Official cardano-wallet mnemonic words and yet no success.

Any Suggestions?
Thanks in advance

I tried different words by using: https://iancoleman.io/bip39/#english which gave me the following words and it worked properly, I wonder if the english.txt from the documentation is wrong?

I did the following:

curl --location --request POST 'http://localhost:8090/v2/wallets' \
--header 'Content-Type: application/json' \
--data-raw '{
    "name": "new-wallet",
    "mnemonic_sentence": [
        "stereo",
        "sister",
        "expand",
        "panel",
        "cruel",
        "glow",
        "sphere",
        "number",
        "embody",
        "napkin",
        "trumpet",
        "cargo",
        "wall",
        "mercy",
        "earth"
    ],
    "passphrase": "@p0o9i8u7y6!"
}'

And it worked adequately. Wonder what is wrong.

Where did you get that seed phrase?

It will work with the last word (“atom”) replaced by “become”, “devote”, “fee”, “initial”, “master”, “peanut”, “stomach”, or “uncover”. These 8 make the checksum fulfilled.

Nope, english.txt is totally fine.

The seed phrases contain a checksum. You cannot just take arbitrary words, but the last one has to “fit”.

As far as I can see, cardano-wallet does not have a function to generate a new valid seed phrase. So, you will have to get it from somewhere else.

1 Like

Ok, sorry, for the ignorance of the question. I know now what happened, I will explain it for others to understand.

So seed phrases are part of the BIP39 standard. This is a set of rules that simplify managing private keys via seed phrases.

This BIP describes the implementation of a mnemonic sentence (a group of easy-to-remember words).

It consists of two parts:

  1. Generating the mnemonic
  2. Converting it into a binary seed.

This seed can be later used to generate deterministic wallets.

A mnemonic sentence constructed from random inputs is more unique than most people can imagine. For a 24-word BIP39 sentence, there are 2048 to the 24th power possible combinations of words - or stated another way, around 3 times 10 to the 79th power. To try to comprehend how enormous this number is, it is often compared to estimates of the total number of atoms in the known universe. It is effectively unguessable with today’s technology.
(source)

So a mnemonic phrase is made up of 12, 15, 18, 21 or 24 words and they include a generated checksum from the random numbers, and this checksum is used to check its integrity.

The checksum is included in the last mnemonic code word, and it helps wallets to verify the validity of mnemonic sentences.

So it’s not just that simple, to pick any words manually, those words need to give a valid checksum in order to work, also if any word has a typo, it will fail to generate the checksum as well.

1 Like

Picked it randomly and manually, not using any tool. Done by ignorance.