{"id":19107545,"url":"https://github.com/smartcontractkit/chainlink-fullstack","last_synced_at":"2025-10-13T03:04:40.763Z","repository":{"id":42439373,"uuid":"406774800","full_name":"smartcontractkit/chainlink-fullstack","owner":"smartcontractkit","description":"Full stack starter project showcasing Chainlink products on Ethereum (EVM)","archived":false,"fork":false,"pushed_at":"2023-10-16T16:44:36.000Z","size":5647,"stargazers_count":69,"open_issues_count":9,"forks_count":9,"subscribers_count":12,"default_branch":"main","last_synced_at":"2025-06-04T06:47:26.557Z","etag":null,"topics":["chainlink","fullstack","web3-dapp"],"latest_commit_sha":null,"homepage":"https://chainlink-demo.app","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/smartcontractkit.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2021-09-15T13:24:52.000Z","updated_at":"2024-11-13T02:54:47.000Z","dependencies_parsed_at":"2025-04-30T18:48:03.175Z","dependency_job_id":"97f5da2b-d9d8-40cd-a87a-8b86148b7e6e","html_url":"https://github.com/smartcontractkit/chainlink-fullstack","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/smartcontractkit/chainlink-fullstack","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smartcontractkit%2Fchainlink-fullstack","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smartcontractkit%2Fchainlink-fullstack/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smartcontractkit%2Fchainlink-fullstack/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smartcontractkit%2Fchainlink-fullstack/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/smartcontractkit","download_url":"https://codeload.github.com/smartcontractkit/chainlink-fullstack/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smartcontractkit%2Fchainlink-fullstack/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":260109577,"owners_count":22960034,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["chainlink","fullstack","web3-dapp"],"created_at":"2024-11-09T04:12:58.403Z","updated_at":"2025-10-13T03:04:35.728Z","avatar_url":"https://github.com/smartcontractkit.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Chainlink Fullstack Demo App\n\n[![codecov](https://codecov.io/gh/hackbg/chainlink-fullstack/branch/main/graph/badge.svg?token=60ZDWLHB53)](https://codecov.io/gh/hackbg/chainlink-fullstack)\n\n[LIVE DEMO](https://chainlink-demo.app)\n\nEnd-to-end implementation of the following Chainlink features using Hardhat development environment and Next.js frontend framework:\n\n- [Request \u0026 Receive data](https://docs.chain.link/docs/request-and-receive-data/)\n- [Chainlink Price Feeds](https://docs.chain.link/docs/using-chainlink-reference-contracts/)\n- [Chainlink VRF](https://docs.chain.link/docs/chainlink-vrf/)\n\nBuilt with:\n\n- [Next.js](https://nextjs.org)\n- [TypeScript](https://www.typescriptlang.org)\n- [Hardhat](https://hardhat.org)\n- [TypeChain](https://github.com/dethcrypto/TypeChain)\n- [Ethers.js](https://docs.ethers.io/v5/)\n- [useDApp](https://usedapp.io)\n- [Chakra UI](https://chakra-ui.com)\n- Linting with [ESLint](https://eslint.org)\n- Formatting with [Prettier](https://prettier.io)\n\n## Requirements\n\n- [Node](https://nodejs.org/en/download/)\n- [Yarn](https://classic.yarnpkg.com/en/docs/install/#mac-stable)\n- [Git](https://git-scm.com/downloads)\n\nIn order to use the frontend portion of the demo application you will need:\n\n- A crypto wallet such as [Metamask](https://metamask.io/) or [Coinbase Wallet](https://www.coinbase.com/wallet)\n- Test $LINK for the relevant testnet. You can get some at the [Chainlink Faucets](https://faucets.chain.link/) page.\n- Test $ETH to pay for gas costs. You can get some at the [Chainlink Faucets](https://faucets.chain.link/) page.\n\n## Quick Start\n\nClone the repo and install all dependencies:\n\n```bash\ngit clone https://github.com/smartcontractkit/chainlink-fullstack\ncd chainlink-fullstack\n\ngit submodule init\ngit submodule update\n\nyarn install\n```\n\nStart up the local Hardhat network and deploy all contracts:\n\n```bash\nyarn chain\n```\n\nIn a second terminal start up the local development server run the front-end app:\n\n```bash\nyarn dev\n```\n\nTo interact with the local network, follow this step-by-step guide on how to use [MetaMask with a Hardhat node](https://support.chainstack.com/hc/en-us/articles/4408642503449-Using-MetaMask-with-a-Hardhat-node).\n\nIf you've set the mnemonic from MetaMask the first 20 accounts will be funded with ETH.\n\n## Environment Variables\n\nTo make setting environment variables easier there are `.env.example` files in the `hardhat` and `frontend` workspaces. You can copy them to new `.env` files and replace the values with your own.\n\n#### Hardhat\n\n| Name                | Description                                                                                                                                                                                                                 |\n| ------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| `NETWORK_RPC_URL`   | Required to deploy to public networks. Obtain from [Infura's site](https://infura.io).                                                                                                                                      |\n| `MNEMONIC`          | Used to derive accounts from wallet seed phrase, ie Metamask. The first account must have enough ETH to deploy the contracts, as well as LINK which can be obtained from [Chainlink's faucets](https://faucets.chain.link). |\n| `PRIVATE_KEY`       | Alternative to using mnemonic. Some changes are required in `hardhat.config.js`                                                                                                                                             |\n| `ETHERSCAN_API_KEY` | Verify contract code on Etherscan.                                                                                                                                                                                          |\n\n#### Front-end\n\n| Name                     | Description                       |\n| ------------------------ | --------------------------------- |\n| `NEXT_PUBLIC_INFURA_KEY` | Read-only mode and WalletConnect. |\n\n## Deploy Contracts\n\nThis will run the deploy scripts to a local Hardhat network:\n\n```bash\nyarn deploy\n```\n\nTo deploy on a public network:\n\n```bash\nyarn deploy --network goerli\n```\n\nBefore deploying `RandomSVG` contract on a public network, an ID of a prefunded VRF subscription must be set in [`helper-hardhat-config.ts`](/packages/hardhat/helper-hardhat-config.ts).\n\nSee how to [Create and Fund a Subscription](https://docs.chain.link/docs/vrf/v2/subscription/ui/).\n\n## Auto-Funding\n\nThe Hardhat project will attempt to auto-fund any newly deployed contract that uses Any-API or VRF, which otherwise has to be done manually.\n\nThe amount in LINK to send as part of this process can be modified in this [Hardhat Config](https://github.com/hackbg/chainlink-fullstack/blob/main/packages/hardhat/helper-hardhat-config.ts), and are configurable per network.\n\n| Parameter  | Description                                       | Default Value |\n| ---------- | :------------------------------------------------ | :------------ |\n| fundAmount | Amount of LINK to transfer when funding contracts | 5 LINK        |\n\nIf you wish to deploy the smart contracts without performing the auto-funding, run the following command when doing your deployment:\n\n```bash\nyarn deploy --tags main\n```\n\n## Test\n\nIf the test command is executed without a specified network it will run locally and only perform the unit tests:\n\n```bash\nyarn test:contracts\n```\n\nIntegration tests must be run on a public testnet that has Chainlink oracles responding:\n\n```bash\nyarn test:contracts --network goerli\n```\n\nFor coverage report:\n\n```bash\nyarn coverage:contracts\n```\n\n## Verify on Etherscan\n\nYou'll need an `ETHERSCAN_API_KEY` environment variable. You can get one from the [Etherscan API site.](https://etherscan.io/apis)\n\n```bash\nnpx hardhat verify --network \u003cNETWORK\u003e \u003cCONTRACT_ADDRESS\u003e \u003cCONSTRUCTOR_PARAMETERS\u003e\n```\n\nexample:\n\n```bash\nnpx hardhat verify --network goerli 0x9279791897f112a41FfDa267ff7DbBC46b96c296 \"0x9326BFA02ADD2366b30bacB125260Af641031331\"\n```\n\n## Format\n\nFix formatting according to prettier config in the respective workspace:\n\n```bash\nyarn format:frontend\nyarn format:hardhat\n```\n\n## Lint\n\n```bash\nyarn lint:frontend\n```\n\n## Testnet Contracts\n\nThis repo includes deployed and verified contracts on Goerli so the front-end can run without the need to deploy them.\n\nOnce the `deploy` command is executed on any network the contracts config will be overwritten and you can start from scratch with your own deployments.\n\n#### Sepolia\n\n| Name                   | Address                                                                                                                       |\n| ---------------------- | ----------------------------------------------------------------------------------------------------------------------------- |\n| `PriceConsumerV3`      | [0xf37F9826f60870894190B5Ffe89138f3ef10079C](https://sepolia.etherscan.io/address/0xf37F9826f60870894190B5Ffe89138f3ef10079C) |\n| `APIConsumer`          | [0x8fEa7488314D44776C7960B3149258827B8ADa31](https://sepolia.etherscan.io/address/0x8fEa7488314D44776C7960B3149258827B8ADa31) |\n| `RandomNumberConsumer` | [0xBcFd34a46C2Da1E10568B4691ab2678cB24265db](https://sepolia.etherscan.io/address/0xBcFd34a46C2Da1E10568B4691ab2678cB24265db) |\n| `RandomSVG`            | [0xc055B4DA31b7895f60c6335276f47EbD817F98E1](https://sepolia.etherscan.io/address/0xc055B4DA31b7895f60c6335276f47EbD817F98E1) |\n\n#### Goerli\n\n| Name                   | Address                                                                                                                      |\n| ---------------------- | ---------------------------------------------------------------------------------------------------------------------------- |\n| `PriceConsumerV3`      | [0x46b73aca4AF8D060355beAb7f3C941B214ba0E1F](https://goerli.etherscan.io/address/0x46b73aca4AF8D060355beAb7f3C941B214ba0E1F) |\n| `APIConsumer`          | [0xe40D4f1fDf9f0312905bd938Dd396B9149e1F04b](https://goerli.etherscan.io/address/0xe40D4f1fDf9f0312905bd938Dd396B9149e1F04b) |\n| `RandomNumberConsumer` | [0x35ea06342a82e091040CbF415cc899228DB4C936](https://goerli.etherscan.io/address/0x35ea06342a82e091040CbF415cc899228DB4C936) |\n| `RandomSVG`            | [0xa652548CDAb898d9d885896f464Fd4a07F353aBc](https://goerli.etherscan.io/address/0xa652548CDAb898d9d885896f464Fd4a07F353aBc) |\n\n#### Kovan (deprecated)\n\n| Name                   | Address                                                                                                                     |\n| ---------------------- | --------------------------------------------------------------------------------------------------------------------------- |\n| `PriceConsumerV3`      | [0x01E2C7cA6D6A82D059287Cb0bC43a39Cd0ff4B00](https://kovan.etherscan.io/address/0x01E2C7cA6D6A82D059287Cb0bC43a39Cd0ff4B00) |\n| `FeedRegistryConsumer` | [0xB9ebb63D4820c45a2Db09d71cefA24daBd047b50](https://kovan.etherscan.io/address/0xB9ebb63D4820c45a2Db09d71cefA24daBd047b50) |\n| `APIConsumer`          | [0x14005AB90bc520E20Ffd7815Cae64372abb6b04d](https://kovan.etherscan.io/address/0x14005AB90bc520E20Ffd7815Cae64372abb6b04d) |\n| `RandomNumberConsumer` | [0xF9556187bf86823Cf0D7081625F97391642Fc242](https://kovan.etherscan.io/address/0xF9556187bf86823Cf0D7081625F97391642Fc242) |\n| `RandomSVG`            | [0xb4Bac68d9Fa99D2852E5dFb124be74de2E8c4F76](https://kovan.etherscan.io/address/0xb4Bac68d9Fa99D2852E5dFb124be74de2E8c4F76) |\n\n#### Rinkeby (deprecated)\n\n| Name                   | Address                                                                                                                       |\n| ---------------------- | ----------------------------------------------------------------------------------------------------------------------------- |\n| `PriceConsumerV3`      | [0x4998Bd433216bBc56976BCb4Fe5AA240bA766763](https://rinkeby.etherscan.io/address/0x4998Bd433216bBc56976BCb4Fe5AA240bA766763) |\n| `APIConsumer`          | [0x43a87559277fd5F6F1AdC6e6331998899634e9Aa](https://rinkeby.etherscan.io/address/0x43a87559277fd5F6F1AdC6e6331998899634e9Aa) |\n| `RandomNumberConsumer` | [0xA0e617aaA36Ff4A6bf61C4Ce2Ed66822B1e24726](https://rinkeby.etherscan.io/address/0xA0e617aaA36Ff4A6bf61C4Ce2Ed66822B1e24726) |\n| `RandomSVG`            | [0xeC6CcE025e538D12E52D8C90181849B099a776A3](https://rinkeby.etherscan.io/address/0xeC6CcE025e538D12E52D8C90181849B099a776A3) |\n\n## References\n\n- [Chainlink Docs](https://docs.chain.link)\n- [Chainlink Hardhat Box](https://github.com/smartcontractkit/hardhat-starter-kit)\n- [Scaffold ETH](https://github.com/scaffold-eth/scaffold-eth/blob/nextjs-typescript)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsmartcontractkit%2Fchainlink-fullstack","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsmartcontractkit%2Fchainlink-fullstack","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsmartcontractkit%2Fchainlink-fullstack/lists"}