Devin

Hnefatafl

This article discusses the process and results of training a new, world’s-best game-playing AI for Hnefatafl, an ancient Viking board game. Under the modern rules interpretation, twelve defenders try to bring their king from the middle of the board to a corner, and twenty-four attackers try to trap him. We test our AI against TaflZero, the previous strongest known engine, which also learned from self-play.

After just under eight days of training, our AI beat TaflZero 14 times, left 2 games unfinished, and lost none, under rules of max fifteen seconds per move. Each random start was played twice, with each program attacking once, and our AI won all eight of these pairs.

published 12 Oct 2026updated 19 Oct 202618 min read

An hour into its training, on the evening of 3 October 2026, our engine played TaflZero 32 times and lost every game. Eight days later, at fifteen seconds a move, it played TaflZero sixteen times and lost none.

By its author’s account TaflZero is the strongest known engine for the game’s modern rules, and anyone can play it online at playtafl.org. Both programs learned the game the way DeepMind’s AlphaZero learned chess and Go, from games against themselves. We set out to beat TaflZero at fifteen seconds a move, the limit at the world championship on the Shetland island of Fetlar, where a gong marked each move.The Fetlar championship began in 2008 and was played under the older Fetlar rules. Among other changes, the Copenhagen rules add the shieldwall and the exit fort described below, and turn perpetual repetition from a draw into a loss for the defenders.

Nine and a half hours into training, our engine played TaflZero at one second a move and won 20 games, lost 4 and left 8 unfinished. With a point for each win and half a point for each unfinished game, that is a score of 0.75. A network saved two and a half hours earlier had scored 0.28. Training had been running during the match, so we played it again at once with training paused.

What did the same network score in the same match with training paused?

Choose one; the result appears here.

The replay came out at 0.50. Training had cut TaflZero’s search to about 280 positions a move from its usual 600, while our engine lost little speed. From then on we paused training for every match against TaflZero.

Except the king

Hnefatafl means the board game (tafl) of the king piece (hnefi). The Vikings left gaming boards and pieces in rich graves, at Birka in Sweden, Gokstad in Norway and Scar in Orkney. A lake dwelling at Ballinderry in Ireland held a wooden board with seven rows of seven peg holes, and the National Museum of Ireland judges Dublin the likeliest place it was made.Tafl comes from the Latin tabula (a board). Chess is clearly attested in the North only from the twelfth century, and tafl then came to mean chess as well (Schulte 2017). The grave pieces are usually taken to be hnefatafl sets (Whittaker 2006), though no grave says which game they were for.

No rules survive from the Viking age. Historians rebuilt the game largely from tablut, a game Carl Linnaeus saw the Sámi play in Lapland in 1732 and described in his diary. Linnaeus wrote that the king is taken between two enemies like any other piece once he is away from his throne in the middle of the board and the squares beside it. The English translation of 1811 has “except the king” instead, and J. C. Ashton has argued that this error shaped the reconstructions of the twentieth century and made their king nearly unstoppable. In 2012 Aage Nielsen, Adam Bartley and Tim Millar drew up the Copenhagen rules that both programs play, and in 2014 the World Tafl Federation endorsed them.

The board has eleven rows of eleven squares (Figure 1). The king starts on the throne in the middle, with his twelve defenders round him, and the twenty-four attackers start in four groups of six at the middle of the edges. The attackers move first. Every piece moves any distance along a row or a column, like a rook in chess, and only the king may stop on the throne or a corner, though any piece may pass over the empty throne.

A piece is captured when the other side sandwiches it between two of its own pieces, or between one of them and an empty corner or the empty throne, so a piece next to a corner is easy to take. Only the side that moves captures, so a piece may move safely between two enemies, and the king captures like any defender. A shieldwall capture takes a whole row of pieces on the edge at once. Each piece in the row must have an enemy piece on the next square in from the edge, and the capturing side then closes the row with a piece at each end, or at one end if the other is a corner.

The king is harder to take than in Linnaeus’s account. The attackers must surround him on four sides, or on three and the throne. On the edge he has only three neighbours, so he cannot be captured there at all.

