MERYAL

Borrow against tokenized stocks into a shielded pool, spend from addresses nothing ties to you, and let agents pay per request or on credit, under your caps. Zero-knowledge proofs, stealth payments and x402, settled on chain.

Stage 1 · position public, money privatefixed pieces · hourly rounds · fresh addresses
The problem

On a public chain, every position is a confession.

Meryal keeps the position public and hides the one thing that matters: where the money goes.

TODAYPositioncollateral · debt · liq lineThe moneywallet · tradesliquidation hunters · copy traders · anyone, read bothWITH MERYALPositioncollateral · debt · liq linewhere it went: unreadable
How it works

Four steps from a public position to a private trade.

VISIBLEHIDDENStock tokenNVDA, your wallet01Positionpublic · ≤ 50 % LTV02Shielded pool1000 · 100 · 10 pieces030x8cdd…bf760x4f2a…91c00xb299…eb31fresh addresses, no gas04Tradestealth addressleftovers recycled as new notes
01  Deposit

A stock token opens a public position, priced by Chainlink.

02  Borrow

USDG goes straight into the shielded pool, in fixed pieces, with everyone else's.

03  Spend

Withdraw to fresh addresses by proof. A relayer pays the gas.

04  Return

Repay from a fresh address, or recycle the leftovers as new notes.

0.97 % a year to borrow. Liquidation at 62.5 %. Stock tokens enforce their own eligibility rules on every transfer; Meryal adds none.

Stage 2 · designed

Then the position itself, sealed.

The position becomes a private note that proves itself solvent. The chain keeps what it needs to stay safe, and nothing else.

Price feedstored on chainevery 5 % moveSealed positionsize and line: hiddenwithin 15 minProofhealthy, no moreChainkeeps it, or freezes itno proof in time → the position is frozen and settled in the open
Agents

Let an agent spend it. Under your caps.

A session is a fresh address with a budget. The keys and the caps stay with the issuer, so a compromised agent can spend nothing more.

Issuerkeys · caps · kill switch, off the agentsigns, under capsShielded poolfunds it by proofrelayerSession addressbudget · rotates · no gasData APIx402 · one-time addressInferencex402 · one-time addressAny x402 serviceone-time addresskill switch on → nothing is signed
Owner
Caps and the kill switch live here, not on the agent.
Register, then ask the gateway something. It answers 402; the issuer opens a session, signs 0.01 USDG to a one-time address, and retries.
Code: register, pay, kill, from Python, TypeScript or MCP
import { Meryal } from "@meryal/rx402";

// The issuer holds the pool seed and every session key.
// The agent holds one token, and the caps run off its machine.
const meryal = new Meryal({ issuer: "https://www.meryalraven.sbs/api/issuer", token: process.env.MERYAL_TOKEN! });

// Looks like fetch. On a 402 the issuer opens or rotates a session,
// signs a USDG payment from a fresh address and retries.
const r = await meryal.fetch("https://api.prices.example/quote?nvda");
console.log(await r.json());

// Stealth merchants are paid at a one-time address, automatically.
// Turn it off with { stealth: false }.
x402 on credit · new

Your stocks pay for your agents. Later, and in private.

A position reserves a credit line, a proof hands it to a key nobody can trace, and agents pay with signed IOUs. Merchants serve at once and are paid in one batch an hour.

Positionpublic · reserves 5001Credit escrowa commitment, no name02Line keyfresh · 50 USDG03 IOUInference APIserves now, paid laterData APIserves now, paid laterCredit deskbooks every IOU04 one tx, hourlyPoolthe rest, as a note05 expiry
01  Reserve

The position borrows the limit into an escrow, under the usual 50 % cap.

02  Activate

A proof binds it to a fresh line key. Nothing names the position.

03  Pay later

Each 402 is answered with an IOU. No gas, no USDG moves yet.

04  Settle

One transaction pays every merchant. The rest returns to the pool.

Run x402 on credit
A fresh chain, a credit line, three paid requests, one settlement. Real bytecode, real signatures.
Reserve a line from a stock position, activate it by proof, pay three API calls with IOUs, get an overspend refused, settle the batch, replay an IOU, close the line. Press run.
Running, and checkable

The whole flow, on a fresh chain, right now.

Every run deploys the contracts on an in-process EVM and walks the twelve steps. Same code as the tests, same 59 checks.

Run the flow
A fresh chain, nine contracts, twelve transactions. Real bytecode, real signatures, real events.
Deposit a stock, borrow into the pool, settle the round, spend by proof to a fresh address, pay a stealth merchant, sweep, recycle, repay. Press run.
The stack

Ten pieces, and the state each one is in.

Pool
shielded USDG, 12 checks
Vault
stock position → pieces, 17 checks
Stealth
one-time addresses, 9 checks
Recycler
leftovers back in, 6 checks
Issuer
sessions, caps, kill switch
MCP
five tools, no API key
Inference
pay per request, no account
Credit
x402 on credit, 33 checks
Bonds
slash on a proven fault, 9 checks
Solvency circuit
Stage 2, designed

Sandbox only. Not audited. No real funds.

$MERYAL

$MERYAL keeps the operators honest.

Relayers and approvers bond it, and lose it on a fault a contract can check. No fee is redistributed: there is no buyback, no burn tax and no revenue share.

$MERYAL IS A BOND, NOT A FEE TOKENOperatorrelayer · approverbondsBond$MERYAL, 14-day unbondproven fault10 % cutbounty to the proverBack to workor unbondno buyback · no burn tax · no revenue share · never needed to deposit, borrow or pay
CA not launched. Any address claiming to be $MERYAL before it appears here is not ours.
What's built

In order of dependency, not ambition.

0
Sandbox
every contract runs on this site, the flow replays on demand
now
1
Testnet
Groth16 verifier, relayer and screener as services
next
2
Stage 1 on mainnet
public position, private money, lenders on the USDG side
after review
3
Sealed positions
the position itself behind a proof
designed
4
Hidden leverage
which stock, how much, then private perps
later
Meryal · Borrow against your stocks. Keep your hand hidden.