hackquest logo
  • 학습
  • 강좌 탐색
  • 빌드
  • 해커톤 탐색
  • 프로젝트 아카이브
  • 커뮤니티
  • 포럼
  • 글로벌 이벤트
  • 내 커뮤니티
  • 협력 학습
  • 조직 허브
  • 더 보기
    • 용어집
    • 블로그
    • 펑셋
    • 직업 게시판
    • 보도 자료
    • 창립자
hackquest logo

Fakturin

Invoice financing for Indonesian SMEs: Chainlink verifies each Faktur Pajak with the tax office, then KYC'd lenders co-fund it in its own ERC-4626 vault on Arbitrum. Paid today, repaid later.

비디오

프로젝트 이미지 1
프로젝트 이미지 2
프로젝트 이미지 3
프로젝트 이미지 4

기술 스택

Next
Solidity
Web3
React
Node
Chainlink
Arbitrum
Foundry

설명

Problem

Indonesian suppliers sell on credit and wait to be paid: 54% of B2B sales are on credit, the average term is 50 days and 49% of invoices are paid late (Atradius Payment Practices Barometer, Indonesia 2025). Invoice financing would fix their cash flow, but lenders hold back because (1) the same invoice can be financed by several lenders who cannot see each other, and (2) anyone who knows an invoice number can claim to be its seller.

Solution

Since January 2025 every Indonesian VAT invoice (Faktur Pajak) is issued in the tax office's Coretax system with a unique national number and the seller's and buyer's tax IDs (NPWP). Fakturin turns that public infrastructure into onchain credit:

  • Real invoice: a Chainlink CRE workflow checks each Faktur Pajak with the tax system (through a PJAP tax provider API) and writes the result onchain.

  • Real owner: the seller proves its NPWP once with a Chainlink ACE credential (KYB). If the NPWP on the invoice does not match, the invoice is rejected (SELLER_MISMATCH).

  • Financed once, ever: the registry is keyed by the national invoice number, and the invoice NFT is locked in one vault. A financed number can never be financed again.

  • Verified money: lenders pass KYC once (Chainlink ACE credential); vaults refuse deposits from anyone else.

  • One ERC-4626 vault per invoice: lenders choose each invoice and fund any amount. When the vault fills, the seller receives 80% of the invoice in the same transaction.

  • Repay or default, no buttons: on the due date the seller repays and lenders withdraw principal plus return. Unpaid vaults are closed automatically by a Chainlink CRE keeper; the 17% holdback goes to lenders and the seller is flagged onchain.

Example: a Rp100M invoice due in 60 days. Lenders put in Rp97M. The seller gets Rp80M today, repays Rp100M on the due date and gets the Rp17M holdback back (net cost 3%). Lenders withdraw Rp99.7M (+2.78%, about 17% a year). The platform keeps Rp0.3M, only because the loan was repaid. Pricing (1.5% per 30 days, all-in) stays under the OJK productive-lending cap.

Onchain implementation

8 custom Solidity contracts plus a self-deployed Chainlink ACE identity stack (19 contracts, all verified on Arbiscan, 37 Foundry tests): FakturRegistry, FakturVault (ERC-4626, one per invoice), FakturVaultFactory, FakturNFT (non-transferable, burned on close), FakturRenderer (onchain SVG with status stamp), FakturVerifierReceiver (Chainlink CRE consumer), FakturKeeper (automatic closing), MockIDRX (2-decimal test rupiah), plus ACE PolicyEngine, IdentityRegistry, CredentialRegistry and two identity validators.

Users

  • Borrower (PKP supplier): verify the business once, submit a Faktur Pajak, get paid today, repay on the due date.

  • Lender: pass KYC once, pick verified invoices, earn a return per invoice.

  • Anyone: check whether a Faktur Pajak was ever financed, no wallet needed.

Real vs simulated

Real: all contracts, Chainlink ACE identity, Chainlink CRE workflows (running via cre workflow simulate --broadcast). Simulated behind the same interfaces: the tax-office data (PJAP-shaped API), the KYC/KYB provider, and the rupiah (MockIDRX, a test copy of IDRX).

Docs: https://docs.fakturin.xyz

해커톤 진행 상황

Built from scratch during the hackathon, starting from an empty create-turbo monorepo on Oct 9.

Day 1 (Oct 9)

  • Product spec (PRD) and design system.

  • Smart contracts: invoice registry keyed by the national Faktur Pajak number, ERC-4626 vault per invoice with all-or-nothing funding and atomic payout, repay, default and refunds.

  • Chainlink CRE verify workflow (EVM log trigger → PJAP API → report to the registry).

  • Frontend (Next.js, wagmi, Reown) wired to the contracts.

Day 2 (Oct 10)

  • Chainlink ACE integration: self-deployed PolicyEngine, IdentityRegistry, CredentialRegistry and validators. KYC for lenders, KYB plus an NPWP-hash credential for sellers, NPWP match on every invoice.

  • Tenor-based pricing (1.5% per 30 days), 10% platform fee taken only on repayment.

  • Onchain SVG invoice NFT with status stamps (VERIFIED, FINANCED, LUNAS, DEFAULT).

  • FakturKeeper plus a Chainlink CRE cron workflow that closes overdue vaults automatically.

  • MockIDRX (2-decimal test copy of IDRX).

  • Deployed all 19 contracts to Arbitrum Sepolia and verified them on Arbiscan; 37 Foundry tests and CI.

  • CRE workflows running 24/7 on a VPS with pm2.

  • Plain-language transaction review dialog (exact approvals, raw calldata).

  • Borrow, Lend and Check screens.

  • Documentation site (docs.fakturin.xyz) with user guides, architecture diagrams and a contract reference.

  • Pitch and demo videos.

자금 모금 상태

Not fundraising yet; bootstrapped hackathon prototype. Next steps before raising: PJAP (tax provider) staging access, Chainlink CRE DON deployment, a licensed KYC/KYB partner, IDRX on Arbitrum, and pilot suppliers. Open to ecosystem grants, accelerator programs and design partners (PJAPs, rupiah stablecoin issuers, invoice-financing lenders).

팀 리더
TTegar Aji
프로젝트 링크
배포 생태계
Arbitrum SepoliaArbitrum Sepolia
부문
DeFiRWA