Transparency & Security

Who runs NAKSwap, where your money goes, and what happens if something fails

Everything a first-time visitor should be able to check before sending anything: the canisters that handle your funds, who can change them, what you pay, and what you get back when a swap can’t finish.

Last updated October 13, 2026. Code hashes and controllers below are read live from the Internet Computer.

01

Who operates this?

NAK (New Age Kapital), a nonprofit organization. NAK wrote and runs the NAKSwap canisters and the website, and controls the canisters through the principals listed below.

Controllers and upgrade authority
02

Where does my money go?

Into a deposit account that belongs to your order, held by a NAKSwap canister on the Internet Computer, then to ICPSwap (to buy or sell NAK) and, for other tokens, Houdiniswap. Only fees stay with NAK.

How funds move
03

What if something fails?

It depends on where it stops. Before the swap you usually get back what you sent, minus network fees. After a conversion, you get the converted token back, not the original. Some cases need a person.

Failures and refunds

How funds move

There are no accounts and no wallet connection. Every order gets its own deposit address, owned by a NAKSwap canister. Funds sit there, or in the canister doing the swap, only while the order runs.

Buy NAK · fee 1.1%

  1. Other tokens (BTC, ETH, SOL, USDT…): you send them to a Houdiniswap address. Houdiniswap, an independent service, converts them to ICP and delivers the ICP to your order’s deposit account. While Houdiniswap has your funds, its terms apply.
  2. ICP or ckUSDC: you send it straight to your order’s deposit address. No Houdiniswap step.
  3. The router (with a swap helper) buys NAK on ICPSwap’s NAK/ICP pool and sends it to the ICP principal you gave. If it can’t buy at least your guaranteed minimum, it returns the ICP or ckUSDC instead.

Sell NAK · fee 10.1%

  1. You send NAK to your sale’s deposit address, from any ICP wallet.
  2. The sell router checks the sale still reaches the $100 minimum, then sells the NAK for ICP on ICPSwap.
  3. It keeps the fee and sends the rest of the ICP to a Houdiniswap exchange created for your sale only. Houdiniswap converts it and sends your token to the address you gave. If anything goes wrong before the ICP is sent, it comes back to your ICP principal.

Production canister inventory

The canisters that hold or move your funds. Each one runs on the Internet Computer; click through to see its controllers and code hash on the ICP Dashboard. “Code hash” is the SHA-256 of the installed program: it changes only when the canister is upgraded, and every upgrade is logged on the status page.

CanisterIDWhat it doesCode hash (live)
Buy routerbkyfl-uyaaa-aaaab-qhl5q-caiBuys NAK with the ICP that reaches an order, and pays it outLoading…
Swap helper 1boo25-byaaa-aaaab-qhmaa-caiRun one buy at a time for the buy router, so swaps don’t queue. A helper holds funds only during that swap.Loading…
Swap helper 2bjp4j-maaaa-aaaab-qhmaq-caiLoading…
Swap helper 3bamxv-2iaaa-aaaab-qhmba-caiLoading…
ckUSDC routeretk63-biaaa-aaaal-qxn3q-caiBuys NAK with ckUSDC paid directlyLoading…
Sell routerh6yr4-jiaaa-aaaae-ahaua-caiSells NAK for ICP and sends the ICP to the seller’s Houdiniswap exchangeLoading…

Tokens and venues NAKSwap uses (not run by NAK)

