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.
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 authorityWhere 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 moveWhat 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
- Canister inventory
- Controllers and upgrades
- Fees
- Itemized examples
- Failures and refunds
- Audit status
- Dependencies
- Verify it yourself
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%
- 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.
- ICP or ckUSDC: you send it straight to your order’s deposit address. No Houdiniswap step.
- 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%
- You send NAK to your sale’s deposit address, from any ICP wallet.
- The sell router checks the sale still reaches the $100 minimum, then sells the NAK for ICP on ICPSwap.
- 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.
| Canister | ID | What it does | Code hash (live) |
|---|---|---|---|
| Buy router | bkyfl-uyaaa-aaaab-qhl5q-cai | Buys NAK with the ICP that reaches an order, and pays it out | Loading… |
| Swap helper 1 | boo25-byaaa-aaaab-qhmaa-cai | Run 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 2 | bjp4j-maaaa-aaaab-qhmaq-cai | Loading… | |
| Swap helper 3 | bamxv-2iaaa-aaaab-qhmba-cai | Loading… | |
| ckUSDC router | etk63-biaaa-aaaal-qxn3q-cai | Buys NAK with ckUSDC paid directly | Loading… |
| Sell router | h6yr4-jiaaa-aaaae-ahaua-cai | Sells NAK for ICP and sends the ICP to the seller’s Houdiniswap exchange | Loading… |
Tokens and venues NAKSwap uses (not run by NAK)
| Canister | ID | Role |
|---|---|---|
| NAK ledger | eig2s-waaaa-aaaam-qbg5a-cai | The NAK token: ICRC-1/ICRC-2, 8 decimals, 0.01 NAK per transfer |
| ICP ledger | ryjl3-tyaaa-aaaaa-aaaba-cai | ICP, run by the Internet Computer’s NNS: 0.0001 ICP per transfer |
| ckUSDC ledger | xevnm-gaaaa-aaaar-qafnq-cai | DFINITY’s chain-key USDC: 0.01 ckUSDC per transfer |
| ICPSwap NAK/ICP pool | d6hdt-qiaaa-aaaag-qm76q-cai | Where NAK is bought and sold |
| ICPSwap ckUSDC/ICP pool | mohjv-bqaaa-aaaag-qjyia-cai | First leg when you pay with ckUSDC |
| ICPSwap ckUSDC/NAK pool | tkwyk-dyaaa-aaaar-qciaq-cai | Direct ckUSDC route, used when it gives more NAK |
| Cycles Minting Canister | rkp4c-7iaaa-aaaaa-aaaca-cai | Turns 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:
| Controller | What it is | What it can do |
|---|---|---|
| ym3yz-lpqvj-spesx-r7efc-opibs-gjpts-erxs6-h4fa6-67wby-dnea7-rqe | NAK’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-cai | NAK’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-cai | CycleOps’ 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 ckUSDC | Sell NAK | |
|---|---|---|---|
| NAKSwap fee | 1.1% of the ICP that reaches the router | 1.1% of the ckUSDC (or of the ICP it becomes) | 10.1% of the ICP the sale brings in |
| Split | 1% to NAK’s fee wallet, 0.1% turned into cycles that keep NAKSwap’s canisters running | 10% to NAK’s fee wallet, 0.1% to cycles | |
| When it’s taken | Only 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 ICP | 1 ckUSDC | $100 of ICP must reach Houdiniswap: about $111 of NAK |
| Maximum | 50 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’ fees | Houdiniswap’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 send | 10.0000 ICP |
|---|---|
| Network feePaid by your wallet, on top | 0.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 ICPSwap | 9.8896 ICP |
| Price impactHow far this trade moves the price | 0.55% |
| Expected NAK | ≈ 805,322 NAK |
| Slippage tolerance3% paying with ICP or ckUSDC; 6% through Houdiniswap | 3% |
| Minimum receivedGuaranteed, or your ICP comes back | 781,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 send | 3,200,000 NAK |
|---|---|
| Network feePaid by your wallet, on top; 0.01 more when sent to the sale’s principal | 0.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 Houdiniswap | 34.1706 ICP ≈ $105.93 |
| Slippage tolerancevs. the estimate when your NAK arrives | 3% |
| You receiveHoudiniswap’s rate, its fee and the network fee | Set 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 stops | What happens | What you get back |
|---|---|---|
| Your deposit never reaches Houdiniswap, arrives after its deadline, or is the wrong amount | Houdiniswap’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 address | Houdiniswap 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 window | The 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 unavailable | The 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 arrives | If 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 ckUSDC | Treated 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 payout | The 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 stops | What happens | What you get back |
|---|---|---|
| Your NAK arrives under the minimum, or Houdiniswap can’t take the sale, or the price would move too much | The 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 time | The 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 it | Houdiniswap 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 stalls | Houdiniswap’s step. | Contact Houdiniswap support with the Houdiniswap order ID shown on your sale. |
| Wrong destination address, or one that needs a memo or tag | Houdiniswap 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 NAK | Late 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
- 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.
| Dependency | Used for | If it fails |
|---|---|---|
| Internet Computer | Runs 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. |
| ICPSwap | The 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. |
| Houdiniswap | Converting 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. |
| Cloudflare | DNS, HTTPS, the check that you’re a person (Turnstile), and a “briefly offline” page. | The website may be unreachable; canisters keep working. |
| CycleOps | Watching 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.