Prism // docs.
Prism is an on-chain registry pioneering the ERC-7730 Clear-Signing standard. It turns opaque calldata into human-readable transactions across wallets, custodians, and exchanges. These docs cover the protocol, the $PRISM token, the V4 hook, and how to integrate.
Prism is an ERC-7730 protocol with an ERC-20 governance token. ERC-20 is the token interface; ERC-7730 is the off-chain JSON metadata standard for clear-signing. Prism the protocol implements the latter — it is the on-chain registry, staked-auditor network, and slashing infrastructure that makes ERC-7730 work in production.
The ERC-7730 standard
ERC-7730 is a draft Ethereum standard (proposed in 2024 by Ledger as part of the Clear Signing initiative) that defines a JSON schema for describing what a smart-contract call actually does in plain language. Each descriptor maps a contract address + function selector to a human description plus per-field formatting rules.
Before clear signing
0xa9059cbb000000000000000000000000d8da6bf26964af9d7e
ed9e03e53415d37aa96045000000000000000000000000000000
00000000000000000003782dace9d900000
No one — not even auditors — reads that by eye. Phishing kits thrive in this gap.
After clear signing
Action Transfer USDC
Amount 64.00 USDC
To vitalik.eth
Contract USDC (verified)
Descriptor prism://usdc/transfer
A signed ERC-7730 descriptor lives in Prism's registry. Wallets fetch it, verify the keccak-256 hash against the on-chain anchor, and render plain text.
Wallet integrators — quickstart
To render a transaction with Prism descriptors, a wallet performs three steps:
- Read
PrismRegistry.latestDescriptor(chainId, target, selector)for the call being signed. - Fetch the descriptor JSON from the returned
uri(IPFS / Arweave / HTTPS). - Recompute
keccak256(canonical(JSON))and compare to the on-chainhash. If they match, render using the descriptor'sdisplay.formats.
SDKs and reference integrations are in progress. Until then, the publish flow is documented in github.com/prism-protocol.
Architecture
The mainnet protocol is intentionally minimal — four immutable contracts with no upgrade proxies:
| Layer | Contract | Responsibility |
|---|---|---|
| Token | PRISM.sol | ERC-20 + Permit + Votes, hard-capped at 1B |
| Registry | PrismRegistry.sol | Append-only anchor for descriptor hashes |
| Staking | PrismStaking.sol | Auditor bonding, challenges, slashing |
| Hook | PrismHook.sol | Uniswap V4 hook — 10/10 launch tax → 1/1 steady, ETH-only fees |
Off-chain ERC-7730 descriptor JSONs live on IPFS / Arweave / HTTPS and are referenced by URI in the registry. The on-chain hash is the canonical anchor; wallets verify before rendering.
Contracts
PRISM token
Standard ERC-20 with EIP-2612 permit and Compound-style governance votes. One-shot mintTGE mints the full 1B supply to a distributor Safe; ownership is renounced post-distribution so the token is forever immutable. No minter, no pause, no blacklist.
PrismRegistry
Maps (chainId, target, selector) → versioned list of descriptor anchors. Writes gated by the staking contract via IAuditorGate.isAuditor. Revocation is a soft flag set by the staking module during slashing; historical entries remain queryable for audit replay.
PrismStaking
Auditors bond at least minStake PRISM to qualify as publishers. Anyone can file a challenge within the fraudWindow by posting challengeBond PRISM. The arbiter multisig resolves; if upheld, the auditor is slashed and the descriptor revoked.
Staking & slashing
The cryptoeconomic security model:
| Parameter | Default | Purpose |
|---|---|---|
minStake | 50,000 PRISM | minimum bond to qualify as an auditor |
withdrawalDelay | 14 days | unbonding delay; keeps stake slashable |
fraudWindow | 7 days | window during which descriptors can be challenged |
challengeBond | 5,000 PRISM | challenger's bond; refunded if upheld |
All four are governor-tunable. Slashed PRISM flows to the treasury Safe.
Uniswap V4 hook
The PrismHook attaches to the canonical PRISM/ETH pool and implements a two-phase, snipe-resistant launch profile. All parameters are immutable — there is no admin, no pause, no upgrade path.
Phase 1 — launch window (10 minutes after enableTrading())
The 10-minute clock does not start at TGE mint. It starts when PRISM.enableTrading() is called, which is the same transaction that lifts the pre-launch transfer lock. The deployer calls it immediately after the V4 pool's LP is seeded, so the cliffs align with real-world trading.
- 10% tax applied to both buys and sells, paid to the treasury.
- Max-tx cap of 0.5% of the LP (= 750,000 PRISM ≈ 0.0163 ETH ≈ $37 at $2,300/ETH) on either side. Enforced in the V4 hook — swaps over the cap revert.
- Max-wallet cap of 2% of the LP (= 3,000,000 PRISM ≈ $150 at launch price). Enforced in the PRISM ERC-20 itself via the
_updateoverride — receiving more than this during the window reverts. Auto-disables when the window expires.
Phase 2 — steady state (forever after the window expires)
- 1% tax on both directions, paid to the treasury.
- No caps. No revert paths. Aggregator-friendly.
The hook is dual-sided: buy fees are skimmed from input ETH in beforeSwap; sell fees are skimmed from output ETH in afterSwap. The treasury only ever receives ETH. The protocol never needs to convert PRISM → ETH on its own behalf, so there are zero "contract is selling" candles.
Tokenomics
| Allocation | Share | Amount | Notes |
|---|---|---|---|
| Ecosystem & Auditors | 30% | 300,000,000 | rewards for honest publishers |
| Community & Airdrops | 22% | 220,000,000 | early supporters, retroactive drops |
| Treasury | 18% | 180,000,000 | controlled by governance |
| Team | 15% | 150,000,000 | 4-year linear vest |
| Liquidity Pool | 15% | 150,000,000 | single-sided V4 LP seed (PRISM/ETH) |
Launch parameters
Assumes ETH at $2,300 at TGE. Rebalance the ETH-side numbers if the price moves materially before launch.
| Parameter | Value |
|---|---|
| Starting market cap | ~$50,000 FDV |
| Starting price | $0.00005 / PRISM (≈ 0.0000000217 ETH) |
| LP seed | 150,000,000 PRISM (the full 15% LP bucket), single-sided |
| LP range | up to 20× initial price ($1M FDV cap) |
| Launch window | 10 minutes |
| Launch tax | 10% buy + 10% sell → treasury |
| Steady-state tax | 1% buy + 1% sell → treasury, forever |
| Max tx (launch window) | 750,000 PRISM (0.5% of LP) ≈ 0.0163 ETH ≈ $37 |
| Max wallet (launch window) | 3,000,000 PRISM (2% of LP) ≈ $150 at launch price |
Addresses
Filled in once the deploy completes on each network.
Ethereum mainnet (chainId 1)
| Contract | Address |
|---|---|
| PRISM token | TBD — not yet deployed |
| PrismRegistry | TBD |
| PrismStaking | TBD |
| PrismHook | TBD |
| V4 Pool (PRISM/ETH) | TBD |
Sepolia testnet (chainId 11155111)
| Contract | Address |
|---|---|
| PRISM token | TBD — deploy in progress |
| PrismRegistry | TBD |
| PrismStaking | TBD |
| PrismHook | TBD |
Integrate
If you are a wallet, custodian, exchange, or dApp builder and you want to render Prism-published descriptors:
- Read
PrismRegistry.latestDescriptor(chainId, target, selector)on Ethereum L1. - Fetch the JSON at the returned URI.
- Verify the keccak-256 hash matches the on-chain anchor.
- Render the call using the descriptor's
display.formatsentries.
Reach out at integrations@prism7730.xyz if you want help shipping a first integration.
Audits
Audit reports will be published here before mainnet liquidity is added. Targeted audit scope:
PRISM.sol,PrismRegistry.sol,PrismStaking.sol— core protocolPrismHook.sol— V4 hook, separate report
Auditors: TBD. Expected publication: pre-mainnet.
Brand kit
Logos, color palette, and typography for press, integrations, and ecosystem partners. Coming soon.
FAQ
Is $PRISM an ERC-7730 token?
No — there is no such thing. ERC-7730 is a metadata standard, not a token standard. $PRISM is a regular ERC-20 token. It happens to be the governance token of a protocol that implements ERC-7730.
Why does the registry only store the hash, not the descriptor itself?
On-chain storage is expensive; descriptor JSONs are tens of KB. We anchor the keccak-256 hash on-chain and host the JSON off-chain. Wallets re-hash on fetch to verify authenticity.
What stops auditors from publishing wrong descriptors?
Skin in the game. Auditors bond PRISM that can be slashed via the challenge/arbiter flow within the 7-day fraud window. Bad publishes cost real money.
Why two phases on the hook?
Phase 1's high tax and per-tx cap deter bots and snipers at TGE. Phase 2's low tax and removed caps make the pool aggregator-friendly forever after.
Can the hook parameters change?
No. The hook is immutable. To change anything, deploy a new pool.
Is the LP locked?
The LP NFT is held in the deployer EOA. It is not lock-contract-protected; standard token-info trackers may flag this. See the Tokenomics section.