CanisterIDRole
NAK ledgereig2s-waaaa-aaaam-qbg5a-caiThe NAK token: ICRC-1/ICRC-2, 8 decimals, 0.01 NAK per transfer
ICP ledgerryjl3-tyaaa-aaaaa-aaaba-caiICP, run by the Internet Computer’s NNS: 0.0001 ICP per transfer
ckUSDC ledgerxevnm-gaaaa-aaaar-qafnq-caiDFINITY’s chain-key USDC: 0.01 ckUSDC per transfer
ICPSwap NAK/ICP poold6hdt-qiaaa-aaaag-qm76q-caiWhere NAK is bought and sold
ICPSwap ckUSDC/ICP poolmohjv-bqaaa-aaaag-qjyia-caiFirst leg when you pay with ckUSDC
ICPSwap ckUSDC/NAK pooltkwyk-dyaaa-aaaar-qciaq-caiDirect ckUSDC route, used when it gives more NAK
Cycles Minting Canisterrkp4c-7iaaa-aaaaa-aaaca-caiTurns the 0.1% maintenance share into cycles for NAKSwap’s canisters

This page lists only these addresses. A NAKSwap order’s own deposit address is shown on the order page and belongs to that order alone. If anyone gives you a different “NAKSwap” address, don’t use it.

Controllers and upgrade authority

On the Internet Computer, a canister’s controllers can install new code, change its settings, or stop it. All six NAKSwap canisters have the same controllers:

ControllerWhat it isWhat it can do
ym3yz-lpqvj-spesx-r7efc-opibs-gjpts-erxs6-h4fa6-67wby-dnea7-rqeNAK’s owner principal. Also the routers’ admin and the wallet that receives NAKSwap fees.Upgrade, change settings and limits, pause, resolve held orders.
pov7g-fqaaa-aaaaj-a6z7q-caiNAK’s Orbit station: a multi-approval wallet canister (DFINITY’s Orbit).Same as any controller, through the station’s own approval rules.
cpbhu-5iaaa-aaaad-aalta-caiCycleOps’ status checker. It is blackholed: it has no controllers of its own, so no one can change what it does.Read cycles and status, for monitoring. It has no way to upgrade a canister or move funds.

Checking the live controller lists…

Who can upgrade the code

The two NAK controllers above. For an upgrade, NAK adds a temporary deployment key as a controller, installs the new code, and removes the key straight after; NAK’s hourly monitor flags the key if it is ever left on. There is no timelock and no on-chain vote: an upgrade takes effect as soon as it is installed. New code could in principle change anything about how the canisters handle funds, so you are trusting NAK with that. What you can check is that the code hash only changes when an upgrade is announced on the status page.

Who can pause, and what pausing does

The admin principal (ym3yz…) or a controller. A router also pauses itself when its cycles run low. While a router is paused:

  • Buy and ckUSDC routers: no new orders or swaps start. Funds that arrive wait in their deposit account. Payouts and refunds already under way still go through.
  • Sell router: no new sales or swaps start, and ICP is not sent to Houdiniswap until it is unpaused (refunds still go through).

What else the admin can do

  • Change fees and limits, within bounds written into the code (for example, the buy fee can’t go above 5%, and the cycles share can’t exceed the fee). Fee changes apply to new quotes.
  • Resolve an order held for review: refund it to the order’s own refund principal, or pay out the NAK to the order’s own recipient, each capped by what is actually there.
  • Recover funds left behind in a finished order’s deposit address (for example, a transfer sent after the order closed and after the automatic watch ended) to a principal the admin names. This is how NAK returns such funds to their sender on request.

The relay service

The website’s server (the “relay”) talks to Houdiniswap and holds the operator keys the routers accept. The buy operator can open orders and nudge them along; it cannot send a buy order’s funds anywhere except that order’s recipient or refund principal. The sell operator also names the Houdiniswap deposit address a sale’s ICP is sent to. That is the one place an off-chain key decides where funds go, so the sell router limits it: one address per sale, at most 55 ICP per sale and 150 ICP in any 24 hours, never to a NAKSwap or ICPSwap account, and not while paused.

Fees

Buying and selling are separate services with separate fees. The fee is taken in ICP (or ckUSDC), only when the step it pays for goes through, and the amount you are quoted already has it taken out.

