TENSILE

TensileInk V2, issued on Ink

322 works, painted in layers

TensileInk V2 ended as a set of 322 hand painted works. Each one is assembled from five traits, and the combination was decided by a salt that was committed before the claim window and revealed after it. The run was capped at 2,000 places; 1,678 of them were burned when nobody claimed them.

Works
322
Burned
1,678
Traits
5
Royalty
10%

Read from the V2 contract. The run is finished: 322 works exist and 1,678 places were burned. No further works can be added.

The run replaces the first collection. How the migration works

A TensileInk V2 work, painted in layered bands and line work
Collection
TENSILEINK V2
Ink, chain 57073

The window

One window, closed

A snapshot block was fixed before the window opened. A holder of the first collection claimed one place per work held at that block. The window closed on the dates the contract holds: 322 places were taken and became works, and the 1,678 places nobody claimed were burned rather than saved. The window cannot reopen.

The traits of every work were set before the window and could not be chosen by anyone claiming. They can be verified by anyone afterwards.

Migration to V2

322 places taken,
1,678 burned

Window closed

The migration is finished. A holder of the first collection took one place per work held at the snapshot, and 322 places were claimed. The window is closed and cannot reopen. The other 1,678 places were burned rather than saved, so the collection stands at 322 works.

Places taken
322
Burned
1,678
Places left
0
Claimed supply 322 of 2,000 works

Claim window, UTC

Closed. The contract recorded the window, and it cannot reopen.

Royalties, not migration, are handled in the Claim menu.

Nothing is claimed here any more. The finished collection is on OpenSea.

The Collection

Five tiers, six plates

Every work carries five traits. Their weights add up to a rarity score, and the score places the work in one of five tiers. The counts below are the real counts for the 322 works that exist.

See the run

Traits are drawn on chain from keccak256(salt, tokenId). The salt is committed before the window and revealed after it, so no work can be picked in advance and any trait can be checked afterwards.

Mechanism

Fixed, then revealed

Committed

Before the window opens, a salt is committed on chain. The commitment fixes the whole set of traits without showing any of them.

Revealed

After the window closes the salt is published. Each work then resolves to its five variants, and the same salt always gives the same answer.

Checked

Anyone can recompute the hash and reach the same traits, the same rarity score and the same tier. Nothing is retouched by hand.

Studio

Painted in layers

TensileInk V2 ended as 322 works, each assembled from five painted traits: Palette, Crown, Pendant, Gear and Scale. The layers are made by hand. The combination is decided by the hash.

Works
322
Traits
5
Royalty
10%
Registry
not published yet
Reading the registry

Score to tier: 6 to 11 Common, 12 to 13 Uncommon, 14 Rare, 15 Epic, 16 to 17 Legendary. The contract publishes the score. The tier follows from it, and the gallery filters use it.

Find the works

Issued on Ink, chain 57073

The registry address is published with the contract.

Works

The run,
as it fills

The collection ended at 322 works. What is shown below is read from the V2 contract itself: the supply cap and the number claimed so far. Nothing is cached and no list is kept here.

Rarity

Every work,
ranked

The contract publishes a rarity score for every work. This page reads all of them and orders the run from the highest score to the lowest, with the token id breaking a tie. Every number here comes from the chain, not from a list kept on this page.

Reading the registry

The table fills when the contract answers.

Claim

The royalty,
withdrawn

Every secondary sale of a work pays a royalty, and part of that royalty belongs to the wallet holding the work. This page finds your works, adds up what they have earned and pays it out. Nothing is staked, nothing is locked, and there is nothing to register for.

Holder royalty

What the works
have earned

Wallet not connected

Wallet

Not connected

Works held
n/a
Royalty to withdraw
n/a
Contract balance
reading

The contract takes a royalty of ten percent of every secondary sale. Thirty percent of that royalty goes to the wallets holding the works, split by weight: each work carries the weight of its rarity tier, so a Common work counts 3, an Uncommon 5, a Rare 8, an Epic 11 and a Legendary 13. A sale adds to the pot in proportion to those weights, and each work's share belongs to whichever wallet holds that work at the time of the sale.

There is no staking and no locking. The royalty sits in the contract against the work itself, so moving a work to another wallet moves its unclaimed royalty with it. Withdrawing is one transaction and can be done at any time.

reading totalWeight and accRewardPerWeight from the contract

Connect the wallet that holds the works. The contract answers for that address.

Read from the V2 contract on Ink at 0xfC410abdB27bE1bA58BB8E0d9beC11279a5eeDB4. Migrating from the first collection? That claim lives on the home view.

Documentation

The rules of a
layered work

TensileInk V2 was a fixed run of 2,000 places on Ink, of which 322 were taken. This page documents how the traits are drawn, how rarity is scored, how the salt is committed and revealed, and how the migration from the first collection works. Everything described here runs on chain and can be read without this site.

Contents
01. Overview

A fixed run,
drawn from a hash

TensileInk V2 ended at 322 works. Each is painted in layers and assembled from five traits: Palette, Crown, Pendant, Gear and Scale. The combination is not a studio choice. It is read from the hash of a salt and the token id, so the set resolves the same way for everyone who checks it.

