TENSILE

TensileInk V2, issued on Ink

2,000 works, painted in layers

TensileInk V2 is a fixed run of 2,000 hand painted works. Each one is assembled from five traits, and the combination is decided by a salt that is committed before the claim window and revealed after it.

Works
2,000
Traits
5
Tiers
5
Royalty
10%

Fixed at deployment. 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, once

A snapshot block is fixed before the window opens. A holder of the first collection claims one place per work held at that block. The window opens and closes on the dates the contract holds, and both are shown on the card below. Whatever nobody claims is burned.

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

Migration to V2

Two thousand works,
one place each

reading the contract

The new collection holds 2,000 works. One work held in the first collection at the snapshot earns one place in it. Connecting the wallet that held them is all that is asked: the contract answers for that address, and nothing is signed until you claim.

Wallet

Not connected

Held at snapshot
n/a
Places taken
n/a
Places left
n/a
Claimed supply not published yet

Claim window, UTC

The dates are published with the contract.

One transaction takes up to ten places. A holder with thirty works presses the button three times.

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 counts for the full run of 2,000.

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 is 2,000 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
2,000
Traits
5
Royalty
10%
Registry
not published yet
Reading the registry

Find the works

Issued on Ink, chain 57073

The registry address is published with the contract.

Works

The run,
as it fills

The collection holds 2,000 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.

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 is a fixed run of 2,000 works on Ink. 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 holds 2,000 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 all 2,000 works 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.