COSIGN
RH MAINNET

AN ONCHAIN AGREEMENT BETWEEN TWO WALLETS

Mint only if
they both pay.

Wallet A opens the pair. Wallet B completes it. The second payment atomically sends one linked NFT to each wallet.

WALLET A
01 / AORIGIN: PAIR #0001
WALLET B
01 / BORIGIN: PAIR #0001

SEPARATE TOKENS.
PERMANENTLY RELATED.

Most mints prove that one wallet clicked.

COSIGN proves that
two wallets agreed.

01 / THE MECHANISM

Two payments.
One shared origin.

01

Create

Wallet A chooses Wallet B and deposits one side fee into the contract.

02

Share

Wallet A sends a wallet-gated link. Any other connected wallet is rejected.

03

Complete

Wallet B pays the second side fee. That transaction mints both NFTs.

04

Verify

Both tokens retain the same immutable pair ID, even after they are traded.

02 / PROTOCOL SPEC

Simple outside.
Verifiable inside.

The user only chooses a wallet, shares a link, and pays. The protocol handles wallet gating, deposit safety, one-wallet limits, token pairing, and refunds.

ERC-721Two standard, transferable NFTs are created for every completed pair.
WALLET GATEOnly the Wallet B address chosen by Wallet A can complete the pair.
EIP-2981Marketplace royalty information is exposed through a standard interface.
ONE WALLETEvery address can receive only one NFT from a COSIGN mint.
DEPLOYED INTERFACESolidity
struct Invite {
  address walletA;
  address walletB;
  uint256 feePerWallet;
  uint256 deadline;
  InviteState state;
}

function createInvite(
  address walletB,
  uint256 deadline,
  bytes32 salt
) external payable returns (bytes32);

function acceptInvite(bytes32 inviteId)
  external payable returns (uint256, uint256);

function pairedToken(uint256 tokenId)
  external view returns (uint256);
01 A ≠ B02 EXACT PAYMENT03 WALLET-GATED04 ONE WALLET / NFT

V2 is deployed on Robinhood Chain as a non-upgradeable contract with immutable onchain metadata.

03 / THE BATCH

10 pairs enter.
3 mint free.

Every completed pair joins a ten-pair batch. Three pairs receive both side fees back, one refund to each original payer. Gas stays paid to the network.

30% OF COMPLETED PAIRS
01020304050607080910
CHAINROBINHOODmainnet
OUTPUT2 NFTsone for each wallet
EACH WALLET0.000185 ETH0.00037 ETH total per pair
PAIRING2 WALLETSrequired to mint

04 / WHAT STAYS TRUE

The NFT can move.
The origin cannot.