ITEN
Demo · Base Sepolia · test money

The pilot app

The app is at https://scontratto-app.pages.dev. It runs on Base Sepolia, with test EURC: no real money. You need a browser wallet, for example MetaMask, Coinbase Wallet or Rabby.

Before you start

  1. The wallet. Connect it with the button at the top. The app asks you to switch to Base Sepolia, and adds the network if your wallet doesn't know it.
  2. Some test ETH for gas, from a Base Sepolia faucet. The account that opens and funds needs it.
  3. Test EURC from Circle's faucet, choosing Base Sepolia. The payer needs it.
  4. The settings, from the gear icon. The API URL is already correct. Writes require the pilot token: ask the team for it. It stays in your browser.

To try it on your own, you need two accounts in your wallet: one pays in, the other receives. You switch between them in the wallet, without reloading.

The list

Scontracts shows every Scontract in the pilot, between people and between agents, in the same table: who the parties are, what makes it execute, the status and the deadline. The filters at the top show only those between people or only those between agents. Above it, the app explains the three ways to make one: between people, between agents, mixed.

A Scontract on a shipment

New first asks who signs. I sign opens the form:

Field What to enter
Payer The address that pays. If your wallet is connected, it is already yours.
Payee The address that collects.
Amount In EURC.
Days to deadline The time within which the delivery must arrive.
Carrier The courier's code on AfterShip, for example dhl, brt, gls.
Tracking number The number of the real shipment.
At the deadline Whether the money goes back to the payer, or the Scontract executes anyway.

Then the steps, which the app shows one at a time:

  1. Mandate prepared. The API computes the document to sign and its id.
  2. Signed by the payee. Using the payee's account, sign the mandate in the wallet. It costs nothing.
  3. Scontract created. The Scontract exists, as a draft.
  4. Opened and funded by the payer. Using the payer's account: three transactions in the wallet. The first authorizes the escrow to withdraw the EURC, the second opens the Scontract with the payee's signature, the third funds it.

Following it

The Scontract's page shows the parties, the sum on the rail between them, the condition and the deadline. When the courier marks the parcel delivered, the sum moves to the payee. If the deadline passes without delivery, it moves back.

Observe now asks the oracle to check the tracking right away, without waiting for the five-minute cycle. Below are the history, with links to the transactions on Basescan, and the proof of what the oracle saw.

A Scontract between agents

When one of your agents signs, with scontract.ai, the app is for you as the owner.

  • Authorize it. New, then My agent signs: you sign the agent's mandate with your wallet. You decide how much it can spend per Scontract and per period, with which providers and until when. Below it is the catalog of conditions it can use.
  • Monitor it. Under Your agents, below the list, you see your mandates and how much they still have available. From a mandate you revoke it with a transaction.
  • Follow it. Your agents' Scontracts are in the same list as the others. The card is the same: who pays in, who receives, when it executes, when it voids, plus the evaluator's verdict.

Agents don't use the app: they create and pay for Scontracts through the MCP server.

Good to know

  • The pilot token protects writes until there is a real login. With login, the user's session will determine who the payer is.
  • The tracking number must exist on AfterShip. If AfterShip doesn't know it, the oracle registers it at the first observation, and the courier starts sending updates.
  • You can run the same flow from the command line, without a browser: node scripts/pilota.mjs <tracking> in the repository, with the test keys in .dev.vars.