The defenders win when the king reaches a corner. They also win with what the rules call an exit fort: the king on the edge, with room to move, behind a wall of defenders that the attackers can never break. The attackers win by capturing the king, or by encircling every defender so that none can reach the edge. When a position occurs for the third time, the defenders lose, whichever side repeated it, so they cannot hold out by going round in circles. A side with no legal move loses.The official text makes perpetual repetition a loss for the defenders and leaves some cases open. The engine plays them as TaflZero does, so that the two never disagree about a position: a third occurrence of a position wins for the attackers, and forts and encirclements are looked for only after certain moves. The engine’s shieldwall scan and its test of which defenders of a fort can still be captured follow TaflZero’s code step by step. The appendix lists the differences from the published text.

a1b2c3d4e5f6g7h8i9j10k11
to moveattackers
moves0

Attackers to move: pick up a piece.

Figure 1The attackers outnumber the defenders two to one, but the red king on the throne needs only to reach a corner. Pick up a piece and put it down on a marked square to play for both sides; point at or tap a piece to see where it can go. Each link in the text sets up one rule, with its move drawn as an arrow.

Losing later

The engine has two parts. A neural network looks at a position and gives two answers: how likely each move is to be the best, and how likely each side is to win. A search uses the network’s answers to look ahead, trying the likeliest moves, the replies to them and the replies to those, and because it sees a little further, its judgement is better than the network’s alone. In self-play the engine plays games against itself with the search, and the network is trained to predict how the search rated each move, and which side won. With a better network the search plays better games, and the network learns from those.In engine writers’ terms the first two answers are the policy and the value, and a position searched is a node. The value is a chance of winning a game that ends, since the network learns it only from games that did. The search here is a Monte Carlo tree search. The network is a stack of ten residual blocks, about 3.2 million weights, the same size as TaflZero’s. The engine plays 2,048 games against itself at once. Most moves get a quick search of 40 positions and one in four gets a full search of 160, and only those are kept for training, as in KataGo. Self-play uses the Gumbel form of the search, and the matches use the usual form, PUCT. Each training step adjusts the network on a batch of 1,024 positions. The computer had an Intel i9-14900K processor and one NVIDIA RTX 4090 graphics card.

The engine’s search also has a few exact tactics written by hand, two of them added during training after losses to TaflZero. It always takes a winning move, such as an escape to a corner or the capture of the king, and when the opponent threatens one, it looks only at the moves that stop the threat. These are short calculations whose outcome the rules make certain, not judgements about strategy. TaflZero’s author, by contrast, writes that it learned with “no human games or handcrafted heuristics”.Both searches pass proven wins and losses up the search tree, as in the Monte Carlo tree search solver. The tactics above are the engine’s own, and the engine also takes an escape the king can force in two of his own moves.

The engine played 2.6 million games against itself in just under eight days, and its network never trained on a game of TaflZero’s. Training adjusts the network in small steps, each on a batch of positions from the engine’s games, and each network saved along the way is known by its step. At first the network’s guesses were noise, and the defenders won almost every game. Of the first 2,000 games the attackers won one. A side that loses every game learns little from its choices, since every move it makes looks equally lost. The network therefore gives a third answer: how many moves the game has left. In self-play the search uses it to tell lost moves apart, so that a side expecting to lose prefers the moves that lose later, and a side expecting to win prefers to win sooner. H. Forstén added such an answer to the chess engine Leela Chess Zero.

The attackers learned to hold out before they learned to win (Figure 2). A typical game three quarters of an hour in ended with the king escaping in about 50 moves,A move here is one side’s turn (a ply), so a game of 100 moves gives each side 50. and an hour later games lasted about 100, though the attackers still won only one in a hundred. Their wins began to mount after two hours, and about three hours in they won a quarter of the games. From a day and a half in to the end of training they won between 39 and 48 games in a hundred. Over that stretch their commonest win, in about one game in five, was to leave the defenders without a legal move.

repetition tacticfort tacticextra look at fort threats0%50%100%1002001001,00010,000100,000step1 h2 h3 h7 h12 h3 days7 daystime
attackers won unfinished at self-play’s limit of 400 moves defenders won, from the top: exit fort, escape below: mean length of a game, in moves

Games 2,596,001 to 2,606,000, the last, around steps 469,900 to 471,500, 7.8 days into training. The attackers won 45% of the games: 11% by capturing the king, 12% by encirclement, 19% by leaving the defenders no move, 3.1% by repetition. The defenders won 40% of the games: 4.2% with an exit fort, 36% by escaping. Unfinished at 400 moves: 16%. Mean length 208 moves.

