Pinlo

Contracts

Two contracts, both without an owner, an admin key, a fee or an upgrade path. Every parameter is fixed when the contract is created. Until an address is filled in below, the app runs the same screens in practice mode and sends nothing to the chain.

PinloCortex

Memory anchors, versions and access grants. It never sees record text, only hashes.

  • openMind(label) creates a mind owned by the caller. The id is keccak256(abi.encode(owner, label)); labels are 1 to 64 bytes and public.
  • etch(id, expectedVersion, root, count, uri) anchors a new version. Only the owner or a wallet with a write grant may call it, and only if the mind is still at expectedVersion, so two writers can never overwrite each other silently. A count of zero needs a zero root (an emptied mind).
  • grant(id, agent, scope, expiry) and revoke(id, agent), owner only. Scope 1 is read, 3 is read and write.
  • verifyRecord(id, version, recordHash, proof) returns true when the record folds to that version's root (version 0 means the latest).
  • Views: mindOf, rootAt, grantOf, canRead, canWrite, mindCount, etchCount.
  • Events: MindOpened, Etched, Granted, Revoked.

PinloTether

Fixed-term locks of $PINLO. A holder locks an amount for a number of days between the minimum and maximum set at deploy, and takes the same amount back after the term. There is no yield and no reward: an active lock raises the wallet's hosted-memory quota, and that is all. It is deployed once the token address exists.

  • lock(amount, termDays) pulls the tokens and refuses any token that arrives short (fee-on-transfer).
  • release(id) returns the tokens to the holder once the term has ended.
  • Views: lockOf, openLocksOf, lockedOf, activeOf, totalLocked.

Checking a deployment

The repository includes npm run verify-deployment, which compares the bytecode at an address with this build, decodes the constructor values and checks the creation transaction. Source code is also published on the Robinhood Chain explorer once deployed.

Addresses on Robinhood Chain

ContractAddressConstructor
PinloCortex0xd5381926d1517010a5b1286b202a036567920934No constructor values. Can be deployed before the token.
PinloTetherNot deployed yetToken address, minimum 7 days, maximum 365 days (proposed). Deployed after the token.