diff --git a/config/links.ts b/config/links.ts index 72465007..e7584ba6 100644 --- a/config/links.ts +++ b/config/links.ts @@ -1,22 +1,23 @@ export const links = { - twitter: 'https://twitter.com/centrifuge', - telegram: 'https://t.me/centrifuge_chat', - medium: 'https://medium.com/centrifuge', + announcements: 'https://fixing.finance', + app: 'https://app.centrifuge.io/', + audits: 'https://github.com/centrifuge/security/tree/main/audits', + bis: 'https://www.bis.org/publ/work1116.htm', blog: 'https://centrifuge.mirror.xyz', discord: 'https://discord.com/invite/yEzyUq5gxF', - youtube: 'https://www.youtube.com/channel/UCfNkoq7YLrr8MeSJ3a6jVcA', - github: 'https://github.com/centrifuge/', - linkedin: 'https://www.linkedin.com/company/centrifugehq/', docs: 'https://docs.centrifuge.io/', - app: 'https://app.centrifuge.io/', - audits: 'https://github.com/centrifuge/security/tree/main/audits', forum: 'https://gov.centrifuge.io/', - prime: 'https://forms.gle/kt1GShLcWapMGzjs7', - primeBlogPost: 'https://centrifuge.mirror.xyz/KyrMWLKMccFCNfSlvjxe7uyhba7oLrUzlBuZ7GQTn6s', - fundManagement: 'https://docs.google.com/forms/d/e/1FAIpQLSdoKKJkb8RDKJrSnWTnsb3VLkK-zDWWgXTX9q65qF8wcO9Aew/viewform', + fundManagement: 'https://www.coindesk.com/business/2024/08/27/tokenization-pioneer-centrifuge-unveils-lending-market-with-morpho-coinbase/', fundManagementBlogPost: 'https://centrifuge.mirror.xyz/pn5NlZ5UY5pdtOy_FFZ1cNWr0Dn1QBk2yCeJ6ZXQQoc', + github: 'https://github.com/centrifuge/', + hkma: 'https://www.hkma.gov.hk/media/eng/publication-and-research/research/research-memorandums/2023/RM04-2023.pdf', + linkedin: 'https://www.linkedin.com/company/centrifugehq/', + medium: 'https://medium.com/centrifuge', + morpho: 'https://app.morpho.org/market?id=0x83262d91702f90d9edf6c737ceb46e59a2bcfc7ba856e1e8448b7824f83a07e3&network=base&morphoPrice=1.0', podcast: 'https://open.spotify.com/show/3mcy2eIFO9qUFlxhZeYMV4', - announcements: 'https://fixing.finance', - bis: 'https://www.bis.org/publ/work1116.htm', - hkma: 'https://www.hkma.gov.hk/media/eng/publication-and-research/research/research-memorandums/2023/RM04-2023.pdf' + prime: 'https://forms.gle/kt1GShLcWapMGzjs7', + primeBlogPost: 'https://centrifuge.mirror.xyz/KyrMWLKMccFCNfSlvjxe7uyhba7oLrUzlBuZ7GQTn6s', + telegram: 'https://t.me/centrifuge_chat', + twitter: 'https://twitter.com/centrifuge', + youtube: 'https://www.youtube.com/channel/UCfNkoq7YLrr8MeSJ3a6jVcA', } diff --git a/config/menu.ts b/config/menu.ts index 06ff2d3f..96ddedbf 100644 --- a/config/menu.ts +++ b/config/menu.ts @@ -12,6 +12,10 @@ const menu = [ { label: 'Centrifuge Prime', href: '/prime', + }, + { + label: 'RWA Market', + href: '/rwa-market', }, ] }, diff --git a/data/fund.json b/data/fund.json index d5dfdaea..667d7569 100644 --- a/data/fund.json +++ b/data/fund.json @@ -8,7 +8,8 @@ "pretitle": "ONCHAIN FUND MANAGEMENT", "title": "Asset Management, \nOnchain", "body": "Centrifuge's fund management platform brings the full power of onchain finance to asset managers and investment funds. Capture your entire fund's onchain and offchain portfolio positions, transactions, and operations data in a secure, immutable, and reportable manner.", - "image": "./images/fund-management/fund-hero.png" + "image": "./images/fund-management/fund-hero.png", + "items": [{ "title": "Join Beta", "links": "fundManagement" }] }, "prime_partners": { "title": "Built from years of experience bringing RWAs to DeFi", @@ -73,11 +74,7 @@ "rwa_usp": { "title": "Why build onchain?", "body": "Save costs and create efficiencies with real-time, accurate access to holdings, fully integrated with the necessary service providers for operating an institutional-grade offering. ", - "items": [ - "Reduce yield spreads by 25 bps", - "Improve liquidity by 5.3%", - "Save up to 150 bps running the fund" - ], + "items": ["Reduce yield spreads by 25 bps", "Improve liquidity by 5.3%", "Save up to 150 bps running the fund"], "image": "./images/fund-management/fund2.png" }, "prime_integration": { @@ -105,6 +102,7 @@ "title": "Ready to launch \nyour fund onchain?", "items": [ "Centrifuge's fund management platform is available now for funds and asset managers looking to launch tokenized investment products and strategies." - ] + ], + "morpho": false } -} \ No newline at end of file +} diff --git a/data/images/posts/coindeskmorpho.png b/data/images/posts/coindeskmorpho.png new file mode 100644 index 00000000..c4ad2e09 Binary files /dev/null and b/data/images/posts/coindeskmorpho.png differ diff --git a/data/images/rwa/header.png b/data/images/rwa/header.png new file mode 100644 index 00000000..185d1932 Binary files /dev/null and b/data/images/rwa/header.png differ diff --git a/data/images/rwa/morpho.png b/data/images/rwa/morpho.png new file mode 100644 index 00000000..e19b73c9 Binary files /dev/null and b/data/images/rwa/morpho.png differ diff --git a/data/images/rwa/onboarding.png b/data/images/rwa/onboarding.png new file mode 100644 index 00000000..d1e1c835 Binary files /dev/null and b/data/images/rwa/onboarding.png differ diff --git a/data/posts/posts.json b/data/posts/posts.json index 42735eb4..adc5ca3d 100644 --- a/data/posts/posts.json +++ b/data/posts/posts.json @@ -1,12 +1,12 @@ [ { - "date": "2024/07/16", - "outlet": "Centrifuge Blog", - "title": "Centrifuge Q2 2024 Recap", - "body": "Q2 saw Centrifuge continuing to drive the real-world asset narrative forward. This quarter has been packed with the closing of our Series A, two Real-World Asset Summits, exciting product updates, and even more.", - "image": "../images/posts/q22024.png", + "date": "2024/08/27", + "outlet": "Coindesk", + "title": "Tokenization Pioneer Centrifuge Unveils Lending Market With Morpho, Coinbase", + "body": "The institutional real-world asset lending market combines Coinbase’s layer-2 network, Base, and Morpho Vaults using three varieties of tokenized Treasury bills.", + "image": "../images/posts/coindeskmorpho.png", "alt": "", - "href": "https://centrifuge.mirror.xyz/sG-gDrGNFsQOyx1VrAf1XdzKockW4v24ogFy9dIwgf4" + "href": "https://www.coindesk.com/business/2024/08/27/tokenization-pioneer-centrifuge-unveils-lending-market-with-morpho-coinbase/" }, { "date": "2024/07/16", diff --git a/data/rwa-market.json b/data/rwa-market.json new file mode 100644 index 00000000..d256f6d9 --- /dev/null +++ b/data/rwa-market.json @@ -0,0 +1,54 @@ +{ + "slug": "/rwa-market", + "seo": { + "title": "RWA Market\n", + "description": "The RWA Market gives users the ability to lend and borrow against eligible pool tokens." + }, + "hero_fund": { + "pretitle": "INSTITUTIONAL DEFI", + "title": "Creating composability \nfor a thriving RWA \necosystem", + "body": "The RWA Market gives users the ability to lend and borrow against eligible pool tokens. This brings additional utility to RWAs and is a critical step towards bringing financial markets onchain.", + "image": "./images/rwa/header.png", + "items": [ + { "title": "Open Morpho", "url": "morpho" }, + { "title": "Read News", "url": "fundManagement" } + ] + }, + "fund_features": { + "title": "Increasing RWA token utility", + "body": "Financial products thrive with robust market infrastructure, enhancing their utility through shorting, leveraging, and immediate liquidity access. To attract institutional participation, DeFi must replicate these essential TradFi infrastructure benefits.", + "items": [ + { + "title": "Enhanced Utility", + "body": "Ability to short, leverage, and gain immediate liquidity from assets." + }, + { + "title": "Comprehensive \nFunctionality", + "body": "Enable programmable borrowing against assets and hedging to RWAs." + }, + { + "title": "Market \nMaturity", + "body": "Development of a sophisticated DeFi ecosystem for real-world assets." + }, + { + "title": "Institutional \nAttraction", + "body": "Creating infrastructure to meet institutional needs and drive adoption." + } + ] + }, + "rwa_yields": { + "title": "Seamless Onboarding", + "body": "This is the first permissioned RWA market integrated with Coinbase Verifications, reducing the need for tedious and manual KYC processes. This streamlined verification process opens the market to 125 million Coinbase users, allowing them to onboard seamlessly through a single click.", + "image": "./images/rwa/onboarding.png" + }, + "morpho": { + "title": "Live with \nMorpho on Base", + "body": "

Morpho is battle tested, has an active user base and the nature of isolated markets allow for easy segregation of permissioned tokens.

\"Institutions need to justify transitioning their assets onchain, either by using these assets as collateral for refinancing or earning yield\", said Paul Frambot, Co-founder of Morpho Labs. \"Our goal with Morpho was to build the most trusted and reliable lending infrastructure, and we're excited to see RWA issuers like Centrifuge choose it to launch new lending markets.\"

", + "image": "./images/rwa/morpho.png" + }, + "fund_cta": { + "title": "Participate in \nthe RWA Market", + "items": ["Open the RWA Market on Morpho to supply liquidity or borrow against Centrifuge tokens."], + "morpho": true + } +} diff --git a/src/components/FundCta.tsx b/src/components/FundCta.tsx index 333482aa..85fa1abd 100644 --- a/src/components/FundCta.tsx +++ b/src/components/FundCta.tsx @@ -8,15 +8,17 @@ export const query = graphql` fragment FundCtaFragment on DataJsonFund_cta { title items + morpho } ` export type FundCtaProps = { title: string items: string[] + morpho: string } -export function FundCta({ title, items }: FundCtaProps) { +export function FundCta({ title, items, morpho }: FundCtaProps) { return ( @@ -44,8 +46,12 @@ export function FundCta({ title, items }: FundCtaProps) { - - Join Beta + + {morpho ? 'Open Morpho' : 'Join Beta'} diff --git a/src/components/FundFeatures.tsx b/src/components/FundFeatures.tsx index b5e7c395..75a5c569 100644 --- a/src/components/FundFeatures.tsx +++ b/src/components/FundFeatures.tsx @@ -1,8 +1,8 @@ import * as React from 'react' -import {graphql} from 'gatsby' -import {AnchorButton, Container, Shelf, Stack, Text, Grid} from '@centrifuge/fabric' -import {links} from '../../config/links' -import {Reveal, RevealWrapper} from './Reveal' +import { graphql } from 'gatsby' +import { AnchorButton, Container, Shelf, Stack, Text, Grid } from '@centrifuge/fabric' +import { links } from '../../config/links' +import { Reveal, RevealWrapper } from './Reveal' export const query = graphql` fragment FundFeaturesFragment on DataJsonFund_features { @@ -22,9 +22,11 @@ export type FundFeaturesProps = { title: string body: string }[] + showButton?: boolean + columns?: number[] } -export function FundFeatures({title, body, items}: FundFeaturesProps) { +export function FundFeatures({ title, body, items, showButton = true, columns }: FundFeaturesProps) { return ( @@ -35,16 +37,18 @@ export function FundFeatures({title, body, items}: FundFeaturesProps) { {title} - - Join Beta - + {showButton && ( + + Join Beta + + )} @@ -54,10 +58,10 @@ export function FundFeatures({title, body, items}: FundFeaturesProps) { - + {items.map((entry, index) => ( - + ))} @@ -67,12 +71,20 @@ export function FundFeatures({title, body, items}: FundFeaturesProps) { ) } -type ItemProps = FundFeaturesProps['items'][number] +type ItemProps = { + title: string + body: string + breakLines?: boolean +} -function Item({title, body}: ItemProps) { +function Item({ title, body, breakLines }: ItemProps) { return ( - + {title} {body} diff --git a/src/components/Morpho.tsx b/src/components/Morpho.tsx new file mode 100644 index 00000000..0c420674 --- /dev/null +++ b/src/components/Morpho.tsx @@ -0,0 +1,55 @@ +import * as React from 'react' +import { graphql } from 'gatsby' +import { AnchorButton, Box, Shelf } from '@centrifuge/fabric' +import { ImageProps, Image } from './Image' +import { TextImage } from './text-image' +import { links } from '../../config/links' + +export const query = graphql` + fragment MorphoFragment on DataJsonMorpho { + title + body + image { + childImageSharp { + gatsbyImageData(placeholder: BLURRED, formats: [AUTO, WEBP, AVIF]) + } + publicURL + extension + } + } +` + +export type MorphoProps = { + title: string + body: string + image: ImageProps +} + +export function Morpho({ title, body, image }: MorphoProps) { + return ( + + + + } + titleAddition={ + + + Open Morpho + + + } + /> + ) +} diff --git a/src/components/hero-fund/index.tsx b/src/components/hero-fund/index.tsx index f80c8498..855749a8 100644 --- a/src/components/hero-fund/index.tsx +++ b/src/components/hero-fund/index.tsx @@ -1,6 +1,6 @@ import * as React from 'react' import { graphql } from 'gatsby' -import { AnchorButton, Text, Divider, Stack } from '@centrifuge/fabric' +import { AnchorButton, Text, Divider, Stack, Box } from '@centrifuge/fabric' import { links } from '../../../config/links' import { ImageProps, Image } from '../Image' import { Reveal, RevealWrapper } from '../Reveal' @@ -11,6 +11,10 @@ export const query = graphql` pretitle title body + items { + title + url + } image { childImageSharp { gatsbyImageData(placeholder: BLURRED, formats: [AUTO, WEBP, AVIF]) @@ -21,14 +25,20 @@ export const query = graphql` } ` +type Items = { + title: string + url: keyof typeof links +} + export type HeroFundProps = { pretitle: string title: string body: string image: ImageProps + items: Items[] } -export function HeroFund({ pretitle, title, body, image }: HeroFundProps) { +export function HeroFund({ pretitle, title, body, image, items }: HeroFundProps) { return ( @@ -59,9 +69,22 @@ export function HeroFund({ pretitle, title, body, image }: HeroFundProps) { - - Join Beta - + + {items?.map((item: Items, index) => { + return ( + + + {item.title} + + + ) + })} + diff --git a/src/components/text-image/index.tsx b/src/components/text-image/index.tsx index 9d4bb48c..5732ee49 100644 --- a/src/components/text-image/index.tsx +++ b/src/components/text-image/index.tsx @@ -9,9 +9,10 @@ export type RwaUspProps = { media: React.ReactNode content?: React.ReactNode titleAddition?: React.ReactNode + isBodyHtml?: boolean } -export function TextImage({ title, body, media, content, titleAddition }: RwaUspProps) { +export function TextImage({ title, body, media, content, titleAddition, isBodyHtml = false }: RwaUspProps) { return ( @@ -26,9 +27,13 @@ export function TextImage({ title, body, media, content, titleAddition }: RwaUsp - - {body} - + {isBodyHtml ? ( +
+ ) : ( + + {body} + + )} {content} diff --git a/src/pages/rwa-market.tsx b/src/pages/rwa-market.tsx new file mode 100644 index 00000000..ff337412 --- /dev/null +++ b/src/pages/rwa-market.tsx @@ -0,0 +1,81 @@ +import { Stack } from '@centrifuge/fabric' +import type { HeadProps } from 'gatsby' +import { graphql } from 'gatsby' +import * as React from 'react' +import { Layout } from '../components/Layout' +import { SEO, SEOProps } from '../components/Seo' +import { HeroFund, HeroFundProps } from '../components/hero-fund' +import { FundFeatures, FundFeaturesProps } from '../components/FundFeatures' +import { RwaYields, RwaYieldsProps } from '../components/RwaYields' +import { FundCta, FundCtaProps } from '../components/FundCta' +import { Morpho, MorphoProps } from '../components/Morpho' + +export const query = graphql` + query { + dataJson(slug: { eq: "/rwa-market" }) { + title + + seo { + ...SeoFragment + } + + hero_fund { + ...HeroFundFragment + } + + fund_features { + ...FundFeaturesFragment + } + + rwa_yields { + ...RwaYieldsFragment + } + + morpho { + ...MorphoFragment + } + + fund_cta { + ...FundCtaFragment + } + } + } +` + +type RWAMarketProps = { + data: { + dataJson: { + seo: SEOProps + hero_fund: HeroFundProps + fund_features: FundFeaturesProps + rwa_yields: RwaYieldsProps + morpho: MorphoProps + fund_cta: FundCtaProps + } + } +} + +export default function RWAMarket({ data }: RWAMarketProps) { + const { hero_fund, fund_features, rwa_yields, morpho, fund_cta } = data.dataJson + + return ( + + + + + + + + + + + + ) +} + +export const Head = ({ data, location }: RWAMarketProps & HeadProps) => { + const { seo } = data.dataJson + const { pathname } = location + + return +}