Zecret SwapHomeSendReceiveStart a swap

For agents

Private swaps for agents

Zecret Swap and this tool never hold your funds or your keys. They help your agent find, check and track a private swap. Your agent sends from your own wallet, with your approval.

For people: set up your agent

  1. Give your agent the tool.

    An agent that runs commands can start here. This command shows the help.

    Command
    npx zecret --help

    An MCP app, such as Claude Desktop or Cursor, needs this config.

    MCP config
    {
      "mcpServers": {
        "zecret": {
          "command": "npx",
          "args": [
            "-y",
            "zecret",
            "mcp"
          ]
        }
      }
    }
  2. Give your agent this prompt.

    Paste it into your agent's chat or its standing instructions.

    Prompt
    Use the zecret tool to make private token swaps through Zecret Swap. Run `npx zecret tokens --json` to find tokens. Get a quote with `npx zecret quote --from <token> --to <token> --amount <amount> --json` and show me what I send, what I get, the fees and the time. Make a swap only when I say yes: run `npx zecret swap --from <token> --to <token> --amount <amount> --payout <my address> --refund <my refund address> --yes --json`. It checks 1Click's signature before it gives a deposit address. Show me the exact amount and the deposit address, and send it from my wallet only after I confirm. Use a new payout address for each swap. To follow the swap, set ZECRET_PROOF to the `proof` that the swap command printed, then run `npx zecret status <deposit address> --watch --json`. Never ask for my seed phrase or private keys. Zecret Swap never holds my funds.
  3. Approve each swap yourself.

    Your agent shows you the quote. You send the deposit from your wallet. Or your agent's own wallet tool sends it, after you confirm.

For agents

The rest of this page is for your agent: the four steps, the examples, the rules and the docs.

Four steps

  1. Tokens

    Read the list of tokens. Each token has its decimals and its price in US dollars.

    CLI
    zecret tokens
    HTTP
    GET /api/swap/tokens
  2. Quote

    Ask for a dry quote. It shows what you get, the fees and the time. It holds no address.

    CLI
    zecret quote --from usdc:base --to zec --amount 50
    HTTP
    POST /api/swap/quote, dry: true
  3. Verify and get a deposit address

    1Click, NEAR Intents' swap service, signs each quote. Ask for a live quote with your two addresses. Check 1Click's signature and the signed request. Only then use the deposit address. The CLI does both.

    CLI
    zecret swap --from usdc:base --to zec --amount 50 …
    HTTP
    POST /api/swap/quote, dry: false
  4. Track

    Send the exact amount from your own wallet. Then follow the swap until it ends. Pass the proof, the signature of your live quote, to read its details. Without it you get the status only.

    CLI
    zecret status <deposit address> --proof <proof> --watch
    HTTP
    POST /api/status

Send a token to someone else

Zecret Send pays one token to someone else's address: the same token, on the same chain, through NEAR Intents' confidential route. It uses the same endpoints as a swap.

  • Ask for a quote as for a swap, with send: true. Give the token's assetId as both originAsset and destinationAsset.

  • For a live quote, recipient is the address of the person you pay, on that chain. refundTo is an address of yours.

  • Check the live quote as for a swap, with one change: originAsset and destinationAsset are the one token you chose. Also check that amountIn less amountOut less withdrawFee is no more than 3% of amountIn.

  • Your wallet never pays theirs. NEAR's public record lists the deposit and the payout as separate rows, and no field links them. Both rows show the same token and nearly the same amount, so a watcher can often link them.

Try it

The token list and the quote change nothing. The swap command asks 1Click for a live quote, and checks it before it prints a deposit address.

CLI
npm install -g zecret
zecret tokens --search usdc
zecret quote --from usdc:base --to zec --amount 50
zecret swap --from usdc:base --to zec --amount 50 \
  --payout <your Zcash address> --refund <your Base address>
zecret status <deposit address> --proof <proof> --watch
curl
curl https://zecretswap.com/api/swap/tokens

curl https://zecretswap.com/api/swap/quote \
  -H 'content-type: application/json' \
  -d '{"dry":true,"originAsset":"nep141:base-0x833589fcd6edb6e08f4c7c32d4f71b54bda02913.omft.near","destinationAsset":"nep141:zec.omft.near","amount":"50000000"}'

curl https://zecretswap.com/api/status \
  -H 'content-type: application/json' \
  -d '{"depositAddress":"<deposit address>","proof":"<signature of your live quote>"}'

With plain HTTP, the checks are yours. Run every one on a live quote before you send. The docs below list them.