Figure 2For about two hours the defenders won almost every game, and by seven hours the attackers won nearly half. Each label on the scale of steps is ten times the one before, and the row beneath gives the time since training began. The red band at the top shows the games the defenders won with a fort, and it stays thin until the line marked “fort tactic”, where the search began to test for forts.

Blind to repetitions and forts

Through the first thirteen hours of training the engine played TaflZero every few hours, 32 games at a time, at first with each program searching 400 positions a move and later at one second a move (Figure 3). These matches showed where the engine was blind.In the match an hour into training, played by the network of step 1,699, 400 positions a move took the engine 4.8 seconds and TaflZero 0.5. The engine later sent its network sixteen positions at a time instead of one, and ran it faster on the graphics card with CUDA graphs. About three hours in, TaflZero won all sixteen games in which it attacked, each by repetition. The engine’s search could not see a repetition coming, so we gave it an exact check for repetitions, written by hand, and let the search keep its tree from one move to the next, as TaflZero’s always had. With both, an hour later, the engine held every one of TaflZero’s attacks until each game reached the limit of 600 moves, but lost all sixteen games in which it attacked. Six hours in, the engine won its first three games against TaflZero.

As the attackers the engine kept losing to forts, and in the match about seven hours in TaflZero built them in 13 of the 16 games it defended. In self-play only about one game in a hundred ended in a fort, and the network had too few to learn from. So about eight hours in, we gave the search an exact test for forts, and in self-play had it try the defenders’ moves that threaten a fort before any others.In a position it tries up to eight such moves first. It only makes the search consider such a move, not play it. Forts rose to about one self-play game in ten, and in the match at thirteen hours TaflZero built none against the engine.

A busy computer

After thirteen hours of training, the engine played its first match at fifteen seconds a move. Its sixteen games came in eight pairs, each with its own opening: a random first move for each side. Both games of a pair began with the same opening, and each program played the attackers once. A program won a pair by scoring more in its two games.

The engine won 14 games and left 2 unfinished. But other programs then took the processor and later the graphics card, and both engines slowed. In the last five games TaflZero searched between 40 and 100 positions a second, down from about 1,500 in the first four, and the engine won all five. We then made a speed rule: a game counted only if TaflZero stayed above a minimum speed and had the graphics card to itself, and a game that failed was played again, whatever its result. Only the first four games passed, and we replayed the other twelve in quieter hours. Counted that way, the first match came to 12 wins, 1 loss and 3 unfinished, with seven pairs won and one tied. The rule kept the worst interference out of the counted games; it did not make the computer idle, and the appendix gives its limits.

Against TaflZero during training

step 1,69955 min400 positions a movetraining running320.00
step 6,0003 h400 positions a movetraining running320.00
step 10,0004 h400 positions a movetraining running16160.25
step 16,0006 h400 positions a movetraining running311180.27
step 18,0007 h1 second a movetraining running214160.28
step 26,0009 h1 second a movetraining running20840.75
step 26,0009 h1 second a movetraining paused1110110.50
step 36,00013 h1 second a movetraining paused20930.77

Against TaflZero at fifteen seconds a move, as counted

step 36,00013 h15 seconds a movetraining paused12310.84
step 468,0007.7 days15 seconds a movetraining paused1420.94

Against the engine’s own earlier networks, 800 positions a move each

step 468,000 against 36,0007.7 days800 positions a move321.00
step 148,000 against 36,0003.6 days800 positions a move2840.88
step 300,000 against 148,0005.8 days800 positions a move19130.59
step 468,000 against 300,0007.7 days800 positions a move143150.48
Figure 3In thirteen hours the engine went from losing every game against TaflZero to winning most of them, and with training paused the 0.75 of step 26,000 became 0.50. The two rows at fifteen seconds a move link to their games in Figure 4. In the second, the final network lost none of its sixteen games.

Six kings captured

Training went on for another week. Matches between the engine’s own networks show that most of the gain came early.Each network searched 800 positions a move in these matches. The networks were those of steps 36,000, 148,000, 300,000 and 468,000, the last of them the final network; the appendix gives the later scores. The network of three and a half days beat that of thirteen hours by 28 games to 4, and the margins between later networks were small enough for chance to explain. Against TaflZero there was little room for the gain to show, because the engine had already won seven of the eight pairs in the first match at fifteen seconds. In the final match it won those seven and the one that had been tied.