The run replaces the first collection. Holders of that collection claim their places in this one, and the traits of every work are fixed before the first claim is made.

02. The five traits

Five traits, one byte each

Each trait reads one byte of the work's hash. The byte selects a variant, and every variant has its own drawing in the artwork.

TraitValuesVariants
Palette
Violet, Green, Amber, Azure, Crimson
5
Crown
None, Halo, Corona
3
Pendant
Dot, Orb, Sun
3
Gear
Grid, Mesh, Weave, Spiral
4
Scale
Calm, Taut, Warped, Ruptured
4
03. Rarity tiers

A score, then a tier

Each variant carries a weight. The five weights of a work add up to a rarity score between 6 and 17, and the score places the work in one of five tiers. The counts below are the counts for the full run.

TierScoreWorksShare of the run
Common
6 to 11
1,109

More than half the run.

Uncommon
12 to 13
624

Just under a third.

Rare
14
152

152 works in the whole run.

Epic
15
86

86 works in the whole run.

Legendary
16 to 17
29

29 works in the whole run.

04. The salt

Committed before, revealed after

At deployment the contract stores a commitment: the hash of a salt, and nothing else. The salt itself stays private while the claim window runs.

When the window closes the salt is revealed. The contract checks it against the commitment and rejects anything that does not match, so the committed salt is the only one that can ever be used. From then on the traits of a work are the first five bytes of keccak256(salt, tokenId), and anyone can recompute them.

traits = keccak256(abi.encodePacked(salt, tokenId))
05. Migration

One work held, one place taken

A snapshot block is fixed before the window opens. The balance of every address in the first collection is frozen at that block, and the whole list is committed as a single Merkle root. After the window opens that root can no longer change.

Claiming mints exactly one new work for each eligible place, less whatever the address has already taken. The place count and a proof travel with the claim, so only the address the snapshot recorded can take them. claim(count, proof) mints the whole remaining entitlement in one call. claimUpTo(count, proof) mints a bounded batch for an address with a large entitlement.

The window runs once, on the dates the contract holds. Once it closes, the unclaimed places are burned: each one is minted to the contract and immediately destroyed, so the id can never be used again. Circulating supply then equals exactly what was claimed.

06. Royalty

Ten percent, split two ways

The contract implements ERC-2981. On a secondary sale it reports a royalty of ten percent of the sale. Thirty percent of that royalty accrues to the wallets holding the works, split by rarity weight; the rest goes to the project wallet. There is no treasury contract in between.

The holder part is not paid out on the sale. It is held in the contract against each work, so it moves with the work and is withdrawn from the Claim view at any time, with no staking and no locking. holderShareBp reports the current split publicly.

07. Supply

Two thousand, fixed

Cap
2,000

MAX_SUPPLY, a constant

Traits
5

Palette, Crown, Pendant, Gear, Scale

Tiers
5

Common to Legendary

No function can create a token beyond the cap. totalSupply counts the works that exist now, and because unclaimed places are burned it can settle below 2,000. The cap itself never moves.

08. The window

One window, once

Migration is the only way into this collection. There is no public sale and no second route. The window opens and closes at dates set in the contract, and closes for good. An address that held works at the snapshot can claim at any point inside it, and an address that held nothing has nothing to claim.

StepWhenWhat happens
Snapshot
before the window
The balance of each address in the first collection is read at a fixed block, and the whole list is committed as one Merkle root.
Commitment
before the window
The salt is committed on chain. The traits of every work are fixed from that moment, though none are visible yet.
Claim
until the close date
Holders connect the wallet they held with and claim one place per work. claimUpTo takes a batch of up to fifty.
Reveal
after the window
The salt is published and checked against the commitment. Traits and tiers can then be read and verified by anyone.
09. Reading it yourself

Trust nothing here

Every claim on this page can be checked without asking us. The V2 contract answers these calls directly, and the Works view reads its supply from the first two.

CallAnswers
MAX_SUPPLYThe cap of the run, 2,000.
totalSupplyHow many works exist now.
claimWindowOpenWhether the migration window is open.
eligibleRootThe single root the snapshot list is committed to.
traitHashThe hash a work's traits are read from.
rarityOfThe rarity score of a work, 6 to 17.
royaltyInfoThe receiver and the royalty for a sale.
10. Questions

Asked plainly

Can the art be chosen in advance?

No. The traits are derived from a salt that stays private until the window closes, and the commitment is fixed before the first claim.

What happens to places nobody claims?

They are burned when the window closes. The ids cannot be minted again.

Can supply pass 2,000?

No. MAX_SUPPLY is a constant and no function can create a token beyond it.

Where does the royalty go?

Ten percent of a secondary sale. Thirty percent of that royalty accrues to the wallets holding the works, and the rest goes to the project wallet.

How is the holder share paid?

It accrues in the contract against each work and is withdrawn from the Claim view. Nothing is staked or locked, and the split is reported on chain by holderShareBp.