Buy NAK (other tokens or ICP)Buy NAK with ckUSDCSell NAK
NAKSwap fee1.1% of the ICP that reaches the router1.1% of the ckUSDC (or of the ICP it becomes)10.1% of the ICP the sale brings in
Split1% to NAK’s fee wallet, 0.1% turned into cycles that keep NAKSwap’s canisters running10% to NAK’s fee wallet, 0.1% to cycles
When it’s takenOnly when the swap to NAK goes through. A refund carries no NAKSwap fee.When the ICP is sent to Houdiniswap. If it never gets there, all the ICP comes back with no fee. If Houdiniswap later sends it back, the fee is not returned.
Minimum$25 through Houdiniswap (private routes often ~$40); 1 ICP paying with ICP1 ckUSDC$100 of ICP must reach Houdiniswap: about $111 of NAK
Maximum50 ICP per swap (150 ckUSDC), and less if it would move the price more than 3.5%55 ICP per sale, 150 ICP across all sales per day
Others’ feesHoudiniswap’s fee and the sending and receiving networks’ fees are built into Houdiniswap’s quote. ICPSwap’s 0.3% pool fee is built into the pool price. Every ledger transfer costs a small fixed fee (0.0001 ICP, 0.01 NAK, 0.01 ckUSDC).

Itemized examples

Real numbers from live ICPSwap quotes on October 13, 2026, when ICP was about $3.10 and 1 ICP bought about 81,885 NAK at the margin. Your own quote shows today’s figures.

Buy NAK with 10 ICP

You send10.0000 ICP
Network feePaid by your wallet, on top0.0001 ICP
NAKSwap fee, 1.1%0.10 to NAK, 0.01 to cycles− 0.1100 ICP
Ledger fees inside the router4 transfers at 0.0001− 0.0004 ICP
Swapped on ICPSwap9.8896 ICP
Price impactHow far this trade moves the price0.55%
Expected NAK≈ 805,322 NAK
Slippage tolerance3% paying with ICP or ckUSDC; 6% through Houdiniswap3%
Minimum receivedGuaranteed, or your ICP comes back781,162 NAK

Paying with another token adds Houdiniswap’s step in front: it converts your token to ICP at its own rate, with its fee and the network fees inside that rate, and the table above then applies to the ICP it delivers.

Sell 3,200,000 NAK

You send3,200,000 NAK
Network feePaid by your wallet, on top; 0.01 more when sent to the sale’s principal0.01 NAK
Ledger fees inside the router− 0.03 NAK
Sold on ICPSwapPrice impact 2.15%38.0097 ICP
NAKSwap fee, 10.1%3.8010 to NAK, 0.0380 to cycles− 3.8390 ICP
Ledger fee to send− 0.0001 ICP
Reaches Houdiniswap34.1706 ICP ≈ $105.93
Slippage tolerancevs. the estimate when your NAK arrives3%
You receiveHoudiniswap’s rate, its fee and the network feeSet by Houdiniswap

Can the quote change before settlement?

  • Yes, quotes are estimates. Prices move between your quote and the moment your funds are swapped. Through Houdiniswap that can be 5 to 45 minutes, and Houdiniswap may deliver a little more or less ICP than it estimated.
  • Buying is protected by the minimum. Each buy order records a guaranteed minimum (3% under the quote paying with ICP or ckUSDC, 6% through Houdiniswap). The router also refuses a trade that would land more than 1% under the pool’s own quote at that moment, or move the price more than 5%. If it can’t deliver at least the minimum, it doesn’t trade: you get the ICP (or ckUSDC) back instead.
  • Selling has two moving parts. When your NAK arrives, the sale is re-checked at that moment’s price: it goes ahead only if at least $100 would still reach Houdiniswap, and the swap must then bring in at least 97% of that estimate, or your NAK comes back. After that, Houdiniswap sets its own rate when the ICP reaches it, so the final amount of your token is Houdiniswap’s figure, not a NAKSwap guarantee.
  • Fees don’t change mid-order. The NAKSwap fee is the one shown in your quote.