The final match had the same openings, game rules and settings as the first match at fifteen seconds, and its speed rule did not change from the first game to the last. The games ran from the afternoon of 11 October to the next morning. The referee program stopped five games when another program took the graphics card, and a restart of the computer cut a sixth game short. All six were played again. In the 12 games in which TaflZero searched fastest, averaging 2,400 positions a second or more, the engine won 11, lost none and left 1 unfinished.

As attacker the engine won all eight of its games (Figure 4): six by capturing the king, one by leaving the defenders without a move and one by encircling them after 413 moves. As defender the engine built a fort in six games, and the other two reached the 600-move limit unfinished.

Loading the games…

a1b2c3d4e5f6g7h8i9j10k11

 

move–
its chance, by the final network–

Figure 4The percentages are the network’s own estimates, computed afterwards without search, not measured odds. In pair 2 of the final match, the network that played it gave the engine at least a 90% chance of winning from move 48, and the engine took the king on move 123. The figure rests one move before the capture. In pair 6 of the first match at fifteen seconds, the one counted loss, the final network’s estimate fell from 81% at move 50 to 6% at move 78. On the board the arrows are the network’s three likeliest moves, and the dotted arrow is the move played. Choose a game, then step through it with the buttons or by dragging along the curve.

On move 18 of pair 2 in the final match, TaflZero’s king went from d3 straight up to d10, one square below the top edge, with nothing between him and the left edge along the tenth row.Each square is named by the letter of its column and the number of its row, as marked beside the board, so a1 is the bottom left corner. The engine had the attackers, who move first, so its moves are the odd-numbered ones. The engine moved an attacker from c7 to c10, into his row. From then until move 44 the king stepped between d10 and d9 ten times, and each time the engine’s next move put an attacker between him and the left edge again. Twice a step back by the king would have let the engine repeat a position for the third time, which wins for the attackers, and TaflZero moved another defender instead. On move 50 the king went back down column d to d2, one square above the bottom edge, and he stayed within a square of d2 until the end.

Around d2 the engine took nine defenders and lost two attackers. On TaflZero’s first turn with the king on d2 it had 85 legal moves, and on move 122 it had one.

On move 114 the king moved from d2 to c2, and in the game’s last nine moves the engine put an attacker on each of the four squares round him. The first came from f2 to d2, beside him, on move 115. On move 117 an attacker moved from e3 to d3 and captured the defenders on c3 and d4. TaflZero put a defender below the king, from b1 to c1, and the engine filled c3, above him, from c4. TaflZero moved the defender back to b1, and on move 121 the attacker on d1 moved into c1 and captured it against the empty corner, a1. TaflZero’s only legal move was then from b2 to b1, which emptied the square on the king’s left, and on move 123 the attacker on a2 moved into it and took the king. On the edge, one square lower, he could not have been taken at all.

Luck and speed

Within a pair both programs play the same opening from each side, so any edge the opening gives the attackers or the defenders goes once to each program. If the two programs were equally strong, a pair would be as likely lost as won, and one program or the other would win all eight pairs only 0.8% of the time. The first match at fifteen seconds had a tied pair, which counts for neither program, and the chance of one program winning all seven others is 1.6%. Neither figure is the chance that the engine is stronger. Chess players’ Elo ratings turn a score into a difference in strength, and the final match’s 0.94 corresponds to about 470 points. With only eight pairs, any difference from about 300 points upward fits the result, and there is no upper end.The 0.8% and 1.6% come from a two-sided sign test, with tied pairs left out, and assume that pairs are independent. The range is a 95% interval, from a normal approximation over the eight pairs’ scores; near a perfect score that approximation is rough, and its upper end is a score above 100%, which no difference in Elo can give. For the first match at fifteen seconds, its 0.84 corresponds to about 290, with a 95% interval from 160 to 620. An Elo figure here is a way of reading one match’s score, not a rating.

In the final match the engine searched a median of about 14,900 positions a second, more than five times TaflZero’s 2,670.It was the first match in which both programs counted positions the same way. The match was at equal time, never at equal search, and its margin cannot be split between the network, the hand-written tactics and the speed. The opponent was a copy of TaflZero with three changes to how it plays. It ran a network from playtafl.org instead of the one in TaflZero’s repository, and no record compares that copy’s strength with the published program’s.

