Reading and Writing Amiibo RCO Files: A Practical Guide

Nintendoamiibo figures and cards contain a NTAG215 NFC chip. The firmware inside holds a game-specific application identifier and a set of data blocks. When you tap the figure to a console, the game reads those blocks and applies whatever effect that title defines. Nothing magical about it. It is just a small amount of structured binary data sitting on a passive NFC tag. The file most people end up working with is the RCO (Read-Only Container) format. That is a standard wrapper that Nintendo uses across multiple titles. You will find them in games like Smash Bros, Animal Crossing, Mario Kart, and Zelda. The RCO file itself is not something you can just open in a text editor and edit freely. It has an internal layout with a header, an application flag, and then the actual savedata blocks that the game writes to. The bridge between the toy and the game works because the console reads the NFC tag during a tap, verifies the application ID against the game, and then maps the chip's memory to a corresponding save structure. If the application ID matches, the game reads or writes. If it does not match, nothing happens. This is why a Zelda amiibo will not trigger anything in Animal Crossing, even though the chip itself is the same hardware.

I started digging into this because I wanted to clone a specific amiibo figure for a friend who had lost theirs. I grabbed an Ntag215 blank sticker from Amazon for about three dollars, downloaded the AmiiboTool Python package, and went from there. The whole process took roughly twenty minutes once I had the toolchain set up on my Ubuntu machine. I had a working copy on the sticker by the time I finished making tea.

What You Need

You need a few things before you even start touching any files. First is an NFC reader that supports NTAG215. The PN532 breakout board is the cheapest option and it works fine, though the ACM-PM3 is faster and more reliable if you already have one lying around. Second is a blank NTAG215 tag or sticker. Third is a computer with Python 3 installed. You do not need any special privileges for reading, but writing to the tag will require appropriate permissions for your NFC device. The AmiiboTool repository on GitHub is the main piece of software you will interact with. It handles reading, dumping, creating, and rewriting Amiibo data. It supports the major games out of the box. There is also a command-line interface that makes it easy to automate tasks once you know the syntax.

Get the Full Details

How to Use The NFC Updater to Manage Amiibo Files - YouTube
How to Use The NFC Updater to Manage Amiibo Files - YouTube

Reading an Amiibo

Reading is the simplest part. Place your amiibo figure on the NFC reader and run the dump command. AmiiboTool will read all the memory pages and output them as a .rco file. You will also get a folder containing individual game data files. The tool automatically detects which games the amiibo supports based on the application ID stored on the chip. The resulting RCO file is a complete snapshot of the amiibo's current state. If the figure has been used in Smash Bros, that save data is inside. If you have never used it, most of the game-specific blocks will be empty or initialized to zero. The header and the encryption key area are always present regardless of usage history.

Creating and Writing

When you create a new amiibo from scratch or modify an existing one, you use the create or edit commands in AmiiboTool. You specify the character, the game, and any optional data like figure color or unlock status. The tool generates the proper header, sets the application flags, and calculates the cryptographic signature that Nintendo uses to validate the tag. Writing back to a blank NTAG215 is straightforward. Load your .rco file, point AmiiboTool at your NFC reader, and run the write command. The tool will authenticate against the tag's keys, write the data to the correct memory pages, and lock the tag appropriately so the game accepts it. A successful write usually takes between five and fifteen seconds depending on your reader hardware. I have seen it take up to forty seconds on a cheap USB card reader, so hardware choice matters more than you might expect.

The Key Transfer Method

There is one nuance that trips people up regularly. New blank NTAG215 tags do not come with the same static keys as factory-made amiibo figures. The original tags use a set of hardcoded authentication keys that Nintendo baked in during manufacturing. When you write a custom RCO to a blank tag, the console sometimes rejects it because the key exchange does not match what the game expects. The workaround is the key transfer method. You take a legitimate amiibo figure, read its full memory including the key sector, then write those keys onto your blank tag before writing your custom RCO data on top. This makes the new tag look like a real factory-produced one to the console. AmiiboTool has a built-in command for this exact sequence. It reads the source tag's keys, writes them to the destination tag, and then overlays your modified data. I used this method when cloning a Fire Emblem figure and ran into exactly this rejection issue on my Wii U. After transferring the keys, the game accepted the cloned tag without any errors on the first try.

How to use NFC Tools for amiibo backups and tournaments - Exion Vault
How to use NFC Tools for amiibo backups and tournaments - Exion Vault