What happens if something fails

Not every failure ends in a full refund. What you get back depends on how far your funds got. Ledger fees for any transfer back to you are always deducted, and anything a third party has already charged (Houdiniswap, network fees) is not returned by NAKSwap.

Buying NAK

Where it stopsWhat happensWhat you get back
Your deposit never reaches Houdiniswap, arrives after its deadline, or is the wrong amountHoudiniswap’s step, under its terms. NAKSwap can’t see or move these funds.Whatever Houdiniswap returns to the refund address you gave it, under its rules. Contact Houdiniswap support with the Houdiniswap order ID.
Wrong network or unsupported token sent to the Houdiniswap addressHoudiniswap may not detect it.Possibly nothing. Only Houdiniswap can say; tokens sent on the wrong network are often lost.
Houdiniswap converts, but the ICP arrives after your order’s windowThe router keeps watching the order for 3 days and handles it automatically.NAK if it can still meet your minimum; otherwise the ICP, minus ledger fees.
Houdiniswap converts, but buying NAK can’t go aheadPrice moved past your minimum, price impact over 5%, over the maximum, ICPSwap unavailableThe router refunds instead of swapping.ICP, not your original token, to your ICP principal, minus ledger fees. No NAKSwap fee. Houdiniswap’s fees and any price change of your original token are not recovered.
Paying with ICP or ckUSDC, less than quoted arrivesIf it can’t reach your minimum, the router doesn’t swap.The ICP or ckUSDC, minus ledger fees.
Very small amountsUnder 0.5 ICP, or 0.25 ckUSDCTreated as dust (this also stops “address poisoning” tricks). Not swapped or refunded automatically; after 3 days it is set aside in an account NAK controls.Only on request: message support with your order code and the transfer.
Partial failure inside the swapICPSwap keeps funds, balances don’t add up, a ledger keeps refusing a payoutThe order is held for review. Funds stay where they are; nothing is paid automatically.NAK checks the ledgers and either pays out your NAK or refunds your ICP, by hand. Message support.

Selling NAK

Where it stopsWhat happensWhat you get back
Your NAK arrives under the minimum, or Houdiniswap can’t take the sale, or the price would move too muchThe sale is declined before anything is sold.Your NAK, minus the NAK ledger fee.
The NAK is sold, but no Houdiniswap exchange can be set up in timeThe ICP isn’t sent anywhere.All of the ICP, minus the ledger fee, with no NAKSwap fee. You get ICP, not NAK.
ICP sent, Houdiniswap fails or refunds itHoudiniswap returns the ICP to your sale’s deposit address; the router passes it on automatically for 7 days.That ICP, minus ledger fees. The NAKSwap fee is not returned, and Houdiniswap’s fees follow its terms.
ICP sent, Houdiniswap delivery stallsHoudiniswap’s step.Contact Houdiniswap support with the Houdiniswap order ID shown on your sale.
Wrong destination address, or one that needs a memo or tagHoudiniswap sends to the address you entered.Usually nothing: transfers to a wrong address can’t be reversed.
NAK sent late, sent twice, or under 25,000 NAKLate or extra NAK is not sold. Under 25,000 NAK counts as dust.Late or extra NAK comes back automatically (7 days); dust only on request.

Deposits NAKSwap can’t handle automatically

  • Unsupported tokens. A deposit address only handles its own token: ICP for an ICP order, ckUSDC for a ckUSDC order, NAK for a sale. Anything else sent there isn’t detected or refunded automatically. ICP and NAK left in a deposit account can be recovered by hand on request; other tokens may be unrecoverable, and tokens sent to a ckUSDC order’s or a sale’s plain principal address can only be moved out if they are the token that address is for.
  • Wrong networks. ICP, ckUSDC and NAK live on the Internet Computer. Sending “USDC” from Ethereum or another chain to an ICP address doesn’t arrive at all.
  • After the watch window. Funds that arrive more than 3 days (buying) or 7 days (selling) after an order closes aren’t handled automatically, but stay recoverable by hand while they remain in the deposit account.