The final network played TaflZero only once, so its result was not picked from several. But earlier matches against the same opponent shaped the final one, because the repetition and fort tactics came from losses to TaflZero and the eight openings had been played against it in every earlier match. The result says nothing about other time limits, or about human players.

A fort to build

The network on its own looks no further than the position in front of it, and it has none of the search’s tactics, such as the exact test for forts. It is expected to be weaker than the engine of the matches, but no match has measured by how much. In Figure 5 you can take the defenders and try to build a fort against the network alone. Shown the starting position, it gives the attackers a 53% chance of winning.

a1b2c3d4e5f6g7h8i9j10k1114%14%13%
you playattackers
your chance53%

You play the attackers and move first: pick up a piece. Your first press, on a piece or a button, fetches the network (6.3 MB), once.
The network’s most likely moves for you: d1–d3 14%, h1–h3 14%, d11–d9 13%.

play
Figure 5With hints on, the arrows are the network’s three likeliest moves for you, and the readout is its estimate of your chance of winning, learned from the engine’s own games rather than measured against you. Given the same moves, the network always replies the same way, so a game you win can be won again move for move. Your first press, on a piece or a button, fetches the network, about 6.3 MB, once.

The opponent

TaflZero is open source, under the GPL, and plays on playtafl.org. The build these matches used was made for an earlier project from a copy of its source: upstream commit 9b5a19a with 41 local commits. Most add tests, logging or options that are off unless set. Three change how it plays. A side with no legal move loses, as the Copenhagen rules say (the rules in the published code had no such check), and its search scores such positions as lost. Its search tree is kept between moves only along the moves actually played. The flag that decides when it tests for an encirclement is restored correctly when a move is taken back.

The build ran the network g0213, downloaded from playtafl.org, which was serving it at the time. TaflZero’s repository had been shipping an earlier network since 15 August, and on 16 October, four days after the final match, a change titled as a fix to the tablut rules replaced it with gen0225 and also altered the rules code. These matches never met gen0225. The build is unpublished, and the project found no licence for the g0213 network, which is not in its repository either. Without them the matches cannot be rerun exactly from the published materials.

The rules as the engines play them

The engines follow the project’s RULES.md, which takes TaflZero’s choices where the published Copenhagen text leaves a case open. A position includes the side to move, and its third occurrence wins for the attackers; the starting position is not counted. Forts and encirclements are tested only after certain moves, so a position that qualifies can be recognised a move late. The shieldwall scan reproduces a quirk of TaflZero’s, in which a lone piece can be carried into a later run along the edge and captured with it. In a shieldwall capture the king is not taken. The published rules also allow a draw when neither side can win; the engines have no general test for that, and a game still running at the limit (400 moves in self-play, 600 in matches) is recorded as unfinished. Scoring an unfinished game as half a point was a convention of the matches, not a finding that the position was drawn.

The checks

The engine’s rules were run side by side with TaflZero’s through 20,000 games of random moves. In most of them the moves were weighted towards captures and endings, and over half started from positions set up at random or built so that shieldwalls and encirclements happen often. The two sets of rules were compared at every one of the games’ 4,091,433 positions, on the position itself, its legal moves, how often it had occurred and whether the game was over, and never disagreed. Agreement shows that the two programs play the same game; it does not show that every choice follows from the published text.

The browser’s rules agree with the engine at all 117,313 positions of 600 games, and count the same 116, 6,788 and 806,344 move sequences of one, two and three moves from the start. The browser’s network and the engine’s own network in the PyTorch library give the same outputs, to within 0.0001, when run on the same weights over 64 positions from four games. The browser’s network is stored at half precision, in numbers of 16 bits rather than 32; against the full-precision network its first choice of move is the same in all 64 positions, and its estimate of the chance of winning differs by about a tenth of a percentage point at most.

The speed rule

A game counts only if TaflZero averaged at least 1,350 positions a second, no other program kept the graphics card busy, and no five of TaflZero’s searches in a row averaged less than three quarters of that limit. The first match’s first four games were judged on the average alone, before single searches were logged. Before each game the referee program waits until TaflZero searches a test position fast enough and the graphics card is free.

