{"$schema":"https://ui.shadcn.com/schema/registry.json","name":"onchain-ui","homepage":"https://onchain-ui.dev","items":[{"name":"address-display","type":"registry:ui","title":"Address Display","description":"Displays an EVM wallet address with copy-to-clipboard and an optional block explorer link.","dependencies":["viem","sonner","lucide-react"],"registryDependencies":["sonner"],"files":[{"path":"registry/onchain-ui/address-display.tsx","type":"registry:ui","target":"components/ui/address-display.tsx"},{"path":"lib/onchain/format.ts","type":"registry:lib","target":"lib/onchain/format.ts"}]},{"name":"address-identity","type":"registry:ui","title":"Address Identity","description":"Resolves an EVM address to an ENS or Base name with optional avatar, copy-to-clipboard, and explorer link.","dependencies":["viem","sonner","lucide-react"],"registryDependencies":["sonner"],"files":[{"path":"registry/onchain-ui/address-display.tsx","type":"registry:ui","target":"components/ui/address-display.tsx"},{"path":"registry/onchain-ui/address-identity.tsx","type":"registry:ui","target":"components/ui/address-identity.tsx"},{"path":"lib/onchain/format.ts","type":"registry:lib","target":"lib/onchain/format.ts"},{"path":"lib/onchain/resolvers.ts","type":"registry:lib","target":"lib/onchain/resolvers.ts"}]},{"name":"asset-row","type":"registry:ui","title":"Asset Row","description":"Displays a practical portfolio or watchlist row from token identity, network, amount, value, and change.","dependencies":["lucide-react","viem"],"registryDependencies":["tooltip"],"files":[{"path":"registry/onchain-ui/token-logo.tsx","type":"registry:ui","target":"components/ui/token-logo.tsx"},{"path":"registry/onchain-ui/network-logo.tsx","type":"registry:ui","target":"components/ui/network-logo.tsx"},{"path":"registry/onchain-ui/token-price.tsx","type":"registry:ui","target":"components/ui/token-price.tsx"},{"path":"registry/onchain-ui/asset-row.tsx","type":"registry:ui","target":"components/ui/asset-row.tsx"},{"path":"lib/onchain/format.ts","type":"registry:lib","target":"lib/onchain/format.ts"},{"path":"lib/onchain/crypto-icons.tsx","type":"registry:lib","target":"lib/onchain/crypto-icons.tsx"}]},{"name":"crypto-icons","type":"registry:lib","title":"Crypto Icons","description":"Swappable adapter that resolves token and network icons for onchain-ui components.","dependencies":["viem"],"files":[{"path":"lib/onchain/crypto-icons.tsx","type":"registry:lib","target":"lib/onchain/crypto-icons.tsx"}]},{"name":"network-logo","type":"registry:ui","title":"Network Logo","description":"Displays a network or chain logo with known chain fallbacks.","dependencies":["viem"],"registryDependencies":["tooltip"],"files":[{"path":"registry/onchain-ui/network-logo.tsx","type":"registry:ui","target":"components/ui/network-logo.tsx"},{"path":"lib/onchain/crypto-icons.tsx","type":"registry:lib","target":"lib/onchain/crypto-icons.tsx"}]},{"name":"token-balance","type":"registry:ui","title":"Token Balance","description":"Displays a token amount with optional logo, fiat value, and change.","dependencies":["lucide-react","viem"],"registryDependencies":["tooltip"],"files":[{"path":"registry/onchain-ui/token-logo.tsx","type":"registry:ui","target":"components/ui/token-logo.tsx"},{"path":"registry/onchain-ui/token-price.tsx","type":"registry:ui","target":"components/ui/token-price.tsx"},{"path":"registry/onchain-ui/token-balance.tsx","type":"registry:ui","target":"components/ui/token-balance.tsx"},{"path":"lib/onchain/format.ts","type":"registry:lib","target":"lib/onchain/format.ts"},{"path":"lib/onchain/crypto-icons.tsx","type":"registry:lib","target":"lib/onchain/crypto-icons.tsx"}]},{"name":"token-logo","type":"registry:ui","title":"Token Logo","description":"Displays a token image with resilient symbol, name, or address fallback.","dependencies":["viem"],"registryDependencies":["tooltip"],"files":[{"path":"registry/onchain-ui/token-logo.tsx","type":"registry:ui","target":"components/ui/token-logo.tsx"},{"path":"lib/onchain/crypto-icons.tsx","type":"registry:lib","target":"lib/onchain/crypto-icons.tsx"}]},{"name":"token-price","type":"registry:ui","title":"Token Price","description":"Formats token prices with optional positive, negative, or neutral change.","dependencies":["lucide-react"],"files":[{"path":"registry/onchain-ui/token-price.tsx","type":"registry:ui","target":"components/ui/token-price.tsx"},{"path":"lib/onchain/format.ts","type":"registry:lib","target":"lib/onchain/format.ts"}]},{"name":"token-stack","type":"registry:ui","title":"Token Stack","description":"Displays overlapping token logos for baskets, pools, routes, and portfolio rows.","dependencies":["viem"],"registryDependencies":["tooltip"],"files":[{"path":"registry/onchain-ui/token-logo.tsx","type":"registry:ui","target":"components/ui/token-logo.tsx"},{"path":"registry/onchain-ui/token-stack.tsx","type":"registry:ui","target":"components/ui/token-stack.tsx"},{"path":"lib/onchain/crypto-icons.tsx","type":"registry:lib","target":"lib/onchain/crypto-icons.tsx"}]}]}