👗 Fashion & Textile Design · digital pattern exchange

PatternShare

Securely share and license digital sewing patterns with transparent ownership and usage rights.

Privy social + sponsored tx· wallet UX
Section · Onchain

The primitive.

full primer →

Fashion designers sign in with Google through Privy — no seed phrase, no MetaMask popup — and their digital pattern exchange actions are sent as sponsored transactions so they never see gas.

Why this primitivePrivy embedded wallet bootstrapped by PRIVY_APP_ID ensures seamless user access and transaction sponsorship.

Kernel
Privy embedded wallet bootstrapped with PRIVY_APP_ID — Google sign-in plus sponsored Polygon Amoy transactions so users never see gas
Drives the UI as
a one-click 'Sign in with Google' that drops the user straight into the app with an onchain identity
Appendix · Secrets

Required keys.

METAMASK_PRIVATE_KEY
Exported from MetaMask. Fund on Polygon Amoy via the Polygon faucet.
open ↗
POLYGON_AMOY_RPC_URL
Alchemy Polygon Amoy HTTPS endpoint (or https://rpc-amoy.polygon.technology).
open ↗
ETHERSCAN_API_KEY
Single Etherscan v2 key — covers PolygonScan (chainId 80002) with no extra key.
open ↗
PRIVY_APP_ID
Enables Google sign-in and sponsored Polygon Amoy transactions.
open ↗
PINATA_JWT
Pins images / JSON / manifests to IPFS.
open ↗

Add these in your Lovable project under Settings → Secrets before pasting the prompt below.

Appendix · Mega-prompt

The build prompt.

Paste into a fresh Lovable project. Make sure all five secrets above are set first. read the build strategy →

Build "PatternShare" in ONE Lovable message. Single-page demo.

CONCEPT
Securely share and license digital sewing patterns with transparent ownership and usage rights.
Discipline: Fashion & Textile Design (digital pattern exchange).
Onchain primitive: Privy social + sponsored tx. Why this primitive: Privy embedded wallet bootstrapped by PRIVY_APP_ID ensures seamless user access and transaction sponsorship.

5-CREDIT BUDGET (HARD LIMIT):
- ONE single-page app. No router, no Lovable Cloud, no database, no auth flows beyond Privy drop-in.
- ONE Solidity contract, <=80 lines, deployed to Polygon Amoy (chainId 80002), verified on PolygonScan.
- Privy is always the auth + sponsored-tx layer (Google login, embedded wallet).
- Pinata/IPFS only if the idea genuinely needs to store a file or metadata.
- At most ONE AI call per user action (use Lovable AI Gateway with LOVABLE_API_KEY if AI is part of the idea).
- Skip tests, skip CI, skip docs pages. Ship the demo, nothing else.

STACK
- React + Vite single page (the index route).
- Privy embedded wallet wraps `<App />` in src/main.tsx:
    <PrivyProvider appId={import.meta.env.VITE_PRIVY_APP_ID}
      config={{ loginMethods:['google'], embeddedWallets:{ethereum:{createOnLogin:'users-without-wallets'}},
                defaultChain:{ id: 80002, name:'Polygon Amoy' } }}>

SPONSORED TX (required — zero-gas UX):
- Get the embedded wallet: `const { wallets } = useWallets(); const embedded = wallets.find(w => w.walletClientType === 'privy');`
- Send with BOTH `address` and `sponsor: true`, otherwise Privy falls back to user-paid and pops "Add funds on Polygon Amoy":
    const { sendTransaction } = useSendTransaction();
    await sendTransaction(
      { to: CONTRACT_ADDRESS, data, chainId: 80002 },
      { address: embedded.address, sponsor: true },
    );
- `sponsor: true` alone is not enough — the Privy dashboard sponsorship policy must be enabled for Polygon Amoy (see PRIVY DASHBOARD SETUP).

PRIVY DASHBOARD SETUP (one-time, at https://dashboard.privy.io for the app matching PRIVY_APP_ID):
1. Gas Sponsorship -> Add chain -> Polygon Amoy (chainId 80002).
2. Toggle "App pays" for that chain.
3. Enable "Allow transactions from the client".
4. Fund the sponsorship balance with a small amount of MATIC on Amoy (Privy shows the deposit address).
Without these four steps every `sponsor: true` call falls back to user-paid gas.

- Hardhat in /contracts (kept outside the Vite bundle). Install
  `@nomicfoundation/hardhat-ethers` AND `@nomicfoundation/hardhat-verify` (>=2.x).
  DO NOT install `@nomicfoundation/hardhat-toolbox` — it drags Hardhat 3 peers.
- hardhat.config.cjs — Polygon Amoy + Etherscan v2 single-key:
    require("@nomicfoundation/hardhat-ethers");
    require("@nomicfoundation/hardhat-verify");
    const pk = process.env.METAMASK_PRIVATE_KEY;
    module.exports = {
      solidity: { version: "0.8.24", settings: { optimizer: { enabled: true, runs: 200 } } },
      networks: { polygonAmoy: {
        url: process.env.POLYGON_AMOY_RPC_URL || "https://rpc-amoy.polygon.technology",
        accounts: pk ? [pk.startsWith("0x") ? pk : "0x" + pk] : [],
        chainId: 80002,
      } },
      etherscan: {
        apiKey: process.env.ETHERSCAN_API_KEY,          // single Etherscan v2 key covers PolygonScan
        customChains: [{
          network: "polygonAmoy", chainId: 80002,
          urls: {
            apiURL: "https://api.etherscan.io/v2/api?chainid=80002",
            browserURL: "https://amoy.polygonscan.com",
          },
        }],
      },
      sourcify: { enabled: false },
    };
- Deploy: `npx hardhat run scripts/deploy.cjs --network polygonAmoy`.
- Verify (run RIGHT AFTER deploy, no constructor args for these contracts):
  `npx hardhat verify --network polygonAmoy <address>`
  On success it prints "Successfully verified contract … on the block explorer"
  and the source becomes readable at
  `https://amoy.polygonscan.com/address/<address>#code`.
- Frontend reads: create a viem public client with the Polygon Amoy RPC too —
  `createPublicClient({ chain: polygonAmoy, transport: http(import.meta.env.VITE_POLYGON_AMOY_RPC_URL) })`
  (import `polygonAmoy` from `viem/chains`).
  Expose the RPC to the client by also setting VITE_POLYGON_AMOY_RPC_URL to the same value.
- Write the deployed address to `src/data/contract.json` so the UI links to
  `https://amoy.polygonscan.com/address/<address>`.

CONTRACT (contracts/PatternShare.sol):
```solidity
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.24;
/// @title SocialLogPatternShare
/// @notice Securely share and license digital sewing patterns with transparent ownership and usage rights.
/// @notice Built during the Creative AI & Quantum Hackathon organised by StreetKode Fam during Indian Krump Festival 14
contract SocialLogPatternShare {
    event Logged(address indexed author, string cid, uint256 at);
    /// @notice Built during the Creative AI & Quantum Hackathon organised by StreetKode Fam during Indian Krump Festival 14
    function log(string calldata cid) external {
        emit Logged(msg.sender, cid, block.timestamp);
    }
}
```

USER FLOW
1. Land on page -> 'Sign in with Google' (Privy) -> embedded wallet auto-provisioned on Polygon Amoy.
2. Every digital pattern exchange action the user performs is sent as a sponsored Polygon Amoy tx (`log(payload)`) and displayed with a PolygonScan link. No wallet popups.
3. Footer renders: "Built during the Creative AI & Quantum Hackathon organised by StreetKode Fam during Indian Krump Festival 14"

REQUIRED SECRETS (Lovable -> Project Settings -> Secrets):
- METAMASK_PRIVATE_KEY  Polygon Amoy deployer key. Fund it: https://faucet.polygon.technology/
                        (alt: https://faucet.polygon.technology/)
- POLYGON_AMOY_RPC_URL  Alchemy Polygon Amoy HTTPS endpoint (https://polygon-amoy.g.alchemy.com/v2/<key>)
                        OR the public default https://rpc-amoy.polygon.technology. Create a free app: https://dashboard.alchemy.com/
- ETHERSCAN_API_KEY     Single Etherscan v2 key — verifies on PolygonScan (chainId 80002) with no extra key.
                        Get: https://etherscan.io/myapikey
- PRIVY_APP_ID          Google sign-in + sponsored tx. See PRIVY DASHBOARD SETUP below to enable Polygon Amoy sponsorship.
                        Docs: https://docs.privy.io/llms-full.txt
- PINATA_JWT            IPFS uploads (only if app pins media). Docs: https://docs.pinata.cloud/llms-full.txt

CREDIT (must appear in UI footer AND as NatSpec on every deployed contract):
Built during the Creative AI & Quantum Hackathon organised by StreetKode Fam during Indian Krump Festival 14
Appendix · Market

Market sizing.

TAM
$1.2B
fashion design software
SAM
$180M
pattern design and licensing
SOM
$18M
blockchain licensing for textiles

Indicative figures for hackathon pitches — refine with your own research before raising.

See also

Adjacent entries.