Solaris AISolaris AI FlowDocs
Node ReferenceDeFi

Zcash

Swap Solana assets into ZEC delivered to your own Zcash wallet. Powered by the NEAR Intents 1Click network.

View as Markdown

The Zcash node moves Solana value into ZEC delivered straight to your own Zcash wallet: pair it with Zodl and shield on arrival. Under the hood it rides the NEAR Intents 1Click network. The node quotes the route, sends the origin asset from your Solaris AI wallet to a swap-specific deposit address, and solvers deliver native ZEC on Zcash. The destination is part of the node's identity: it always delivers ZEC (no destination fields to configure).

Prerequisites

No credential required; access is included with Solaris AI. Get Quote and Swap to Zcash use your embedded Solana wallet (it supplies the refund address, and the swap sends the deposit from it), so the origin asset must live on Solana (SOL, USDC, or any other supported Solana asset). Supported Assets and Swap Status need nothing.

Operations

Supported Assets

Lists everything 1Click can swap between, one row per asset per chain: the assetId (the canonical route identifier), symbol, blockchain, decimals, and an indicative USD price. Filter by chain (for example zec or sol) or by symbol. Use this to check which Solana origin assets can reach ZEC, or when an origin symbol fails to resolve.

Get Quote

Prices the ZEC exit without moving anything: expected output, worst case after slippage, USD values, and a time estimate for delivery. It takes the same fields as the swap (origin asset, amount, recipient), so a quote you like can be promoted to a swap by switching the operation. This is the dry-run path; the swap operation itself has no dry-run toggle by design.

Swap to Zcash

Executes the route end to end: requests an executable quote, transfers the exact origin amount from your Solaris AI wallet to the quote's deposit address, then waits (up to Wait seconds, default 180, max 300) for delivery. The output always carries depositAddress, the durable handle for the swap, plus the canonical 1Click status (PENDING_DEPOSIT, KNOWN_DEPOSIT_TX, PROCESSING, INCOMPLETE_DEPOSIT, SUCCESS, REFUNDED, FAILED) and done.

Before any funds move, the node authenticates the quote end to end: the response must carry a valid ed25519 signature from 1Click's manager key, echo the exact route you configured (asset, amount, recipient, refund address), and name a deposit address that decodes as a real Solana account. Refunds always return to your Solaris AI wallet.

Four behaviors worth knowing:

  • If delivery outlasts the wait window, the node still succeeds with done: false. Compose a Delay node followed by Swap Status to keep watching.
  • Once the transfer has broadcast, the node never hard-fails on a later API hiccup; it reports the freshest status it could observe. REFUNDED and FAILED come back as success: false so downstream nodes do not act as if value arrived; refunds return to your Solaris AI wallet automatically.
  • If the quote demands a deposit memo (rare), the node refuses before sending anything rather than stranding the deposit.
  • One deposit at a time, even across crashes: the node records the deposit address durably before signing, so a rerun while a previous swap's funds are unaccounted for refuses to send again and points at that swap instead. It unblocks automatically once the earlier swap reaches SUCCESS, REFUNDED, or FAILED.

Swap Status

Looks up a swap by deposit address, normally via the swap output: {zcashResponse.depositAddress}. Unknown or expired addresses return found: false rather than an error, so a status check in a loop can't kill the run.

Zcash recipients

1Click delivers ZEC to transparent addresses only (t1... or t3...), and the node validates this strictly before any funds move. Shielded (zs...) and unified (u1...) addresses are rejected. In Zodl, copy your Transparent receive address; when the ZEC arrives, Zodl offers one-tap shielding into the Orchard pool. The swap itself is not private: the Solana leg and the transparent receipt are public on their chains.

Configuration

The destination is fixed: native ZEC on the Zcash chain. There is nothing to configure on that side.

FieldTypeRequiredDescription
originAssetstringFor quote/swapA Solana asset: SOL, USDC, or another supported SPL token (symbol, or its Solana-chain asset id from Supported Assets when a symbol is ambiguous)
amountstringFor quote/swapHuman units of the origin asset (0.5 = half a SOL); templates supported
recipientstringFor quote/swapYour Zcash transparent address (t1/t3)
slippageBpsnumberNoSlippage tolerance in basis points (default 100 = 1%)
waitSecondsstringNo (swap)Bounded settlement wait (default 180, max 300)
depositAddressstringFor getSwapStatusThe swap output's deposit address
chain / symbolstringNo (assets)Filters for Supported Assets

Example: exit to ZEC on a price trigger

Cron → Jupiter (price check) → Condition (SOL < 120) → Zcash swap (USDC in, ZEC to your t1... address) → Workflow Control (end automation) → Telegram notification with {zcashResponse.status} and {zcashResponse.destinationTxHash}.

The Workflow Control node is what makes this a one-time exit. After the swap it switches the workflow's own automation off, so the cron stops ticking once the job is done; the current run still finishes and sends the notification. The copilot's vetted Zcash exit recipe builds exactly this shape: a stored flag written right after the swap guards the run while it settles, and the workflow ends its own automation both after the exit and on any later tick that finds the flag already set. Turning automation back on is an explicit re-arm, and the exit can execute again if the price still qualifies.

On this page