Postmill AI
오픈소스 AI 기반 소셜 미디어 관리, 45개 채널 예약·단일 인박스 회신·앱 내 디자인·자체 키로 AI 실행, 월 $9부터 무료 시작
Portaldot에서 비례형 캠페인, 브랜드가 토큰으로 상금을 잠그고 크리에이터가 Shorts를 올리면 조회수 비율로 체인에서 지급됩니다
Pro-rata creator campaigns on Portaldot. Brands lock a pot in any Portaldot token; creators post Shorts; the pot splits by views and pays out on-chain.
마케팅TypeScript · SolidityGitHub @lazydevpro온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
Pro-rata creator campaigns on Portaldot V3, funded in any native asset. Portaldot Hacker House 2026.
README 전체를 불러오는 중입니다.
README 전문 보기 ↗Get paid for your reach, fairly. Pro-rata creator campaigns on Portaldot V3, funded in any Portaldot native asset.
A brand locks a pot on-chain in tPOT or any native Assets token, including its own. Creators post YouTube Shorts.
When the window closes, the pot is split by views, with a per-creator cap, and paid to every creator's Portaldot
account. Creators cash out on Portaldot's native DEX, and every payout levels up a soulbound creator badge.
Live app: https://reachpot.vercel.app (Portaldot V3 testnet)
Status: deployed on Portaldot V3 testnet:
Reachpotat0xcfcdb8ccac9b95534aedbbe9c90e49a6a1d493cf(deploy tx0x437ca8659ea19af2ba7cc578e755eed2f3d1aaca4a7d1a65dada5412c6273a15, block 150,033), with the rUSD/NOVA native assets, native-DEX pools and the badge collection. The full lifecycle has run end to end on testnet against the hosted app (testnet e2e): fund → signed submissions → snapshot in TransactionStorage → root → dispute window → payouts → soulbound badges → independent verification → DEX cash-out → brand refund. Built for Portaldot Hacker House 2026, Ecosystem DApps track.
Brands pay "clippers" per view, but fixed-CPM budgets have three problems:
A pro-rata pool escrowed on-chain fixes all three. The budget is always fully and fairly spent, the brand cannot claw it back, and rejecting a creator saves the brand nothing because their share goes to the other creators. Portaldot projects get a growth tool on top: they can pay creators in their own token, and creators can cash out straight away.
Reachpot is built from Portaldot V3's native modules and its EVM working together. On a plain EVM chain you would have to deploy and trust a separate DEX, NFT contract and data-availability layer for this.
| Portaldot V3 feature | How Reachpot uses it |
|---|---|
| Revive (EVM) + native-asset ERC-20 precompiles | Reachpot.sol escrows native Assets tokens directly through their precompile (0x{assetId}000000000000000000000000 + 00010000). Any project token works, with no wrapping and no bridge. |
| H160 ↔ native account mapping | Brands fund from MetaMask (EVM). Creators use a Portaldot wallet; after revive.mapAccount, payouts sent to their H160 land in their native account. |
| AssetConversion (native DEX) | Creators swap payouts to tPOT in one tap, using live on-chain quotes. Campaigns add volume to the token's pool. |
| TransactionStorage | The keeper publishes the allocation snapshot on-chain. The contract pins its blake2-256 hash and location, so anyone can re-derive the payout root. |
| Nfts | Every payout mints or updates a soulbound creator badge whose attributes (campaigns, views, earned) are a portable on-chain résumé. |
flowchart LR
Brand -- "approve (precompile) + createCampaign" --> RP[Reachpot.sol<br/>Revive EVM]
Creator -- "mapAccount + signed Short submission" --> API[Web API]
API -- "views" --> Keeper
Keeper -- "store(snapshot)" --> TS[(TransactionStorage)]
Keeper -- "postRoot(root, total, snapshotHash)" --> RP
Guardian -. "cancelRoot (dispute window)" .-> RP
Keeper -- "payoutMany" --> RP
RP -- "ERC-20 precompile transfer" --> Assets[(Native Assets)]
Keeper -- "mint / set_attribute" --> NFT[(Nfts badge)]
Creator -- "swap to tPOT" --> DEX[(AssetConversion)]
Anyone -. "re-derive root from chain" .-> TS
createCampaign. The pool is
escrowed, and the campaign's rules (brief, min views) are hash-pinned on-chain as rulesHash.revive.mapAccount), and submit Shorts. Each
submission is signed by the creator's wallet, binding the video to the payout account.TransactionStorage, and posts the Merkle root together with the snapshot's hash and location.npm run verify does it on the CLI.payoutMany. Recipients without a native balance get the existential
deposit sponsored, and a failing recipient is skipped and retried rather than blocking the batch. Badges are minted or updated.Requirements: git, Node 22+, Foundry. pnpm is optional: without it, setup runs the pinned version through npx. macOS arm64 or Linux x86_64 for the local chain.
git clone https://github.com/lazydevpro/reachpot && cd reachpot
npm test # fetches contract libs + installs deps, then 17 allocation tests + 23 Foundry tests (fuzz, golden fixtures)
npm run chain:up # local chain with Portaldot's runtime: Parity substrate-node (kitchensink) + eth-rpc, sha256-verified
npm run deploy:local # Reachpot + rUSD/NOVA native assets + DEX pools + badge collection → deployments/local.json
npm run dev # web app + keeper on http://localhost:3000
npm run e2e # (another terminal) brand → creators → snapshot → payouts → verify → DEX cash-out → docs/e2e-local.md
여기까지가 README 앞부분입니다. 나머지는 원문에서 읽을 수 있습니다. README 전문 보기 ↗