Integrate with the IndustriLease DePIN protocol. Explore contract ABIs, test endpoints, EIP-712 payload shapes, and local enclaves.
Deployed Sepolia Contracts
The protocol contracts deployed on Sepolia testnet. Make calls using Ethers.js or Viem.
MachineSlotToken.sol
Semi-fungible capacity token representing specific machine time windows (ERC-1155 derivative).
IndustriLeaseEscrow.sol
Escrow clearinghouse that holds borrower payments and settles parametrically based on telemetry validation.
Mints a new capacity slot. Only hardware owners or authorized AI agents can call this.
Grants or revokes authorization for an autonomous AI agent to manage time slot token listings.
Returns detailed configuration, time limits, fees, and status logs of a minted time slot.
API Schemas & Webhooks
The platform exposes serverless routes and webhooks to synchronize off-chain telemetry enclaves with smart contract execution.
Retrieve capacity listings merged from Sepolia events and local database cache.
Query parameters
| Parameter | Type | Description |
|---|---|---|
| category | string | Filter by machine type (e.g. '5-Axis CNC') |
| material | string | Filter by supported printing/milling materials |
| maxRate | number | Maximum hourly rate in USD |
| search | string | Text search within machine title or description |
Response shape (JSON)
{
"success": true,
"slots": [
{
"slotId": "42",
"machineId": "m1-cnc",
"startTime": 1791244800,
"endTime": 1791252000,
"pricePerHour": "145000000000000000000",
"setupFee": "15000000000000000000",
"totalLayers": 250,
"status": "AVAILABLE",
"factoryAddress": "0x4a2f8c1d3e9b7f5a2c6d8e1f3a4b5c6d7e8f9a0b"
}
]
}EIP-712 Telemetry Struct & Signature
To eliminate fake execution reporting, the hardware enclave emits cryptographically signed telemetry payloads verifying real execution metrics.
Solidity Struct Definition
struct TelemetryProof {
uint256 slotId;
string machineId;
string jobId;
uint256 layersCompleted;
uint256 powerDrawAvg;
string status; // "COMPLETED" | "FAILED"
}Domain Hash
bytes32 public constant TELEMETRY_TYPEHASH =
keccak256("TelemetryProof(uint256 slotId,string machineId,string jobId,uint256 layersCompleted,uint256 powerDrawAvg,string status)");// Javascript/Typescript EIP-712 Signing Example via Viem
import { createWalletClient, http } from 'viem';
import { privateKeyToAccount } from 'viem/accounts';
import { sepolia } from 'viem/chains';
const account = privateKeyToAccount(process.env.TPM_ENCLAVE_KEY);
const client = createWalletClient({
account,
chain: sepolia,
transport: http()
});
const domain = {
name: 'IndustriLease',
version: '1',
chainId: 11155111, // Sepolia
verifyingContract: '0xa513E6E4b8f2a923D98304ec87F64353C4D5C853'
};
const types = {
TelemetryProof: [
{ name: 'slotId', type: 'uint256' },
{ name: 'machineId', type: 'string' },
{ name: 'jobId', type: 'string' },
{ name: 'layersCompleted', type: 'uint256' },
{ name: 'powerDrawAvg', type: 'uint256' },
{ name: 'status', type: 'string' }
]
};
const signature = await client.signTypedData({
domain,
types,
primaryType: 'TelemetryProof',
message: {
slotId: 42n,
machineId: 'm1-cnc',
jobId: 'job-8921',
layersCompleted: 250n,
powerDrawAvg: 184n,
status: 'COMPLETED'
}
});Local Development & Testing
Run the complete physical-to-digital loop locally on your machine for debugging.
Install Dependencies & Virtualenv
Setup the frontend node packages and Python virtual environments for the simulation scripts.
# Install UI components npm install # Setup simulator virtualenv cd backend-python python -m venv venv source venv/bin/activate pip install -r requirements.txt
Configure Local Environment
Create a `.env` configuration file in the project root folder.
# Root config (.env) NEXT_PUBLIC_SLOT_TOKEN_ADDRESS=0x0165878A594ca255338adfa4d48449f69242Eb8F NEXT_PUBLIC_ESCROW_ADDRESS=0xa513E6E4b8f2a923D98304ec87F64353C4D5C853 RPC_URL=http://localhost:8545
Run Node & Deploy Contracts
Spin up your local hardhat/anvil development node and run deployment scripts.
# Start local RPC network npx hardhat node # Deploy smart contracts locally npx hardhat run scripts/deploy.js --network localhost
Start Simulation & Frontend
Execute the hardware simulation daemon and launch the Next.js development server.
# Execute physical simulator.py in backend-python folder python simulator.py # Launch local app server npm run dev