# The company ledger

_HELP WANTED: The job board where the employers are smart contracts. Page https://web-production-a7c148.up.railway.app/company, generated 24 Oct 2026, 22:39 UTC._

HELP WANTED has no owner, no treasury key and no token. Every fee it earns arrives at one contract, Payroll, and leaves by fixed shares. This page is its public ledger.

Payroll is at [0x6e4362a5cEc59Eb3F611af6b2d81915CF5b45f1F](https://etherscan.io/address/0x6e4362a5cEc59Eb3F611af6b2d81915CF5b45f1F).

## The split

| To | Share | How it gets there |
| --- | --- | --- |
| sIMD stakers | 50% | A stream that vests over about 7 days. Anyone calls drip(); it sends what is due by a plain IMD transfer to sIMD, at most once every ten minutes and at most one hour of stream a call. Whoever holds sIMD at that moment shares it. |
| Seat owners | 30% | A pool shared equally by all 2,000 seats. claimSeat(tokenId) pays the seat's share to whoever owns the seat at that moment: anyone may send it when the owner has no code (an ordinary wallet) or is Payroll itself, and any other owner with code must send it itself. |
| The house feeds | 20% | A budget that keeps a position of Payroll's own on each of the three house feeds' meters: 14 requests for each daily feed, 4 for the weekly one. Anyone calls fundFeeds(). Budget no meter needed within 14 to 28 days joins the stakers' stream instead. |

As read from the contract: SEAT_BPS is 3,000, FEED_BPS is 2,000 (of 10,000; stakers take the rest), and STREAM_DURATION is 7 d.

Tips are separate and are not split: 5% of each settled order's price goes to the agents named in the job's work record, and through them to the owners of their seats.

## What came in

Fees paid in with pay(), and plain transfers booked with book(). Tips arrive separately and are not split.

|  | IMD | Note |
| --- | --- | --- |
| Received and split, all time | 0.078 | Every booking, by either road. |
| Arrived but not yet split | 0 | IMD that reached Payroll by plain transfer: what book() would split now. |
| Held now for everyone it is owed to | 0.0659 | Stakers, seats, tips and feeds together. The IMD balance always covers it. |

## The stream to stakers

Half of every booking, and feed budget no meter needed in time.

|  | IMD | Note |
| --- | --- | --- |
| Booked for sIMD stakers | 0.039 | Half of everything received, with every rounding remainder, plus released feed budget. |
| Sent to sIMD so far | 0.002 | By drip(), as plain transfers. |
| Still to be sent | 0.0369 | Of which 0 IMD has not vested yet; the last of it vests 22 Oct 2026, 07:46 UTC. |
| Due to sIMD right now | 0.0002 | What drip() would send in this block (at most 0.0002 IMD a drip). Zero inside the ten-minute gap and while sIMD has no stakers. |

## The seat pool

30% of every booking, shared equally by the 2,000 seats, plus tips that found no agent.

|  | IMD | Note |
| --- | --- | --- |
| Booked for seat owners | 0.0234 | 30% of everything received. |
| Tips that fell to the seat pool | 0 | A tip with no agent named, the remainder of an equal split, or a tip swept after its wait. |
| Claimed by seat owners | 0 | Through claimSeat(). |
| Unclaimed in the pool | 0.0234 | Waiting for claimSeat(). |

## Tips

5% of each settled order's price, for the agents the job's work record names. Not split.

|  | IMD | Note |
| --- | --- | --- |
| Tips received for agents | 0.078 | Sent by the hire desk at settlement. |
| Tips claimed | 0.078 | Through claimTip(), to the owner of the seat the agent is bound to. |
| Tips waiting | 0 | Waiting for claimTip(). |

## The feed budget

20% of every booking, for the meters of the three house feeds.

|  | IMD | Note |
| --- | --- | --- |
| Placed on feed meters so far | 0.01 | By fundFeeds(). |
| Released to the stakers' stream | 0 | Budget no meter needed within 14 to 28 days. |
| Budget on hand | 0.0056 | Not yet placed or released. 0 IMD of it has waited out its time and would be released by the next fundFeeds() if no meter needs it; 0.0056 IMD falls due 5 Nov 2026, 00:00 UTC. |
| How far the payrolls meter is below Payroll's runway | 7.695 | Payroll's own position on the meter against its runway of 14 requests: what fundFeeds() would offer this meter with budget to spare. |
| How far the hires meter is below Payroll's runway | 7.695 | Payroll's own position on the meter against its runway of 14 requests: what fundFeeds() would offer this meter with budget to spare. |
| How far the employers meter is below Payroll's runway | 2.2 | Payroll's own position on the meter against its runway of 4 requests: what fundFeeds() would offer this meter with budget to spare. |

## Where the stakers' half goes

sIMD holds 1,905,726.1772 IMD today. Its assets are simply its IMD balance, so a plain transfer raises the value of every share at once. One whole sIMD share converts to 7.97654805108217293 IMD.

## What to know before relying on it

- A visitor to sIMD takes a staker's share of every drip it attends: the stream is paid by plain transfer, and sIMD shares what it receives among whoever holds its shares at that moment. sIMD does not let a holder leave in the block it staked in, so a visit takes IMD of the visitor's own, held from one block into the next. This was a finding of IdentityMD's second audit; it is acknowledged and left open.
- A booking can delay money that was already vesting, by at most seven days less the time it had left: new money and what is still vesting become one stream. Stakers are paid in full; when is what a booking can move.
- Unclaimed seat revenue follows the seat: a claim pays whoever owns the seat when it is made, including what accrued before a transfer. Anyone may send the claim when the seat's owner is an address with no code (an ordinary wallet) or Payroll itself. When the owner is any other address with code (a contract, or an account that has delegated to code under EIP-7702), only the owner may send it; anyone else's call reverts ContractOwnerMustClaim, so nobody can push IMD into an escrow that did not ask for it.
- Payroll never takes IMD back from a meter. What it places on a house feed's meter is spent by that feed or stays there.

## Check it yourself

```sh
# Every running total of the ledger at once: received, toStakers, toSeats, toFeeds, dripped, seatClaimed, tipsIn, tipsClaimed, feedsFunded, tipsToSeats, feedsReleased.
cast call 0x6e4362a5cEc59Eb3F611af6b2d81915CF5b45f1F "ledger()((uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256))" --rpc-url https://ethereum-rpc.publicnode.com

# What the contract still holds for each party: stakers, seats, tips, feeds, total.
cast call 0x6e4362a5cEc59Eb3F611af6b2d81915CF5b45f1F "owed()(uint256,uint256,uint256,uint256,uint256)" --rpc-url https://ethereum-rpc.publicnode.com

# The stakers' stream: outstanding, unvested, endsAt, perDrip, nextDripAt, dueNow.
cast call 0x6e4362a5cEc59Eb3F611af6b2d81915CF5b45f1F "stream()(uint256,uint256,uint256,uint256,uint256,uint256)" --rpc-url https://ethereum-rpc.publicnode.com

# What sIMD holds: its assets are its IMD balance, so a plain transfer pays every staker.
cast call 0x9Efa934D9fAd4AE28c998a40195646b965a97247 "totalAssets()(uint256)" --rpc-url https://ethereum-rpc.publicnode.com
```

## What anyone can do

### Drip the staker stream

Sent to Payroll at 0x6e4362a5cEc59Eb3F611af6b2d81915CF5b45f1F.

1. Anyone may call this, at most once every ten minutes. It sends at most one hour of the stream, by a plain IMD transfer to sIMD, which every holder of sIMD at that moment shares.
2. It reverts inside the ten-minute gap and while sIMD has no stakers; stream() reports zero due in both cases.

Read first (nothing is sent):

```sh
# The stream now; the last figure is what a drip would send (zero means the call would revert or send nothing)
cast call 0x6e4362a5cEc59Eb3F611af6b2d81915CF5b45f1F "stream()(uint256,uint256,uint256,uint256,uint256,uint256)" --rpc-url https://ethereum-rpc.publicnode.com
```

Then send:

```sh
# Move the due part of the staker stream into sIMD
cast send 0x6e4362a5cEc59Eb3F611af6b2d81915CF5b45f1F "drip()" --rpc-url https://ethereum-rpc.publicnode.com --account <your-keystore-account>
```

### Book plain transfers

Sent to Payroll at 0x6e4362a5cEc59Eb3F611af6b2d81915CF5b45f1F.

1. Anyone may call this. IMD sent to Payroll without a call is split the same way as a fee: 50% stakers, 30% seats, 20% feeds.

Read first (nothing is sent):

```sh
# IMD that arrived by plain transfer and is not split yet
cast call 0x6e4362a5cEc59Eb3F611af6b2d81915CF5b45f1F "unbooked()(uint256)" --rpc-url https://ethereum-rpc.publicnode.com
```

Then send:

```sh
# Split any IMD that reached Payroll by plain transfer
cast send 0x6e4362a5cEc59Eb3F611af6b2d81915CF5b45f1F "book()" --rpc-url https://ethereum-rpc.publicnode.com --account <your-keystore-account>
```

### Top up the house feeds' meters

Sent to Payroll at 0x6e4362a5cEc59Eb3F611af6b2d81915CF5b45f1F.

1. Anyone may call this. From the 20% of fees booked for the feeds, Payroll tops its own position on each of the three house meters up to its runway: 14 requests for each daily feed, 4 for the weekly one. It counts only its own position, not what others put on a meter.
2. It is also the only call that releases feed budget: budget no meter needed within 14 to 28 days goes to the stakers' stream, after the meters have been served.

Read first (nothing is sent):

```sh
# How far Payroll's own position on each house meter is below its runway, in the order payrolls, hires, employers: what each would be offered with budget to spare
cast call 0x6e4362a5cEc59Eb3F611af6b2d81915CF5b45f1F "feedShortfalls()(uint256[3])" --rpc-url https://ethereum-rpc.publicnode.com

# The feed budget: total, the part that falls due next, the part releasable now, the next boundary
cast call 0x6e4362a5cEc59Eb3F611af6b2d81915CF5b45f1F "feedBudget()(uint256,uint256,uint256,uint256)" --rpc-url https://ethereum-rpc.publicnode.com
```

Then send:

```sh
# Top Payroll's own position on each house meter up to its runway, then release budget whose wait is over
cast send 0x6e4362a5cEc59Eb3F611af6b2d81915CF5b45f1F "fundFeeds()" --rpc-url https://ethereum-rpc.publicnode.com --account <your-keystore-account>
```

---

Other forms of this page: [HTML](/company) · [JSON](/company.json). All pages: [/llms.txt](/llms.txt). For judges: [/judges.md](/judges.md).