Rules for agents

  • Check the signature before you send.

    1Click, NEAR Intents' swap service, signs every quote. Check its signature. Check that the signed request is the swap you asked for. The CLI does both. Do not send funds on a quote you have not checked.

  • Send exactly what the quote says.

    Send the quoted amount of the quoted token on the quoted chain. Send it in one transfer, from your own wallet.

  • Give a refund address you control.

    If the swap can't finish, NEAR Intents sends your deposit back here, minus a refund fee. Use the wallet you send from, or another you control, not an exchange. When you pay with ZEC, use a t1… address: NEAR Intents refunds ZEC to a transparent address only, and a refund there is public.

  • Use a new payout address each time.

    Your wallet can make as many as you like. The CLI keeps no list of addresses, so this check is yours.

  • Read the fee.

    Zecret Swap charges 0.4%. NEAR Intents charges its own fee, about 0.2% (less on stablecoin pairs). The quote lists both.

  • Stay inside the limits.

    Each swap is $5 to $50,000. Each minute, one IP address may ask for 40 dry quotes, 8 live quotes, 90 status reads and 12 deposit notices. A busy answer says when to try again.

Who can still read what

The NEAR Intents Explorer lists a confidential swap as two separate rows. Each row leaves out one side.

NEAR's private chain
A small set of operators runs it and can see the swap.
Operators
Zecret Swap's server
Sees your IP address and the addresses in a quote, and stores none of them. Our host, Cloudflare, keeps a sample of requests, with IP addresses, for up to 31 days. NEAR Intents sees the addresses, not your IP address. Blockchain data providers see the deposit address while you wait, not your IP address.
Host logs only
Direct
One confidential swap through NEAR Intents, into any token, ZEC too. On a fast chain the payout follows within a minute of your deposit confirming, and equals the deposit less the fees and the price difference. Bitcoin takes 8 to 13 minutes, and other slow chains up to 30 minutes.
Double hop
One confidential swap into ZEC, at your own shielded Zcash address. Later, when you choose, you swap it out to any token, as a second swap that pays both fees again.

An agent can run Direct or a Double hop, one swap at a time. A Double hop is two swaps: first into ZEC at your own shielded address, then out to a new wallet.

The website also offers Through Zcash: two swaps from one deposit, with our fee once and NEAR Intents' fee on each swap. The ZEC between them is public, so it adds no privacy over Direct. It is on the website only: these docs and the CLI do not cover it.

Machine-readable docs

MCP server

zecret mcp offers four tools: tokens, quote, swap_prepare and status. swap_prepare checks the quote before it returns a deposit address.

Privacy Policy

We keep as little about you as we can, and we never sell it.

Swap data

Amounts, token choices, and destination addresses are used only to prepare your swap, send or payment. Our server passes them to NEAR Intents for the quote, and passes on a transaction ID if you give one. We do not keep your swap history or activity logs. We keep only running totals of swaps, added up by day: a swap counts once NEAR Intents sees its deposit, and a refunded or failed swap is taken out again. A swap made through a partner's link also adds to that partner's totals, by week. They hold no address and nothing that identifies you. To count each swap once, we also keep a scrambled fingerprint of it for three days, then delete it.

Resuming a swap

If you leave a swap, a send or a payment unfinished, this browser keeps that one on your device so you can resume it. When you resume it, the page sends its deposit address and proof, and the partner's id if you came from a partner's link, to our status service to check progress. While it is unfinished, each page of this site you open asks our status service about it once, sending the same. We do not keep the saved browser copy on our servers. The next time you open the swap page after its deposit window has been over for a day, this browser removes it. This browser also keeps a one-way fingerprint of each payout address it has paid, not the address itself, so it can warn you before you reuse one. That list never leaves this browser, and “Forget this device” clears it.

Watching for your deposit

While a swap waits for your deposit, our server asks public blockchain data providers for that chain whether a transfer has reached its one-time deposit address. It sends that address only. The providers never see your IP address, and we keep no record of the check.

Payment links

A long payment link keeps its details after the # in the link. Browsers do not send that part to any server, so we never receive it. A short payment link keeps the same details on our server, sealed with a key that only the link holds. We can't read them. We delete them after a set time, and the link stops working.

Partner requests

If you ask to become a partner on our partners page, we keep what you send: your project's name, website, token and chain, a Telegram handle or an email address, and your note. We use it only to answer your request. We delete it once we decide, or after 90 days. We keep no IP address with it. If we add you as a partner, your project's name, token and chain stay in our partner list.

Hosting and IP addresses

Our server sees your IP address on each request. It uses it only to limit how often one address can ask, keeps it in memory for about a minute, and writes no log. Our host, Cloudflare, keeps a sample of requests, with the IP address and the page, for up to 31 days. We cannot turn this off.

Tracking

No accounts, analytics, tracking cookies, or advertising profiles.

Data sharing

We never sell your data. We pass it on only as this policy says. NEAR Intents gets the addresses in a quote, and a transaction ID if you give one. The blockchain data providers get a deposit address.

Updated October 30, 2026.