When a refund can’t complete on its own

An order is held for a person to check, never paid out on a guess, when a ledger keeps refusing a transfer for an hour, when balances don’t match what the swap should have produced, or when a transfer’s outcome can’t be confirmed. Held funds stay in the order’s deposit address or the router until NAK resolves them. To escalate, use the steps on the status page: support is only on Telegram at @NAKSTOKEN, and it never messages first, asks for keys, or asks you to send more funds.

Audit status

No independent third-party security audit has been done. The reviews below were carried out by NAK, using AI-assisted tools. Weigh that accordingly, and don’t send more than you can afford to lose.
  • Internal code review, October 2026, of all three routers, the helpers and the relay. No critical or high-severity issues were found. Two medium issues (ckUSDC payments to the any-wallet address that could be missed or stuck) and several low ones were fixed and deployed on October 13, 2026.
  • Automated tests run before every release: complete buy, ckUSDC and sell flows in the Motoko interpreter, the same flows on a local Internet Computer (PocketIC) with real threshold signatures, and the relay’s own test suite.
  • Built-in safeguards: per-order deposit addresses, a price guard against pushed prices, minimum-received checks, price-impact and size limits, a daily cap on ICP sent out by the sell router, holds for review instead of guesses, and automatic pauses when cycles run low.
  • Monitoring: an hourly check compares each canister’s code hash, controllers, fees and settings with what they should be, and alerts NAK if anything differs.
  • Source code is proprietary to NAK and not published. The code hashes above let you confirm the code hasn’t changed without an announced upgrade; they can’t show you what the code does.

Found a problem? Report it privately on Telegram to @NAKSTOKEN.

Protocol dependencies

NAKSwap relies on these. If one fails, the part that depends on it stops; the status page shows which.

DependencyUsed forIf it fails
Internet ComputerRuns the NAKSwap canisters and the ICP, NAK and ckUSDC ledgers; signs the any-wallet addresses’ transfers (threshold signatures); converts ICP into cycles.Swaps and refunds wait until it recovers. Funds stay in their accounts.
ICPSwapThe pools where NAK is bought and sold. Independent; not run by NAK.No swaps. Buys refund ICP if they can’t run in time; sales return the NAK.
HoudiniswapConverting other tokens to ICP (buying) and ICP to other tokens (selling). Independent; custody of your funds during its step, under its own terms and checks.Only ICP and ckUSDC payments keep working. Funds already with Houdiniswap follow its process.
ckUSDC (DFINITY)Chain-key USDC on the Internet Computer, backed by USDC on Ethereum.Only the ckUSDC route is affected.
NAKSwap relay (our hosting provider)The website, quotes, opening orders, and talking to Houdiniswap. Holds the operator keys.No new orders or quotes. Canisters keep finishing orders already funded; their own timers handle swaps, payouts and refunds.
CloudflareDNS, HTTPS, the check that you’re a person (Turnstile), and a “briefly offline” page.The website may be unreachable; canisters keep working.
CycleOpsWatching cycles balances (read-only).Nothing for users; NAK’s own monitor and the built-in 0.1% top-ups continue.

Verify it yourself

  • Canisters, controllers and code hashes: open any canister ID above on the ICP Dashboard.
  • Your transfers: every payout and refund shows its ledger block number on your order page. Look up ICP blocks on the ICP Dashboard, and NAK or ckUSDC transfers on ICExplorer by searching for the ledger ID or your principal.
  • Pool prices: compare your quote with ICPSwap’s own NAK/ICP pair.
  • Live service state and the upgrade log: the status page.
  • What data is kept: the privacy policy. The binding rules are the Terms of Use.