The limit was meant as four fifths of TaflZero’s speed on a quiet computer. At first the quiet speed was put at about 1,500, which made the limit 1,200. Replayed games ran at a higher priority, at which TaflZero reached about 1,700, so an hour into the replays the limit became 1,350. One more of the first match’s original games, a win, failed the higher limit. In the referee’s checks TaflZero reached between 1,390 and 2,270 in the first match’s replays, and between 1,770 and 3,210 in the final match, so the quiet speed itself varied with other work on the computer.

The rule was made during the first match, and a failed game was played again whatever its result, since replaying only the losses would have given the engine a second chance at every loss and none at its wins. It set aside thirteen games that had been played to the end, twelve original games and one replay, and none of them had been a loss for the engine. Two replays went against the engine. One turned a win into an unfinished game, and the other, in pair 6, turned a win by repetition into the engine’s only counted loss.

Training

The network that played the final match was saved at step 468,000, after 7.7 days. The run reached step 471,564 on 11 October, after 2.6 million games, with the learning rate, which sets how far each training step moves the network, held at 0.02 from step 500. Matches between saved networks, at 800 positions a move, showed clear progress only to step 148,000 (3.6 days). The network of step 300,000 (5.8 days) beat that of 148,000 by 19 games to 13, and the final network against that of 300,000 won 14, lost 15 and left 3 unfinished; neither result is more than chance would give. The final network beat the network of thirteen hours 32 times without a loss. The project’s results file notes that the gain stopped while the learning rate was held at 0.02, and that the training loss stopped falling too, at 2.32 by step 300,000 and 2.35 by step 469,500. From step 471,564 the rate was lowered to 0.005, and no match has measured what followed. One run cannot show whether the fixed rate was the cause, or separate the parts played by the third answer and the hand-written tactics.

References

  1. M. Schulte, Board games of the Vikings: from hnefatafl to chess, Maal og Minne 109, no. 2 (2017), 1–42: the names tafl and hnefi, and the arrival of chess in the North.
  2. H. Whittaker, Game-boards and gaming-pieces in funerary contexts in the Northern European Iron Age, Nordlit 20 (2006), 103–112: gaming sets in Viking-age graves.
  3. The Ballinderry gaming board, National Museum of Ireland, 1932:6533.
  4. C. Linnaeus, Lachesis Lapponica, or a Tour in Lapland, edited by J. E. Smith, translated by C. Troilius, White and Cochrane, London (1811), vol. II, 55–58: tablut.
  5. J. C. Ashton, Linnaeus’s game of tablut and its relationship to the ancient Viking game hnefatafl, The Heroic Age 13 (2010).
  6. A. Nielsen, A. Bartley and T. Millar, Copenhagen Hnefatafl 11×11 (2012).
  7. World Tafl Federation, press release of 17 October 2014: its endorsement of the Copenhagen rules.
  8. Fetlar Developments, Fetlar 2013 information sheet: hnefatafl (2013): the Fetlar world championship and its fifteen seconds a move.
  9. sovelin, TaflZero: an AlphaZero-style engine for 11×11 hnefatafl, GitHub repository (GPL-3.0).
  10. D. Silver et al., A general reinforcement learning algorithm that masters chess, shogi, and Go through self-play, Science 362 (2018), 1140–1144.
  11. I. Danihelka, A. Guez, J. Schrittwieser and D. Silver, Policy improvement by planning with Gumbel, ICLR (2022): the search used in self-play.
  12. D. J. Wu, Accelerating self-play learning in Go, arXiv:1902.10565 (2019): KataGo, and playout cap randomisation.
  13. H. Forstén, Moves left head, Leela Chess Zero pull request 961 (2019–2020).
  14. M. H. M. Winands, Y. Björnsson and J.-T. Saito, Monte-Carlo tree search solver, Computers and Games (2008), 25–36: exact wins and losses inside the search.

Cite this

@misc{hnefatafl,
  author = {Devin O'Keefe},
  title  = {Hnefatafl},
  year   = {2026},
  url    = {https://devinokeefe.com/hnefatafl/}
}

Source

github.com/devinokeefe/hnefatafl: the engine’s source, training configuration, metrics, event logs and match records. It identifies the two match networks by size and hash but does not include them, or the training games.

Comments

Shown at once, under the name you give, and kept unless the author removes it. Nothing else is asked for or kept; this browser keeps the name for next time.