
KCC-20 tokens can now trade on Kaspa. But there's an odd gap. KAS itself isn't a KCC-20 token, so apps built for tokens don't understand plain KAS without extra work. Manyfest, one of the authors of the KCC-20 token rulebook, has proposed a fix called KAS20 (Kas-Smiths).
The idea is simple. You lock KAS and get the same amount of KAS20. One KAS20 is always backed by exactly one KAS. When you want your KAS back, you burn the KAS20 and the KAS is released. That's it.
It's only a proposal for now. The code is waiting for review and runs offline only, so there's nothing to use yet.
Why KAS needs a token version at all
On Kaspa, KAS sits directly in coins. A KCC-20 token sits in coins too, but each of those coins also carries a small token record and the rules for moving it. An app written for KCC-20 knows how to read that record. Plain KAS doesn't have one.
For example, imagine a swap pool built to trade any two KCC-20 tokens. It works for every token. But if one side of the pair is KAS, the builder has to write extra code just for KAS. With KAS20, the same pool handles KAS like any other token.
IzioDev, another KCC-20 author, put it from a builder's side. An app may want to manage tokens and KAS "uniformly", "without extra 'custom code'". IzioDev is convinced that designing KAS20 correctly "only gives benefit with no tradeoff".
It could even happen in one step. IzioDev asked whether someone could turn KAS into KAS20 and trade it for another token in the same transaction. Manyfest said it's "not trivial", but "I believe the answer is yes" (Manyfest).
No vault in the middle
Ethereum solved the same problem years ago with WETH, short for wrapped ether. Michael Sutton explained how KAS20 differs. With WETH, "all the backing ETH is held under one contract address", and everyone's balance is a number inside that contract.
KAS20 doesn't have that middle layer. "Each UTXO simply holds the actual KAS together with the KAS20 state representing it 1:1," Sutton wrote. A UTXO is one of those coins. So there's no shared vault holding everyone's KAS. Every coin carries its own backing.
Nobody holds the KAS on your behalf either. Manyfest explained that KAS20 leans on a rule Kaspa already enforces. Each coin just has to hold as much KAS as its token amount, "since kas can't be created from nothing" (Manyfest).
Sutton also pointed out that there's no "wrapper-level contention". In practice, people using KAS20 at the same time don't have to queue for one shared coin. Each person's coins move on their own. Anyone can also add more minter coins, so making new KAS20 doesn't depend on a single coin either (KAS20 example).
That's why Sutton sees "no real reason to add a 'w'" to the name. It's plain KAS, in token form.
Tiny payments without a pile of tiny coins
There's a bonus here for small payments.
Kaspa makes it costly to create lots of tiny coins. That protects the network from filling up with dust, but it makes small payments awkward. For example, if readers paid a writer a few cents per article, every single payment would leave the writer with another tiny coin.
KCC-20 has a feature called borrowed receive. Instead of creating a new coin for you, the sender tops up a coin you already have. The rules are strict. The amount can only go up, the owner can't change and the KAS inside can't be reduced (KCC-20). Owners also decide who may top up their coin, or how big a top-up must be, which helps stop strangers flooding it with dust.
Plain KAS can't do that. KAS20 could. Sutton said it would allow "the reuse of a single utxo for eg receiving micro payments".
There's a catch. Every top-up replaces the old coin with a new one, so a wallet has to notice the change before it spends that coin (KCC-20).
Why everyone should use the same one
Anyone could deploy their own KAS20. That's the risk. Each deployment gets its own covenant ID, so two versions would be two different tokens. Trading would split between them, and people would have to check which one they actually hold (KAS20 example).
That's why Sutton wants exactly one. "Ideally we have a single such covenant, widely used for kas representation in the kcc20 ecosystem."
The name moved around a bit too. The code started out as kast. Sutton liked KAS20, and Manyfest wondered whether the token should simply be called KAS (KCC chat). The proposal now uses both, KAS20 as the name and KAS as the symbol (KAS20 example).
Where it stands
Right now KAS20 is a forum post and a piece of example code. The code is waiting for review (pull request). Its demo runs on one computer with test keys and sends nothing to the network. It isn't on testnet or mainnet, and nobody has audited it.
So there's nothing to use yet. There's no agreed version either, which means a token calling itself KAS20 today is just a token with that name. Check its covenant ID like you would for any other token.
Manyfest is asking builders for feedback on Kas-Smiths.
Telegram sources link to public messages in the KCC Synchronous Communication Telegram group.


