#!/usr/bin/env python3
#
# mmgen = Multi-Mode GENerator, command-line Bitcoin cold storage solution
# Copyright (C)2013-2025 The MMGen Project <mmgen@tuta.io>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program.  If not, see <http://www.gnu.org/licenses/>.

# ------------------------------------------------------------------------------

# MMGen note: this is a sorted version of the wordlist.
# The unsorted original can be found at:
#    https://github.com/spesmilo/electrum/blob/1.9.5/lib/mnemonic.py
# Electrum - lightweight Bitcoin client. Copyright (C) 2011 thomasv@gitorious

# Also available at:
#    https://github.com/monero-project/monero/blob/master/src/mnemonics/english_old.h

words = tuple("""
able
about
above
abuse
accept
accident
ache
acid
across
act
action
actually
add
admire
admit
adore
advice
affection
afraid
after
afternoon
again
against
age
agony
agree
ahead
aim
air
alas
alive
allow
almost
alone
along
already
also
alter
although
always
amaze
among
ancient
angel
anger
angry
animal
annoy
another
answer
any
anymore
anyone
anything
anyway
anywhere
apart
apologize
appear
apple
appreciate
approach
army
around
arrive
arrow
art
ash
ashamed
aside
ask
asleep
attack
attempt
attention
aunt
autumn
avoid
await
awake
awaken
away
awe
awkward
baby
back
bag
balance
ball
bang
bank
bar
bare
barely
bathroom
battle
beam
beard
beaten
beautiful
beauty
became
become
bedroom
bee
been
before
beg
began
begin
begun
behind
belief
believe
belly
belong
bench
beneath
beside
best
better
between
beyond
bid
bird
birth
birthday
bit
bite
bitter
black
blade
blame
blank
blanket
bleed
blend
bless
blind
blink
bliss
block
blonde
blood
bloody
bloom
blossom
blow
blue
blur
blush
board
boat
body
bold
bomb
bond
bone
book
boom
born
both
bother
bottle
bottom
bought
bounce
bound
bowl
box
boyfriend
brain
branch
brand
brave
bread
break
breast
breath
breathe
breeze
bridge
bright
bring
broke
broken
brother
brown
bruise
brush
bubble
build
built
bullet
bump
burden
burn
burst
bury
bus
busy
butterfly
button
buy
cage
calm
came
candle
canvas
cap
capture
card
careful
carefully
caress
carry
carve
cast
catch
caught
cause
cease
ceiling
cell
center
certain
certainly
chain
chair
chance
change
character
charm
chase
cheap
cheat
check
cheek
cheer
cheese
chest
child
childhood
children
chill
chin
chocolate
choice
choke
choose
church
cigarette
circle
city
claim
class
claw
clay
clean
clear
clearly
click
climb
cling
clock
close
closet
clothes
cloud
clue
clutch
coat
coffee
cold
collapse
collect
college
color
comfort
commit
common
companion
company
compare
complain
complete
completely
concern
concrete
confidence
confuse
confusion
connect
connection
consider
constant
constantly
consume
content
continue
control
conversation
cookie
cool
core
corner
cost
couch
count
country
couple
courage
course
cousin
cover
coward
crack
crap
crash
crave
crawl
crazy
creak
cream
create
creation
creator
creature
creek
creep
crime
crimson
cross
crowd
cruel
crumble
crush
cry
crystal
cup
curl
curse
curtain
curve
cute
dad
daddy
daily
damn
dance
danger
dark
darkness
darling
dart
date
daughter
dawn
deadly
deal
dear
death
decay
decide
decision
deep
deeply
defeat
defense
define
delicate
delight
demand
demon
deny
depend
depress
depression
depth
descend
describe
desert
deserve
desire
desk
despair
desperate
desperately
despite
destination
destroy
determine
devil
dew
diamond
difference
different
dig
dim
dinner
direction
dirt
dirty
disappear
discover
disguise
dish
distance
distant
doctor
dog
doll
doom
door
dot
double
doubt
dove
down
drag
dragon
drama
draw
drawn
dread
dream
dreamer
dress
drift
drink
drive
driver
drop
drove
drug
drum
drunk
dry
duck
dude
due
dull
dumb
during
dust
dusty
dwell
each
eager
early
earth
easily
easy
eat
echo
edge
effort
egg
either
embarrass
embrace
emotion
emptiness
empty
end
endless
enemy
energy
engine
enjoy
enough
enter
entire
erase
escape
especially
essence
eternal
eternity
even
evening
eventually
ever
everybody
everyday
everyone
everything
everytime
everywhere
evil
exactly
example
except
excuse
exist
existence
expect
experience
explain
explode
explore
express
expression
eye
fact
fade
fail
faint
fairy
faith
false
familiar
family
fan
fantasy
fate
father
fault
favorite
fear
feast
feather
feed
feet
felicity
few
field
figure
fill
final
finally
find
finger
finish
fire
first
fish
fist
five
fix
flag
flame
flare
flash
flat
flesh
flicker
flight
flip
flirt
float
flood
floor
flow
flower
flutter
fly
focus
foe
fog
fold
follow
foot
football
footstep
force
forehead
forest
forever
forget
forgive
forgot
forgotten
form
former
forth
forward
fought
foul
fragile
frame
freak
free
freedom
freely
freeze
fresh
friend
friendship
fright
frighten
front
frost
frown
frozen
fruit
frustrate
fully
funny
fur
further
future
gain
game
garden
gas
gasp
gather
gay
gaze
generation
gentle
gently
ghost
giant
gift
giggle
girl
girlfriend
give
given
glad
glance
glare
glass
glide
glorious
glory
glove
glow
goal
god
gone
good
goodbye
goose
got
gotta
gotten
government
grab
grace
grade
grand
grandma
grant
grasp
grass
great
green
greet
grew
grey
grief
grin
grip
ground
group
grow
grown
guard
guess
guide
guilt
guilty
guitar
gun
guy
hair
half
hallway
hand
handle
hang
happen
happiness
happy
hardly
harm
harmony
harsh
hate
hatred
haunt
heal
health
heard
heart
heartbeat
heat
heaven
heavy
heel
held
hello
help
here
hero
hey
hidden
hide
high
hill
history
hit
hollow
holy
home
honest
honey
honor
hook
hop
hope
hopefully
horizon
horrible
horse
hospital
hour
house
however
howl
hug
huge
hum
human
hundred
hunger
hungry
hunt
hurl
hurry
hurt
husband
ice
idea
idiot
ignorance
ignore
illuminate
illusion
image
imagination
imagine
important
impossible
inch
indeed
inhale
ink
inner
innocence
innocent
insane
inside
instead
insult
interest
into
invisible
invite
iron
itself
jaw
jealous
jeans
job
jock
join
joke
journey
joy
judge
juice
jump
just
keep
kept
key
kick
kid
kill
king
kingdom
kiss
kitchen
knee
knife
knock
know
knowledge
known
lace
lady
laid
land
language
large
laugh
laughter
law
lazy
lead
leaf
leap
learn
least
leave
led
left
leg
less
lesson
letter
level
lick
lifeless
lift
lightning
like
limb
limit
line
linger
lip
liquid
listen
little
lonely
long
look
loose
lord
loser
loss
lot
loud
love
lovely
lucky
lunch
lung
lust
machine
made
magic
make
mama
manage
many
march
mark
marry
mask
mass
master
match
math
matter
maybe
mean
meant
measure
meet
melody
melt
memory
men
mend
mention
mercy
mere
mess
message
metal
middle
midnight
might
mighty
milk
million
mind
mine
minute
mirror
misery
mist
mistake
mix
moan
mock
mold
mom
moment
money
monkey
monster
month
moon
moonlight
moral
more
morning
mostly
mother
motion
mountain
mourn
mouth
movement
movie
much
mud
mumble
murder
muscle
muse
music
mutter
myself
mystery
nail
naked
name
nation
natural
nature
near
nearly
neck
need
needle
neighbor
neither
nerd
nerve
nervous
never
new
next
nice
night
nightmare
nine
nobody
nod
noise
normal
north
nose
note
nothing
notice
nowhere
numb
number
object
observe
obviously
ocean
odd
ode
off
offer
often
okay
once
only
open
opinion
opposite
orange
order
other
ourselves
out
outside
over
own
pack
page
painful
paint
pair
pale
palm
pants
paper
paradise
parent
park
party
pass
passion
past
path
pathetic
patience
patient
pattern
pause
pay
peace
peaceful
peach
peel
peer
pen
pencil
people
perfect
perfection
perfectly
perhaps
person
petal
phone
physical
picture
pie
piece
pierce
pig
pile
pillow
pink
pity
place
plain
plan
planet
plant
plastic
plate
play
please
pleasure
pocket
poem
poet
poetry
point
poison
ponder
pool
poor
pop
position
possess
possible
possibly
pound
pour
power
powerful
practice
praise
pray
prayer
precious
prefer
prepare
presence
present
press
pressure
pretend
pretty
price
pride
prince
princess
probably
problem
process
promise
protect
proud
prove
puff
pull
pulse
punch
pure
purple
purpose
push
put
puzzle
queen
question
quick
quickly
quiet
quietly
quit
quite
rabbit
radio
rainbow
raise
random
rant
rape
rare
rather
raw
reach
ready
real
reality
realize
really
reason
rebel
recall
receive
red
reflect
reflection
refuse
regret
relationship
relax
release
remain
remember
remind
remove
repeat
replace
reply
respect
respond
rest
retreat
return
reveal
revenge
rhyme
rhythm
rich
ring
rip
ripple
rise
river
road
roam
roar
rock
roll
root
rope
rose
rough
royal
rub
rude
ruin
rule
run
rush
sad
sadness
safe
said
sail
salt
salty
sanctuary
sane
sanity
sat
satisfy
save
savior
scale
scar
scary
scatter
scene
scent
school
score
scrape
scratch
scream
screen
screw
sea
search
season
second
secret
seek
seem
self
selfish
sense
sent
sentence
separate
serious
serve
settle
seven
several
shade
shadow
shall
shame
shape
sharp
shatter
sheep
sheet
shelter
shield
shift
shimmer
shine
shiny
ship
shirt
shiver
shock
shoe
shook
shoot
shore
should
shoulder
shout
shove
show
shower
shown
shut
shy
sick
sigh
sign
silence
silent
silently
silly
silver
simple
simply
since
single
sink
sister
situation
six
size
skill
skin
skip
sky
slam
slap
sleep
slept
slice
slide
slight
slightly
slowly
small
smart
smell
smile
smoke
smooth
snake
snap
sneak
snow
soak
soar
sob
social
society
soft
softly
soldier
some
somebody
someday
somehow
someone
something
sometimes
somewhere
son
song
soon
soothe
sorrow
sorry
sort
soul
sound
space
speak
special
speed
spell
spend
spider
spill
spin
spine
spiral
spirit
split
spoken
sport
spot
spread
spring
square
squeeze
stab
stage
stain
stair
stand
stare
start
state
stay
steady
steal
steel
step
stick
still
sting
stir
stock
stole
stolen
stomach
stone
stood
stop
storm
story
straight
strain
strange
stranger
stray
stream
street
strength
stress
stretch
strife
strike
string
strip
stroke
strong
struggle
stubborn
stuck
student
study
stuff
stumble
stun
stupid
style
subject
such
sudden
suddenly
suffer
suffocate
suicide
suit
summer
sunlight
sunset
support
suppose
sure
surely
surface
surprise
surround
survive
suspend
swallow
sway
swear
sweat
sweet
swell
swim
swing
swirl
sword
sympathy
table
taint
take
taken
talent
talk
tangle
tap
task
taste
taught
tea
teach
teacher
team
tease
teeth
tell
tender
terrible
terror
test
thank
them
themselves
then
there
thick
thigh
thing
think
third
thorn
those
thought
thousand
thread
threaten
three
threw
throat
throne
through
throughout
throw
thrown
thump
thunder
tickle
tide
tie
tight
tightly
time
tiny
tired
today
toe
together
tomorrow
tongue
tonight
too
tool
torment
torture
toss
total
touch
tough
toward
tower
town
trace
trade
trail
train
travel
treasure
treat
tree
tremble
trick
trickle
trip
trouble
truck
true
truly
trust
truth
try
tuck
tumble
tune
turn
twenty
twice
twirl
twist
two
type
ugly
unable
uncle
under
underneath
understand
universe
unknown
unless
unlike
unseen
upon
upset
use
useless
usually
utter
vain
valley
value
vast
veil
vein
velvet
verse
very
victim
view
violence
vision
visit
voice
void
volume
waist
wait
walk
wall
wander
want
war
warm
warmth
warn
warrior
wash
waste
watch
water
wave
weak
weakness
weapon
weary
weather
weave
week
weep
weight
weird
welcome
wet
whatever
wheel
whenever
whether
whisper
whistle
white
whole
wife
wild
win
window
winter
wipe
wise
wish
witch
within
wolf
woman
women
won
wonder
wonderful
wood
work
world
worry
worse
worship
worst
worth
worthless
wound
wow
wrap
wrinkle
wrist
write
written
wrong
wrote
yard
yeah
yearn
yell
yellow
yesterday
yet
young
yours
yourself
youth
""".split())
