Quick Start
Connect a wallet, browse the Registry, shield your first token, and transfer confidentially.
ShadowLine is ready to use — no installation required. Connect a wallet, pick a token pair, and your first confidential balance is on-chain in under a minute.
1. Connect your wallet
Open the Registry and click Connect in the top right. ShadowLine works with any EIP-1193 wallet (MetaMask, Rabby, WalletConnect). Switch the network toggle to Sepolia to use free test tokens, or Mainnet for real assets.
2. Browse the Registry and pick a pair
The Registry lists every verified ERC-20 ↔ ERC-7984 wrapper pair registered on-chain. Each card shows the public token on top and its confidential wrapper below. Use the search bar to find a token by symbol or address.
Click Shield on any public-token row to go directly to that pair on the Wrapper page.
3. Shield — wrap ERC-20 into a confidential token
On the Wrapper page, enter an amount and click Shield. Two wallet prompts follow:
Allow the wrapper contract to spend your ERC-20. USDT requires zeroing any existing allowance first.
Lock the ERC-20 inside the wrapper. Your encrypted balance (euint64) is minted on-chain.
The Zama Gateway finalizes the ciphertext in a few seconds. Your confidential balance appears in the Registry after you click Decrypt and sign a read-only EIP-712 permit.
4. Transfer or decrypt
Once shielded, you have two options:
- Confidential Transfer — go to Transfer, pick the confidential token, enter a recipient and amount. The amount is encrypted client-side before submission. On-chain observers see the addresses but never the value.
- Decrypt balance — on the Registry or Portfolio page, click Decrypt next to any confidential row. Sign the EIP-712 permit in your wallet. No tokens move; the balance is decrypted only inside your browser session.
5. Unshield when you are done
To recover your original ERC-20, go to the Wrapper page, switch to Unshield, and enter the amount. The Zama Gateway decrypts on-chain and releases the underlying ERC-20 back to your wallet (typically 30–60 seconds). If the page closes mid-flow, the Resume banner re-appears automatically on your next visit.
For Developers: Drop-in SDK Hook
Want to integrate confidential asset shielding into your own dApp without writing boilerplate contract or relayer code? We created a zero-boilerplate drop-in React hook: useShadowline().
Simply copy src/lib/use-shadowline.ts into your React, Next.js, or Wagmi project to get instant access to verified contract pairs, automatic ERC-20 allowances, and one-click shielding/unshielding:
import { useShadowline } from '@/lib/use-shadowline';
export default function MyConfidentialApp() {
const { pairs, shield, unshield, isConnected } = useShadowline();
return (
<div>
<h3>Available Confidential Assets ({pairs.length})</h3>
{pairs.map((pair) => (
<div key={pair.symbol} className="flex gap-4">
<span>{pair.symbol} ↔ c{pair.symbol}</span>
<button onClick={() => shield(pair.erc7984Address, '10')}>
Shield 10 {pair.symbol}
</button>
</div>
))}
</div>
);
}0-to-100 Automated Setup & Deployment
Want to run ShadowLine locally or deploy to a cloud node / VPS in under 1 minute? We built an automated cross-platform wizard that handles dependency checking, environment configuration (.env.local), production build verification, and server launching.
Linux Ubuntu & macOS (Bash / Zsh):
git clone https://github.com/hosein-ul/ShadowLine.git && cd ShadowLine && npm run setupWindows (PowerShell & CMD):
git clone https://github.com/hosein-ul/ShadowLine.git; cd ShadowLine; npm run setup1-Line Auto-Installers (with Automatic Prerequisite Installation):
# Linux Ubuntu & macOS
curl -sSL https://raw.githubusercontent.com/hosein-ul/ShadowLine/main/scripts/setup.sh | bash
# Windows PowerShell (Auto-installs Git & Node via winget if missing)
irm https://raw.githubusercontent.com/hosein-ul/ShadowLine/main/scripts/setup.ps1 | iexDocker & VPS Self-Hosting:
docker compose up -d --build