Common Pitfalls

One issue that comes up often is partial writes. If the NFC reader loses contact mid-operation, you can end up with a tag that has a valid header but corrupted save data. The game will either reject the figure entirely or load it with missing information. The fix is to re-read the source tag, verify the checksums, and rewrite. Always verify after writing. AmiiboTool includes a verify command that compares the written data against the original RCO file byte for byte. It takes about ten seconds and it will save you a lot of frustration. Another problem is region locking. Some games check the region code stored in the amiibo data. If you try to use a US region tag in a European console, certain titles will simply ignore it. This is not a hardware limitation. It is purely software-level. There is no reliable way around this without modifying the game's save data on the console itself, and that goes into custom firmware territory which most people do not want to deal with. You should also know that not every game supports reading and writing equally. Animal Crossing New Horizons, for example, only writes to the tag the first time you register a figure. After that, tapping the same figure again does not produce any new data. Some games like Mario Kart 8 Deluxe write cosmetic data on every tap. The behavior varies significantly by title, and the AmiiboTool documentation does not cover every edge case for every game released after 2016.

Where to Get AmiiboTool

The project is hosted on GitHub under the username figo8571. You can find the repository by searching for AmiiboTool. The official releases page contains Windows executables, Linux binaries, and the Python source code. The README file has the installation instructions and command reference. I recommend using the Python version if you are on Linux or macOS since the prebuilt binaries are primarily targeted at Windows users. Community forks exist that add support for newer games or experimental features. The main repository updates periodically but sometimes lags behind newly released titles. If you need support for a very recent game that the main tool does not handle yet, checking the issue tracker for open pull requests is usually worth the five minutes it takes.

A Few Real Numbers

The NTAG215 chip has 888 bytes of total memory. About 504 bytes are user-addressable data. The remaining space is reserved for the NFC protocol and tag identification. An RCO file is typically between 512 and 1024 bytes depending on the game and how much save data is stored inside. A freshly manufactured amiibo with no usage history will be on the smaller end. A heavily used Smash Bros figure with multiple unlocked spirits and equipment saved can approach the larger end. Reading a full tag takes approximately two to three seconds on a good NFC reader. Writing takes roughly five to fifteen seconds. Key transfer plus write is usually around twenty to thirty seconds total. These times are measured on a PN532 module connected via UART, which is slower than a USB-connected reader but good enough for casual use. The whole process from owning a blank sticker to having a working custom amiibo figure on your shelf usually takes under an hour for someone who has never done it before. Most of that time is spent installing dependencies and figuring out why the NFC reader is not being detected by the operating system. Once those issues are resolved, the actual tool operations are fast and mostly painless.

Amiibo Display Stand Modular Digital File, 3D Printing File for Modular ...
Amiibo Display Stand Modular Digital File, 3D Printing File for Modular ...

There is a limit to what you can do with this approach. You cannot change the character identity of an existing amiibo. The game reads the character ID from a fixed offset in the data and locks it during the initial creation process. If you create a new figure file as Link, it will always be Link. There is no reliable method to reassign it to Mario or any other character. Some community projects claim otherwise, but the ones I tested produced figures that loaded as placeholder characters or did not load at all. Also worth noting: Nintendo has not taken significant legal action against individual home users doing this kind of thing. The enforcement has mostly targeted commercial sellers who mass-produce and sell cloned amiibo figures. If you are doing it for personal use on your own hardware, you are generally fine. That said, online features in games that check amiibo authenticity may flag modified tags. Single-player and local multiplayer modes do not seem to have any such checks in place as of the last time I tested this across multiple titles. If you just want to read and inspect what is inside an amiibo without writing anything, AmiiboTool works fine as a viewer as well. You can dump the raw bytes, look at the game-specific structures, and see exactly what data each title stores. That alone is useful if you are trying to figure out why a particular game is not responding to your figure. Sometimes the issue is as simple as a corrupted save block that a fresh dump and rewrite will fix.

The AmiiboTool GitHub page is the best single resource for everything covered here. The wiki section has detailed command examples, and the issue tracker is full of real-world problems that other users have solved. Reading through the closed issues before you start will save you more time than any tutorial can. I spent about an hour going through old issues about key transfer failures on Pokemon Ultra Sun before attempting my first write, and that directly helped me avoid the most common mistake people make on their first try.